@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.
Files changed (169) hide show
  1. package/dist/action.d.ts +69 -0
  2. package/dist/action.d.ts.map +1 -0
  3. package/dist/action.js +119 -0
  4. package/dist/action.js.map +1 -0
  5. package/dist/agent-definition.d.ts +6 -0
  6. package/dist/agent-definition.d.ts.map +1 -1
  7. package/dist/agent-definition.js.map +1 -1
  8. package/dist/agent.d.ts +2 -0
  9. package/dist/agent.d.ts.map +1 -1
  10. package/dist/agent.js +35 -1
  11. package/dist/agent.js.map +1 -1
  12. package/dist/attachment-store-contract.d.ts +34 -0
  13. package/dist/attachment-store-contract.d.ts.map +1 -0
  14. package/dist/attachment-store-contract.js +0 -0
  15. package/dist/attachment-store-contract.js.map +1 -0
  16. package/dist/attachment-store.d.ts +107 -0
  17. package/dist/attachment-store.d.ts.map +1 -0
  18. package/dist/attachment-store.js +164 -0
  19. package/dist/attachment-store.js.map +1 -0
  20. package/dist/channel.d.ts +84 -0
  21. package/dist/channel.d.ts.map +1 -0
  22. package/dist/channel.js +115 -0
  23. package/dist/channel.js.map +1 -0
  24. package/dist/context-budget.d.ts +16 -0
  25. package/dist/context-budget.d.ts.map +1 -1
  26. package/dist/context-budget.js +38 -3
  27. package/dist/context-budget.js.map +1 -1
  28. package/dist/conversation-projection.d.ts +52 -0
  29. package/dist/conversation-projection.d.ts.map +1 -0
  30. package/dist/conversation-projection.js +207 -0
  31. package/dist/conversation-projection.js.map +1 -0
  32. package/dist/conversation-stream-contract.d.ts +37 -0
  33. package/dist/conversation-stream-contract.d.ts.map +1 -0
  34. package/dist/conversation-stream-contract.js +453 -0
  35. package/dist/conversation-stream-contract.js.map +1 -0
  36. package/dist/conversation-stream.d.ts +141 -0
  37. package/dist/conversation-stream.d.ts.map +1 -0
  38. package/dist/conversation-stream.js +159 -0
  39. package/dist/conversation-stream.js.map +1 -0
  40. package/dist/cost-budget.d.ts +106 -1
  41. package/dist/cost-budget.d.ts.map +1 -1
  42. package/dist/cost-budget.js +48 -2
  43. package/dist/cost-budget.js.map +1 -1
  44. package/dist/delivered-message.d.ts +90 -0
  45. package/dist/delivered-message.d.ts.map +1 -0
  46. package/dist/delivered-message.js +154 -0
  47. package/dist/delivered-message.js.map +1 -0
  48. package/dist/dispatch.d.ts +108 -0
  49. package/dist/dispatch.d.ts.map +1 -0
  50. package/dist/dispatch.js +179 -0
  51. package/dist/dispatch.js.map +1 -0
  52. package/dist/error.d.ts +1 -1
  53. package/dist/error.d.ts.map +1 -1
  54. package/dist/error.js.map +1 -1
  55. package/dist/history.d.ts +49 -2
  56. package/dist/history.d.ts.map +1 -1
  57. package/dist/history.js +163 -0
  58. package/dist/history.js.map +1 -1
  59. package/dist/in-memory-submission-store.d.ts +53 -0
  60. package/dist/in-memory-submission-store.d.ts.map +1 -0
  61. package/dist/in-memory-submission-store.js +340 -0
  62. package/dist/in-memory-submission-store.js.map +1 -0
  63. package/dist/index.d.ts +51 -13
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +28 -7
  66. package/dist/index.js.map +1 -1
  67. package/dist/loop.d.ts +29 -3
  68. package/dist/loop.d.ts.map +1 -1
  69. package/dist/loop.js +167 -24
  70. package/dist/loop.js.map +1 -1
  71. package/dist/model.d.ts +37 -0
  72. package/dist/model.d.ts.map +1 -1
  73. package/dist/model.js +250 -79
  74. package/dist/model.js.map +1 -1
  75. package/dist/otel-observer.d.ts +44 -0
  76. package/dist/otel-observer.d.ts.map +1 -0
  77. package/dist/otel-observer.js +165 -0
  78. package/dist/otel-observer.js.map +1 -0
  79. package/dist/persistence.d.ts +70 -0
  80. package/dist/persistence.d.ts.map +1 -0
  81. package/dist/persistence.js +17 -0
  82. package/dist/persistence.js.map +1 -0
  83. package/dist/persistent-agent.d.ts +86 -0
  84. package/dist/persistent-agent.d.ts.map +1 -0
  85. package/dist/persistent-agent.js +75 -0
  86. package/dist/persistent-agent.js.map +1 -0
  87. package/dist/pi-loop-runtime.d.ts.map +1 -1
  88. package/dist/pi-loop-runtime.js +7 -1
  89. package/dist/pi-loop-runtime.js.map +1 -1
  90. package/dist/profile.d.ts +33 -0
  91. package/dist/profile.d.ts.map +1 -0
  92. package/dist/profile.js +10 -0
  93. package/dist/profile.js.map +1 -0
  94. package/dist/providers.d.ts +14 -0
  95. package/dist/providers.d.ts.map +1 -1
  96. package/dist/providers.js +18 -1
  97. package/dist/providers.js.map +1 -1
  98. package/dist/result.d.ts +12 -0
  99. package/dist/result.d.ts.map +1 -1
  100. package/dist/result.js +26 -0
  101. package/dist/result.js.map +1 -1
  102. package/dist/retrieval.d.ts +61 -0
  103. package/dist/retrieval.d.ts.map +1 -0
  104. package/dist/retrieval.js +26 -0
  105. package/dist/retrieval.js.map +1 -0
  106. package/dist/runtime-mode.d.ts +1 -1
  107. package/dist/runtime-mode.d.ts.map +1 -1
  108. package/dist/runtime-mode.js +2 -1
  109. package/dist/runtime-mode.js.map +1 -1
  110. package/dist/scope-key.d.ts +25 -0
  111. package/dist/scope-key.d.ts.map +1 -0
  112. package/dist/scope-key.js +34 -0
  113. package/dist/scope-key.js.map +1 -0
  114. package/dist/session.d.ts +47 -1
  115. package/dist/session.d.ts.map +1 -1
  116. package/dist/session.js +364 -35
  117. package/dist/session.js.map +1 -1
  118. package/dist/skills.d.ts +33 -0
  119. package/dist/skills.d.ts.map +1 -0
  120. package/dist/skills.js +65 -0
  121. package/dist/skills.js.map +1 -0
  122. package/dist/store.d.ts +36 -1
  123. package/dist/store.d.ts.map +1 -1
  124. package/dist/store.js +83 -0
  125. package/dist/store.js.map +1 -1
  126. package/dist/stream-chunks.d.ts +42 -0
  127. package/dist/stream-chunks.d.ts.map +1 -0
  128. package/dist/stream-chunks.js +138 -0
  129. package/dist/stream-chunks.js.map +1 -0
  130. package/dist/strict.d.ts +40 -11
  131. package/dist/strict.d.ts.map +1 -1
  132. package/dist/strict.js +22 -7
  133. package/dist/strict.js.map +1 -1
  134. package/dist/submission-context.d.ts +26 -0
  135. package/dist/submission-context.d.ts.map +1 -0
  136. package/dist/submission-context.js +20 -0
  137. package/dist/submission-context.js.map +1 -0
  138. package/dist/submission-runner.d.ts +150 -0
  139. package/dist/submission-runner.d.ts.map +1 -0
  140. package/dist/submission-runner.js +767 -0
  141. package/dist/submission-runner.js.map +1 -0
  142. package/dist/submission-state.d.ts +50 -0
  143. package/dist/submission-state.d.ts.map +1 -0
  144. package/dist/submission-state.js +82 -0
  145. package/dist/submission-state.js.map +1 -0
  146. package/dist/submission-store-contract.d.ts +31 -0
  147. package/dist/submission-store-contract.d.ts.map +1 -0
  148. package/dist/submission-store-contract.js +730 -0
  149. package/dist/submission-store-contract.js.map +1 -0
  150. package/dist/submission-store.d.ts +365 -0
  151. package/dist/submission-store.d.ts.map +1 -0
  152. package/dist/submission-store.js +191 -0
  153. package/dist/submission-store.js.map +1 -0
  154. package/dist/submission-telemetry.d.ts +56 -0
  155. package/dist/submission-telemetry.d.ts.map +1 -0
  156. package/dist/submission-telemetry.js +36 -0
  157. package/dist/submission-telemetry.js.map +1 -0
  158. package/dist/testing-contracts.d.ts +17 -0
  159. package/dist/testing-contracts.d.ts.map +1 -0
  160. package/dist/testing-contracts.js +14 -0
  161. package/dist/testing-contracts.js.map +1 -0
  162. package/dist/tools.d.ts +32 -4
  163. package/dist/tools.d.ts.map +1 -1
  164. package/dist/tools.js +132 -6
  165. package/dist/tools.js.map +1 -1
  166. package/dist/types.d.ts +132 -3
  167. package/dist/types.d.ts.map +1 -1
  168. package/dist/types.js.map +1 -1
  169. 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"}
@@ -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,EAC7C,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,qBAAqB,CAsBvB;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"}
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"}
@@ -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 ephemeral = runtime === 'stateless' || (runtime === 'inline' && options.store === undefined);
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.');
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-mode.js","sourceRoot":"","sources":["../src/runtime-mode.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA6C,EAC7C,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,SAAS,GAAG,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAEnG,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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}