@soleri/core 9.5.0 → 9.7.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 (249) hide show
  1. package/dist/adapters/claude-code-adapter.d.ts +27 -0
  2. package/dist/adapters/claude-code-adapter.d.ts.map +1 -0
  3. package/dist/adapters/claude-code-adapter.js +111 -0
  4. package/dist/adapters/claude-code-adapter.js.map +1 -0
  5. package/dist/adapters/index.d.ts +9 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +10 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/adapters/registry.d.ts +21 -0
  10. package/dist/adapters/registry.d.ts.map +1 -0
  11. package/dist/adapters/registry.js +44 -0
  12. package/dist/adapters/registry.js.map +1 -0
  13. package/dist/adapters/types.d.ts +93 -0
  14. package/dist/adapters/types.d.ts.map +1 -0
  15. package/dist/adapters/types.js +10 -0
  16. package/dist/adapters/types.js.map +1 -0
  17. package/dist/brain/brain.d.ts +12 -1
  18. package/dist/brain/brain.d.ts.map +1 -1
  19. package/dist/brain/brain.js +106 -44
  20. package/dist/brain/brain.js.map +1 -1
  21. package/dist/brain/intelligence.d.ts.map +1 -1
  22. package/dist/brain/intelligence.js +36 -30
  23. package/dist/brain/intelligence.js.map +1 -1
  24. package/dist/chat/agent-loop.js +1 -1
  25. package/dist/chat/agent-loop.js.map +1 -1
  26. package/dist/chat/notifications.d.ts.map +1 -1
  27. package/dist/chat/notifications.js +4 -0
  28. package/dist/chat/notifications.js.map +1 -1
  29. package/dist/control/intent-router.d.ts +1 -0
  30. package/dist/control/intent-router.d.ts.map +1 -1
  31. package/dist/control/intent-router.js +11 -5
  32. package/dist/control/intent-router.js.map +1 -1
  33. package/dist/curator/curator.d.ts +4 -0
  34. package/dist/curator/curator.d.ts.map +1 -1
  35. package/dist/curator/curator.js +141 -27
  36. package/dist/curator/curator.js.map +1 -1
  37. package/dist/index.d.ts +22 -2
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +18 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/llm/llm-client.d.ts.map +1 -1
  42. package/dist/llm/llm-client.js +1 -0
  43. package/dist/llm/llm-client.js.map +1 -1
  44. package/dist/packs/index.d.ts +3 -2
  45. package/dist/packs/index.d.ts.map +1 -1
  46. package/dist/packs/index.js +3 -2
  47. package/dist/packs/index.js.map +1 -1
  48. package/dist/packs/lockfile.d.ts +23 -1
  49. package/dist/packs/lockfile.d.ts.map +1 -1
  50. package/dist/packs/lockfile.js +50 -4
  51. package/dist/packs/lockfile.js.map +1 -1
  52. package/dist/packs/pack-installer.d.ts +10 -0
  53. package/dist/packs/pack-installer.d.ts.map +1 -1
  54. package/dist/packs/pack-installer.js +69 -2
  55. package/dist/packs/pack-installer.js.map +1 -1
  56. package/dist/packs/pack-lifecycle.d.ts +50 -0
  57. package/dist/packs/pack-lifecycle.d.ts.map +1 -0
  58. package/dist/packs/pack-lifecycle.js +91 -0
  59. package/dist/packs/pack-lifecycle.js.map +1 -0
  60. package/dist/packs/types.d.ts +76 -29
  61. package/dist/packs/types.d.ts.map +1 -1
  62. package/dist/packs/types.js +9 -0
  63. package/dist/packs/types.js.map +1 -1
  64. package/dist/persistence/sqlite-provider.d.ts +5 -1
  65. package/dist/persistence/sqlite-provider.d.ts.map +1 -1
  66. package/dist/persistence/sqlite-provider.js +22 -2
  67. package/dist/persistence/sqlite-provider.js.map +1 -1
  68. package/dist/planning/github-projection.d.ts +11 -9
  69. package/dist/planning/github-projection.d.ts.map +1 -1
  70. package/dist/planning/github-projection.js +47 -43
  71. package/dist/planning/github-projection.js.map +1 -1
  72. package/dist/planning/goal-ancestry.d.ts +72 -0
  73. package/dist/planning/goal-ancestry.d.ts.map +1 -0
  74. package/dist/planning/goal-ancestry.js +137 -0
  75. package/dist/planning/goal-ancestry.js.map +1 -0
  76. package/dist/planning/plan-lifecycle.d.ts +2 -0
  77. package/dist/planning/plan-lifecycle.d.ts.map +1 -1
  78. package/dist/planning/plan-lifecycle.js +1 -0
  79. package/dist/planning/plan-lifecycle.js.map +1 -1
  80. package/dist/planning/planner-types.d.ts +2 -0
  81. package/dist/planning/planner-types.d.ts.map +1 -1
  82. package/dist/plugins/types.d.ts +21 -21
  83. package/dist/queue/pipeline-runner.d.ts.map +1 -1
  84. package/dist/queue/pipeline-runner.js +4 -0
  85. package/dist/queue/pipeline-runner.js.map +1 -1
  86. package/dist/runtime/context-health.d.ts +14 -1
  87. package/dist/runtime/context-health.d.ts.map +1 -1
  88. package/dist/runtime/context-health.js +30 -2
  89. package/dist/runtime/context-health.js.map +1 -1
  90. package/dist/runtime/curator-extra-ops.d.ts.map +1 -1
  91. package/dist/runtime/curator-extra-ops.js +9 -1
  92. package/dist/runtime/curator-extra-ops.js.map +1 -1
  93. package/dist/runtime/facades/memory-facade.d.ts.map +1 -1
  94. package/dist/runtime/facades/memory-facade.js +169 -0
  95. package/dist/runtime/facades/memory-facade.js.map +1 -1
  96. package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
  97. package/dist/runtime/orchestrate-ops.js +133 -4
  98. package/dist/runtime/orchestrate-ops.js.map +1 -1
  99. package/dist/runtime/runtime.d.ts.map +1 -1
  100. package/dist/runtime/runtime.js +128 -90
  101. package/dist/runtime/runtime.js.map +1 -1
  102. package/dist/runtime/session-briefing.d.ts.map +1 -1
  103. package/dist/runtime/session-briefing.js +44 -11
  104. package/dist/runtime/session-briefing.js.map +1 -1
  105. package/dist/runtime/shutdown-registry.d.ts +36 -0
  106. package/dist/runtime/shutdown-registry.d.ts.map +1 -0
  107. package/dist/runtime/shutdown-registry.js +74 -0
  108. package/dist/runtime/shutdown-registry.js.map +1 -0
  109. package/dist/runtime/types.d.ts +10 -1
  110. package/dist/runtime/types.d.ts.map +1 -1
  111. package/dist/session/compaction-evaluator.d.ts +20 -0
  112. package/dist/session/compaction-evaluator.d.ts.map +1 -0
  113. package/dist/session/compaction-evaluator.js +73 -0
  114. package/dist/session/compaction-evaluator.js.map +1 -0
  115. package/dist/session/compaction-policy.d.ts +50 -0
  116. package/dist/session/compaction-policy.d.ts.map +1 -0
  117. package/dist/session/compaction-policy.js +17 -0
  118. package/dist/session/compaction-policy.js.map +1 -0
  119. package/dist/session/handoff-renderer.d.ts +22 -0
  120. package/dist/session/handoff-renderer.d.ts.map +1 -0
  121. package/dist/session/handoff-renderer.js +49 -0
  122. package/dist/session/handoff-renderer.js.map +1 -0
  123. package/dist/session/index.d.ts +6 -0
  124. package/dist/session/index.d.ts.map +1 -0
  125. package/dist/session/index.js +5 -0
  126. package/dist/session/index.js.map +1 -0
  127. package/dist/session/policy-resolver.d.ts +20 -0
  128. package/dist/session/policy-resolver.d.ts.map +1 -0
  129. package/dist/session/policy-resolver.js +28 -0
  130. package/dist/session/policy-resolver.js.map +1 -0
  131. package/dist/skills/sync-skills.d.ts +27 -0
  132. package/dist/skills/sync-skills.d.ts.map +1 -1
  133. package/dist/skills/sync-skills.js +92 -1
  134. package/dist/skills/sync-skills.js.map +1 -1
  135. package/dist/skills/trust-classifier.d.ts +32 -0
  136. package/dist/skills/trust-classifier.d.ts.map +1 -0
  137. package/dist/skills/trust-classifier.js +109 -0
  138. package/dist/skills/trust-classifier.js.map +1 -0
  139. package/dist/subagent/concurrency-manager.d.ts +29 -0
  140. package/dist/subagent/concurrency-manager.d.ts.map +1 -0
  141. package/dist/subagent/concurrency-manager.js +73 -0
  142. package/dist/subagent/concurrency-manager.js.map +1 -0
  143. package/dist/subagent/dispatcher.d.ts +45 -0
  144. package/dist/subagent/dispatcher.d.ts.map +1 -0
  145. package/dist/subagent/dispatcher.js +271 -0
  146. package/dist/subagent/dispatcher.js.map +1 -0
  147. package/dist/subagent/index.d.ts +14 -0
  148. package/dist/subagent/index.d.ts.map +1 -0
  149. package/dist/subagent/index.js +15 -0
  150. package/dist/subagent/index.js.map +1 -0
  151. package/dist/subagent/orphan-reaper.d.ts +37 -0
  152. package/dist/subagent/orphan-reaper.d.ts.map +1 -0
  153. package/dist/subagent/orphan-reaper.js +71 -0
  154. package/dist/subagent/orphan-reaper.js.map +1 -0
  155. package/dist/subagent/result-aggregator.d.ts +7 -0
  156. package/dist/subagent/result-aggregator.d.ts.map +1 -0
  157. package/dist/subagent/result-aggregator.js +57 -0
  158. package/dist/subagent/result-aggregator.js.map +1 -0
  159. package/dist/subagent/task-checkout.d.ts +36 -0
  160. package/dist/subagent/task-checkout.d.ts.map +1 -0
  161. package/dist/subagent/task-checkout.js +52 -0
  162. package/dist/subagent/task-checkout.js.map +1 -0
  163. package/dist/subagent/types.d.ts +114 -0
  164. package/dist/subagent/types.d.ts.map +1 -0
  165. package/dist/subagent/types.js +9 -0
  166. package/dist/subagent/types.js.map +1 -0
  167. package/dist/subagent/workspace-resolver.d.ts +35 -0
  168. package/dist/subagent/workspace-resolver.d.ts.map +1 -0
  169. package/dist/subagent/workspace-resolver.js +99 -0
  170. package/dist/subagent/workspace-resolver.js.map +1 -0
  171. package/dist/transport/http-server.d.ts.map +1 -1
  172. package/dist/transport/http-server.js +49 -3
  173. package/dist/transport/http-server.js.map +1 -1
  174. package/dist/transport/ws-server.d.ts.map +1 -1
  175. package/dist/transport/ws-server.js +7 -0
  176. package/dist/transport/ws-server.js.map +1 -1
  177. package/dist/vault/linking.d.ts +3 -4
  178. package/dist/vault/linking.d.ts.map +1 -1
  179. package/dist/vault/linking.js +79 -32
  180. package/dist/vault/linking.js.map +1 -1
  181. package/dist/vault/vault-maintenance.d.ts.map +1 -1
  182. package/dist/vault/vault-maintenance.js +7 -14
  183. package/dist/vault/vault-maintenance.js.map +1 -1
  184. package/dist/vault/vault-memories.d.ts.map +1 -1
  185. package/dist/vault/vault-memories.js +19 -9
  186. package/dist/vault/vault-memories.js.map +1 -1
  187. package/dist/vault/vault-schema.d.ts +1 -0
  188. package/dist/vault/vault-schema.d.ts.map +1 -1
  189. package/dist/vault/vault-schema.js +20 -0
  190. package/dist/vault/vault-schema.js.map +1 -1
  191. package/dist/vault/vault.d.ts.map +1 -1
  192. package/dist/vault/vault.js +7 -3
  193. package/dist/vault/vault.js.map +1 -1
  194. package/package.json +5 -2
  195. package/src/__tests__/adapters/claude-code-adapter.test.ts +167 -0
  196. package/src/__tests__/adapters/registry.test.ts +100 -0
  197. package/src/__tests__/packs/pack-lifecycle.test.ts +379 -0
  198. package/src/__tests__/subagent/concurrency-manager.test.ts +132 -0
  199. package/src/__tests__/subagent/dispatcher.test.ts +195 -0
  200. package/src/__tests__/subagent/orphan-reaper.test.ts +141 -0
  201. package/src/__tests__/subagent/result-aggregator.test.ts +141 -0
  202. package/src/__tests__/subagent/task-checkout.test.ts +86 -0
  203. package/src/__tests__/subagent/workspace-resolver.test.ts +138 -0
  204. package/src/adapters/claude-code-adapter.ts +163 -0
  205. package/src/adapters/index.ts +22 -0
  206. package/src/adapters/registry.ts +53 -0
  207. package/src/adapters/types.ts +114 -0
  208. package/src/curator/curator.ts +1 -0
  209. package/src/index.ts +78 -1
  210. package/src/packs/index.ts +9 -1
  211. package/src/packs/lockfile.ts +70 -5
  212. package/src/packs/pack-installer.ts +78 -2
  213. package/src/packs/pack-lifecycle.ts +115 -0
  214. package/src/packs/pack-lockfile.test.ts +1 -1
  215. package/src/packs/pack-system.test.ts +1 -1
  216. package/src/packs/types.ts +72 -2
  217. package/src/persistence/sqlite-provider.ts +26 -2
  218. package/src/planning/github-projection.ts +6 -0
  219. package/src/planning/goal-ancestry.test.ts +427 -0
  220. package/src/planning/goal-ancestry.ts +187 -0
  221. package/src/planning/plan-lifecycle.ts +3 -0
  222. package/src/planning/planner-types.ts +2 -0
  223. package/src/runtime/admin-setup-ops.test.ts +9 -4
  224. package/src/runtime/context-health.ts +42 -2
  225. package/src/runtime/orchestrate-ops.ts +153 -1
  226. package/src/runtime/runtime.ts +15 -0
  227. package/src/runtime/session-briefing.test.ts +94 -2
  228. package/src/runtime/session-briefing.ts +48 -12
  229. package/src/runtime/types.ts +6 -0
  230. package/src/session/compaction-evaluator.ts +87 -0
  231. package/src/session/compaction-policy.ts +66 -0
  232. package/src/session/compaction.test.ts +259 -0
  233. package/src/session/handoff-renderer.ts +56 -0
  234. package/src/session/index.ts +12 -0
  235. package/src/session/policy-resolver.ts +34 -0
  236. package/src/skills/sync-skills.ts +114 -1
  237. package/src/skills/trust-classifier.test.ts +252 -0
  238. package/src/skills/trust-classifier.ts +127 -0
  239. package/src/subagent/concurrency-manager.ts +89 -0
  240. package/src/subagent/dispatcher.ts +342 -0
  241. package/src/subagent/index.ts +28 -0
  242. package/src/subagent/orphan-reaper.ts +82 -0
  243. package/src/subagent/result-aggregator.ts +66 -0
  244. package/src/subagent/task-checkout.ts +60 -0
  245. package/src/subagent/types.ts +138 -0
  246. package/src/subagent/workspace-resolver.ts +117 -0
  247. package/src/vault/vault-scaling.test.ts +3 -2
  248. package/vitest.config.ts +2 -0
  249. package/src/hooks/index.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"session-briefing.d.ts","sourceRoot":"","sources":["../../src/runtime/session-briefing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CA8L9E;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAsC9E"}
1
+ {"version":3,"file":"session-briefing.d.ts","sourceRoot":"","sources":["../../src/runtime/session-briefing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,EAAE,CAkO9E;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAsC9E"}
@@ -37,22 +37,55 @@ export function createSessionBriefingOps(runtime) {
37
37
  catch {
38
38
  // Vault stats unavailable — skip
39
39
  }
40
- // 1. Last session
40
+ // 1. Last session — cross-project, with staleness threshold
41
41
  try {
42
- const sessions = brainIntelligence.listSessions({ limit: 1, active: false });
43
- dataPoints += sessions.length;
44
- if (sessions.length > 0) {
45
- const last = sessions[0];
46
- const ago = formatTimeAgo(last.endedAt ? new Date(last.endedAt).getTime() : Date.now());
47
- const domain = last.domain ? ` [${last.domain}]` : '';
48
- const context = last.context ? `: ${last.context.slice(0, 80)}` : '';
49
- const tools = last.toolsUsed.length > 0 ? `, used ${last.toolsUsed.length} tools` : '';
50
- const files = last.filesModified.length > 0 ? `, modified ${last.filesModified.length} files` : '';
42
+ const recencyMs = params.recencyHours * 3600_000;
43
+ const cutoff = Date.now() - recencyMs;
44
+ // Try cross-project memories first (most recent work, any project)
45
+ const recentMemories = vault.listMemories({ type: 'session', limit: 3 });
46
+ const freshMemory = recentMemories.find((m) => {
47
+ const ts = m.createdAt > 1e12 ? m.createdAt : m.createdAt * 1000;
48
+ return ts > cutoff;
49
+ });
50
+ if (freshMemory) {
51
+ const ts = freshMemory.createdAt > 1e12 ? freshMemory.createdAt : freshMemory.createdAt * 1000;
52
+ const ago = formatTimeAgo(ts);
53
+ const project = freshMemory.projectPath
54
+ ? ` [${freshMemory.projectPath.split('/').pop()}]`
55
+ : '';
56
+ const summary = freshMemory.summary
57
+ ? `: ${freshMemory.summary.slice(0, 100)}`
58
+ : freshMemory.context
59
+ ? `: ${freshMemory.context.slice(0, 100)}`
60
+ : '';
61
+ dataPoints += recentMemories.length;
51
62
  sections.push({
52
63
  label: 'Last session',
53
- content: `(${ago})${domain}${context}${tools}${files}`,
64
+ content: `(${ago})${project}${summary}`,
54
65
  });
55
66
  }
67
+ else {
68
+ // Fall back to brain sessions (same-project only) if no fresh memory
69
+ const sessions = brainIntelligence.listSessions({ limit: 1, active: false });
70
+ dataPoints += sessions.length;
71
+ if (sessions.length > 0) {
72
+ const last = sessions[0];
73
+ const endTs = last.endedAt ? new Date(last.endedAt).getTime() : 0;
74
+ if (endTs > cutoff) {
75
+ const ago = formatTimeAgo(endTs);
76
+ const domain = last.domain ? ` [${last.domain}]` : '';
77
+ const context = last.context ? `: ${last.context.slice(0, 80)}` : '';
78
+ const tools = last.toolsUsed.length > 0 ? `, used ${last.toolsUsed.length} tools` : '';
79
+ const files = last.filesModified.length > 0
80
+ ? `, modified ${last.filesModified.length} files`
81
+ : '';
82
+ sections.push({
83
+ label: 'Last session',
84
+ content: `(${ago})${domain}${context}${tools}${files}`,
85
+ });
86
+ }
87
+ }
88
+ }
56
89
  }
57
90
  catch {
58
91
  // Session data unavailable — skip
@@ -1 +1 @@
1
- {"version":3,"file":"session-briefing.js","sourceRoot":"","sources":["../../src/runtime/session-briefing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-briefing.js","sourceRoot":"","sources":["../../src/runtime/session-briefing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Shutdown Registry — centralized cleanup for agent runtime resources.
3
+ *
4
+ * Modules register their cleanup callbacks (clear timers, close watchers,
5
+ * kill child processes). On shutdown, callbacks run in LIFO order so
6
+ * dependents close before their dependencies.
7
+ *
8
+ * Idempotent: calling `closeAll()` multiple times is safe.
9
+ */
10
+ export type ShutdownCallback = () => void | Promise<void>;
11
+ export declare class ShutdownRegistry {
12
+ private entries;
13
+ private closed;
14
+ /**
15
+ * Register a named cleanup callback.
16
+ * Callbacks are invoked in LIFO order (last registered = first closed).
17
+ */
18
+ register(name: string, callback: ShutdownCallback): void;
19
+ /**
20
+ * Run all registered cleanup callbacks in LIFO order.
21
+ * Idempotent — subsequent calls are no-ops.
22
+ * Errors in individual callbacks are caught and logged to stderr
23
+ * so that remaining callbacks still execute.
24
+ */
25
+ closeAll(): Promise<void>;
26
+ /**
27
+ * Synchronous close — best-effort for non-async callbacks.
28
+ * Use when you can't await (e.g. process.on('exit')).
29
+ */
30
+ closeAllSync(): void;
31
+ /** Number of registered callbacks. */
32
+ get size(): number;
33
+ /** Whether closeAll() has been called. */
34
+ get isClosed(): boolean;
35
+ }
36
+ //# sourceMappingURL=shutdown-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown-registry.d.ts","sourceRoot":"","sources":["../../src/runtime/shutdown-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAO1D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAKxD;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB/B;;;OAGG;IACH,YAAY,IAAI,IAAI;IAgBpB,sCAAsC;IACtC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0CAA0C;IAC1C,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Shutdown Registry — centralized cleanup for agent runtime resources.
3
+ *
4
+ * Modules register their cleanup callbacks (clear timers, close watchers,
5
+ * kill child processes). On shutdown, callbacks run in LIFO order so
6
+ * dependents close before their dependencies.
7
+ *
8
+ * Idempotent: calling `closeAll()` multiple times is safe.
9
+ */
10
+ export class ShutdownRegistry {
11
+ entries = [];
12
+ closed = false;
13
+ /**
14
+ * Register a named cleanup callback.
15
+ * Callbacks are invoked in LIFO order (last registered = first closed).
16
+ */
17
+ register(name, callback) {
18
+ if (this.closed)
19
+ return;
20
+ this.entries.push({ name, callback });
21
+ }
22
+ /**
23
+ * Run all registered cleanup callbacks in LIFO order.
24
+ * Idempotent — subsequent calls are no-ops.
25
+ * Errors in individual callbacks are caught and logged to stderr
26
+ * so that remaining callbacks still execute.
27
+ */
28
+ async closeAll() {
29
+ if (this.closed)
30
+ return;
31
+ this.closed = true;
32
+ // LIFO order
33
+ for (let i = this.entries.length - 1; i >= 0; i--) {
34
+ const entry = this.entries[i];
35
+ try {
36
+ await entry.callback();
37
+ }
38
+ catch (err) {
39
+ // Log but don't throw — remaining cleanups must still run
40
+ const msg = err instanceof Error ? err.message : String(err);
41
+ process.stderr.write(`[shutdown] ${entry.name}: ${msg}\n`);
42
+ }
43
+ }
44
+ this.entries = [];
45
+ }
46
+ /**
47
+ * Synchronous close — best-effort for non-async callbacks.
48
+ * Use when you can't await (e.g. process.on('exit')).
49
+ */
50
+ closeAllSync() {
51
+ if (this.closed)
52
+ return;
53
+ this.closed = true;
54
+ for (let i = this.entries.length - 1; i >= 0; i--) {
55
+ const entry = this.entries[i];
56
+ try {
57
+ entry.callback();
58
+ }
59
+ catch {
60
+ // Best-effort — swallow errors in sync path
61
+ }
62
+ }
63
+ this.entries = [];
64
+ }
65
+ /** Number of registered callbacks. */
66
+ get size() {
67
+ return this.entries.length;
68
+ }
69
+ /** Whether closeAll() has been called. */
70
+ get isClosed() {
71
+ return this.closed;
72
+ }
73
+ }
74
+ //# sourceMappingURL=shutdown-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shutdown-registry.js","sourceRoot":"","sources":["../../src/runtime/shutdown-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAAoB,EAAE,CAAC;IAC9B,MAAM,GAAG,KAAK,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,IAAY,EAAE,QAA0B;QAC/C,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,aAAa;QACb,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,0DAA0D;gBAC1D,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC;gBACH,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,sCAAsC;IACtC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,0CAA0C;IAC1C,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -36,6 +36,9 @@ import type { PipelineRunner } from '../queue/pipeline-runner.js';
36
36
  import type { OperatorProfileStore } from '../operator/operator-profile.js';
37
37
  import type { OperatorContextStore } from '../operator/operator-context-store.js';
38
38
  import type { ContextHealthMonitor } from './context-health.js';
39
+ import type { ShutdownRegistry } from './shutdown-registry.js';
40
+ import type { RuntimeAdapterRegistry } from '../adapters/registry.js';
41
+ import type { SubagentDispatcher } from '../subagent/dispatcher.js';
39
42
  /**
40
43
  * Configuration for creating an agent runtime.
41
44
  * Only `agentId` is required — everything else has sensible defaults.
@@ -129,11 +132,17 @@ export interface AgentRuntime {
129
132
  persona: import('../persona/types.js').PersonaConfig;
130
133
  /** Generated persona system instructions for LLM context. */
131
134
  personaInstructions: import('../persona/types.js').PersonaSystemInstructions;
135
+ /** Runtime adapter registry — dispatch work to different AI CLIs. */
136
+ adapterRegistry: RuntimeAdapterRegistry;
137
+ /** Subagent dispatcher — spawn and manage child agent processes. */
138
+ subagentDispatcher: SubagentDispatcher;
132
139
  /** Context health monitor — tracks tool call volume and context window fill. */
133
140
  contextHealth: ContextHealthMonitor;
141
+ /** Shutdown registry — centralized cleanup for timers, watchers, child processes. */
142
+ shutdownRegistry: ShutdownRegistry;
134
143
  /** Timestamp (ms since epoch) when this runtime was created. */
135
144
  createdAt: number;
136
- /** Close the vault database connection. Call on shutdown. */
145
+ /** Close all runtime resources (vault, timers, watchers). Call on shutdown. */
137
146
  close(): void;
138
147
  }
139
148
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wHAAwH;IACxH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,qBAAqB,EAAE,aAAa,CAAC,CAAC;CAChE;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,kEAAkE;IAClE,UAAU,EAAE,UAAU,CAAC;IACvB,8DAA8D;IAC9D,KAAK,EAAE,YAAY,CAAC;IACpB,+DAA+D;IAC/D,MAAM,EAAE,cAAc,CAAC;IACvB,oEAAoE;IACpE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oEAAoE;IACpE,cAAc,EAAE,cAAc,CAAC;IAC/B,mEAAmE;IACnE,aAAa,EAAE,aAAa,CAAC;IAC7B,4EAA4E;IAC5E,YAAY,EAAE,YAAY,CAAC;IAC3B,0EAA0E;IAC1E,cAAc,EAAE,cAAc,CAAC;IAC/B,mFAAmF;IACnF,aAAa,EAAE,aAAa,CAAC;IAC7B,sFAAsF;IACtF,aAAa,EAAE,aAAa,CAAC;IAC7B,wEAAwE;IACxE,eAAe,EAAE,eAAe,CAAC;IACjC,qFAAqF;IACrF,WAAW,EAAE,WAAW,CAAC;IACzB,yEAAyE;IACzE,aAAa,EAAE,aAAa,CAAC;IAC7B,+EAA+E;IAC/E,YAAY,EAAE,YAAY,CAAC;IAC3B,iFAAiF;IACjF,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,+EAA+E;IAC/E,WAAW,EAAE,WAAW,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,EAAE,QAAQ,CAAC;IACnB,mEAAmE;IACnE,cAAc,EAAE,cAAc,CAAC;IAC/B,oEAAoE;IACpE,eAAe,EAAE,oBAAoB,CAAC;IACtC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,sEAAsE;IACtE,OAAO,EAAE,OAAO,qBAAqB,EAAE,aAAa,CAAC;IACrD,6DAA6D;IAC7D,mBAAmB,EAAE,OAAO,qBAAqB,EAAE,yBAAyB,CAAC;IAC7E,gFAAgF;IAChF,aAAa,EAAE,oBAAoB,CAAC;IACpC,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wHAAwH;IACxH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,qBAAqB,EAAE,aAAa,CAAC,CAAC;CAChE;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACjD,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,kEAAkE;IAClE,UAAU,EAAE,UAAU,CAAC;IACvB,8DAA8D;IAC9D,KAAK,EAAE,YAAY,CAAC;IACpB,+DAA+D;IAC/D,MAAM,EAAE,cAAc,CAAC;IACvB,oEAAoE;IACpE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oEAAoE;IACpE,cAAc,EAAE,cAAc,CAAC;IAC/B,mEAAmE;IACnE,aAAa,EAAE,aAAa,CAAC;IAC7B,4EAA4E;IAC5E,YAAY,EAAE,YAAY,CAAC;IAC3B,0EAA0E;IAC1E,cAAc,EAAE,cAAc,CAAC;IAC/B,mFAAmF;IACnF,aAAa,EAAE,aAAa,CAAC;IAC7B,sFAAsF;IACtF,aAAa,EAAE,aAAa,CAAC;IAC7B,wEAAwE;IACxE,eAAe,EAAE,eAAe,CAAC;IACjC,qFAAqF;IACrF,WAAW,EAAE,WAAW,CAAC;IACzB,yEAAyE;IACzE,aAAa,EAAE,aAAa,CAAC;IAC7B,+EAA+E;IAC/E,YAAY,EAAE,YAAY,CAAC;IAC3B,iFAAiF;IACjF,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,+EAA+E;IAC/E,WAAW,EAAE,WAAW,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,EAAE,QAAQ,CAAC;IACnB,mEAAmE;IACnE,cAAc,EAAE,cAAc,CAAC;IAC/B,oEAAoE;IACpE,eAAe,EAAE,oBAAoB,CAAC;IACtC,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,sEAAsE;IACtE,OAAO,EAAE,OAAO,qBAAqB,EAAE,aAAa,CAAC;IACrD,6DAA6D;IAC7D,mBAAmB,EAAE,OAAO,qBAAqB,EAAE,yBAAyB,CAAC;IAC7E,qEAAqE;IACrE,eAAe,EAAE,sBAAsB,CAAC;IACxC,oEAAoE;IACpE,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gFAAgF;IAChF,aAAa,EAAE,oBAAoB,CAAC;IACpC,qFAAqF;IACrF,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Compaction Evaluator — checks session state against a compaction policy
3
+ * and determines whether the session should be rotated.
4
+ */
5
+ import type { CompactionPolicy, CompactionResult, SessionState } from './compaction-policy.js';
6
+ /**
7
+ * Parse a simple duration string (e.g. '72h', '30m', '7d') into milliseconds.
8
+ * Returns `undefined` for invalid input.
9
+ */
10
+ export declare function parseDuration(duration: string): number | undefined;
11
+ /**
12
+ * Evaluate whether a session should be compacted based on policy thresholds.
13
+ *
14
+ * Returns the first triggered threshold as the reason. Checks in order:
15
+ * 1. maxRuns
16
+ * 2. maxInputTokens
17
+ * 3. maxAge
18
+ */
19
+ export declare function shouldCompact(session: SessionState, policy: CompactionPolicy, now?: Date): CompactionResult;
20
+ //# sourceMappingURL=compaction-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-evaluator.d.ts","sourceRoot":"","sources":["../../src/session/compaction-evaluator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAgB/F;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKlE;AAMD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,gBAAgB,EACxB,GAAG,GAAE,IAAiB,GACrB,gBAAgB,CAsClB"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Compaction Evaluator — checks session state against a compaction policy
3
+ * and determines whether the session should be rotated.
4
+ */
5
+ // =============================================================================
6
+ // DURATION PARSER
7
+ // =============================================================================
8
+ const DURATION_RE = /^(\d+)(ms|s|m|h|d)$/;
9
+ const MULTIPLIERS = {
10
+ ms: 1,
11
+ s: 1_000,
12
+ m: 60_000,
13
+ h: 3_600_000,
14
+ d: 86_400_000,
15
+ };
16
+ /**
17
+ * Parse a simple duration string (e.g. '72h', '30m', '7d') into milliseconds.
18
+ * Returns `undefined` for invalid input.
19
+ */
20
+ export function parseDuration(duration) {
21
+ const match = DURATION_RE.exec(duration.trim());
22
+ if (!match)
23
+ return undefined;
24
+ const [, value, unit] = match;
25
+ return Number(value) * MULTIPLIERS[unit];
26
+ }
27
+ // =============================================================================
28
+ // EVALUATOR
29
+ // =============================================================================
30
+ /**
31
+ * Evaluate whether a session should be compacted based on policy thresholds.
32
+ *
33
+ * Returns the first triggered threshold as the reason. Checks in order:
34
+ * 1. maxRuns
35
+ * 2. maxInputTokens
36
+ * 3. maxAge
37
+ */
38
+ export function shouldCompact(session, policy, now = new Date()) {
39
+ const noCompact = { compact: false, reason: '', handoff: '' };
40
+ // Check maxRuns
41
+ if (policy.maxRuns !== undefined && session.runCount >= policy.maxRuns) {
42
+ return {
43
+ compact: true,
44
+ reason: `Run count (${session.runCount}) reached threshold (${policy.maxRuns})`,
45
+ handoff: '',
46
+ };
47
+ }
48
+ // Check maxInputTokens
49
+ if (policy.maxInputTokens !== undefined && session.inputTokens >= policy.maxInputTokens) {
50
+ return {
51
+ compact: true,
52
+ reason: `Input tokens (${session.inputTokens}) reached threshold (${policy.maxInputTokens})`,
53
+ handoff: '',
54
+ };
55
+ }
56
+ // Check maxAge
57
+ if (policy.maxAge !== undefined) {
58
+ const maxMs = parseDuration(policy.maxAge);
59
+ if (maxMs !== undefined) {
60
+ const startedAt = new Date(session.startedAt).getTime();
61
+ const elapsed = now.getTime() - startedAt;
62
+ if (elapsed >= maxMs) {
63
+ return {
64
+ compact: true,
65
+ reason: `Session age (${Math.round(elapsed / 60_000)}m) reached threshold (${policy.maxAge})`,
66
+ handoff: '',
67
+ };
68
+ }
69
+ }
70
+ }
71
+ return noCompact;
72
+ }
73
+ //# sourceMappingURL=compaction-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-evaluator.js","sourceRoot":"","sources":["../../src/session/compaction-evaluator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAE1C,MAAM,WAAW,GAA2B;IAC1C,EAAE,EAAE,CAAC;IACL,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,UAAU;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAqB,EACrB,MAAwB,EACxB,MAAY,IAAI,IAAI,EAAE;IAEtB,MAAM,SAAS,GAAqB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAEhF,gBAAgB;IAChB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,cAAc,OAAO,CAAC,QAAQ,wBAAwB,MAAM,CAAC,OAAO,GAAG;YAC/E,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACxF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,iBAAiB,OAAO,CAAC,WAAW,wBAAwB,MAAM,CAAC,cAAc,GAAG;YAC5F,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED,eAAe;IACf,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC;YAC1C,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,yBAAyB,MAAM,CAAC,MAAM,GAAG;oBAC7F,OAAO,EAAE,EAAE;iBACZ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Session Compaction Policy — types and defaults for session rotation.
3
+ *
4
+ * Three thresholds determine when a session should be compacted:
5
+ * - maxRuns: tool call / interaction count
6
+ * - maxInputTokens: cumulative input token count
7
+ * - maxAge: wall-clock duration (ISO 8601 duration string, e.g. '72h')
8
+ */
9
+ /** Policy thresholds — all optional, merged from three levels. */
10
+ export interface CompactionPolicy {
11
+ /** Maximum number of runs (tool calls / interactions) before compaction. */
12
+ maxRuns?: number;
13
+ /** Maximum cumulative input tokens before compaction. */
14
+ maxInputTokens?: number;
15
+ /** Maximum wall-clock age as an ISO 8601-ish duration string (e.g. '72h', '30m', '7d'). */
16
+ maxAge?: string;
17
+ }
18
+ /** Result of evaluating whether compaction is needed. */
19
+ export interface CompactionResult {
20
+ /** Whether compaction should happen. */
21
+ compact: boolean;
22
+ /** Human-readable reason (empty string when compact is false). */
23
+ reason: string;
24
+ /** Pre-rendered handoff markdown (empty string when compact is false). */
25
+ handoff: string;
26
+ }
27
+ /** State snapshot of the current session, used for evaluation. */
28
+ export interface SessionState {
29
+ /** Number of runs (tool calls) so far. */
30
+ runCount: number;
31
+ /** Cumulative input tokens consumed. */
32
+ inputTokens: number;
33
+ /** ISO 8601 timestamp when the session started. */
34
+ startedAt: string;
35
+ }
36
+ /** Structured handoff note persisted on rotation. */
37
+ export interface HandoffNote {
38
+ /** ISO 8601 timestamp when the session was rotated. */
39
+ rotatedAt: string;
40
+ /** Why the session was rotated. */
41
+ reason: string;
42
+ /** Description of work in progress at rotation time. */
43
+ inProgress: string;
44
+ /** Key decisions made during the session. */
45
+ keyDecisions: string[];
46
+ /** Files modified during the session. */
47
+ filesModified: string[];
48
+ }
49
+ export declare const ENGINE_DEFAULTS: Required<CompactionPolicy>;
50
+ //# sourceMappingURL=compaction-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-policy.d.ts","sourceRoot":"","sources":["../../src/session/compaction-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yCAAyC;IACzC,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAMD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,gBAAgB,CAItD,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Session Compaction Policy — types and defaults for session rotation.
3
+ *
4
+ * Three thresholds determine when a session should be compacted:
5
+ * - maxRuns: tool call / interaction count
6
+ * - maxInputTokens: cumulative input token count
7
+ * - maxAge: wall-clock duration (ISO 8601 duration string, e.g. '72h')
8
+ */
9
+ // =============================================================================
10
+ // ENGINE DEFAULTS
11
+ // =============================================================================
12
+ export const ENGINE_DEFAULTS = {
13
+ maxRuns: 200,
14
+ maxInputTokens: 2_000_000,
15
+ maxAge: '72h',
16
+ };
17
+ //# sourceMappingURL=compaction-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-policy.js","sourceRoot":"","sources":["../../src/session/compaction-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkDH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,OAAO,EAAE,GAAG;IACZ,cAAc,EAAE,SAAS;IACzB,MAAM,EAAE,KAAK;CACd,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Handoff Renderer — converts a HandoffNote into markdown for injection
3
+ * into the next session's context.
4
+ *
5
+ * Omits empty sections gracefully.
6
+ */
7
+ import type { HandoffNote } from './compaction-policy.js';
8
+ /**
9
+ * Render a HandoffNote as markdown.
10
+ *
11
+ * Sections:
12
+ * - Session Handoff (header)
13
+ * - Rotated At
14
+ * - Reason
15
+ * - In Progress
16
+ * - Key Decisions
17
+ * - Files Modified
18
+ *
19
+ * Empty sections are omitted entirely.
20
+ */
21
+ export declare function renderHandoff(note: HandoffNote): string;
22
+ //# sourceMappingURL=handoff-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff-renderer.d.ts","sourceRoot":"","sources":["../../src/session/handoff-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAiCvD"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Handoff Renderer — converts a HandoffNote into markdown for injection
3
+ * into the next session's context.
4
+ *
5
+ * Omits empty sections gracefully.
6
+ */
7
+ /**
8
+ * Render a HandoffNote as markdown.
9
+ *
10
+ * Sections:
11
+ * - Session Handoff (header)
12
+ * - Rotated At
13
+ * - Reason
14
+ * - In Progress
15
+ * - Key Decisions
16
+ * - Files Modified
17
+ *
18
+ * Empty sections are omitted entirely.
19
+ */
20
+ export function renderHandoff(note) {
21
+ const lines = ['# Session Handoff', ''];
22
+ lines.push(`**Rotated:** ${note.rotatedAt}`);
23
+ lines.push(`**Reason:** ${note.reason}`);
24
+ lines.push('');
25
+ if (note.inProgress) {
26
+ lines.push('## In Progress');
27
+ lines.push('');
28
+ lines.push(note.inProgress);
29
+ lines.push('');
30
+ }
31
+ if (note.keyDecisions.length > 0) {
32
+ lines.push('## Key Decisions');
33
+ lines.push('');
34
+ for (const decision of note.keyDecisions) {
35
+ lines.push(`- ${decision}`);
36
+ }
37
+ lines.push('');
38
+ }
39
+ if (note.filesModified.length > 0) {
40
+ lines.push('## Files Modified');
41
+ lines.push('');
42
+ for (const file of note.filesModified) {
43
+ lines.push(`- \`${file}\``);
44
+ }
45
+ lines.push('');
46
+ }
47
+ return lines.join('\n').trimEnd() + '\n';
48
+ }
49
+ //# sourceMappingURL=handoff-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff-renderer.js","sourceRoot":"","sources":["../../src/session/handoff-renderer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC7C,MAAM,KAAK,GAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAElD,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;QAC9B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type { CompactionPolicy, CompactionResult, SessionState, HandoffNote, } from './compaction-policy.js';
2
+ export { ENGINE_DEFAULTS } from './compaction-policy.js';
3
+ export { shouldCompact, parseDuration } from './compaction-evaluator.js';
4
+ export { resolvePolicy } from './policy-resolver.js';
5
+ export { renderHandoff } from './handoff-renderer.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { ENGINE_DEFAULTS } from './compaction-policy.js';
2
+ export { shouldCompact, parseDuration } from './compaction-evaluator.js';
3
+ export { resolvePolicy } from './policy-resolver.js';
4
+ export { renderHandoff } from './handoff-renderer.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Policy Resolver — three-level merge for compaction policies.
3
+ *
4
+ * Merge order (highest to lowest priority):
5
+ * 1. Agent config (agent.yaml → engine.compactionPolicy)
6
+ * 2. Adapter defaults (runtime adapter may provide defaults)
7
+ * 3. Engine defaults (hardcoded fallback)
8
+ *
9
+ * Individual fields override — not whole-object replacement.
10
+ */
11
+ import type { CompactionPolicy } from './compaction-policy.js';
12
+ /**
13
+ * Resolve a final CompactionPolicy by merging three levels.
14
+ *
15
+ * Each level can provide partial overrides. Fields from higher-priority
16
+ * levels win over lower-priority ones. Missing fields fall through to
17
+ * the next level, bottoming out at ENGINE_DEFAULTS.
18
+ */
19
+ export declare function resolvePolicy(agentConfig?: Partial<CompactionPolicy>, adapterDefaults?: Partial<CompactionPolicy>): Required<CompactionPolicy>;
20
+ //# sourceMappingURL=policy-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-resolver.d.ts","sourceRoot":"","sources":["../../src/session/policy-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACvC,eAAe,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAC1C,QAAQ,CAAC,gBAAgB,CAAC,CAS5B"}