@fabric-harness/sdk 1.13.0 → 2.0.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/dist/action.d.ts +69 -0
- package/dist/action.d.ts.map +1 -0
- package/dist/action.js +119 -0
- package/dist/action.js.map +1 -0
- package/dist/agent-definition.d.ts +6 -0
- package/dist/agent-definition.d.ts.map +1 -1
- package/dist/agent-definition.js.map +1 -1
- package/dist/agent.d.ts +2 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +35 -1
- package/dist/agent.js.map +1 -1
- package/dist/attachment-store-contract.d.ts +34 -0
- package/dist/attachment-store-contract.d.ts.map +1 -0
- package/dist/attachment-store-contract.js +0 -0
- package/dist/attachment-store-contract.js.map +1 -0
- package/dist/attachment-store.d.ts +107 -0
- package/dist/attachment-store.d.ts.map +1 -0
- package/dist/attachment-store.js +164 -0
- package/dist/attachment-store.js.map +1 -0
- package/dist/channel.d.ts +84 -0
- package/dist/channel.d.ts.map +1 -0
- package/dist/channel.js +115 -0
- package/dist/channel.js.map +1 -0
- package/dist/context-budget.d.ts +16 -0
- package/dist/context-budget.d.ts.map +1 -1
- package/dist/context-budget.js +38 -3
- package/dist/context-budget.js.map +1 -1
- package/dist/conversation-projection.d.ts +52 -0
- package/dist/conversation-projection.d.ts.map +1 -0
- package/dist/conversation-projection.js +207 -0
- package/dist/conversation-projection.js.map +1 -0
- package/dist/conversation-stream-contract.d.ts +37 -0
- package/dist/conversation-stream-contract.d.ts.map +1 -0
- package/dist/conversation-stream-contract.js +453 -0
- package/dist/conversation-stream-contract.js.map +1 -0
- package/dist/conversation-stream.d.ts +141 -0
- package/dist/conversation-stream.d.ts.map +1 -0
- package/dist/conversation-stream.js +159 -0
- package/dist/conversation-stream.js.map +1 -0
- package/dist/cost-budget.d.ts +106 -1
- package/dist/cost-budget.d.ts.map +1 -1
- package/dist/cost-budget.js +48 -2
- package/dist/cost-budget.js.map +1 -1
- package/dist/delivered-message.d.ts +90 -0
- package/dist/delivered-message.d.ts.map +1 -0
- package/dist/delivered-message.js +154 -0
- package/dist/delivered-message.js.map +1 -0
- package/dist/dispatch.d.ts +108 -0
- package/dist/dispatch.d.ts.map +1 -0
- package/dist/dispatch.js +179 -0
- package/dist/dispatch.js.map +1 -0
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js.map +1 -1
- package/dist/history.d.ts +49 -2
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +163 -0
- package/dist/history.js.map +1 -1
- package/dist/in-memory-submission-store.d.ts +53 -0
- package/dist/in-memory-submission-store.d.ts.map +1 -0
- package/dist/in-memory-submission-store.js +340 -0
- package/dist/in-memory-submission-store.js.map +1 -0
- package/dist/index.d.ts +51 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -7
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts +29 -3
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +167 -24
- package/dist/loop.js.map +1 -1
- package/dist/model.d.ts +37 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +250 -79
- package/dist/model.js.map +1 -1
- package/dist/otel-observer.d.ts +44 -0
- package/dist/otel-observer.d.ts.map +1 -0
- package/dist/otel-observer.js +165 -0
- package/dist/otel-observer.js.map +1 -0
- package/dist/persistence.d.ts +70 -0
- package/dist/persistence.d.ts.map +1 -0
- package/dist/persistence.js +17 -0
- package/dist/persistence.js.map +1 -0
- package/dist/persistent-agent.d.ts +86 -0
- package/dist/persistent-agent.d.ts.map +1 -0
- package/dist/persistent-agent.js +75 -0
- package/dist/persistent-agent.js.map +1 -0
- package/dist/pi-loop-runtime.d.ts.map +1 -1
- package/dist/pi-loop-runtime.js +7 -1
- package/dist/pi-loop-runtime.js.map +1 -1
- package/dist/profile.d.ts +33 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +10 -0
- package/dist/profile.js.map +1 -0
- package/dist/providers.d.ts +14 -0
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +18 -1
- package/dist/providers.js.map +1 -1
- package/dist/result.d.ts +12 -0
- package/dist/result.d.ts.map +1 -1
- package/dist/result.js +26 -0
- package/dist/result.js.map +1 -1
- package/dist/retrieval.d.ts +61 -0
- package/dist/retrieval.d.ts.map +1 -0
- package/dist/retrieval.js +26 -0
- package/dist/retrieval.js.map +1 -0
- package/dist/runtime-mode.d.ts +1 -1
- package/dist/runtime-mode.d.ts.map +1 -1
- package/dist/runtime-mode.js +2 -1
- package/dist/runtime-mode.js.map +1 -1
- package/dist/scope-key.d.ts +25 -0
- package/dist/scope-key.d.ts.map +1 -0
- package/dist/scope-key.js +34 -0
- package/dist/scope-key.js.map +1 -0
- package/dist/session.d.ts +47 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +364 -35
- package/dist/session.js.map +1 -1
- package/dist/skills.d.ts +33 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +65 -0
- package/dist/skills.js.map +1 -0
- package/dist/store.d.ts +36 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +83 -0
- package/dist/store.js.map +1 -1
- package/dist/stream-chunks.d.ts +42 -0
- package/dist/stream-chunks.d.ts.map +1 -0
- package/dist/stream-chunks.js +138 -0
- package/dist/stream-chunks.js.map +1 -0
- package/dist/strict.d.ts +40 -11
- package/dist/strict.d.ts.map +1 -1
- package/dist/strict.js +22 -7
- package/dist/strict.js.map +1 -1
- package/dist/submission-context.d.ts +26 -0
- package/dist/submission-context.d.ts.map +1 -0
- package/dist/submission-context.js +20 -0
- package/dist/submission-context.js.map +1 -0
- package/dist/submission-runner.d.ts +150 -0
- package/dist/submission-runner.d.ts.map +1 -0
- package/dist/submission-runner.js +767 -0
- package/dist/submission-runner.js.map +1 -0
- package/dist/submission-state.d.ts +50 -0
- package/dist/submission-state.d.ts.map +1 -0
- package/dist/submission-state.js +82 -0
- package/dist/submission-state.js.map +1 -0
- package/dist/submission-store-contract.d.ts +31 -0
- package/dist/submission-store-contract.d.ts.map +1 -0
- package/dist/submission-store-contract.js +730 -0
- package/dist/submission-store-contract.js.map +1 -0
- package/dist/submission-store.d.ts +365 -0
- package/dist/submission-store.d.ts.map +1 -0
- package/dist/submission-store.js +191 -0
- package/dist/submission-store.js.map +1 -0
- package/dist/submission-telemetry.d.ts +56 -0
- package/dist/submission-telemetry.d.ts.map +1 -0
- package/dist/submission-telemetry.js +36 -0
- package/dist/submission-telemetry.js.map +1 -0
- package/dist/testing-contracts.d.ts +17 -0
- package/dist/testing-contracts.d.ts.map +1 -0
- package/dist/testing-contracts.js +14 -0
- package/dist/testing-contracts.js.map +1 -0
- package/dist/tools.d.ts +32 -4
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +132 -6
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +132 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +16 -8
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exposes a {@link Retriever} to the model as a `search` tool. The tool is read-only; wrap it with a
|
|
3
|
+
* governance decorator to stamp lineage or route approvals.
|
|
4
|
+
*/
|
|
5
|
+
export function createSearchTool(retriever, options = {}) {
|
|
6
|
+
const defaultK = options.defaultK ?? 5;
|
|
7
|
+
return {
|
|
8
|
+
name: options.name ?? 'search',
|
|
9
|
+
description: options.description ?? 'Search the knowledge base for chunks relevant to a query.',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
type: 'object',
|
|
12
|
+
additionalProperties: false,
|
|
13
|
+
properties: {
|
|
14
|
+
query: { type: 'string', minLength: 1 },
|
|
15
|
+
k: { type: 'number', minimum: 1 },
|
|
16
|
+
},
|
|
17
|
+
required: ['query'],
|
|
18
|
+
},
|
|
19
|
+
metadata: { effect: 'read', ...(options.metadata ?? {}) },
|
|
20
|
+
async execute(input) {
|
|
21
|
+
const results = await retriever.retrieve(input.query, { k: input.k ?? defaultK });
|
|
22
|
+
return { results };
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=retrieval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieval.js","sourceRoot":"","sources":["../src/retrieval.ts"],"names":[],"mappings":"AA6DA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAoB,EAAE,UAA6B,EAAE;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,2DAA2D;QAC/F,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;gBACvC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;aAClC;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;QACzD,KAAK,CAAC,OAAO,CAAC,KAAK;YACjB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;YAClF,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/runtime-mode.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export interface RuntimeModeResolution {
|
|
|
20
20
|
* `'stateless'`.
|
|
21
21
|
* - Unknown runtime values fall through to `'inline'` with a warning.
|
|
22
22
|
*/
|
|
23
|
-
export declare function resolveRuntimeMode(options: Pick<AgentInit, 'runtime' | 'store'>, env?: Record<string, string | undefined>): RuntimeModeResolution;
|
|
23
|
+
export declare function resolveRuntimeMode(options: Pick<AgentInit, 'runtime' | 'store' | 'persistence'>, env?: Record<string, string | undefined>): RuntimeModeResolution;
|
|
24
24
|
export declare function isStatelessRuntime(runtime: FabricRuntime | undefined): boolean;
|
|
25
25
|
/**
|
|
26
26
|
* Returns true when `store` is the in-memory default (no `appendEntry`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-mode.d.ts","sourceRoot":"","sources":["../src/runtime-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"runtime-mode.d.ts","sourceRoot":"","sources":["../src/runtime-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC,EAC7D,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,qBAAqB,CAuBvB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,OAAO,CAGxE"}
|
package/dist/runtime-mode.js
CHANGED
|
@@ -20,7 +20,8 @@ export function resolveRuntimeMode(options, env = process.env) {
|
|
|
20
20
|
warnings.push(`Unknown runtime "${String(runtime)}"; defaulting to "inline".`);
|
|
21
21
|
runtime = 'inline';
|
|
22
22
|
}
|
|
23
|
-
const
|
|
23
|
+
const hasStore = options.store !== undefined || options.persistence !== undefined;
|
|
24
|
+
const ephemeral = runtime === 'stateless' || (runtime === 'inline' && !hasStore);
|
|
24
25
|
if (production && ephemeral && runtime === 'inline' && !allowEphemeral) {
|
|
25
26
|
warnings.push('Inline runtime in production without an explicit SessionStore — session history is in-memory only and will not survive restarts. ' +
|
|
26
27
|
'Configure a SessionStore (SQLite/Postgres/file), set runtime: "stateless" to opt in explicitly, or set FABRIC_ALLOW_EPHEMERAL_STATE=1.');
|
package/dist/runtime-mode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-mode.js","sourceRoot":"","sources":["../src/runtime-mode.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,
|
|
1
|
+
{"version":3,"file":"runtime-mode.js","sourceRoot":"","sources":["../src/runtime-mode.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA6D,EAC7D,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,KAAK,YAAY,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IACpF,MAAM,cAAc,GAAG,GAAG,CAAC,4BAA4B,KAAK,GAAG,IAAI,GAAG,CAAC,4BAA4B,KAAK,MAAM,CAAC;IAE/G,IAAI,OAAO,GAAkB,SAAS,IAAI,QAAQ,CAAC;IACnD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC9E,QAAQ,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC/E,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC;IAClF,MAAM,SAAS,GAAG,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEjF,IAAI,UAAU,IAAI,SAAS,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;QACvE,QAAQ,CAAC,IAAI,CACX,mIAAmI;YACjI,wIAAwI,CAC3I,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAkC;IACnE,OAAO,OAAO,KAAK,WAAW,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAA+B;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAQ,KAAkC,CAAC,UAAU,KAAK,IAAI,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface ParsedScopeKey {
|
|
2
|
+
kind: 'tenant' | 'agent' | 'user' | 'custom';
|
|
3
|
+
id?: string;
|
|
4
|
+
period?: string;
|
|
5
|
+
raw: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Parse a scope key into its structured components.
|
|
9
|
+
*
|
|
10
|
+
* Recognized patterns:
|
|
11
|
+
* tenant:<id>:day:YYYY-MM-DD
|
|
12
|
+
* tenant:<id>:hour:YYYY-MM-DDTHH:00Z
|
|
13
|
+
* tenant:<id>:month:YYYY-MM
|
|
14
|
+
* agent:<id>:day:YYYY-MM-DD
|
|
15
|
+
* agent:<id>:hour:YYYY-MM-DDTHH:00Z
|
|
16
|
+
* agent:<id>:month:YYYY-MM
|
|
17
|
+
* user:<id>:day:YYYY-MM-DD
|
|
18
|
+
* user:<id>:hour:YYYY-MM-DDTHH:00Z
|
|
19
|
+
* user:<id>:month:YYYY-MM
|
|
20
|
+
*
|
|
21
|
+
* Unknown prefixes fall back to `kind: 'custom'` with `raw: scopeKey`.
|
|
22
|
+
* Returns `undefined` for empty strings.
|
|
23
|
+
*/
|
|
24
|
+
export declare function parseScopeKey(scopeKey: string): ParsedScopeKey | undefined;
|
|
25
|
+
//# sourceMappingURL=scope-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-key.d.ts","sourceRoot":"","sources":["../src/scope-key.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAiB1E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a scope key into its structured components.
|
|
3
|
+
*
|
|
4
|
+
* Recognized patterns:
|
|
5
|
+
* tenant:<id>:day:YYYY-MM-DD
|
|
6
|
+
* tenant:<id>:hour:YYYY-MM-DDTHH:00Z
|
|
7
|
+
* tenant:<id>:month:YYYY-MM
|
|
8
|
+
* agent:<id>:day:YYYY-MM-DD
|
|
9
|
+
* agent:<id>:hour:YYYY-MM-DDTHH:00Z
|
|
10
|
+
* agent:<id>:month:YYYY-MM
|
|
11
|
+
* user:<id>:day:YYYY-MM-DD
|
|
12
|
+
* user:<id>:hour:YYYY-MM-DDTHH:00Z
|
|
13
|
+
* user:<id>:month:YYYY-MM
|
|
14
|
+
*
|
|
15
|
+
* Unknown prefixes fall back to `kind: 'custom'` with `raw: scopeKey`.
|
|
16
|
+
* Returns `undefined` for empty strings.
|
|
17
|
+
*/
|
|
18
|
+
export function parseScopeKey(scopeKey) {
|
|
19
|
+
if (!scopeKey || scopeKey.trim().length === 0)
|
|
20
|
+
return undefined;
|
|
21
|
+
const parts = scopeKey.split(':');
|
|
22
|
+
const kind = parts[0];
|
|
23
|
+
if (kind === 'tenant' || kind === 'agent' || kind === 'user') {
|
|
24
|
+
// Expected: <kind>:<id>:<period>:<value>
|
|
25
|
+
// period is everything from parts[2] onward (e.g. "day:2026-06-23")
|
|
26
|
+
if (parts.length >= 4) {
|
|
27
|
+
const id = parts[1];
|
|
28
|
+
const period = parts.slice(2).join(':');
|
|
29
|
+
return { kind, ...(id ? { id } : {}), period, raw: scopeKey };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return { kind: 'custom', raw: scopeKey };
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=scope-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-key.js","sourceRoot":"","sources":["../src/scope-key.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAEhE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAA2B,CAAC;IAEhD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7D,yCAAyC;QACzC,oEAAoE;QACpE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QAChE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC3C,CAAC"}
|
package/dist/session.d.ts
CHANGED
|
@@ -2,7 +2,15 @@ import type { SandboxEnv } from './sandbox.js';
|
|
|
2
2
|
import type { FabricFs } from './filesystem.js';
|
|
3
3
|
import type { SandboxRef, SerializedSandboxRef } from './sandbox-ref.js';
|
|
4
4
|
import type { FilesystemSource } from './filesystem-source.js';
|
|
5
|
-
import type { ApprovalCallback, ArtifactCreateOptions, ArtifactRef, CheckpointCreateOptions, CheckpointRestoreOptions, CheckpointResult, CompactionOptions, CompactionResult, FabricAgent, FabricEvent, PromptOptions, SessionData, SessionOptions, ShellOptions, ShellResult, SkillOptions, TaskOptions } from './types.js';
|
|
5
|
+
import type { ApprovalCallback, ArtifactCreateOptions, ArtifactRef, CheckpointCreateOptions, CheckpointRestoreOptions, CheckpointResult, CompactionOptions, CompactionResult, FabricAgent, FabricEvent, PromptOptions, SessionData, SessionEntry, SessionOptions, ShellOptions, ShellResult, SignalEntryData, SkillOptions, TaskOptions } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Generate a deterministic `aff_\u003cULID\u003e` affinity key from an
|
|
8
|
+
* `(agentId, sessionId)` pair. The same pair always produces the same key,
|
|
9
|
+
* which is stable across restarts. Different pairs produce different keys
|
|
10
|
+
* with overwhelming probability.
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateAffinityKey(agentId: string, sessionId: string): string;
|
|
13
|
+
export declare function isValidAffinityKey(key: string): boolean;
|
|
6
14
|
export interface FabricSession {
|
|
7
15
|
readonly id: string;
|
|
8
16
|
readonly agent: FabricAgent;
|
|
@@ -42,6 +50,11 @@ export interface FabricSession {
|
|
|
42
50
|
list(filter?: import('./session-memory.js').SessionMemoryFilter): Promise<import('./session-memory.js').SessionMemoryEntry[]>;
|
|
43
51
|
};
|
|
44
52
|
history(): Promise<SessionData>;
|
|
53
|
+
/**
|
|
54
|
+
* Append a typed signal entry to the session history. Signals are rendered
|
|
55
|
+
* as XML tags in model context so the model sees them as structured context.
|
|
56
|
+
*/
|
|
57
|
+
createSignalEntry(data: SignalEntryData): Promise<SessionEntry>;
|
|
45
58
|
checkpoint: {
|
|
46
59
|
create(options: CheckpointCreateOptions | string): Promise<CheckpointResult>;
|
|
47
60
|
restore(options: CheckpointRestoreOptions | string): Promise<CheckpointResult>;
|
|
@@ -106,6 +119,13 @@ export interface MountResult {
|
|
|
106
119
|
/** Effective mode (defaults to 'read'). */
|
|
107
120
|
mode: 'read' | 'write';
|
|
108
121
|
}
|
|
122
|
+
interface CompactionPreparation {
|
|
123
|
+
firstKeptIndex: number;
|
|
124
|
+
messagesToSummarize: SessionEntry[];
|
|
125
|
+
turnPrefixMessages: SessionEntry[];
|
|
126
|
+
isSplitTurn: boolean;
|
|
127
|
+
fileRefs: FileReferences;
|
|
128
|
+
}
|
|
109
129
|
export interface ApprovalRequestInput {
|
|
110
130
|
/** Human-readable reason shown to the approver. */
|
|
111
131
|
reason: string;
|
|
@@ -154,6 +174,7 @@ export declare class StubFabricSession implements FabricSession {
|
|
|
154
174
|
/** Set when this session has registered its sandbox in the in-process ref registry. */
|
|
155
175
|
private ownedSandboxRefId;
|
|
156
176
|
private readonly costBudget;
|
|
177
|
+
private readonly skillCache;
|
|
157
178
|
constructor(agent: FabricAgent, id: string, options?: SessionOptions);
|
|
158
179
|
private getDurableRuntime;
|
|
159
180
|
prompt<TResult = string>(text: string, options?: PromptOptions<TResult>): Promise<TResult>;
|
|
@@ -165,6 +186,7 @@ export declare class StubFabricSession implements FabricSession {
|
|
|
165
186
|
mount(mountAt: string, source: FilesystemSource, options?: MountOptions): Promise<MountResult>;
|
|
166
187
|
private checkMountWriteAccess;
|
|
167
188
|
history(): Promise<SessionData>;
|
|
189
|
+
createSignalEntry(data: SignalEntryData): Promise<SessionEntry>;
|
|
168
190
|
sandboxRef(options?: {
|
|
169
191
|
portable?: false;
|
|
170
192
|
}): Promise<SandboxRef>;
|
|
@@ -178,6 +200,7 @@ export declare class StubFabricSession implements FabricSession {
|
|
|
178
200
|
private resolveModelContextWindow;
|
|
179
201
|
private readProviderModelMetadata;
|
|
180
202
|
private generateCompactionSummary;
|
|
203
|
+
private summarizeEntrySet;
|
|
181
204
|
private requestCustomApproval;
|
|
182
205
|
private createCheckpoint;
|
|
183
206
|
private restoreCheckpoint;
|
|
@@ -191,13 +214,36 @@ export declare class StubFabricSession implements FabricSession {
|
|
|
191
214
|
private commandTextForApproval;
|
|
192
215
|
private clampBashToolInput;
|
|
193
216
|
private resolveTools;
|
|
217
|
+
private activateSkillForTool;
|
|
194
218
|
private resolveSkill;
|
|
195
219
|
private resolveRole;
|
|
196
220
|
private memoryFallback;
|
|
197
221
|
private resolveMemory;
|
|
198
222
|
private tenantScopeOptions;
|
|
199
223
|
private ensureData;
|
|
224
|
+
/**
|
|
225
|
+
* Settle dangling state left by an interrupted turn before applying new
|
|
226
|
+
* input (v2 A2 — port of flue's repairTrailingPartialToolBatch).
|
|
227
|
+
*
|
|
228
|
+
* A crash/abort between recording a `tool_call` and its outcome leaves an
|
|
229
|
+
* assistant tool_use with no tool_result, which providers reject on the
|
|
230
|
+
* next turn. For each trailing dangling call this appends a synthetic
|
|
231
|
+
* `tool_result` marked interrupted (never re-executes the tool — the real
|
|
232
|
+
* outcome is unknown), settles trailing unfinished `task_start`s, and
|
|
233
|
+
* appends one advisory `signal` entry so the model knows the previous turn
|
|
234
|
+
* was cut short. Idempotent: a repaired window has no dangling calls.
|
|
235
|
+
*/
|
|
236
|
+
private repairDanglingToolCalls;
|
|
200
237
|
private recordEntry;
|
|
201
238
|
private emit;
|
|
202
239
|
}
|
|
240
|
+
interface FileReferences {
|
|
241
|
+
readFiles: string[];
|
|
242
|
+
modifiedFiles: string[];
|
|
243
|
+
}
|
|
244
|
+
/** Pure function — no I/O. Finds the token-based cut point, extracts messages to summarize, and tracks file ops. */
|
|
245
|
+
export declare function prepareCompaction(entries: SessionEntry[], keepRecentTokens: number, previousCompaction?: {
|
|
246
|
+
firstKeptIndex: number;
|
|
247
|
+
}): CompactionPreparation | undefined;
|
|
248
|
+
export {};
|
|
203
249
|
//# sourceMappingURL=session.d.ts.map
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|