GenerationContext
KIT · interface · Type contract
Everything a rule or generator may read for one accepted call.
The context is frozen; the only mutable side channel is report, and only while the call is still pending.
Import
ts
import type { GenerationContext } from '@jangts/agent-core/mock';js
/** @typedef {import('@jangts/agent-core/mock').GenerationContext} GenerationContext */Other public entry points:@jangts/agent-core/mock.
Definition
ts
interface GenerationContextField structure
| Field | Type | Required | Description |
|---|---|---|---|
request | ModelRequest | Required | Read-only. Frozen snapshot of the normalized request that matched. |
prompt | string | Required | Read-only. Prompt selected by selectPrompt; default is the text of the last user message. |
match | RegExpMatchArray | null | Required | Read-only. Match of the matched rule's regular expression, or null for string/fallback rules. |
callIndex | number | Required | Read-only. 1-based sequence number of this call across the instance lifetime; reset by reset. |
ruleIndex | number | Required | Read-only. 1-based hit count of the matched rule, or the fallback hit count for fallback calls. |
signal | AbortSignal | Required | Read-only. Signal for the current call; also aborts when the transport is cancelled. |
random | () => number | Required | Read-only. Per-call deterministic PRNG in [0, 1), derived from the instance seed and call order. |
clock | () => number | Required | Read-only. Millisecond timestamp from the configured clock; throws if the clock is not synchronous. |
report | (metadata: Record<string, JsonValue>) => void | Required | Read-only. Bounded diagnostic data; never inserted into model content. |
Member index
| Member | Purpose |
|---|---|
random | Per-call deterministic PRNG in [0, 1), derived from the instance seed and call order. |
clock | Millisecond timestamp from the configured clock; throws if the clock is not synchronous. |
report | Bounded diagnostic data; never inserted into model content. |
Member details
random
Per-call deterministic PRNG in [0, 1), derived from the instance seed and call order.
ts
GenerationContext.random(): numberNo call parameters.
Returns: number.
clock
Millisecond timestamp from the configured clock; throws if the clock is not synchronous.
ts
GenerationContext.clock(): numberNo call parameters.
Returns: number.
report
Bounded diagnostic data; never inserted into model content.
ts
GenerationContext.report(metadata: Record<string, JsonValue>): void| Parameter | Type | Passing | Description |
|---|---|---|---|
metadata | Record<string, JsonValue> | Required | — |
Returns: void.
Examples
- MockGPT: response descriptions and scenario generators: Fixed results serve strict regression, input-dependent generators explore wiring, and explicit response descriptions cover failure and streaming scenarios.
- MockGPT Web: trusted sources and local summaries: Get body text from a real web page or a trusted load, then hand it to input-dependent generators.
Encode a validated model result
Extension · Node.js
The adapter handles request validation, pre-first-byte delay, and lifecycle; the encoder does not execute rules or modify MockGPT call records.
ts
import { encodeModelResponse } from '@jangts/agent-core/mock';
const controller = new AbortController();
const response = encodeModelResponse(
{ model: 'demo', messages: [{ role: 'user', content: '状态' }], stream: false },
{ content: '服务在线。' }, 'mock-1', 1700000000, controller.signal,
(error, cancelled) => console.log({ error, cancelled }),
);
console.log(await response.json());js
import { encodeModelResponse } from '@jangts/agent-core/mock';
const controller = new AbortController();
const response = encodeModelResponse({ model: 'demo', messages: [{ role: 'user', content: '状态' }], stream: false }, { content: '服务在线。' }, 'mock-1', 1700000000, controller.signal, (error, cancelled) => console.log({ error, cancelled }));
console.log(await response.json());Generate an inspectable summary from the input
Beginner · Node.js
ts
import { MockGPT, generators } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ generator: generators.summary({ maxChars: 120, count: 2 }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务刚完成维护。健康检查通过。用户可以查询状态。' }] }));
console.log(mock.records);js
import { MockGPT, generators } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ generator: generators.summary({ maxChars: 120, count: 2 }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务刚完成维护。健康检查通过。用户可以查询状态。' }] }));
console.log(mock.records);