@nifrajs/agent 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,409 @@
1
+ /**
2
+ * Provider-neutral model gateway contracts.
3
+ *
4
+ * This module is deliberately an adapter seam. It knows how to bound an attempt, validate an
5
+ * untrusted adapter result, and record safe evidence; it does not know provider SDKs, credentials,
6
+ * prompts, pricing, or a routing service. Request input and model output are transient caller data.
7
+ * Only the returned evidence may cross a public reference boundary.
8
+ */
9
+ import { validateStandard } from "@nifrajs/core/schema";
10
+ export const MODEL_GATEWAY_ERROR_CODES = [
11
+ "malformed_output",
12
+ "refusal",
13
+ "timeout",
14
+ "rate_limit",
15
+ "unavailable",
16
+ "policy_denied",
17
+ "cancelled",
18
+ "internal",
19
+ ];
20
+ const ERROR_CODES = new Set(MODEL_GATEWAY_ERROR_CODES);
21
+ const TOKEN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
22
+ const MAX_ATTEMPTS = 512;
23
+ const MAX_TOKENS = 10_000_000;
24
+ const MAX_EVIDENCE = 512;
25
+ export class ModelGatewayFailureError extends Error {
26
+ code;
27
+ constructor(code) {
28
+ super(`model gateway ${code}`);
29
+ this.name = "ModelGatewayFailureError";
30
+ this.code = code;
31
+ }
32
+ }
33
+ export function isModelGatewayErrorCode(value) {
34
+ return typeof value === "string" && ERROR_CODES.has(value);
35
+ }
36
+ /** Normalize arbitrary adapter failures without retaining their message, stack, or cause. */
37
+ export function parseModelGatewayError(value) {
38
+ if (value instanceof ModelGatewayFailureError)
39
+ return Object.freeze({ code: value.code });
40
+ if (isRecord(value) && isModelGatewayErrorCode(value.code)) {
41
+ if (Object.keys(value).some((key) => key !== "code"))
42
+ return Object.freeze({ code: "internal" });
43
+ return Object.freeze({ code: value.code });
44
+ }
45
+ return Object.freeze({ code: "internal" });
46
+ }
47
+ /** Parse the leaf result before policy or structured-output code sees it. */
48
+ export function parseModelGatewayResult(value) {
49
+ if (!isRecord(value) || typeof value.ok !== "boolean")
50
+ return { ok: false, error: { code: "internal" } };
51
+ if (!value.ok) {
52
+ if (Object.keys(value).some((key) => key !== "ok" && key !== "error"))
53
+ return { ok: false, error: { code: "malformed_output" } };
54
+ return { ok: false, error: parseModelGatewayError(value.error) };
55
+ }
56
+ if (Object.keys(value).some((key) => key !== "ok" && key !== "output" && key !== "usage"))
57
+ return { ok: false, error: { code: "malformed_output" } };
58
+ if (!Object.hasOwn(value, "output"))
59
+ return { ok: false, error: { code: "malformed_output" } };
60
+ let usage;
61
+ if (value.usage !== undefined) {
62
+ const parsed = parseUsage(value.usage);
63
+ if (parsed === undefined)
64
+ return { ok: false, error: { code: "malformed_output" } };
65
+ usage = parsed;
66
+ }
67
+ return Object.freeze({
68
+ ok: true,
69
+ output: value.output,
70
+ ...(usage === undefined ? {} : { usage }),
71
+ });
72
+ }
73
+ /** Adapt any Standard Schema validator into a strict structured-output parser. */
74
+ export function createStructuredOutputParser(schema) {
75
+ return {
76
+ async parse(value) {
77
+ const result = await validateStandard(schema, value);
78
+ if (!result.ok)
79
+ throw new ModelGatewayFailureError("malformed_output");
80
+ return result.value;
81
+ },
82
+ };
83
+ }
84
+ export function structuredOutputParser(parse) {
85
+ if (typeof parse !== "function")
86
+ throw new TypeError("structured output parser must be callable");
87
+ return Object.freeze({ parse });
88
+ }
89
+ function isRecord(value) {
90
+ return typeof value === "object" && value !== null && !Array.isArray(value);
91
+ }
92
+ function routeId(value) {
93
+ const id = typeof value === "string" ? value : value.id;
94
+ if (typeof id !== "string" || !TOKEN.test(id))
95
+ throw new TypeError("model route id is invalid");
96
+ return id;
97
+ }
98
+ function integer(value, max) {
99
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 && value <= max;
100
+ }
101
+ function parseUsage(value) {
102
+ if (!isRecord(value))
103
+ return undefined;
104
+ const inputTokens = value.inputTokens;
105
+ const outputTokens = value.outputTokens;
106
+ if (inputTokens !== undefined && !integer(inputTokens, MAX_TOKENS))
107
+ return undefined;
108
+ if (outputTokens !== undefined && !integer(outputTokens, MAX_TOKENS))
109
+ return undefined;
110
+ return Object.freeze({
111
+ ...(inputTokens === undefined ? {} : { inputTokens }),
112
+ ...(outputTokens === undefined ? {} : { outputTokens }),
113
+ });
114
+ }
115
+ function validateBudget(budget) {
116
+ const value = budget ?? { maxAttempts: 1 };
117
+ if (!integer(value.maxAttempts, MAX_ATTEMPTS) || value.maxAttempts < 1)
118
+ throw new TypeError("model gateway maxAttempts is invalid");
119
+ if (value.maxInputTokens !== undefined && !integer(value.maxInputTokens, MAX_TOKENS))
120
+ throw new TypeError("model gateway maxInputTokens is invalid");
121
+ if (value.maxOutputTokens !== undefined && !integer(value.maxOutputTokens, MAX_TOKENS))
122
+ throw new TypeError("model gateway maxOutputTokens is invalid");
123
+ return Object.freeze({ ...value });
124
+ }
125
+ function validatePolicy(policy) {
126
+ if (!Array.isArray(policy.routes) ||
127
+ policy.routes.length === 0 ||
128
+ policy.routes.length > MAX_ATTEMPTS)
129
+ throw new TypeError("model gateway policy requires bounded routes");
130
+ const routes = policy.routes.map(routeId);
131
+ if (new Set(routes).size !== routes.length)
132
+ throw new TypeError("model gateway routes must be unique");
133
+ const retryableCodes = new Set();
134
+ for (const code of policy.retryableCodes) {
135
+ if (!isModelGatewayErrorCode(code))
136
+ throw new TypeError("model gateway retry code is invalid");
137
+ retryableCodes.add(code);
138
+ }
139
+ const budget = validateBudget(policy.budget);
140
+ const maxAttempts = policy.maxAttempts ?? budget.maxAttempts;
141
+ if (!integer(maxAttempts, MAX_ATTEMPTS) || maxAttempts < 1)
142
+ throw new TypeError("model gateway policy maxAttempts is invalid");
143
+ if (policy.deadlineAt !== undefined &&
144
+ (!Number.isSafeInteger(policy.deadlineAt) || policy.deadlineAt <= 0))
145
+ throw new TypeError("model gateway deadlineAt is invalid");
146
+ return { routes, retryableCodes, maxAttempts, budget, now: policy.now ?? Date.now };
147
+ }
148
+ function evidenceLimit(evidence) {
149
+ if (evidence.length >= MAX_EVIDENCE)
150
+ throw new ModelGatewayFailureError("policy_denied");
151
+ }
152
+ function addEvidence(evidence, value) {
153
+ evidenceLimit(evidence);
154
+ evidence.push(Object.freeze(value));
155
+ }
156
+ function terminal(error, route, attempts, usage, evidence) {
157
+ addEvidence(evidence, {
158
+ kind: "terminal",
159
+ routeId: route,
160
+ attempt: attempts,
161
+ outcome: "failed",
162
+ code: error.code,
163
+ });
164
+ return Object.freeze({
165
+ ok: false,
166
+ error: Object.freeze({ code: error.code }),
167
+ routeId: route,
168
+ attempts,
169
+ usage: Object.freeze({ ...usage }),
170
+ evidence: Object.freeze([...evidence]),
171
+ });
172
+ }
173
+ function timedFailure(signal, deadlineAt, now) {
174
+ if (signal.aborted)
175
+ return { code: "cancelled" };
176
+ if (deadlineAt !== undefined && now() >= deadlineAt)
177
+ return { code: "timeout" };
178
+ return undefined;
179
+ }
180
+ async function settleAttempt(gateway, request, deadlineAt, now) {
181
+ const before = timedFailure(request.signal, deadlineAt, now);
182
+ if (before !== undefined)
183
+ return { ok: false, error: before };
184
+ const remaining = deadlineAt === undefined ? undefined : Math.max(0, deadlineAt - now());
185
+ let timer;
186
+ let abort;
187
+ try {
188
+ const operation = Promise.resolve()
189
+ .then(() => gateway.complete(request))
190
+ .then(parseModelGatewayResult, () => ({
191
+ ok: false,
192
+ error: { code: "internal" },
193
+ }));
194
+ const races = [operation];
195
+ if (remaining !== undefined) {
196
+ races.push(new Promise((resolve) => {
197
+ timer = setTimeout(() => resolve({ ok: false, error: { code: "timeout" } }), remaining);
198
+ }));
199
+ }
200
+ if (!request.signal.aborted) {
201
+ races.push(new Promise((resolve) => {
202
+ abort = () => resolve({ ok: false, error: { code: "cancelled" } });
203
+ request.signal.addEventListener("abort", abort, { once: true });
204
+ }));
205
+ }
206
+ return await Promise.race(races);
207
+ }
208
+ finally {
209
+ if (timer !== undefined)
210
+ clearTimeout(timer);
211
+ if (abort !== undefined)
212
+ request.signal.removeEventListener("abort", abort);
213
+ }
214
+ }
215
+ /** Execute a gateway under an explicit route, retry, fallback, budget, and deadline policy. */
216
+ export async function runModelGateway(gateway, request, policy) {
217
+ if (gateway === null || typeof gateway !== "object" || typeof gateway.complete !== "function")
218
+ throw new TypeError("model gateway must implement complete");
219
+ const checked = validatePolicy(policy);
220
+ if (request.routeId !== undefined && !checked.routes.includes(request.routeId))
221
+ return terminal({ code: "policy_denied" }, checked.routes[0], 0, {}, []);
222
+ const start = request.routeId === undefined ? 0 : checked.routes.indexOf(request.routeId);
223
+ const routes = checked.routes.slice(start);
224
+ const maxAttempts = Math.min(checked.maxAttempts, checked.budget.maxAttempts);
225
+ const signal = request.signal ?? new AbortController().signal;
226
+ const evidence = [];
227
+ const usage = { inputTokens: 0, outputTokens: 0 };
228
+ let attempts = 0;
229
+ let routeIndex = 0;
230
+ let lastRoute = routes[0];
231
+ while (attempts < maxAttempts) {
232
+ const route = routes[routeIndex];
233
+ lastRoute = route;
234
+ attempts += 1;
235
+ const attemptsRemaining = maxAttempts - attempts;
236
+ const inputTokensRemaining = checked.budget.maxInputTokens === undefined
237
+ ? undefined
238
+ : Math.max(0, checked.budget.maxInputTokens - usage.inputTokens);
239
+ const outputTokensRemaining = checked.budget.maxOutputTokens === undefined
240
+ ? undefined
241
+ : Math.max(0, checked.budget.maxOutputTokens - usage.outputTokens);
242
+ const envelope = Object.freeze({
243
+ attempt: attempts,
244
+ attemptsRemaining,
245
+ ...(inputTokensRemaining === undefined ? {} : { inputTokensRemaining }),
246
+ ...(outputTokensRemaining === undefined ? {} : { outputTokensRemaining }),
247
+ ...(policy.deadlineAt === undefined ? {} : { deadlineAt: policy.deadlineAt }),
248
+ });
249
+ addEvidence(evidence, {
250
+ kind: "attempt",
251
+ routeId: route,
252
+ attempt: attempts,
253
+ outcome: "started",
254
+ });
255
+ const raw = await settleAttempt(gateway, { routeId: route, input: request.input, signal, envelope }, policy.deadlineAt, checked.now);
256
+ const parsed = parseModelGatewayResult(raw);
257
+ if (parsed.ok) {
258
+ const inputTokens = parsed.usage?.inputTokens ?? 0;
259
+ const outputTokens = parsed.usage?.outputTokens ?? 0;
260
+ if (usage.inputTokens + inputTokens > (checked.budget.maxInputTokens ?? MAX_TOKENS) ||
261
+ usage.outputTokens + outputTokens > (checked.budget.maxOutputTokens ?? MAX_TOKENS)) {
262
+ addEvidence(evidence, {
263
+ kind: "attempt",
264
+ routeId: route,
265
+ attempt: attempts,
266
+ outcome: "failed",
267
+ code: "policy_denied",
268
+ });
269
+ return terminal({ code: "policy_denied" }, route, attempts, usage, evidence);
270
+ }
271
+ usage.inputTokens += inputTokens;
272
+ usage.outputTokens += outputTokens;
273
+ addEvidence(evidence, {
274
+ kind: "attempt",
275
+ routeId: route,
276
+ attempt: attempts,
277
+ outcome: "passed",
278
+ });
279
+ if (request.parser !== undefined) {
280
+ try {
281
+ const output = await request.parser.parse(parsed.output);
282
+ addEvidence(evidence, {
283
+ kind: "parse",
284
+ routeId: route,
285
+ attempt: attempts,
286
+ outcome: "passed",
287
+ });
288
+ addEvidence(evidence, {
289
+ kind: "terminal",
290
+ routeId: route,
291
+ attempt: attempts,
292
+ outcome: "passed",
293
+ });
294
+ return Object.freeze({
295
+ ok: true,
296
+ output,
297
+ routeId: route,
298
+ attempts,
299
+ usage: Object.freeze({ ...usage }),
300
+ evidence: Object.freeze([...evidence]),
301
+ });
302
+ }
303
+ catch {
304
+ addEvidence(evidence, {
305
+ kind: "parse",
306
+ routeId: route,
307
+ attempt: attempts,
308
+ outcome: "failed",
309
+ code: "malformed_output",
310
+ });
311
+ const parseError = { code: "malformed_output" };
312
+ addEvidence(evidence, {
313
+ kind: "attempt",
314
+ routeId: route,
315
+ attempt: attempts,
316
+ outcome: "failed",
317
+ code: parseError.code,
318
+ });
319
+ if (!checked.retryableCodes.has(parseError.code))
320
+ return terminal(parseError, route, attempts, usage, evidence);
321
+ }
322
+ }
323
+ else {
324
+ addEvidence(evidence, {
325
+ kind: "terminal",
326
+ routeId: route,
327
+ attempt: attempts,
328
+ outcome: "passed",
329
+ });
330
+ return Object.freeze({
331
+ ok: true,
332
+ output: parsed.output,
333
+ routeId: route,
334
+ attempts,
335
+ usage: Object.freeze({ ...usage }),
336
+ evidence: Object.freeze([...evidence]),
337
+ });
338
+ }
339
+ }
340
+ else {
341
+ addEvidence(evidence, {
342
+ kind: "attempt",
343
+ routeId: route,
344
+ attempt: attempts,
345
+ outcome: "failed",
346
+ code: parsed.error.code,
347
+ });
348
+ const retryable = checked.retryableCodes.has(parsed.error.code);
349
+ if (!retryable)
350
+ return terminal(parsed.error, route, attempts, usage, evidence);
351
+ }
352
+ if (attempts >= maxAttempts)
353
+ break;
354
+ if (routeIndex + 1 < routes.length && policy.allowFallback === true) {
355
+ const nextRoute = routes[routeIndex + 1];
356
+ addEvidence(evidence, {
357
+ kind: "fallback",
358
+ routeId: nextRoute,
359
+ fromRouteId: route,
360
+ toRouteId: nextRoute,
361
+ attempt: attempts,
362
+ });
363
+ routeIndex += 1;
364
+ }
365
+ const stopped = timedFailure(signal, policy.deadlineAt, checked.now);
366
+ if (stopped !== undefined)
367
+ return terminal(stopped, lastRoute, attempts, usage, evidence);
368
+ }
369
+ return terminal({ code: "unavailable" }, lastRoute, attempts, usage, evidence);
370
+ }
371
+ /** Deterministic, network-free gateway for tests and local examples. It records no request input. */
372
+ export class FakeModelGateway {
373
+ responses;
374
+ cursor = 0;
375
+ constructor(options) {
376
+ if (!Array.isArray(options.responses) || options.responses.length > MAX_ATTEMPTS)
377
+ throw new RangeError("fake gateway responses are unbounded");
378
+ this.responses = Object.freeze(options.responses.map((response) => parseModelGatewayResult(response)));
379
+ }
380
+ get calls() {
381
+ return this.cursor;
382
+ }
383
+ complete(_request) {
384
+ const response = this.responses[this.cursor++];
385
+ return response ?? { ok: false, error: { code: "unavailable" } };
386
+ }
387
+ }
388
+ /** Network-free deterministic gateway for a caller-owned, already prepared response sequence. */
389
+ export class ReplayModelGateway {
390
+ replayId;
391
+ responses;
392
+ cursor = 0;
393
+ constructor(options) {
394
+ if (!TOKEN.test(options.replayId))
395
+ throw new TypeError("replay gateway id is invalid");
396
+ if (!Array.isArray(options.responses) || options.responses.length > MAX_ATTEMPTS)
397
+ throw new RangeError("replay gateway responses are unbounded");
398
+ this.replayId = options.replayId;
399
+ this.responses = Object.freeze(options.responses.map((response) => parseModelGatewayResult(response)));
400
+ }
401
+ get calls() {
402
+ return this.cursor;
403
+ }
404
+ complete(_request) {
405
+ const response = this.responses[this.cursor++];
406
+ return response ?? { ok: false, error: { code: "unavailable" } };
407
+ }
408
+ }
409
+ //# sourceMappingURL=gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,10 @@
3
3
  *
4
4
  * One turn makes one model decision and may execute one {@link ToolContract}. The multi-turn runner
5
5
  * is intentionally bounded. The state adapter stores token-only evidence and cursor metadata; model
6
- * input, tool input, and tool output remain transient caller data.
6
+ * input, tool input, and tool output remain transient caller data. A model port may additionally
7
+ * stream progressive output (text, reasoning, tool-call arguments) through the request's optional
8
+ * `onDelta` callback when the caller wires an {@link AgentDeltaSink} into the ports - deltas are
9
+ * transient observer data for live UIs, never evidence, and are never persisted by the runtime.
7
10
  */
8
11
  import { type RequestBudget } from "@nifrajs/core/budget";
9
12
  import type { ExecutionPolicyAdapter } from "@nifrajs/core/execution-policy";
@@ -11,7 +14,9 @@ import type { EffectCost } from "@nifrajs/core/ledger";
11
14
  import { type StandardIssue, type StandardSchemaV1 } from "@nifrajs/core/schema";
12
15
  import { type ToolCatalogEntry } from "@nifrajs/core/tool-catalog";
13
16
  import { type ToolApproval, type ToolBudget, type ToolContract, type ToolError, type ToolIdempotencyStore } from "@nifrajs/core/tool-contract";
17
+ export { AgentDeployment, type AgentDeploymentAdapter, type AgentDeploymentPlan, assertDeploymentAuthorityMonotonic, createDeploymentAuthority, type DeploymentActivationOptions, type DeploymentAuthority, type DeploymentCancellation, type DeploymentCancelRequest, type DeploymentCancelResult, type DeploymentCapabilities, type DeploymentCapabilityReport, type DeploymentDisposeRequest, type DeploymentDisposeResult, DeploymentError, type DeploymentErrorCode, type DeploymentEvidence, type DeploymentFilesystem, type DeploymentInspection, type DeploymentInspectRequest, type DeploymentNetwork, type DeploymentPrepareRequest, type DeploymentPrepareResult, type DeploymentProcess, type DeploymentRuntime, type DeploymentSecrets, type DeploymentStartRequest, type DeploymentStartResult, type DeploymentState, type HostileCodeIsolation, parseDeploymentCapabilityReport, parseDeploymentPlan, } from "./deployment.js";
14
18
  export { createLocalProcessAdapter, type ExecutionPolicy, type ExecutionPolicyAdapter, LOCAL_PROCESS_LIMITATION, type LocalProcessAdapter, type LocalProcessAdapterOptions, LocalProcessPolicyError, type LocalProcessRequest, type LocalProcessResult, } from "./execution-policy.js";
19
+ export { createStructuredOutputParser, FakeModelGateway, type FakeModelGatewayOptions, isModelGatewayErrorCode, MODEL_GATEWAY_ERROR_CODES, type ModelGateway, type ModelGatewayAttemptRequest, type ModelGatewayBudget, type ModelGatewayEnvelope, type ModelGatewayError, type ModelGatewayErrorCode, type ModelGatewayEvidence, type ModelGatewayExecutionResult, type ModelGatewayFailure, ModelGatewayFailureError, type ModelGatewayRawResult, type ModelGatewayRequest, type ModelGatewayResult, type ModelGatewaySuccess, type ModelGatewayTerminalFailure, type ModelGatewayUsage, type ModelRoute, type ModelRoutePolicy, type ModelRouteRef, parseModelGatewayError, parseModelGatewayResult, ReplayModelGateway, type ReplayModelGatewayOptions, runModelGateway, type StructuredOutputParser, structuredOutputParser, } from "./gateway.js";
15
20
  export type AgentStatus = "continue" | "completed" | "suspended";
16
21
  export type AgentPendingKind = "approval" | "budget" | "model" | "cancelled";
17
22
  export interface AgentDefinition<InputSchema extends StandardSchemaV1, OutputSchema extends StandardSchemaV1> {
@@ -60,6 +65,14 @@ export interface AgentModelRequest {
60
65
  readonly signal: AbortSignal;
61
66
  /** Wall-clock budget shared with the parent request. Use withDeadlineHeader for outbound requests. */
62
67
  readonly deadline?: RequestBudget;
68
+ /**
69
+ * Present when an observer asked for progressive output (see {@link AgentPorts.deltas}). A
70
+ * streaming port calls it per chunk while producing the decision; emitting is optional and
71
+ * best-effort - a port that returns only complete responses ignores it, and callback failures
72
+ * never reach the port. Deltas are transient observer data, not evidence: they are not
73
+ * validated, not persisted, and not replayed.
74
+ */
75
+ readonly onDelta?: (delta: AgentModelDelta) => void;
63
76
  }
64
77
  export type AgentModelResponse = {
65
78
  readonly kind: "output";
@@ -73,6 +86,43 @@ export interface AgentModelPort {
73
86
  /** Provider output is unknown until the response parser accepts it. */
74
87
  complete(request: AgentModelRequest): unknown | PromiseLike<unknown>;
75
88
  }
89
+ /**
90
+ * One progressive chunk of a model decision in flight: user-visible text, reasoning text, or the
91
+ * raw argument text of the tool call being formed (`name` on the first chunk when the provider
92
+ * announces it). A `usage` delta reports the decision's token counts once the provider settles
93
+ * them, optionally attributed to a provider and model - observers sum across decisions. Chunks
94
+ * are provider output surface, not evidence - the runtime never stores them.
95
+ */
96
+ export type AgentModelDelta = {
97
+ readonly kind: "text";
98
+ readonly text: string;
99
+ } | {
100
+ readonly kind: "reasoning";
101
+ readonly text: string;
102
+ } | {
103
+ readonly kind: "tool-args";
104
+ readonly name?: string;
105
+ readonly argsText: string;
106
+ } | {
107
+ readonly kind: "usage";
108
+ readonly provider?: string;
109
+ readonly model?: string;
110
+ readonly inputTokens?: number;
111
+ readonly outputTokens?: number;
112
+ readonly totalTokens?: number;
113
+ readonly reasoningTokens?: number;
114
+ readonly cachedInputTokens?: number;
115
+ };
116
+ /** A transient observer of model deltas - an SSE bridge, a live console, a progress meter. */
117
+ export interface AgentDeltaSink {
118
+ delta(delta: AgentModelDelta): void;
119
+ }
120
+ /**
121
+ * Fan model deltas out to several sinks - a protocol bridge and a logger can watch the same run.
122
+ * `undefined` entries are skipped, and the combined sink is `undefined` when none remain. Each
123
+ * sink is isolated: one sink throwing never starves the others.
124
+ */
125
+ export declare function combineAgentDeltaSinks(...sinks: readonly (AgentDeltaSink | undefined)[]): AgentDeltaSink | undefined;
76
126
  export interface AgentToolResult {
77
127
  readonly name: string;
78
128
  readonly ok: boolean;
@@ -121,6 +171,37 @@ export declare class MemoryAgentStateStore implements AgentStateStore {
121
171
  export interface AgentTelemetryPort {
122
172
  step(evidence: AgentStepEvidence): void | PromiseLike<void>;
123
173
  }
174
+ /**
175
+ * Fan one run's step evidence out to several telemetry ports - an SSE evidence stream and an
176
+ * exporter can observe the same turn. Ports are awaited in argument order; `undefined` entries are
177
+ * skipped, and the combined port is `undefined` when none remain.
178
+ */
179
+ export declare function combineAgentTelemetry(...ports: readonly (AgentTelemetryPort | undefined)[]): AgentTelemetryPort | undefined;
180
+ /** One RFC 6902 operation from the applied subset: `add`, `replace`, `remove`. */
181
+ export type AgentStatePatchOp = {
182
+ readonly op: "add" | "replace";
183
+ readonly path: string;
184
+ readonly value: unknown;
185
+ } | {
186
+ readonly op: "remove";
187
+ readonly path: string;
188
+ };
189
+ /**
190
+ * A shared, observable state document for one run - the state a live UI mirrors while the agent
191
+ * works. App code (a model port, a tool executor) calls `patch` with RFC 6902 operations; every
192
+ * subscriber sees the applied ops, and protocol bridges project them onto their wire (AG-UI
193
+ * `STATE_SNAPSHOT`/`STATE_DELTA`). The document is transient per-run observer data - it is not
194
+ * turn state, not evidence, and never persisted by the runtime.
195
+ */
196
+ export interface AgentSharedState<State = unknown> {
197
+ /** A defensive deep copy of the current document. */
198
+ snapshot(): State;
199
+ /** Apply ops atomically - on an invalid op the whole batch is rejected with a TypeError. */
200
+ patch(ops: readonly AgentStatePatchOp[]): void;
201
+ /** Observe applied patches. Returns the unsubscribe function. Listener failures are isolated. */
202
+ subscribe(listener: (ops: readonly AgentStatePatchOp[]) => void): () => void;
203
+ }
204
+ export declare function createAgentSharedState<State>(initial: State): AgentSharedState<State>;
124
205
  export interface AgentPorts {
125
206
  readonly model: AgentModelPort;
126
207
  readonly capabilities: readonly string[];
@@ -131,6 +212,8 @@ export interface AgentPorts {
131
212
  readonly state?: AgentStateStore;
132
213
  readonly approval?: AgentApprovalPort;
133
214
  readonly telemetry?: AgentTelemetryPort;
215
+ /** Receives model deltas when the model port streams. Transient - nothing here is persisted. */
216
+ readonly deltas?: AgentDeltaSink;
134
217
  readonly clock?: () => number;
135
218
  /** Adapter used to satisfy execution policies declared by tool contracts. */
136
219
  readonly executionPolicy?: ExecutionPolicyAdapter;
@@ -196,4 +279,6 @@ export declare function runAgent<InputSchema extends StandardSchemaV1, OutputSch
196
279
  /** Load a saved token-only state record and continue a bounded run. */
197
280
  export declare function resumeAgent<InputSchema extends StandardSchemaV1, OutputSchema extends StandardSchemaV1>(definition: AgentDefinition<InputSchema, OutputSchema>, turnId: string, input: AgentTurnInput, ports: AgentPorts, options?: Omit<RunAgentOptions, "state">): Promise<AgentRunResult<NonNullable<OutputSchema["~standard"]["types"]>["output"]>>;
198
281
  export declare function replayAgent<InputSchema extends StandardSchemaV1, OutputSchema extends StandardSchemaV1>(definition: AgentDefinition<InputSchema, OutputSchema>, input: AgentTurnInput, ports: Omit<AgentPorts, "model">, transcript: AgentTranscript, options: RunAgentOptions): Promise<AgentRunResult<NonNullable<OutputSchema["~standard"]["types"]>["output"]>>;
282
+ export type { ApprovalClass, CapabilityDescriptor, CapabilityKind, DescriptorInput, IdempotencyClass, IsolationClass, RegistryErrorCode, RegistrySnapshot, RetryClass, ToolDescriptorOptions, } from "./registry.js";
283
+ export { CAPABILITY_DESCRIPTOR_VERSION, composeDescriptor, composeRegistrySnapshot, descriptorFromTool, parseCapabilityDescriptor, REGISTRY_SNAPSHOT_VERSION, RegistryError, } from "./registry.js";
199
284
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}