@nifrajs/agent 3.1.0 → 3.3.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.
- package/README.md +36 -0
- package/dist/deployment.d.ts +157 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +374 -0
- package/dist/deployment.js.map +1 -0
- package/dist/events.d.ts +41 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +75 -0
- package/dist/events.js.map +1 -1
- package/dist/execution-policy.d.ts.map +1 -1
- package/dist/execution-policy.js +11 -7
- package/dist/execution-policy.js.map +1 -1
- package/dist/gateway.d.ts +153 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +409 -0
- package/dist/gateway.js.map +1 -0
- package/dist/index.d.ts +86 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +163 -1
- package/dist/index.js.map +1 -1
- package/dist/mount.d.ts +59 -0
- package/dist/mount.d.ts.map +1 -0
- package/dist/mount.js +247 -0
- package/dist/mount.js.map +1 -0
- package/dist/registry.d.ts +112 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +326 -0
- package/dist/registry.js.map +1 -0
- package/package.json +12 -2
- package/src/deployment.ts +621 -0
- package/src/events.ts +125 -0
- package/src/execution-policy.ts +9 -5
- package/src/gateway.ts +607 -0
- package/src/index.ts +303 -1
- package/src/mount.ts +344 -0
- package/src/registry.ts +444 -0
package/dist/events.d.ts
CHANGED
|
@@ -20,4 +20,45 @@ export interface AgentEvidenceStream extends AgentTelemetryPort, AsyncIterableIt
|
|
|
20
20
|
}
|
|
21
21
|
/** Create an async iterable that yields the exact evidence values received by `step`. */
|
|
22
22
|
export declare function createAgentEvidenceStream(options?: AgentEvidenceStreamOptions): AgentEvidenceStream;
|
|
23
|
+
/** One turn's replayable evidence view - see {@link AgentEvidenceLog.replay}. */
|
|
24
|
+
export interface AgentEvidenceReplay {
|
|
25
|
+
/** Evidence already recorded with `seq` greater than the requested cursor, in order. */
|
|
26
|
+
readonly evidence: readonly AgentStepEvidence[];
|
|
27
|
+
/** Live continuation while the turn is still running; `undefined` once it has finished. */
|
|
28
|
+
readonly live: AgentEvidenceStream | undefined;
|
|
29
|
+
/** Resolves with the value passed to {@link AgentEvidenceLog.finish} when the turn ends. */
|
|
30
|
+
readonly result: Promise<unknown>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Seam for resumable evidence streams. An HTTP seam records one turn's step evidence through
|
|
34
|
+
* `open`, stores the terminal wire frame through `finish`, and serves SSE reconnects through
|
|
35
|
+
* `replay` (`Last-Event-ID` maps to evidence `seq`). The stored result value is opaque to the log -
|
|
36
|
+
* each seam stores whatever it needs to re-emit its own terminal frames.
|
|
37
|
+
*
|
|
38
|
+
* {@link createMemoryAgentEvidenceLog} is the single-process dev/test reference; a durable,
|
|
39
|
+
* multi-process log is an adapter concern behind the same interface.
|
|
40
|
+
*/
|
|
41
|
+
export interface AgentEvidenceLog {
|
|
42
|
+
/**
|
|
43
|
+
* Telemetry port recording one turn's evidence - combine it into `ports.telemetry` with
|
|
44
|
+
* `combineAgentTelemetry`. Opening a finished turn reopens it (a resume of a suspended run):
|
|
45
|
+
* evidence keeps appending and late replays await the new result.
|
|
46
|
+
*/
|
|
47
|
+
open(turnId: string): AgentTelemetryPort;
|
|
48
|
+
/** Mark the turn finished: live replays complete and `result` is stored for late reconnects. */
|
|
49
|
+
finish(turnId: string, result: unknown): void | Promise<void>;
|
|
50
|
+
/** The turn's evidence after `afterSeq`, or `undefined` for an unknown turn. */
|
|
51
|
+
replay(turnId: string, afterSeq: number): AgentEvidenceReplay | undefined | Promise<AgentEvidenceReplay | undefined>;
|
|
52
|
+
}
|
|
53
|
+
export interface MemoryAgentEvidenceLogOptions {
|
|
54
|
+
/** Maximum retained turns; the oldest turn is evicted when a new one opens. Default 256. */
|
|
55
|
+
readonly maxTurns?: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* In-memory {@link AgentEvidenceLog} reference for local development and tests. Single-process by
|
|
59
|
+
* construction: replay only sees runs recorded by this instance. Retention is bounded by
|
|
60
|
+
* `maxTurns` with oldest-first eviction, so a reconnect to an evicted turn reports
|
|
61
|
+
* replay-unavailable rather than growing memory without bound.
|
|
62
|
+
*/
|
|
63
|
+
export declare function createMemoryAgentEvidenceLog(options?: MemoryAgentEvidenceLogOptions): AgentEvidenceLog;
|
|
23
64
|
//# sourceMappingURL=events.d.ts.map
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEvE,iDAAiD;AACjD,MAAM,WAAW,0BAA0B;IACzC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBACf,SAAQ,kBAAkB,EACxB,qBAAqB,CAAC,iBAAiB,CAAC;IAC1C,QAAQ,IAAI,IAAI,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAwDrB"}
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEvE,iDAAiD;AACjD,MAAM,WAAW,0BAA0B;IACzC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBACf,SAAQ,kBAAkB,EACxB,qBAAqB,CAAC,iBAAiB,CAAC;IAC1C,QAAQ,IAAI,IAAI,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,yFAAyF;AACzF,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAwDrB;AAMD,iFAAiF;AACjF,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAC9C,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAClC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAA;IACxC,gGAAgG;IAChG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,gFAAgF;IAChF,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAA;CAC9E;AAED,MAAM,WAAW,6BAA6B;IAC5C,4FAA4F;IAC5F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAUD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,gBAAgB,CA+DlB"}
|
package/dist/events.js
CHANGED
|
@@ -58,4 +58,79 @@ export function createAgentEvidenceStream(options = {}) {
|
|
|
58
58
|
};
|
|
59
59
|
return stream;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* In-memory {@link AgentEvidenceLog} reference for local development and tests. Single-process by
|
|
63
|
+
* construction: replay only sees runs recorded by this instance. Retention is bounded by
|
|
64
|
+
* `maxTurns` with oldest-first eviction, so a reconnect to an evicted turn reports
|
|
65
|
+
* replay-unavailable rather than growing memory without bound.
|
|
66
|
+
*/
|
|
67
|
+
export function createMemoryAgentEvidenceLog(options = {}) {
|
|
68
|
+
const maxTurns = options.maxTurns ?? 256;
|
|
69
|
+
if (!Number.isSafeInteger(maxTurns) || maxTurns < 1)
|
|
70
|
+
throw new RangeError("agent evidence log: maxTurns must be a positive safe integer");
|
|
71
|
+
const turns = new Map();
|
|
72
|
+
const deferred = (record) => {
|
|
73
|
+
record.resultPromise = new Promise((resolve) => {
|
|
74
|
+
record.resolveResult = resolve;
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
return {
|
|
78
|
+
open(turnId) {
|
|
79
|
+
let turn = turns.get(turnId);
|
|
80
|
+
if (turn === undefined) {
|
|
81
|
+
while (turns.size >= maxTurns) {
|
|
82
|
+
const oldest = turns.keys().next().value;
|
|
83
|
+
if (oldest === undefined)
|
|
84
|
+
break;
|
|
85
|
+
turns.delete(oldest);
|
|
86
|
+
}
|
|
87
|
+
turn = {
|
|
88
|
+
evidence: [],
|
|
89
|
+
finished: false,
|
|
90
|
+
resultPromise: Promise.resolve(undefined),
|
|
91
|
+
resolveResult: () => { },
|
|
92
|
+
subscribers: new Set(),
|
|
93
|
+
};
|
|
94
|
+
deferred(turn);
|
|
95
|
+
turns.set(turnId, turn);
|
|
96
|
+
}
|
|
97
|
+
else if (turn.finished) {
|
|
98
|
+
// A resume reopens the turn: the next finish() resolves a fresh result for new replays.
|
|
99
|
+
turn.finished = false;
|
|
100
|
+
deferred(turn);
|
|
101
|
+
}
|
|
102
|
+
const opened = turn;
|
|
103
|
+
return {
|
|
104
|
+
step(evidence) {
|
|
105
|
+
opened.evidence.push(evidence);
|
|
106
|
+
for (const subscriber of opened.subscribers)
|
|
107
|
+
subscriber.step(evidence);
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
},
|
|
111
|
+
finish(turnId, result) {
|
|
112
|
+
const turn = turns.get(turnId);
|
|
113
|
+
if (turn === undefined || turn.finished)
|
|
114
|
+
return;
|
|
115
|
+
turn.finished = true;
|
|
116
|
+
turn.resolveResult(result);
|
|
117
|
+
for (const subscriber of turn.subscribers)
|
|
118
|
+
subscriber.complete();
|
|
119
|
+
turn.subscribers.clear();
|
|
120
|
+
},
|
|
121
|
+
replay(turnId, afterSeq) {
|
|
122
|
+
const turn = turns.get(turnId);
|
|
123
|
+
if (turn === undefined)
|
|
124
|
+
return undefined;
|
|
125
|
+
const evidence = turn.evidence.filter((item) => item.seq > afterSeq);
|
|
126
|
+
if (turn.finished)
|
|
127
|
+
return { evidence, live: undefined, result: turn.resultPromise };
|
|
128
|
+
// Snapshot and subscribe in the same synchronous step, so no evidence item can land between
|
|
129
|
+
// the filtered history and the live stream.
|
|
130
|
+
const live = createAgentEvidenceStream();
|
|
131
|
+
turn.subscribers.add(live);
|
|
132
|
+
return { evidence, live, result: turn.resultPromise };
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
61
136
|
//# sourceMappingURL=events.js.map
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAyBA,yFAAyF;AACzF,MAAM,UAAU,yBAAyB,CACvC,UAAsC,EAAE;IAExC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAA;IACjD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC;QACzD,MAAM,IAAI,UAAU,CAAC,qEAAqE,CAAC,CAAA;IAE7F,MAAM,KAAK,GAAwB,EAAE,CAAA;IACrC,MAAM,OAAO,GAA+D,EAAE,CAAA;IAC9E,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAM;QAC1C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAChF,CAAC,CAAA;IAED,MAAM,MAAM,GAAwB;QAClC,IAAI,OAAO;YACT,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,IAAI,CAAC,QAAQ;YACX,IAAI,SAAS;gBAAE,OAAM;YACrB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;YAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;gBACxC,OAAM;YACR,CAAC;YACD,8FAA8F;YAC9F,gGAAgG;YAChG,wFAAwF;YACxF,IAAI,KAAK,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;gBACjC,KAAK,CAAC,KAAK,EAAE,CAAA;gBACb,OAAO,IAAI,CAAC,CAAA;YACd,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACtB,CAAC;QACD,QAAQ;YACN,SAAS,GAAG,IAAI,CAAA;YAChB,aAAa,EAAE,CAAA;QACjB,CAAC;QACD,IAAI;YACF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;YAC9B,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpF,IAAI,SAAS;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YACvE,OAAO,IAAI,OAAO,CAAoC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;QAC3F,CAAC;QACD,MAAM;YACJ,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YAChB,SAAS,GAAG,IAAI,CAAA;YAChB,aAAa,EAAE,CAAA;YACf,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAC1D,CAAC;QACD,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;KACF,CAAA;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-policy.d.ts","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAA;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,kDAAkD,CAAA;AAIvF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;gBAA5D,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;CAIlF;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;CAC/D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAuErB;
|
|
1
|
+
{"version":3,"file":"execution-policy.d.ts","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAA;AAEvC,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,kDAAkD,CAAA;AAIvF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;gBAA5D,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,WAAW;CAIlF;AAED,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,GAAG,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;CAC/D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CAuErB;AAkHD,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
package/dist/execution-policy.js
CHANGED
|
@@ -141,23 +141,24 @@ function spawnProcess(input) {
|
|
|
141
141
|
cancelled = true;
|
|
142
142
|
terminate();
|
|
143
143
|
};
|
|
144
|
-
|
|
144
|
+
const cleanup = () => {
|
|
145
|
+
clearTimeout(timer);
|
|
146
|
+
if (killTimer !== undefined)
|
|
147
|
+
clearTimeout(killTimer);
|
|
148
|
+
input.signal?.removeEventListener("abort", cancel);
|
|
149
|
+
};
|
|
145
150
|
child.once("error", () => {
|
|
146
151
|
if (settled)
|
|
147
152
|
return;
|
|
148
153
|
settled = true;
|
|
149
|
-
|
|
150
|
-
if (killTimer !== undefined)
|
|
151
|
-
clearTimeout(killTimer);
|
|
154
|
+
cleanup();
|
|
152
155
|
reject(new LocalProcessPolicyError("invalid_request"));
|
|
153
156
|
});
|
|
154
157
|
child.once("close", (exitCode, signal) => {
|
|
155
158
|
if (settled)
|
|
156
159
|
return;
|
|
157
160
|
settled = true;
|
|
158
|
-
|
|
159
|
-
if (killTimer !== undefined)
|
|
160
|
-
clearTimeout(killTimer);
|
|
161
|
+
cleanup();
|
|
161
162
|
resolve({
|
|
162
163
|
ok: !timedOut && !cancelled && exitCode === 0,
|
|
163
164
|
exitCode,
|
|
@@ -169,6 +170,9 @@ function spawnProcess(input) {
|
|
|
169
170
|
limitations: input.limitations,
|
|
170
171
|
});
|
|
171
172
|
});
|
|
173
|
+
input.signal?.addEventListener("abort", cancel, { once: true });
|
|
174
|
+
if (input.signal?.aborted === true)
|
|
175
|
+
cancel(); // close the precheck/listener-registration race
|
|
172
176
|
});
|
|
173
177
|
}
|
|
174
178
|
function concat(chunks) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-policy.js","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"execution-policy.js","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
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 type { StandardSchemaV1 } from "@nifrajs/core/schema";
|
|
10
|
+
export declare const MODEL_GATEWAY_ERROR_CODES: readonly ["malformed_output", "refusal", "timeout", "rate_limit", "unavailable", "policy_denied", "cancelled", "internal"];
|
|
11
|
+
export type ModelGatewayErrorCode = (typeof MODEL_GATEWAY_ERROR_CODES)[number];
|
|
12
|
+
export interface ModelRoute {
|
|
13
|
+
/** Caller-owned opaque route identifier. It is not a provider or model name. */
|
|
14
|
+
readonly id: string;
|
|
15
|
+
}
|
|
16
|
+
export type ModelRouteRef = string | ModelRoute;
|
|
17
|
+
export interface ModelGatewayBudget {
|
|
18
|
+
readonly maxAttempts: number;
|
|
19
|
+
readonly maxInputTokens?: number;
|
|
20
|
+
readonly maxOutputTokens?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ModelGatewayUsage {
|
|
23
|
+
readonly inputTokens?: number;
|
|
24
|
+
readonly outputTokens?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ModelGatewayEnvelope {
|
|
27
|
+
readonly attempt: number;
|
|
28
|
+
readonly attemptsRemaining: number;
|
|
29
|
+
readonly inputTokensRemaining?: number;
|
|
30
|
+
readonly outputTokensRemaining?: number;
|
|
31
|
+
readonly deadlineAt?: number;
|
|
32
|
+
}
|
|
33
|
+
/** The transient request given to a leaf adapter. Never copy `input` into evidence. */
|
|
34
|
+
export interface ModelGatewayAttemptRequest<Input = unknown> {
|
|
35
|
+
readonly routeId: string;
|
|
36
|
+
readonly input: Input;
|
|
37
|
+
readonly signal: AbortSignal;
|
|
38
|
+
readonly envelope: ModelGatewayEnvelope;
|
|
39
|
+
}
|
|
40
|
+
export interface ModelGatewayRequest<Input = unknown, Output = unknown> {
|
|
41
|
+
readonly input: Input;
|
|
42
|
+
/** Optional initial route. If omitted, the first route in the caller policy is used. */
|
|
43
|
+
readonly routeId?: string;
|
|
44
|
+
readonly parser?: StructuredOutputParser<Output>;
|
|
45
|
+
readonly signal?: AbortSignal;
|
|
46
|
+
}
|
|
47
|
+
export interface ModelGatewaySuccess {
|
|
48
|
+
readonly ok: true;
|
|
49
|
+
readonly output: unknown;
|
|
50
|
+
readonly usage?: ModelGatewayUsage;
|
|
51
|
+
}
|
|
52
|
+
export interface ModelGatewayFailure {
|
|
53
|
+
readonly ok: false;
|
|
54
|
+
readonly error: ModelGatewayError;
|
|
55
|
+
}
|
|
56
|
+
export type ModelGatewayRawResult = ModelGatewaySuccess | ModelGatewayFailure;
|
|
57
|
+
/** A leaf adapter may be backed by any provider, but it must return this parsed envelope. */
|
|
58
|
+
export interface ModelGateway {
|
|
59
|
+
complete(request: ModelGatewayAttemptRequest): ModelGatewayRawResult | PromiseLike<ModelGatewayRawResult> | unknown;
|
|
60
|
+
}
|
|
61
|
+
export interface ModelGatewayError {
|
|
62
|
+
readonly code: ModelGatewayErrorCode;
|
|
63
|
+
}
|
|
64
|
+
export declare class ModelGatewayFailureError extends Error {
|
|
65
|
+
readonly code: ModelGatewayErrorCode;
|
|
66
|
+
constructor(code: ModelGatewayErrorCode);
|
|
67
|
+
}
|
|
68
|
+
export declare function isModelGatewayErrorCode(value: unknown): value is ModelGatewayErrorCode;
|
|
69
|
+
/** Normalize arbitrary adapter failures without retaining their message, stack, or cause. */
|
|
70
|
+
export declare function parseModelGatewayError(value: unknown): ModelGatewayError;
|
|
71
|
+
/** Parse the leaf result before policy or structured-output code sees it. */
|
|
72
|
+
export declare function parseModelGatewayResult(value: unknown): ModelGatewayRawResult;
|
|
73
|
+
export interface StructuredOutputParser<Output> {
|
|
74
|
+
readonly parse: (value: unknown) => Output | PromiseLike<Output>;
|
|
75
|
+
}
|
|
76
|
+
/** Adapt any Standard Schema validator into a strict structured-output parser. */
|
|
77
|
+
export declare function createStructuredOutputParser<Schema extends StandardSchemaV1>(schema: Schema): StructuredOutputParser<NonNullable<Schema["~standard"]["types"]>["output"]>;
|
|
78
|
+
export declare function structuredOutputParser<Output>(parse: (value: unknown) => Output | PromiseLike<Output>): StructuredOutputParser<Output>;
|
|
79
|
+
export interface ModelGatewayEvidenceBase {
|
|
80
|
+
readonly kind: "attempt" | "fallback" | "parse" | "terminal";
|
|
81
|
+
readonly routeId: string;
|
|
82
|
+
readonly attempt: number;
|
|
83
|
+
}
|
|
84
|
+
export type ModelGatewayEvidence = (ModelGatewayEvidenceBase & {
|
|
85
|
+
readonly kind: "attempt";
|
|
86
|
+
readonly outcome: "started" | "passed" | "failed";
|
|
87
|
+
readonly code?: ModelGatewayErrorCode;
|
|
88
|
+
}) | (ModelGatewayEvidenceBase & {
|
|
89
|
+
readonly kind: "fallback";
|
|
90
|
+
readonly fromRouteId: string;
|
|
91
|
+
readonly toRouteId: string;
|
|
92
|
+
}) | (ModelGatewayEvidenceBase & {
|
|
93
|
+
readonly kind: "parse";
|
|
94
|
+
readonly outcome: "passed" | "failed";
|
|
95
|
+
readonly code?: "malformed_output";
|
|
96
|
+
}) | (ModelGatewayEvidenceBase & {
|
|
97
|
+
readonly kind: "terminal";
|
|
98
|
+
readonly outcome: "passed" | "failed";
|
|
99
|
+
readonly code?: ModelGatewayErrorCode;
|
|
100
|
+
});
|
|
101
|
+
export interface ModelGatewayResult<Output> {
|
|
102
|
+
readonly ok: true;
|
|
103
|
+
readonly output: Output;
|
|
104
|
+
readonly routeId: string;
|
|
105
|
+
readonly attempts: number;
|
|
106
|
+
readonly usage: ModelGatewayUsage;
|
|
107
|
+
readonly evidence: readonly ModelGatewayEvidence[];
|
|
108
|
+
}
|
|
109
|
+
export interface ModelGatewayTerminalFailure {
|
|
110
|
+
readonly ok: false;
|
|
111
|
+
readonly error: ModelGatewayError;
|
|
112
|
+
readonly routeId: string;
|
|
113
|
+
readonly attempts: number;
|
|
114
|
+
readonly usage: ModelGatewayUsage;
|
|
115
|
+
readonly evidence: readonly ModelGatewayEvidence[];
|
|
116
|
+
}
|
|
117
|
+
export type ModelGatewayExecutionResult<Output> = ModelGatewayResult<Output> | ModelGatewayTerminalFailure;
|
|
118
|
+
export interface ModelRoutePolicy {
|
|
119
|
+
readonly routes: readonly ModelRouteRef[];
|
|
120
|
+
readonly retryableCodes: readonly ModelGatewayErrorCode[];
|
|
121
|
+
readonly maxAttempts?: number;
|
|
122
|
+
readonly allowFallback?: boolean;
|
|
123
|
+
readonly budget?: ModelGatewayBudget;
|
|
124
|
+
readonly deadlineAt?: number;
|
|
125
|
+
readonly now?: () => number;
|
|
126
|
+
}
|
|
127
|
+
/** Execute a gateway under an explicit route, retry, fallback, budget, and deadline policy. */
|
|
128
|
+
export declare function runModelGateway<Input, Output>(gateway: ModelGateway, request: ModelGatewayRequest<Input, Output>, policy: ModelRoutePolicy): Promise<ModelGatewayExecutionResult<Output>>;
|
|
129
|
+
export interface FakeModelGatewayOptions {
|
|
130
|
+
readonly responses: readonly ModelGatewayRawResult[];
|
|
131
|
+
}
|
|
132
|
+
/** Deterministic, network-free gateway for tests and local examples. It records no request input. */
|
|
133
|
+
export declare class FakeModelGateway implements ModelGateway {
|
|
134
|
+
private readonly responses;
|
|
135
|
+
private cursor;
|
|
136
|
+
constructor(options: FakeModelGatewayOptions);
|
|
137
|
+
get calls(): number;
|
|
138
|
+
complete(_request: ModelGatewayAttemptRequest): ModelGatewayRawResult;
|
|
139
|
+
}
|
|
140
|
+
export interface ReplayModelGatewayOptions {
|
|
141
|
+
readonly replayId: string;
|
|
142
|
+
readonly responses: readonly ModelGatewayRawResult[];
|
|
143
|
+
}
|
|
144
|
+
/** Network-free deterministic gateway for a caller-owned, already prepared response sequence. */
|
|
145
|
+
export declare class ReplayModelGateway implements ModelGateway {
|
|
146
|
+
readonly replayId: string;
|
|
147
|
+
private readonly responses;
|
|
148
|
+
private cursor;
|
|
149
|
+
constructor(options: ReplayModelGatewayOptions);
|
|
150
|
+
get calls(): number;
|
|
151
|
+
complete(_request: ModelGatewayAttemptRequest): ModelGatewayRawResult;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|