@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.
- package/dist/adapters/claude-code-adapter.d.ts +27 -0
- package/dist/adapters/claude-code-adapter.d.ts.map +1 -0
- package/dist/adapters/claude-code-adapter.js +111 -0
- package/dist/adapters/claude-code-adapter.js.map +1 -0
- package/dist/adapters/index.d.ts +9 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +10 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/registry.d.ts +21 -0
- package/dist/adapters/registry.d.ts.map +1 -0
- package/dist/adapters/registry.js +44 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/adapters/types.d.ts +93 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +10 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/brain/brain.d.ts +12 -1
- package/dist/brain/brain.d.ts.map +1 -1
- package/dist/brain/brain.js +106 -44
- package/dist/brain/brain.js.map +1 -1
- package/dist/brain/intelligence.d.ts.map +1 -1
- package/dist/brain/intelligence.js +36 -30
- package/dist/brain/intelligence.js.map +1 -1
- package/dist/chat/agent-loop.js +1 -1
- package/dist/chat/agent-loop.js.map +1 -1
- package/dist/chat/notifications.d.ts.map +1 -1
- package/dist/chat/notifications.js +4 -0
- package/dist/chat/notifications.js.map +1 -1
- package/dist/control/intent-router.d.ts +1 -0
- package/dist/control/intent-router.d.ts.map +1 -1
- package/dist/control/intent-router.js +11 -5
- package/dist/control/intent-router.js.map +1 -1
- package/dist/curator/curator.d.ts +4 -0
- package/dist/curator/curator.d.ts.map +1 -1
- package/dist/curator/curator.js +141 -27
- package/dist/curator/curator.js.map +1 -1
- package/dist/index.d.ts +22 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/llm/llm-client.d.ts.map +1 -1
- package/dist/llm/llm-client.js +1 -0
- package/dist/llm/llm-client.js.map +1 -1
- package/dist/packs/index.d.ts +3 -2
- package/dist/packs/index.d.ts.map +1 -1
- package/dist/packs/index.js +3 -2
- package/dist/packs/index.js.map +1 -1
- package/dist/packs/lockfile.d.ts +23 -1
- package/dist/packs/lockfile.d.ts.map +1 -1
- package/dist/packs/lockfile.js +50 -4
- package/dist/packs/lockfile.js.map +1 -1
- package/dist/packs/pack-installer.d.ts +10 -0
- package/dist/packs/pack-installer.d.ts.map +1 -1
- package/dist/packs/pack-installer.js +69 -2
- package/dist/packs/pack-installer.js.map +1 -1
- package/dist/packs/pack-lifecycle.d.ts +50 -0
- package/dist/packs/pack-lifecycle.d.ts.map +1 -0
- package/dist/packs/pack-lifecycle.js +91 -0
- package/dist/packs/pack-lifecycle.js.map +1 -0
- package/dist/packs/types.d.ts +76 -29
- package/dist/packs/types.d.ts.map +1 -1
- package/dist/packs/types.js +9 -0
- package/dist/packs/types.js.map +1 -1
- package/dist/persistence/sqlite-provider.d.ts +5 -1
- package/dist/persistence/sqlite-provider.d.ts.map +1 -1
- package/dist/persistence/sqlite-provider.js +22 -2
- package/dist/persistence/sqlite-provider.js.map +1 -1
- package/dist/planning/github-projection.d.ts +11 -9
- package/dist/planning/github-projection.d.ts.map +1 -1
- package/dist/planning/github-projection.js +47 -43
- package/dist/planning/github-projection.js.map +1 -1
- package/dist/planning/goal-ancestry.d.ts +72 -0
- package/dist/planning/goal-ancestry.d.ts.map +1 -0
- package/dist/planning/goal-ancestry.js +137 -0
- package/dist/planning/goal-ancestry.js.map +1 -0
- package/dist/planning/plan-lifecycle.d.ts +2 -0
- package/dist/planning/plan-lifecycle.d.ts.map +1 -1
- package/dist/planning/plan-lifecycle.js +1 -0
- package/dist/planning/plan-lifecycle.js.map +1 -1
- package/dist/planning/planner-types.d.ts +2 -0
- package/dist/planning/planner-types.d.ts.map +1 -1
- package/dist/plugins/types.d.ts +21 -21
- package/dist/queue/pipeline-runner.d.ts.map +1 -1
- package/dist/queue/pipeline-runner.js +4 -0
- package/dist/queue/pipeline-runner.js.map +1 -1
- package/dist/runtime/context-health.d.ts +14 -1
- package/dist/runtime/context-health.d.ts.map +1 -1
- package/dist/runtime/context-health.js +30 -2
- package/dist/runtime/context-health.js.map +1 -1
- package/dist/runtime/curator-extra-ops.d.ts.map +1 -1
- package/dist/runtime/curator-extra-ops.js +9 -1
- package/dist/runtime/curator-extra-ops.js.map +1 -1
- package/dist/runtime/facades/memory-facade.d.ts.map +1 -1
- package/dist/runtime/facades/memory-facade.js +169 -0
- package/dist/runtime/facades/memory-facade.js.map +1 -1
- package/dist/runtime/orchestrate-ops.d.ts.map +1 -1
- package/dist/runtime/orchestrate-ops.js +133 -4
- package/dist/runtime/orchestrate-ops.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +128 -90
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/session-briefing.d.ts.map +1 -1
- package/dist/runtime/session-briefing.js +44 -11
- package/dist/runtime/session-briefing.js.map +1 -1
- package/dist/runtime/shutdown-registry.d.ts +36 -0
- package/dist/runtime/shutdown-registry.d.ts.map +1 -0
- package/dist/runtime/shutdown-registry.js +74 -0
- package/dist/runtime/shutdown-registry.js.map +1 -0
- package/dist/runtime/types.d.ts +10 -1
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/session/compaction-evaluator.d.ts +20 -0
- package/dist/session/compaction-evaluator.d.ts.map +1 -0
- package/dist/session/compaction-evaluator.js +73 -0
- package/dist/session/compaction-evaluator.js.map +1 -0
- package/dist/session/compaction-policy.d.ts +50 -0
- package/dist/session/compaction-policy.d.ts.map +1 -0
- package/dist/session/compaction-policy.js +17 -0
- package/dist/session/compaction-policy.js.map +1 -0
- package/dist/session/handoff-renderer.d.ts +22 -0
- package/dist/session/handoff-renderer.d.ts.map +1 -0
- package/dist/session/handoff-renderer.js +49 -0
- package/dist/session/handoff-renderer.js.map +1 -0
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +5 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/policy-resolver.d.ts +20 -0
- package/dist/session/policy-resolver.d.ts.map +1 -0
- package/dist/session/policy-resolver.js +28 -0
- package/dist/session/policy-resolver.js.map +1 -0
- package/dist/skills/sync-skills.d.ts +27 -0
- package/dist/skills/sync-skills.d.ts.map +1 -1
- package/dist/skills/sync-skills.js +92 -1
- package/dist/skills/sync-skills.js.map +1 -1
- package/dist/skills/trust-classifier.d.ts +32 -0
- package/dist/skills/trust-classifier.d.ts.map +1 -0
- package/dist/skills/trust-classifier.js +109 -0
- package/dist/skills/trust-classifier.js.map +1 -0
- package/dist/subagent/concurrency-manager.d.ts +29 -0
- package/dist/subagent/concurrency-manager.d.ts.map +1 -0
- package/dist/subagent/concurrency-manager.js +73 -0
- package/dist/subagent/concurrency-manager.js.map +1 -0
- package/dist/subagent/dispatcher.d.ts +45 -0
- package/dist/subagent/dispatcher.d.ts.map +1 -0
- package/dist/subagent/dispatcher.js +271 -0
- package/dist/subagent/dispatcher.js.map +1 -0
- package/dist/subagent/index.d.ts +14 -0
- package/dist/subagent/index.d.ts.map +1 -0
- package/dist/subagent/index.js +15 -0
- package/dist/subagent/index.js.map +1 -0
- package/dist/subagent/orphan-reaper.d.ts +37 -0
- package/dist/subagent/orphan-reaper.d.ts.map +1 -0
- package/dist/subagent/orphan-reaper.js +71 -0
- package/dist/subagent/orphan-reaper.js.map +1 -0
- package/dist/subagent/result-aggregator.d.ts +7 -0
- package/dist/subagent/result-aggregator.d.ts.map +1 -0
- package/dist/subagent/result-aggregator.js +57 -0
- package/dist/subagent/result-aggregator.js.map +1 -0
- package/dist/subagent/task-checkout.d.ts +36 -0
- package/dist/subagent/task-checkout.d.ts.map +1 -0
- package/dist/subagent/task-checkout.js +52 -0
- package/dist/subagent/task-checkout.js.map +1 -0
- package/dist/subagent/types.d.ts +114 -0
- package/dist/subagent/types.d.ts.map +1 -0
- package/dist/subagent/types.js +9 -0
- package/dist/subagent/types.js.map +1 -0
- package/dist/subagent/workspace-resolver.d.ts +35 -0
- package/dist/subagent/workspace-resolver.d.ts.map +1 -0
- package/dist/subagent/workspace-resolver.js +99 -0
- package/dist/subagent/workspace-resolver.js.map +1 -0
- package/dist/transport/http-server.d.ts.map +1 -1
- package/dist/transport/http-server.js +49 -3
- package/dist/transport/http-server.js.map +1 -1
- package/dist/transport/ws-server.d.ts.map +1 -1
- package/dist/transport/ws-server.js +7 -0
- package/dist/transport/ws-server.js.map +1 -1
- package/dist/vault/linking.d.ts +3 -4
- package/dist/vault/linking.d.ts.map +1 -1
- package/dist/vault/linking.js +79 -32
- package/dist/vault/linking.js.map +1 -1
- package/dist/vault/vault-maintenance.d.ts.map +1 -1
- package/dist/vault/vault-maintenance.js +7 -14
- package/dist/vault/vault-maintenance.js.map +1 -1
- package/dist/vault/vault-memories.d.ts.map +1 -1
- package/dist/vault/vault-memories.js +19 -9
- package/dist/vault/vault-memories.js.map +1 -1
- package/dist/vault/vault-schema.d.ts +1 -0
- package/dist/vault/vault-schema.d.ts.map +1 -1
- package/dist/vault/vault-schema.js +20 -0
- package/dist/vault/vault-schema.js.map +1 -1
- package/dist/vault/vault.d.ts.map +1 -1
- package/dist/vault/vault.js +7 -3
- package/dist/vault/vault.js.map +1 -1
- package/package.json +5 -2
- package/src/__tests__/adapters/claude-code-adapter.test.ts +167 -0
- package/src/__tests__/adapters/registry.test.ts +100 -0
- package/src/__tests__/packs/pack-lifecycle.test.ts +379 -0
- package/src/__tests__/subagent/concurrency-manager.test.ts +132 -0
- package/src/__tests__/subagent/dispatcher.test.ts +195 -0
- package/src/__tests__/subagent/orphan-reaper.test.ts +141 -0
- package/src/__tests__/subagent/result-aggregator.test.ts +141 -0
- package/src/__tests__/subagent/task-checkout.test.ts +86 -0
- package/src/__tests__/subagent/workspace-resolver.test.ts +138 -0
- package/src/adapters/claude-code-adapter.ts +163 -0
- package/src/adapters/index.ts +22 -0
- package/src/adapters/registry.ts +53 -0
- package/src/adapters/types.ts +114 -0
- package/src/curator/curator.ts +1 -0
- package/src/index.ts +78 -1
- package/src/packs/index.ts +9 -1
- package/src/packs/lockfile.ts +70 -5
- package/src/packs/pack-installer.ts +78 -2
- package/src/packs/pack-lifecycle.ts +115 -0
- package/src/packs/pack-lockfile.test.ts +1 -1
- package/src/packs/pack-system.test.ts +1 -1
- package/src/packs/types.ts +72 -2
- package/src/persistence/sqlite-provider.ts +26 -2
- package/src/planning/github-projection.ts +6 -0
- package/src/planning/goal-ancestry.test.ts +427 -0
- package/src/planning/goal-ancestry.ts +187 -0
- package/src/planning/plan-lifecycle.ts +3 -0
- package/src/planning/planner-types.ts +2 -0
- package/src/runtime/admin-setup-ops.test.ts +9 -4
- package/src/runtime/context-health.ts +42 -2
- package/src/runtime/orchestrate-ops.ts +153 -1
- package/src/runtime/runtime.ts +15 -0
- package/src/runtime/session-briefing.test.ts +94 -2
- package/src/runtime/session-briefing.ts +48 -12
- package/src/runtime/types.ts +6 -0
- package/src/session/compaction-evaluator.ts +87 -0
- package/src/session/compaction-policy.ts +66 -0
- package/src/session/compaction.test.ts +259 -0
- package/src/session/handoff-renderer.ts +56 -0
- package/src/session/index.ts +12 -0
- package/src/session/policy-resolver.ts +34 -0
- package/src/skills/sync-skills.ts +114 -1
- package/src/skills/trust-classifier.test.ts +252 -0
- package/src/skills/trust-classifier.ts +127 -0
- package/src/subagent/concurrency-manager.ts +89 -0
- package/src/subagent/dispatcher.ts +342 -0
- package/src/subagent/index.ts +28 -0
- package/src/subagent/orphan-reaper.ts +82 -0
- package/src/subagent/result-aggregator.ts +66 -0
- package/src/subagent/task-checkout.ts +60 -0
- package/src/subagent/types.ts +138 -0
- package/src/subagent/workspace-resolver.ts +117 -0
- package/src/vault/vault-scaling.test.ts +3 -2
- package/vitest.config.ts +2 -0
- 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,
|
|
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
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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})${
|
|
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"}
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -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
|
|
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;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|