@polpo-ai/core 0.15.132 → 0.15.134
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 +40 -7
- package/dist/__tests__/brain-local.test.js +149 -1
- package/dist/__tests__/brain-local.test.js.map +1 -1
- package/dist/__tests__/memory-store-policy.test.js +216 -0
- package/dist/__tests__/memory-store-policy.test.js.map +1 -1
- package/dist/__tests__/project-layout.test.js +5 -0
- package/dist/__tests__/project-layout.test.js.map +1 -1
- package/dist/brain/contracts.d.ts.map +1 -1
- package/dist/brain/contracts.js +36 -0
- package/dist/brain/contracts.js.map +1 -1
- package/dist/brain/in-memory-store.d.ts +2 -1
- package/dist/brain/in-memory-store.d.ts.map +1 -1
- package/dist/brain/in-memory-store.js +118 -60
- package/dist/brain/in-memory-store.js.map +1 -1
- package/dist/brain/index.d.ts +6 -3
- package/dist/brain/index.d.ts.map +1 -1
- package/dist/brain/index.js +2 -1
- package/dist/brain/index.js.map +1 -1
- package/dist/brain/ingestion-worker.d.ts +33 -0
- package/dist/brain/ingestion-worker.d.ts.map +1 -0
- package/dist/brain/ingestion-worker.js +222 -0
- package/dist/brain/ingestion-worker.js.map +1 -0
- package/dist/brain/ingestion-worker.test.d.ts +2 -0
- package/dist/brain/ingestion-worker.test.d.ts.map +1 -0
- package/dist/brain/ingestion-worker.test.js +355 -0
- package/dist/brain/ingestion-worker.test.js.map +1 -0
- package/dist/brain/ports.d.ts +4 -1
- package/dist/brain/ports.d.ts.map +1 -1
- package/dist/brain/retrieval.d.ts +5 -0
- package/dist/brain/retrieval.d.ts.map +1 -1
- package/dist/brain/retrieval.js +59 -1
- package/dist/brain/retrieval.js.map +1 -1
- package/dist/brain/stores.d.ts +3 -1
- package/dist/brain/stores.d.ts.map +1 -1
- package/dist/brain/types.d.ts +20 -0
- package/dist/brain/types.d.ts.map +1 -1
- package/dist/canonical-turn-dispatcher.d.ts +30 -0
- package/dist/canonical-turn-dispatcher.d.ts.map +1 -0
- package/dist/canonical-turn-dispatcher.js +50 -0
- package/dist/canonical-turn-dispatcher.js.map +1 -0
- package/dist/canonical-turn-dispatcher.test.d.ts +2 -0
- package/dist/canonical-turn-dispatcher.test.d.ts.map +1 -0
- package/dist/canonical-turn-dispatcher.test.js +118 -0
- package/dist/canonical-turn-dispatcher.test.js.map +1 -0
- package/dist/canonical-turn.d.ts +36 -0
- package/dist/canonical-turn.d.ts.map +1 -0
- package/dist/canonical-turn.js +132 -0
- package/dist/canonical-turn.js.map +1 -0
- package/dist/canonical-turn.test.d.ts +2 -0
- package/dist/canonical-turn.test.d.ts.map +1 -0
- package/dist/canonical-turn.test.js +64 -0
- package/dist/canonical-turn.test.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/extraction.d.ts +10 -0
- package/dist/memory/extraction.d.ts.map +1 -1
- package/dist/memory/extraction.js +7 -1
- package/dist/memory/extraction.js.map +1 -1
- package/dist/memory/extraction.test.js +27 -0
- package/dist/memory/extraction.test.js.map +1 -1
- package/dist/memory/in-memory-extraction-store.d.ts +2 -0
- package/dist/memory/in-memory-extraction-store.d.ts.map +1 -1
- package/dist/memory/in-memory-extraction-store.js +37 -0
- package/dist/memory/in-memory-extraction-store.js.map +1 -1
- package/dist/memory/in-memory-store.d.ts +15 -2
- package/dist/memory/in-memory-store.d.ts.map +1 -1
- package/dist/memory/in-memory-store.js +209 -4
- package/dist/memory/in-memory-store.js.map +1 -1
- package/dist/memory/index.d.ts +6 -3
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +2 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/learning.d.ts +113 -0
- package/dist/memory/learning.d.ts.map +1 -0
- package/dist/memory/learning.js +310 -0
- package/dist/memory/learning.js.map +1 -0
- package/dist/memory/learning.test.d.ts +2 -0
- package/dist/memory/learning.test.d.ts.map +1 -0
- package/dist/memory/learning.test.js +274 -0
- package/dist/memory/learning.test.js.map +1 -0
- package/dist/memory/store-types.d.ts +21 -0
- package/dist/memory/store-types.d.ts.map +1 -1
- package/dist/memory/tool-settings.d.ts +16 -0
- package/dist/memory/tool-settings.d.ts.map +1 -1
- package/dist/memory/tool-settings.js +53 -1
- package/dist/memory/tool-settings.js.map +1 -1
- package/dist/memory/tool-settings.test.js +33 -0
- package/dist/memory/tool-settings.test.js.map +1 -1
- package/dist/model-runtime.d.ts +1 -1
- package/dist/model-runtime.d.ts.map +1 -1
- package/dist/model-runtime.js.map +1 -1
- package/dist/runtime-context/composite-provider.d.ts.map +1 -1
- package/dist/runtime-context/composite-provider.js +27 -2
- package/dist/runtime-context/composite-provider.js.map +1 -1
- package/dist/runtime-context/composite-provider.test.js +20 -1
- package/dist/runtime-context/composite-provider.test.js.map +1 -1
- package/dist/semantic-retrieval-quality.test.d.ts +2 -0
- package/dist/semantic-retrieval-quality.test.d.ts.map +1 -0
- package/dist/semantic-retrieval-quality.test.js +319 -0
- package/dist/semantic-retrieval-quality.test.js.map +1 -0
- package/dist/semantic-retrieval.d.ts +245 -0
- package/dist/semantic-retrieval.d.ts.map +1 -0
- package/dist/semantic-retrieval.js +662 -0
- package/dist/semantic-retrieval.js.map +1 -0
- package/dist/semantic-retrieval.test.d.ts +2 -0
- package/dist/semantic-retrieval.test.d.ts.map +1 -0
- package/dist/semantic-retrieval.test.js +138 -0
- package/dist/semantic-retrieval.test.js.map +1 -0
- package/dist/session-continuation.d.ts +2 -0
- package/dist/session-continuation.d.ts.map +1 -1
- package/dist/session-continuation.js.map +1 -1
- package/dist/session-store.d.ts +33 -0
- package/dist/session-store.d.ts.map +1 -1
- package/dist/session-store.js.map +1 -1
- package/package.json +13 -1
package/dist/brain/types.d.ts
CHANGED
|
@@ -109,11 +109,18 @@ export interface BrainRetrievalScores {
|
|
|
109
109
|
readonly semantic?: number;
|
|
110
110
|
readonly rerank?: number;
|
|
111
111
|
}
|
|
112
|
+
export interface BrainRetrievalRanks {
|
|
113
|
+
readonly keyword?: number;
|
|
114
|
+
readonly semantic?: number;
|
|
115
|
+
}
|
|
112
116
|
export interface BrainRetrievalResult {
|
|
113
117
|
readonly scope: BrainScope;
|
|
114
118
|
readonly chunk: BrainChunk;
|
|
115
119
|
readonly score: number;
|
|
116
120
|
readonly scores: BrainRetrievalScores;
|
|
121
|
+
readonly ranks?: BrainRetrievalRanks;
|
|
122
|
+
readonly retrievalMode?: "lexical" | "semantic" | "hybrid";
|
|
123
|
+
readonly fallbackReason?: string;
|
|
117
124
|
readonly trust: BrainTrustLevel;
|
|
118
125
|
}
|
|
119
126
|
export interface CreateBrainRetrievalResultInput {
|
|
@@ -121,6 +128,9 @@ export interface CreateBrainRetrievalResultInput {
|
|
|
121
128
|
readonly chunk: BrainChunk;
|
|
122
129
|
readonly score: number;
|
|
123
130
|
readonly scores?: BrainRetrievalScores;
|
|
131
|
+
readonly ranks?: BrainRetrievalRanks;
|
|
132
|
+
readonly retrievalMode?: "lexical" | "semantic" | "hybrid";
|
|
133
|
+
readonly fallbackReason?: string;
|
|
124
134
|
readonly trust: BrainTrustLevel;
|
|
125
135
|
}
|
|
126
136
|
export interface BrainIngestionJob {
|
|
@@ -227,6 +237,7 @@ export interface BrainCandidateSearchQuery {
|
|
|
227
237
|
readonly sources: readonly BrainSourceRef[];
|
|
228
238
|
readonly query: string;
|
|
229
239
|
readonly limit: number;
|
|
240
|
+
readonly signal?: AbortSignal;
|
|
230
241
|
}
|
|
231
242
|
export interface BrainEnqueueResult {
|
|
232
243
|
readonly job: BrainIngestionJob;
|
|
@@ -244,6 +255,9 @@ export interface BrainJobMutationInput {
|
|
|
244
255
|
readonly claimToken: string;
|
|
245
256
|
readonly now: string;
|
|
246
257
|
}
|
|
258
|
+
export interface BrainJobLeaseInput extends BrainJobMutationInput {
|
|
259
|
+
readonly leaseMs: number;
|
|
260
|
+
}
|
|
247
261
|
export interface BrainJobFailureInput extends BrainJobMutationInput {
|
|
248
262
|
readonly failure: BrainFailure;
|
|
249
263
|
readonly retryAt?: string;
|
|
@@ -273,16 +287,22 @@ export interface BrainParserResult {
|
|
|
273
287
|
export interface BrainEmbeddingRequest {
|
|
274
288
|
readonly texts: readonly string[];
|
|
275
289
|
readonly model?: string;
|
|
290
|
+
readonly task?: "document" | "query";
|
|
291
|
+
readonly signal?: AbortSignal;
|
|
276
292
|
}
|
|
277
293
|
export interface BrainEmbeddingResult {
|
|
278
294
|
readonly vectors: readonly (readonly number[])[];
|
|
279
295
|
readonly model: string;
|
|
280
296
|
readonly dimensions: number;
|
|
297
|
+
readonly provider?: string;
|
|
298
|
+
readonly revision?: string;
|
|
299
|
+
readonly usage?: unknown;
|
|
281
300
|
}
|
|
282
301
|
export interface BrainRerankRequest {
|
|
283
302
|
readonly query: string;
|
|
284
303
|
readonly results: readonly BrainRetrievalResult[];
|
|
285
304
|
readonly limit: number;
|
|
305
|
+
readonly signal?: AbortSignal;
|
|
286
306
|
}
|
|
287
307
|
export interface BrainStoreSnapshot {
|
|
288
308
|
readonly version: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/brain/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/brain/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CanonicalTurnCommitted } from "./canonical-turn.js";
|
|
2
|
+
import type { SessionStore } from "./session-store.js";
|
|
3
|
+
export declare const DEFAULT_CANONICAL_TURN_DISPATCH_LIMIT = 100;
|
|
4
|
+
export declare const MAX_CANONICAL_TURN_DISPATCH_LIMIT = 1000;
|
|
5
|
+
export interface CanonicalTurnDispatchHandler {
|
|
6
|
+
/**
|
|
7
|
+
* Deliver one committed turn to a durable host queue.
|
|
8
|
+
*
|
|
9
|
+
* Delivery is at-least-once. Consumers must use `turn.turnId` as their
|
|
10
|
+
* idempotency key because a process may stop after delivery and before ack.
|
|
11
|
+
*/
|
|
12
|
+
dispatch(turn: CanonicalTurnCommitted): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export interface CanonicalTurnDispatchResult {
|
|
15
|
+
readonly scanned: number;
|
|
16
|
+
readonly dispatched: number;
|
|
17
|
+
readonly failed: number;
|
|
18
|
+
readonly superseded: number;
|
|
19
|
+
}
|
|
20
|
+
export interface CanonicalTurnOutboxDispatcherOptions {
|
|
21
|
+
readonly sessionStore: SessionStore;
|
|
22
|
+
readonly handler: CanonicalTurnDispatchHandler;
|
|
23
|
+
}
|
|
24
|
+
/** Reconciles committed canonical turns into a host-owned durable queue. */
|
|
25
|
+
export declare class CanonicalTurnOutboxDispatcher {
|
|
26
|
+
private readonly options;
|
|
27
|
+
constructor(options: CanonicalTurnOutboxDispatcherOptions);
|
|
28
|
+
dispatchPending(limit?: number): Promise<CanonicalTurnDispatchResult>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=canonical-turn-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn-dispatcher.d.ts","sourceRoot":"","sources":["../src/canonical-turn-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,qCAAqC,MAAM,CAAC;AACzD,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,MAAM,WAAW,4BAA4B;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;CAChD;AAED,4EAA4E;AAC5E,qBAAa,6BAA6B;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,oCAAoC;IAEpE,eAAe,CACnB,KAAK,SAAwC,GAC5C,OAAO,CAAC,2BAA2B,CAAC;CA2CxC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export const DEFAULT_CANONICAL_TURN_DISPATCH_LIMIT = 100;
|
|
2
|
+
export const MAX_CANONICAL_TURN_DISPATCH_LIMIT = 1_000;
|
|
3
|
+
/** Reconciles committed canonical turns into a host-owned durable queue. */
|
|
4
|
+
export class CanonicalTurnOutboxDispatcher {
|
|
5
|
+
options;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
}
|
|
9
|
+
async dispatchPending(limit = DEFAULT_CANONICAL_TURN_DISPATCH_LIMIT) {
|
|
10
|
+
assertDispatchLimit(limit);
|
|
11
|
+
const { listPendingCanonicalTurns, markCanonicalTurnDispatched, recordCanonicalTurnDispatchFailure, } = this.options.sessionStore;
|
|
12
|
+
if (!listPendingCanonicalTurns
|
|
13
|
+
|| !markCanonicalTurnDispatched
|
|
14
|
+
|| !recordCanonicalTurnDispatchFailure) {
|
|
15
|
+
throw new Error("Canonical turn dispatch requires durable outbox support");
|
|
16
|
+
}
|
|
17
|
+
const pending = await listPendingCanonicalTurns.call(this.options.sessionStore, limit);
|
|
18
|
+
let dispatched = 0;
|
|
19
|
+
let failed = 0;
|
|
20
|
+
let superseded = 0;
|
|
21
|
+
for (const entry of pending) {
|
|
22
|
+
try {
|
|
23
|
+
await this.options.handler.dispatch(entry.turn);
|
|
24
|
+
const acknowledged = await markCanonicalTurnDispatched.call(this.options.sessionStore, entry.turn.turnId);
|
|
25
|
+
if (acknowledged)
|
|
26
|
+
dispatched += 1;
|
|
27
|
+
else
|
|
28
|
+
superseded += 1;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
failed += 1;
|
|
32
|
+
await recordCanonicalTurnDispatchFailure.call(this.options.sessionStore, entry.turn.turnId);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
scanned: pending.length,
|
|
37
|
+
dispatched,
|
|
38
|
+
failed,
|
|
39
|
+
superseded,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function assertDispatchLimit(limit) {
|
|
44
|
+
if (!Number.isSafeInteger(limit)
|
|
45
|
+
|| limit < 1
|
|
46
|
+
|| limit > MAX_CANONICAL_TURN_DISPATCH_LIMIT) {
|
|
47
|
+
throw new TypeError(`limit must be an integer between 1 and ${MAX_CANONICAL_TURN_DISPATCH_LIMIT}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=canonical-turn-dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn-dispatcher.js","sourceRoot":"","sources":["../src/canonical-turn-dispatcher.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qCAAqC,GAAG,GAAG,CAAC;AACzD,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC;AAwBvD,4EAA4E;AAC5E,MAAM,OAAO,6BAA6B;IACX;IAA7B,YAA6B,OAA6C;QAA7C,YAAO,GAAP,OAAO,CAAsC;IAAG,CAAC;IAE9E,KAAK,CAAC,eAAe,CACnB,KAAK,GAAG,qCAAqC;QAE7C,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,EACJ,yBAAyB,EACzB,2BAA2B,EAC3B,kCAAkC,GACnC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9B,IACE,CAAC,yBAAyB;eACvB,CAAC,2BAA2B;eAC5B,CAAC,kCAAkC,EACtC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACvF,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM,YAAY,GAAG,MAAM,2BAA2B,CAAC,IAAI,CACzD,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAClB,CAAC;gBACF,IAAI,YAAY;oBAAE,UAAU,IAAI,CAAC,CAAC;;oBAC7B,UAAU,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,CAAC,CAAC;gBACZ,MAAM,kCAAkC,CAAC,IAAI,CAC3C,IAAI,CAAC,OAAO,CAAC,YAAY,EACzB,KAAK,CAAC,IAAI,CAAC,MAAM,CAClB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,UAAU;YACV,MAAM;YACN,UAAU;SACX,CAAC;IACJ,CAAC;CACF;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;WACzB,KAAK,GAAG,CAAC;WACT,KAAK,GAAG,iCAAiC,EAC5C,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,0CAA0C,iCAAiC,EAAE,CAC9E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn-dispatcher.test.d.ts","sourceRoot":"","sources":["../src/canonical-turn-dispatcher.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { CanonicalTurnOutboxDispatcher, MAX_CANONICAL_TURN_DISPATCH_LIMIT, } from "./canonical-turn-dispatcher.js";
|
|
3
|
+
function turn(turnId) {
|
|
4
|
+
return {
|
|
5
|
+
turnId,
|
|
6
|
+
sessionId: "session-1",
|
|
7
|
+
agentName: "assistant",
|
|
8
|
+
surface: "chat",
|
|
9
|
+
terminalStatus: "succeeded",
|
|
10
|
+
userMessage: { id: `user-${turnId}`, role: "user" },
|
|
11
|
+
assistantMessage: { id: `assistant-${turnId}`, role: "assistant" },
|
|
12
|
+
trustedInvocation: { externalUserId: "user-1" },
|
|
13
|
+
occurredAt: "2026-08-30T10:00:00.000Z",
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function entry(turnId, attempts = 0) {
|
|
17
|
+
return {
|
|
18
|
+
turn: turn(turnId),
|
|
19
|
+
status: "pending",
|
|
20
|
+
attempts,
|
|
21
|
+
createdAt: "2026-08-30T10:00:00.000Z",
|
|
22
|
+
updatedAt: "2026-08-30T10:00:00.000Z",
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function store(overrides = {}) {
|
|
26
|
+
return {
|
|
27
|
+
listPendingCanonicalTurns: vi.fn(async () => []),
|
|
28
|
+
markCanonicalTurnDispatched: vi.fn(async () => true),
|
|
29
|
+
recordCanonicalTurnDispatchFailure: vi.fn(async () => true),
|
|
30
|
+
...overrides,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
describe("CanonicalTurnOutboxDispatcher", () => {
|
|
34
|
+
it("dispatches committed turns and acknowledges them only after delivery", async () => {
|
|
35
|
+
const calls = [];
|
|
36
|
+
const sessionStore = store({
|
|
37
|
+
listPendingCanonicalTurns: vi.fn(async () => [entry("turn-1"), entry("turn-2")]),
|
|
38
|
+
markCanonicalTurnDispatched: vi.fn(async (turnId) => {
|
|
39
|
+
calls.push(`ack:${turnId}`);
|
|
40
|
+
return true;
|
|
41
|
+
}),
|
|
42
|
+
});
|
|
43
|
+
const dispatcher = new CanonicalTurnOutboxDispatcher({
|
|
44
|
+
sessionStore,
|
|
45
|
+
handler: {
|
|
46
|
+
dispatch: vi.fn(async (value) => {
|
|
47
|
+
calls.push(`dispatch:${value.turnId}`);
|
|
48
|
+
}),
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
await expect(dispatcher.dispatchPending(2)).resolves.toEqual({
|
|
52
|
+
scanned: 2,
|
|
53
|
+
dispatched: 2,
|
|
54
|
+
failed: 0,
|
|
55
|
+
superseded: 0,
|
|
56
|
+
});
|
|
57
|
+
expect(calls).toEqual([
|
|
58
|
+
"dispatch:turn-1",
|
|
59
|
+
"ack:turn-1",
|
|
60
|
+
"dispatch:turn-2",
|
|
61
|
+
"ack:turn-2",
|
|
62
|
+
]);
|
|
63
|
+
});
|
|
64
|
+
it("keeps a failed delivery pending and increments its durable attempt count", async () => {
|
|
65
|
+
const recordFailure = vi.fn(async () => true);
|
|
66
|
+
const acknowledge = vi.fn(async () => true);
|
|
67
|
+
const sessionStore = store({
|
|
68
|
+
listPendingCanonicalTurns: vi.fn(async () => [entry("turn-1")]),
|
|
69
|
+
markCanonicalTurnDispatched: acknowledge,
|
|
70
|
+
recordCanonicalTurnDispatchFailure: recordFailure,
|
|
71
|
+
});
|
|
72
|
+
const dispatcher = new CanonicalTurnOutboxDispatcher({
|
|
73
|
+
sessionStore,
|
|
74
|
+
handler: { dispatch: vi.fn(async () => { throw new Error("queue unavailable"); }) },
|
|
75
|
+
});
|
|
76
|
+
await expect(dispatcher.dispatchPending()).resolves.toEqual({
|
|
77
|
+
scanned: 1,
|
|
78
|
+
dispatched: 0,
|
|
79
|
+
failed: 1,
|
|
80
|
+
superseded: 0,
|
|
81
|
+
});
|
|
82
|
+
expect(recordFailure).toHaveBeenCalledWith("turn-1");
|
|
83
|
+
expect(acknowledge).not.toHaveBeenCalled();
|
|
84
|
+
});
|
|
85
|
+
it("treats an already acknowledged row as a concurrent supersession", async () => {
|
|
86
|
+
const sessionStore = store({
|
|
87
|
+
listPendingCanonicalTurns: vi.fn(async () => [entry("turn-1")]),
|
|
88
|
+
markCanonicalTurnDispatched: vi.fn(async () => false),
|
|
89
|
+
});
|
|
90
|
+
const dispatcher = new CanonicalTurnOutboxDispatcher({
|
|
91
|
+
sessionStore,
|
|
92
|
+
handler: { dispatch: vi.fn(async () => { }) },
|
|
93
|
+
});
|
|
94
|
+
await expect(dispatcher.dispatchPending()).resolves.toEqual({
|
|
95
|
+
scanned: 1,
|
|
96
|
+
dispatched: 0,
|
|
97
|
+
failed: 0,
|
|
98
|
+
superseded: 1,
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
it("fails closed when the store cannot provide a durable outbox", async () => {
|
|
102
|
+
const dispatcher = new CanonicalTurnOutboxDispatcher({
|
|
103
|
+
sessionStore: store({ listPendingCanonicalTurns: undefined }),
|
|
104
|
+
handler: { dispatch: vi.fn(async () => { }) },
|
|
105
|
+
});
|
|
106
|
+
await expect(dispatcher.dispatchPending()).rejects.toThrow("requires durable outbox support");
|
|
107
|
+
});
|
|
108
|
+
it.each([0, -1, 1.5, Number.NaN, MAX_CANONICAL_TURN_DISPATCH_LIMIT + 1])("rejects an invalid batch limit (%s)", async (limit) => {
|
|
109
|
+
const sessionStore = store();
|
|
110
|
+
const dispatcher = new CanonicalTurnOutboxDispatcher({
|
|
111
|
+
sessionStore,
|
|
112
|
+
handler: { dispatch: vi.fn(async () => { }) },
|
|
113
|
+
});
|
|
114
|
+
await expect(dispatcher.dispatchPending(limit)).rejects.toThrow("limit must be an integer");
|
|
115
|
+
expect(sessionStore.listPendingCanonicalTurns).not.toHaveBeenCalled();
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=canonical-turn-dispatcher.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn-dispatcher.test.js","sourceRoot":"","sources":["../src/canonical-turn-dispatcher.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { SessionContinuationScope } from "./session-continuation.js";
|
|
2
|
+
export declare const CANONICAL_TURN_SURFACES: readonly ["chat", "channel"];
|
|
3
|
+
export type CanonicalTurnSurface = (typeof CANONICAL_TURN_SURFACES)[number];
|
|
4
|
+
export declare const CANONICAL_TURN_TERMINAL_STATUSES: readonly ["succeeded", "failed", "cancelled", "waiting"];
|
|
5
|
+
export type CanonicalTurnTerminalStatus = (typeof CANONICAL_TURN_TERMINAL_STATUSES)[number];
|
|
6
|
+
export interface CanonicalVisibleMessageRef {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly role: "user" | "assistant";
|
|
9
|
+
}
|
|
10
|
+
export interface CanonicalTurnInvocationIdentity {
|
|
11
|
+
readonly externalUserId?: string;
|
|
12
|
+
readonly channelId?: string;
|
|
13
|
+
readonly scope?: SessionContinuationScope;
|
|
14
|
+
}
|
|
15
|
+
export interface CanonicalTurnLearningPolicy {
|
|
16
|
+
readonly mode: "suggest" | "automatic";
|
|
17
|
+
readonly surfaces: readonly ("chat" | "channel")[];
|
|
18
|
+
readonly kinds: readonly ("fact" | "preference" | "open_thread" | "style" | "failure_pattern" | "successful_episode" | "procedure_hint")[];
|
|
19
|
+
}
|
|
20
|
+
export interface CanonicalTurnCommitted {
|
|
21
|
+
readonly turnId: string;
|
|
22
|
+
readonly requestId?: string;
|
|
23
|
+
readonly runId?: string;
|
|
24
|
+
readonly sessionId: string;
|
|
25
|
+
readonly agentName: string;
|
|
26
|
+
readonly surface: CanonicalTurnSurface;
|
|
27
|
+
readonly terminalStatus: CanonicalTurnTerminalStatus;
|
|
28
|
+
readonly userMessage: CanonicalVisibleMessageRef;
|
|
29
|
+
readonly assistantMessage?: CanonicalVisibleMessageRef;
|
|
30
|
+
readonly trustedInvocation: CanonicalTurnInvocationIdentity;
|
|
31
|
+
/** Immutable learning policy selected when the turn began. */
|
|
32
|
+
readonly learningPolicy?: CanonicalTurnLearningPolicy;
|
|
33
|
+
readonly occurredAt: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function normalizeCanonicalTurnCommitted(value: CanonicalTurnCommitted): CanonicalTurnCommitted;
|
|
36
|
+
//# sourceMappingURL=canonical-turn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn.d.ts","sourceRoot":"","sources":["../src/canonical-turn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,eAAO,MAAM,uBAAuB,8BAA+B,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,eAAO,MAAM,gCAAgC,0DAKnC,CAAC;AACX,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CACrC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,CACrB,MAAM,GACN,YAAY,GACZ,aAAa,GACb,OAAO,GACP,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,CACnB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,cAAc,EAAE,2BAA2B,CAAC;IACrD,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC;IACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,0BAA0B,CAAC;IACvD,QAAQ,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;IAC5D,8DAA8D;IAC9D,QAAQ,CAAC,cAAc,CAAC,EAAE,2BAA2B,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAMD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,sBAAsB,GAC5B,sBAAsB,CAoCxB"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export const CANONICAL_TURN_SURFACES = ["chat", "channel"];
|
|
2
|
+
export const CANONICAL_TURN_TERMINAL_STATUSES = [
|
|
3
|
+
"succeeded",
|
|
4
|
+
"failed",
|
|
5
|
+
"cancelled",
|
|
6
|
+
"waiting",
|
|
7
|
+
];
|
|
8
|
+
const surfaces = new Set(CANONICAL_TURN_SURFACES);
|
|
9
|
+
const statuses = new Set(CANONICAL_TURN_TERMINAL_STATUSES);
|
|
10
|
+
const MAX_REFERENCE_LENGTH = 512;
|
|
11
|
+
export function normalizeCanonicalTurnCommitted(value) {
|
|
12
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
13
|
+
throw new TypeError("canonical turn must be an object");
|
|
14
|
+
}
|
|
15
|
+
const surface = requiredEnum(value.surface, surfaces, "surface");
|
|
16
|
+
const terminalStatus = requiredEnum(value.terminalStatus, statuses, "terminalStatus");
|
|
17
|
+
const occurredAt = timestamp(value.occurredAt, "occurredAt");
|
|
18
|
+
const userMessage = messageRef(value.userMessage, "user", "userMessage");
|
|
19
|
+
const assistantMessage = value.assistantMessage === undefined
|
|
20
|
+
? undefined
|
|
21
|
+
: messageRef(value.assistantMessage, "assistant", "assistantMessage");
|
|
22
|
+
if (terminalStatus === "succeeded" && !assistantMessage) {
|
|
23
|
+
throw new TypeError("succeeded canonical turns require an assistant message");
|
|
24
|
+
}
|
|
25
|
+
const trustedInvocation = invocationIdentity(value.trustedInvocation);
|
|
26
|
+
const learningPolicy = value.learningPolicy === undefined
|
|
27
|
+
? undefined
|
|
28
|
+
: normalizeLearningPolicy(value.learningPolicy);
|
|
29
|
+
return Object.freeze({
|
|
30
|
+
turnId: requiredText(value.turnId, "turnId"),
|
|
31
|
+
...(value.requestId ? { requestId: requiredText(value.requestId, "requestId") } : {}),
|
|
32
|
+
...(value.runId ? { runId: requiredText(value.runId, "runId") } : {}),
|
|
33
|
+
sessionId: requiredText(value.sessionId, "sessionId"),
|
|
34
|
+
agentName: requiredText(value.agentName, "agentName"),
|
|
35
|
+
surface: surface,
|
|
36
|
+
terminalStatus: terminalStatus,
|
|
37
|
+
userMessage,
|
|
38
|
+
...(assistantMessage ? { assistantMessage } : {}),
|
|
39
|
+
trustedInvocation,
|
|
40
|
+
...(learningPolicy ? { learningPolicy } : {}),
|
|
41
|
+
occurredAt,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function normalizeLearningPolicy(value) {
|
|
45
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
46
|
+
throw new TypeError("learningPolicy must be an object");
|
|
47
|
+
}
|
|
48
|
+
if (value.mode !== "suggest" && value.mode !== "automatic") {
|
|
49
|
+
throw new TypeError("learningPolicy.mode is invalid");
|
|
50
|
+
}
|
|
51
|
+
const allowedSurfaces = new Set(["chat", "channel"]);
|
|
52
|
+
const allowedKinds = new Set([
|
|
53
|
+
"fact",
|
|
54
|
+
"preference",
|
|
55
|
+
"open_thread",
|
|
56
|
+
"style",
|
|
57
|
+
"failure_pattern",
|
|
58
|
+
"successful_episode",
|
|
59
|
+
"procedure_hint",
|
|
60
|
+
]);
|
|
61
|
+
const learningSurfaces = normalizedArray(value.surfaces, allowedSurfaces, "learningPolicy.surfaces");
|
|
62
|
+
const kinds = normalizedArray(value.kinds, allowedKinds, "learningPolicy.kinds");
|
|
63
|
+
return Object.freeze({
|
|
64
|
+
mode: value.mode,
|
|
65
|
+
surfaces: Object.freeze(learningSurfaces),
|
|
66
|
+
kinds: Object.freeze(kinds),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function normalizedArray(value, allowed, path) {
|
|
70
|
+
if (!Array.isArray(value) || value.length === 0)
|
|
71
|
+
throw new TypeError(`${path} is invalid`);
|
|
72
|
+
const normalized = [...new Set(value)];
|
|
73
|
+
if (normalized.some((entry) => typeof entry !== "string" || !allowed.has(entry))) {
|
|
74
|
+
throw new TypeError(`${path} is invalid`);
|
|
75
|
+
}
|
|
76
|
+
return normalized;
|
|
77
|
+
}
|
|
78
|
+
function messageRef(value, expectedRole, path) {
|
|
79
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
80
|
+
throw new TypeError(`${path} must be an object`);
|
|
81
|
+
}
|
|
82
|
+
if (value.role !== expectedRole) {
|
|
83
|
+
throw new TypeError(`${path}.role must be ${expectedRole}`);
|
|
84
|
+
}
|
|
85
|
+
return Object.freeze({ id: requiredText(value.id, `${path}.id`), role: expectedRole });
|
|
86
|
+
}
|
|
87
|
+
function invocationIdentity(value) {
|
|
88
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
89
|
+
throw new TypeError("trustedInvocation must be an object");
|
|
90
|
+
}
|
|
91
|
+
const scope = value.scope === undefined
|
|
92
|
+
? undefined
|
|
93
|
+
: Object.freeze({
|
|
94
|
+
key: requiredText(value.scope.key, "trustedInvocation.scope.key"),
|
|
95
|
+
...(value.scope.version
|
|
96
|
+
? { version: requiredText(value.scope.version, "trustedInvocation.scope.version") }
|
|
97
|
+
: {}),
|
|
98
|
+
});
|
|
99
|
+
return Object.freeze({
|
|
100
|
+
...(value.externalUserId
|
|
101
|
+
? { externalUserId: requiredText(value.externalUserId, "trustedInvocation.externalUserId") }
|
|
102
|
+
: {}),
|
|
103
|
+
...(value.channelId
|
|
104
|
+
? { channelId: requiredText(value.channelId, "trustedInvocation.channelId") }
|
|
105
|
+
: {}),
|
|
106
|
+
...(scope ? { scope } : {}),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
function requiredText(value, path) {
|
|
110
|
+
if (typeof value !== "string")
|
|
111
|
+
throw new TypeError(`${path} must be a string`);
|
|
112
|
+
const normalized = value.trim();
|
|
113
|
+
if (normalized.length === 0 || normalized.length > MAX_REFERENCE_LENGTH) {
|
|
114
|
+
throw new TypeError(`${path} must contain between 1 and ${MAX_REFERENCE_LENGTH} characters`);
|
|
115
|
+
}
|
|
116
|
+
return normalized;
|
|
117
|
+
}
|
|
118
|
+
function requiredEnum(value, allowed, path) {
|
|
119
|
+
if (typeof value !== "string" || !allowed.has(value)) {
|
|
120
|
+
throw new TypeError(`${path} is invalid`);
|
|
121
|
+
}
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
function timestamp(value, path) {
|
|
125
|
+
if (typeof value !== "string")
|
|
126
|
+
throw new TypeError(`${path} must be a timestamp`);
|
|
127
|
+
const date = new Date(value);
|
|
128
|
+
if (!Number.isFinite(date.getTime()))
|
|
129
|
+
throw new TypeError(`${path} must be a timestamp`);
|
|
130
|
+
return date.toISOString();
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=canonical-turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn.js","sourceRoot":"","sources":["../src/canonical-turn.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,SAAS,CAAU,CAAC;AAGpE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,WAAW;IACX,QAAQ;IACR,WAAW;IACX,SAAS;CACD,CAAC;AA6CX,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,uBAAuB,CAAC,CAAC;AAC1D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,gCAAgC,CAAC,CAAC;AACnE,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,MAAM,UAAU,+BAA+B,CAC7C,KAA6B;IAE7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,YAAY,CACjC,KAAK,CAAC,cAAc,EACpB,QAAQ,EACR,gBAAgB,CACjB,CAAC;IACF,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,KAAK,SAAS;QAC3D,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACxE,IAAI,cAAc,KAAK,WAAW,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACtE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,KAAK,SAAS;QACvD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC5C,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;QACrD,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;QACrD,OAAO,EAAE,OAA+B;QACxC,cAAc,EAAE,cAA6C;QAC7D,WAAW;QACX,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,iBAAiB;QACjB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAkC;IACjE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B,MAAM;QACN,YAAY;QACZ,aAAa;QACb,OAAO;QACP,iBAAiB;QACjB,oBAAoB;QACpB,gBAAgB;KACjB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;IACrG,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAA4C;QACpF,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAyC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACtB,KAAwB,EACxB,OAA4B,EAC5B,IAAY;IAEZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;IAC3F,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,UAAU,CACjB,KAAiC,EACjC,YAAgD,EAChD,IAAY;IAEZ,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,iBAAiB,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAsC;IAEtC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS;QACrC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,6BAA6B,CAAC;YACjE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;gBACrB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,iCAAiC,CAAC,EAAE;gBACnF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACP,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,CAAC,KAAK,CAAC,cAAc;YACtB,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,kCAAkC,CAAC,EAAE;YAC5F,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,SAAS;YACjB,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,6BAA6B,CAAC,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;QACxE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,+BAA+B,oBAAoB,aAAa,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CACnB,KAAc,EACd,OAA4B,EAC5B,IAAY;IAEZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,IAAY;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sBAAsB,CAAC,CAAC;IACzF,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn.test.d.ts","sourceRoot":"","sources":["../src/canonical-turn.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { normalizeCanonicalTurnCommitted, } from "./canonical-turn.js";
|
|
3
|
+
function turn(overrides = {}) {
|
|
4
|
+
return {
|
|
5
|
+
turnId: "turn-1",
|
|
6
|
+
requestId: "request-1",
|
|
7
|
+
runId: "run-1",
|
|
8
|
+
sessionId: "session-1",
|
|
9
|
+
agentName: "assistant",
|
|
10
|
+
surface: "chat",
|
|
11
|
+
terminalStatus: "succeeded",
|
|
12
|
+
userMessage: { id: "user-message", role: "user" },
|
|
13
|
+
assistantMessage: { id: "assistant-message", role: "assistant" },
|
|
14
|
+
trustedInvocation: {
|
|
15
|
+
externalUserId: "external-user",
|
|
16
|
+
scope: { key: "site-1", version: "2" },
|
|
17
|
+
},
|
|
18
|
+
learningPolicy: {
|
|
19
|
+
mode: "suggest",
|
|
20
|
+
surfaces: ["chat", "channel"],
|
|
21
|
+
kinds: ["fact", "preference"],
|
|
22
|
+
},
|
|
23
|
+
occurredAt: "2026-08-30T00:00:00.000Z",
|
|
24
|
+
...overrides,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
describe("canonical turn contract", () => {
|
|
28
|
+
it("normalizes and freezes identifier-only successful turn metadata", () => {
|
|
29
|
+
const normalized = normalizeCanonicalTurnCommitted(turn({
|
|
30
|
+
turnId: " turn-1 ",
|
|
31
|
+
occurredAt: "2026-08-30T02:00:00+02:00",
|
|
32
|
+
}));
|
|
33
|
+
expect(normalized.turnId).toBe("turn-1");
|
|
34
|
+
expect(normalized.occurredAt).toBe("2026-08-30T00:00:00.000Z");
|
|
35
|
+
expect(normalized).not.toHaveProperty("content");
|
|
36
|
+
expect(Object.isFrozen(normalized)).toBe(true);
|
|
37
|
+
expect(Object.isFrozen(normalized.trustedInvocation)).toBe(true);
|
|
38
|
+
expect(Object.isFrozen(normalized.learningPolicy?.kinds)).toBe(true);
|
|
39
|
+
});
|
|
40
|
+
it("allows waiting and failed turns without an assistant message", () => {
|
|
41
|
+
expect(normalizeCanonicalTurnCommitted(turn({
|
|
42
|
+
terminalStatus: "waiting",
|
|
43
|
+
assistantMessage: undefined,
|
|
44
|
+
})).assistantMessage).toBeUndefined();
|
|
45
|
+
expect(normalizeCanonicalTurnCommitted(turn({
|
|
46
|
+
terminalStatus: "failed",
|
|
47
|
+
assistantMessage: undefined,
|
|
48
|
+
})).assistantMessage).toBeUndefined();
|
|
49
|
+
});
|
|
50
|
+
it.each([
|
|
51
|
+
{ surface: "task" },
|
|
52
|
+
{ terminalStatus: "done" },
|
|
53
|
+
{ terminalStatus: "succeeded", assistantMessage: undefined },
|
|
54
|
+
{ userMessage: { id: "user-message", role: "assistant" } },
|
|
55
|
+
{ trustedInvocation: { scope: { key: " " } } },
|
|
56
|
+
{ occurredAt: "not-a-date" },
|
|
57
|
+
{ learningPolicy: { mode: "off", surfaces: ["chat"], kinds: ["fact"] } },
|
|
58
|
+
{ learningPolicy: { mode: "suggest", surfaces: [], kinds: ["fact"] } },
|
|
59
|
+
{ learningPolicy: { mode: "suggest", surfaces: ["chat"], kinds: ["unknown"] } },
|
|
60
|
+
])("rejects malformed or unsupported turn metadata %#", (override) => {
|
|
61
|
+
expect(() => normalizeCanonicalTurnCommitted(turn(override))).toThrow();
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=canonical-turn.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-turn.test.js","sourceRoot":"","sources":["../src/canonical-turn.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,12 +14,15 @@ export { DEFAULT_MODEL_ROUTE_MAX_INPUT_CHARS, DEFAULT_MODEL_ROUTE_MIN_CONFIDENCE
|
|
|
14
14
|
export type { AgentModelRoutingConfig, ModelRouteClassifier, ModelRouteClassifierInput, ModelRouteClassifierOptions, ModelRouteDecision, ModelRouteRuntimePlanFields, ModelRouterConfig, ModelRouterMode, ModelRouterRule, ModelRouterRuleConditions, ModelRouteStatus, ResolvedModelRoute, ResolveModelRouteInput, ResolveModelRouteOptions, } from "./model-router.js";
|
|
15
15
|
export * from "./runtime-plan/index.js";
|
|
16
16
|
export * from "./runtime-context/index.js";
|
|
17
|
+
export * from "./semantic-retrieval.js";
|
|
17
18
|
export * from "./execution-router.js";
|
|
18
19
|
export * from "./steering.js";
|
|
19
20
|
export * from "./run-delivery.js";
|
|
20
21
|
export * from "./run-delivery-follower.js";
|
|
21
22
|
export * from "./run-delivery-owner.js";
|
|
22
23
|
export * from "./chat-interactions.js";
|
|
24
|
+
export * from "./canonical-turn.js";
|
|
25
|
+
export * from "./canonical-turn-dispatcher.js";
|
|
23
26
|
export * from "./guardrails/index.js";
|
|
24
27
|
export * from "./runtime-inspection/index.js";
|
|
25
28
|
export * from "./scheduling/index.js";
|
|
@@ -42,7 +45,7 @@ export type { SearchProvider, SearchResult, SearchOptions } from "./search-provi
|
|
|
42
45
|
export { parseModelString, DEFAULT_IMAGE_MODEL, DEFAULT_VIDEO_MODEL, DEFAULT_VISION_MODEL, DEFAULT_TRANSCRIBE_MODEL, DEFAULT_TTS_MODEL, DEFAULT_SEARCH_PROVIDER, AUDIO_MODEL_CATALOG, listAudioModels, getAudioModel, } from "./agent-models.js";
|
|
43
46
|
export type { ParsedModel, AudioModelCapability, AudioModelRouting, AudioModelDefinition, } from "./agent-models.js";
|
|
44
47
|
export type { LogStore, LogEntry, SessionInfo } from "./log-store.js";
|
|
45
|
-
export type { SessionStore, Session, Message, MessageRole, ToolCallInfo, ToolCallState, SessionContentPart, SessionMessageOptions } from "./session-store.js";
|
|
48
|
+
export type { SessionStore, Session, Message, MessageRole, ToolCallInfo, ToolCallState, SessionContentPart, SessionMessageOptions, CanonicalTurnOutboxEntry } from "./session-store.js";
|
|
46
49
|
export { SessionContinuationError, projectResolvedClientToolCalls, resolvePendingClientToolCall, } from "./session-continuation.js";
|
|
47
50
|
export type { PreparedSessionContinuation, PrepareSessionContinuationInput, SessionContinuationErrorCode, SessionContinuationScope, } from "./session-continuation.js";
|
|
48
51
|
export type { ApprovalStore } from "./approval-store.js";
|