@nxuss/lemma 1.44.0 → 1.45.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/README.md +25 -7
- package/bin/brain-ingest.js +30 -13
- package/dist/cjs/cli/hostHooks.d.ts +38 -7
- package/dist/cjs/cli/hostHooks.d.ts.map +1 -1
- package/dist/cjs/cli/hostHooks.js +189 -9
- package/dist/cjs/cli/hostHooks.js.map +1 -1
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +13 -16
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/cloud/billing/stripeApi.d.ts.map +1 -1
- package/dist/cjs/cloud/billing/stripeApi.js +6 -1
- package/dist/cjs/cloud/billing/stripeApi.js.map +1 -1
- package/dist/cjs/cloud/billing/stripeWebhook.d.ts.map +1 -1
- package/dist/cjs/cloud/billing/stripeWebhook.js +5 -0
- package/dist/cjs/cloud/billing/stripeWebhook.js.map +1 -1
- package/dist/cjs/cloud/console/consoleRouter.d.ts +2 -2
- package/dist/cjs/cloud/console/consoleRouter.d.ts.map +1 -1
- package/dist/cjs/cloud/console/consoleRouter.js +39 -1
- package/dist/cjs/cloud/console/consoleRouter.js.map +1 -1
- package/dist/cjs/cloud/identity/PlanPolicy.d.ts +26 -5
- package/dist/cjs/cloud/identity/PlanPolicy.d.ts.map +1 -1
- package/dist/cjs/cloud/identity/PlanPolicy.js +56 -16
- package/dist/cjs/cloud/identity/PlanPolicy.js.map +1 -1
- package/dist/cjs/cloud/identity/TenantResolver.d.ts +2 -0
- package/dist/cjs/cloud/identity/TenantResolver.d.ts.map +1 -1
- package/dist/cjs/cloud/identity/TenantResolver.js +1 -1
- package/dist/cjs/cloud/identity/TenantResolver.js.map +1 -1
- package/dist/cjs/cloud/identity/authenticateV2.js +1 -1
- package/dist/cjs/cloud/identity/authenticateV2.js.map +1 -1
- package/dist/cjs/cloud/identity/identityStore.d.ts +11 -0
- package/dist/cjs/cloud/identity/identityStore.d.ts.map +1 -1
- package/dist/cjs/cloud/identity/identityStore.js +26 -9
- package/dist/cjs/cloud/identity/identityStore.js.map +1 -1
- package/dist/cjs/cloud/metering/PostgresLedgerStore.d.ts +3 -1
- package/dist/cjs/cloud/metering/PostgresLedgerStore.d.ts.map +1 -1
- package/dist/cjs/cloud/metering/PostgresLedgerStore.js +12 -0
- package/dist/cjs/cloud/metering/PostgresLedgerStore.js.map +1 -1
- package/dist/cjs/cloud/metering/UsageLedger.d.ts +37 -0
- package/dist/cjs/cloud/metering/UsageLedger.d.ts.map +1 -1
- package/dist/cjs/cloud/metering/UsageLedger.js +42 -0
- package/dist/cjs/cloud/metering/UsageLedger.js.map +1 -1
- package/dist/cjs/cloud/store/FileBrainStore.d.ts +5 -1
- package/dist/cjs/cloud/store/FileBrainStore.d.ts.map +1 -1
- package/dist/cjs/cloud/store/FileBrainStore.js +5 -0
- package/dist/cjs/cloud/store/FileBrainStore.js.map +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.d.ts +10 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.d.ts.map +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.js +28 -0
- package/dist/cjs/cloud/store/PostgresBrainStore.js.map +1 -1
- package/dist/cjs/cloud/store/memorySummary.d.ts +29 -0
- package/dist/cjs/cloud/store/memorySummary.d.ts.map +1 -0
- package/dist/cjs/cloud/store/memorySummary.js +66 -0
- package/dist/cjs/cloud/store/memorySummary.js.map +1 -0
- package/dist/cjs/cloud/v2/routes/admin.d.ts.map +1 -1
- package/dist/cjs/cloud/v2/routes/admin.js +20 -5
- package/dist/cjs/cloud/v2/routes/admin.js.map +1 -1
- package/dist/cjs/cloud/v2/routes/memories.js +1 -1
- package/dist/cjs/cloud/v2/routes/memories.js.map +1 -1
- package/dist/cjs/cloud/v2/routes/tenant.d.ts +1 -0
- package/dist/cjs/cloud/v2/routes/tenant.d.ts.map +1 -1
- package/dist/cjs/cloud/v2/routes/tenant.js +4 -1
- package/dist/cjs/cloud/v2/routes/tenant.js.map +1 -1
- package/dist/cjs/contracts/api-v2.types.d.ts +2 -0
- package/dist/cjs/contracts/api-v2.types.d.ts.map +1 -1
- package/dist/cjs/contracts/store.d.ts +35 -0
- package/dist/cjs/contracts/store.d.ts.map +1 -1
- package/dist/cjs/mcp/index.js +4 -1
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/mcp/tools/misc.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/misc.js +2 -1
- package/dist/cjs/mcp/tools/misc.js.map +1 -1
- package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/workspace.js +4 -1
- package/dist/cjs/mcp/tools/workspace.js.map +1 -1
- package/dist/cjs/mcp/tools.d.ts +10 -0
- package/dist/cjs/mcp/tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools.js +47 -12
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
- package/dist/cjs/subconscious/HostRecall.js +11 -4
- package/dist/cjs/subconscious/HostRecall.js.map +1 -1
- package/dist/cjs/utils/FixCapture.d.ts +7 -5
- package/dist/cjs/utils/FixCapture.d.ts.map +1 -1
- package/dist/cjs/utils/FixCapture.js +64 -32
- package/dist/cjs/utils/FixCapture.js.map +1 -1
- package/dist/cjs/utils/NoTerminal.d.ts +27 -0
- package/dist/cjs/utils/NoTerminal.d.ts.map +1 -0
- package/dist/cjs/utils/NoTerminal.js +37 -0
- package/dist/cjs/utils/NoTerminal.js.map +1 -0
- package/dist/cjs/utils/OpenCodeSession.d.ts +70 -0
- package/dist/cjs/utils/OpenCodeSession.d.ts.map +1 -0
- package/dist/cjs/utils/OpenCodeSession.js +154 -0
- package/dist/cjs/utils/OpenCodeSession.js.map +1 -0
- package/dist/cjs/utils/SessionCapture.d.ts +29 -7
- package/dist/cjs/utils/SessionCapture.d.ts.map +1 -1
- package/dist/cjs/utils/SessionCapture.js +180 -32
- package/dist/cjs/utils/SessionCapture.js.map +1 -1
- package/dist/cjs/utils/TestAutofixInterceptor.d.ts.map +1 -1
- package/dist/cjs/utils/TestAutofixInterceptor.js +2 -0
- package/dist/cjs/utils/TestAutofixInterceptor.js.map +1 -1
- package/dist/esm/cli/hostHooks.d.ts +38 -7
- package/dist/esm/cli/hostHooks.d.ts.map +1 -1
- package/dist/esm/cli/hostHooks.js +187 -8
- package/dist/esm/cli/hostHooks.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +14 -17
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/cloud/billing/stripeApi.d.ts.map +1 -1
- package/dist/esm/cloud/billing/stripeApi.js +6 -1
- package/dist/esm/cloud/billing/stripeApi.js.map +1 -1
- package/dist/esm/cloud/billing/stripeWebhook.d.ts.map +1 -1
- package/dist/esm/cloud/billing/stripeWebhook.js +5 -0
- package/dist/esm/cloud/billing/stripeWebhook.js.map +1 -1
- package/dist/esm/cloud/console/consoleRouter.d.ts +2 -2
- package/dist/esm/cloud/console/consoleRouter.d.ts.map +1 -1
- package/dist/esm/cloud/console/consoleRouter.js +39 -1
- package/dist/esm/cloud/console/consoleRouter.js.map +1 -1
- package/dist/esm/cloud/identity/PlanPolicy.d.ts +26 -5
- package/dist/esm/cloud/identity/PlanPolicy.d.ts.map +1 -1
- package/dist/esm/cloud/identity/PlanPolicy.js +54 -15
- package/dist/esm/cloud/identity/PlanPolicy.js.map +1 -1
- package/dist/esm/cloud/identity/TenantResolver.d.ts +2 -0
- package/dist/esm/cloud/identity/TenantResolver.d.ts.map +1 -1
- package/dist/esm/cloud/identity/TenantResolver.js +1 -1
- package/dist/esm/cloud/identity/TenantResolver.js.map +1 -1
- package/dist/esm/cloud/identity/authenticateV2.js +1 -1
- package/dist/esm/cloud/identity/authenticateV2.js.map +1 -1
- package/dist/esm/cloud/identity/identityStore.d.ts +11 -0
- package/dist/esm/cloud/identity/identityStore.d.ts.map +1 -1
- package/dist/esm/cloud/identity/identityStore.js +26 -9
- package/dist/esm/cloud/identity/identityStore.js.map +1 -1
- package/dist/esm/cloud/metering/PostgresLedgerStore.d.ts +3 -1
- package/dist/esm/cloud/metering/PostgresLedgerStore.d.ts.map +1 -1
- package/dist/esm/cloud/metering/PostgresLedgerStore.js +12 -0
- package/dist/esm/cloud/metering/PostgresLedgerStore.js.map +1 -1
- package/dist/esm/cloud/metering/UsageLedger.d.ts +37 -0
- package/dist/esm/cloud/metering/UsageLedger.d.ts.map +1 -1
- package/dist/esm/cloud/metering/UsageLedger.js +41 -0
- package/dist/esm/cloud/metering/UsageLedger.js.map +1 -1
- package/dist/esm/cloud/store/FileBrainStore.d.ts +5 -1
- package/dist/esm/cloud/store/FileBrainStore.d.ts.map +1 -1
- package/dist/esm/cloud/store/FileBrainStore.js +5 -0
- package/dist/esm/cloud/store/FileBrainStore.js.map +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.d.ts +10 -1
- package/dist/esm/cloud/store/PostgresBrainStore.d.ts.map +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.js +28 -0
- package/dist/esm/cloud/store/PostgresBrainStore.js.map +1 -1
- package/dist/esm/cloud/store/memorySummary.d.ts +29 -0
- package/dist/esm/cloud/store/memorySummary.d.ts.map +1 -0
- package/dist/esm/cloud/store/memorySummary.js +60 -0
- package/dist/esm/cloud/store/memorySummary.js.map +1 -0
- package/dist/esm/cloud/v2/routes/admin.d.ts.map +1 -1
- package/dist/esm/cloud/v2/routes/admin.js +20 -5
- package/dist/esm/cloud/v2/routes/admin.js.map +1 -1
- package/dist/esm/cloud/v2/routes/memories.js +1 -1
- package/dist/esm/cloud/v2/routes/memories.js.map +1 -1
- package/dist/esm/cloud/v2/routes/tenant.d.ts +1 -0
- package/dist/esm/cloud/v2/routes/tenant.d.ts.map +1 -1
- package/dist/esm/cloud/v2/routes/tenant.js +4 -1
- package/dist/esm/cloud/v2/routes/tenant.js.map +1 -1
- package/dist/esm/contracts/api-v2.types.d.ts +2 -0
- package/dist/esm/contracts/api-v2.types.d.ts.map +1 -1
- package/dist/esm/contracts/store.d.ts +35 -0
- package/dist/esm/contracts/store.d.ts.map +1 -1
- package/dist/esm/mcp/index.js +5 -2
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/tools/misc.d.ts.map +1 -1
- package/dist/esm/mcp/tools/misc.js +2 -1
- package/dist/esm/mcp/tools/misc.js.map +1 -1
- package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/esm/mcp/tools/workspace.js +4 -1
- package/dist/esm/mcp/tools/workspace.js.map +1 -1
- package/dist/esm/mcp/tools.d.ts +10 -0
- package/dist/esm/mcp/tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools.js +46 -12
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
- package/dist/esm/subconscious/HostRecall.js +11 -4
- package/dist/esm/subconscious/HostRecall.js.map +1 -1
- package/dist/esm/utils/FixCapture.d.ts +7 -5
- package/dist/esm/utils/FixCapture.d.ts.map +1 -1
- package/dist/esm/utils/FixCapture.js +64 -33
- package/dist/esm/utils/FixCapture.js.map +1 -1
- package/dist/esm/utils/NoTerminal.d.ts +27 -0
- package/dist/esm/utils/NoTerminal.d.ts.map +1 -0
- package/dist/esm/utils/NoTerminal.js +33 -0
- package/dist/esm/utils/NoTerminal.js.map +1 -0
- package/dist/esm/utils/OpenCodeSession.d.ts +70 -0
- package/dist/esm/utils/OpenCodeSession.d.ts.map +1 -0
- package/dist/esm/utils/OpenCodeSession.js +146 -0
- package/dist/esm/utils/OpenCodeSession.js.map +1 -0
- package/dist/esm/utils/SessionCapture.d.ts +29 -7
- package/dist/esm/utils/SessionCapture.d.ts.map +1 -1
- package/dist/esm/utils/SessionCapture.js +180 -32
- package/dist/esm/utils/SessionCapture.js.map +1 -1
- package/dist/esm/utils/TestAutofixInterceptor.d.ts.map +1 -1
- package/dist/esm/utils/TestAutofixInterceptor.js +2 -0
- package/dist/esm/utils/TestAutofixInterceptor.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode sessions → the hand-off. OpenCode has no SessionEnd hook and no transcript file: its
|
|
3
|
+
* plugin gets the session from the SDK (`client.session.messages`, `client.session.children`) as
|
|
4
|
+
* `{ info, parts }` messages, and subagents are child sessions the `task` tool creates. The plugin
|
|
5
|
+
* `lemma init` installs sends that snapshot here when the session goes idle (and before a
|
|
6
|
+
* compaction); it is rewritten as a Claude Code shaped transcript, subagents beside it in
|
|
7
|
+
* `<name>/subagents/agent-<id>.jsonl` + `.meta.json`, so captureSession builds the same hand-off
|
|
8
|
+
* it builds for Claude Code instead of a second implementation drifting from the first.
|
|
9
|
+
*
|
|
10
|
+
* Measured on OpenCode 1.19.3 (session snapshot from a real `opencode run` with a `task` subagent):
|
|
11
|
+
* tool parts carry `state.input` with `filePath` (read/edit/write) or `command` (bash), and `patch`
|
|
12
|
+
* parts list the files the step changed on disk, which also catches edits made through bash.
|
|
13
|
+
*/
|
|
14
|
+
import fs from 'fs';
|
|
15
|
+
import os from 'os';
|
|
16
|
+
import path from 'path';
|
|
17
|
+
import { captureSession } from './SessionCapture.js';
|
|
18
|
+
import { compactRecall } from '../subconscious/HostRecall.js';
|
|
19
|
+
import { writeFileAtomic } from './AtomicFile.js';
|
|
20
|
+
const TRANSCRIPT_DIR = path.join(os.tmpdir(), 'lemma-opencode');
|
|
21
|
+
const KEEP_MS = 3 * 24 * 60 * 60 * 1000;
|
|
22
|
+
/** OpenCode tool ids → the names SessionCapture knows. MCP tools arrive as `<server>_<tool>`. */
|
|
23
|
+
const TOOL_NAMES = { read: 'Read', edit: 'Edit', write: 'Write', multiedit: 'MultiEdit', bash: 'Bash', task: 'Agent', grep: 'Grep', glob: 'Glob', list: 'LS' };
|
|
24
|
+
const FILE_TOOLS = new Set(['Read', 'Edit', 'Write', 'MultiEdit']);
|
|
25
|
+
function toolName(tool) {
|
|
26
|
+
if (TOOL_NAMES[tool])
|
|
27
|
+
return TOOL_NAMES[tool];
|
|
28
|
+
const lemma = /^lemma_(.+)$/.exec(tool);
|
|
29
|
+
return lemma ? `mcp__lemma__${lemma[1]}` : tool;
|
|
30
|
+
}
|
|
31
|
+
/** Files named in an apply_patch body (the tool GPT models get in OpenCode). */
|
|
32
|
+
function patchFiles(patchText) {
|
|
33
|
+
if (typeof patchText !== 'string')
|
|
34
|
+
return [];
|
|
35
|
+
return [...patchText.matchAll(/^\*\*\* (?:Add|Update|Delete) File: (.+)$/gm)].map((m) => m[1].trim());
|
|
36
|
+
}
|
|
37
|
+
const iso = (ms, fallback) => (typeof ms === 'number' && ms > 0 ? new Date(ms).toISOString() : fallback);
|
|
38
|
+
/** One OpenCode session as Claude Code transcript events (one JSON object per line). */
|
|
39
|
+
export function toClaudeEvents(messages, directory, sidechain) {
|
|
40
|
+
const lines = [];
|
|
41
|
+
const extra = sidechain ? { isSidechain: true, agentId: sidechain } : {};
|
|
42
|
+
const push = (timestamp, o) => lines.push(JSON.stringify({ timestamp, ...extra, ...o }));
|
|
43
|
+
const abs = (f) => path.resolve(directory, f);
|
|
44
|
+
let n = 0;
|
|
45
|
+
for (const m of messages ?? []) {
|
|
46
|
+
const role = m?.info?.role;
|
|
47
|
+
const at = iso(m?.info?.time?.created, new Date(0).toISOString());
|
|
48
|
+
for (const p of m?.parts ?? []) {
|
|
49
|
+
if (p?.type === 'text' && typeof p.text === 'string' && p.text.trim() && !p.synthetic) {
|
|
50
|
+
push(at, role === 'user'
|
|
51
|
+
? { type: 'user', message: { role: 'user', content: p.text } }
|
|
52
|
+
: { type: 'assistant', message: { role: 'assistant', content: [{ type: 'text', text: p.text }] } });
|
|
53
|
+
}
|
|
54
|
+
else if (p?.type === 'patch' && Array.isArray(p.files)) {
|
|
55
|
+
// The step's on-disk changes, whichever tool made them.
|
|
56
|
+
for (const f of p.files)
|
|
57
|
+
if (typeof f === 'string')
|
|
58
|
+
push(at, { type: 'assistant', message: { role: 'assistant', content: [{ type: 'tool_use', id: `patch-${n++}`, name: 'Edit', input: { file_path: abs(f) } }] } });
|
|
59
|
+
}
|
|
60
|
+
else if (p?.type === 'tool' && typeof p.tool === 'string') {
|
|
61
|
+
const st = p.state ?? {};
|
|
62
|
+
const start = iso(st.time?.start, at);
|
|
63
|
+
const name = toolName(p.tool);
|
|
64
|
+
const input = { ...(st.input && typeof st.input === 'object' ? st.input : {}) };
|
|
65
|
+
if (FILE_TOOLS.has(name) && typeof input.filePath === 'string')
|
|
66
|
+
input.file_path = abs(input.filePath);
|
|
67
|
+
const id = p.callID || `call-${n++}`;
|
|
68
|
+
const files = /^(apply_)?patch$/.test(p.tool) ? patchFiles(input.patchText) : [];
|
|
69
|
+
if (files.length) {
|
|
70
|
+
for (const f of files)
|
|
71
|
+
push(start, { type: 'assistant', message: { role: 'assistant', content: [{ type: 'tool_use', id: `${id}-${n++}`, name: 'Edit', input: { file_path: abs(f) } }] } });
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
push(start, { type: 'assistant', message: { role: 'assistant', content: [{ type: 'tool_use', id, name, input }] } });
|
|
75
|
+
if (st.status === 'completed' || st.status === 'error') {
|
|
76
|
+
const content = st.status === 'error' ? String(st.error ?? '') : String(st.output ?? '');
|
|
77
|
+
push(iso(st.time?.end, start), { type: 'user', message: { role: 'user', content: [{ type: 'tool_result', tool_use_id: id, content }] } });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return lines;
|
|
83
|
+
}
|
|
84
|
+
/** The description the parent gave each subagent: the `task` call whose metadata names the child session. */
|
|
85
|
+
function taskDescriptions(messages) {
|
|
86
|
+
const out = new Map();
|
|
87
|
+
for (const m of messages ?? [])
|
|
88
|
+
for (const p of m?.parts ?? []) {
|
|
89
|
+
if (p?.type !== 'tool' || p.tool !== 'task')
|
|
90
|
+
continue;
|
|
91
|
+
const child = p.state?.metadata?.sessionId;
|
|
92
|
+
const description = p.state?.input?.description;
|
|
93
|
+
if (typeof child === 'string' && typeof description === 'string')
|
|
94
|
+
out.set(child, description);
|
|
95
|
+
}
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
98
|
+
function prune(dir) {
|
|
99
|
+
try {
|
|
100
|
+
for (const name of fs.readdirSync(dir)) {
|
|
101
|
+
const f = path.join(dir, name);
|
|
102
|
+
if (Date.now() - fs.statSync(f).mtimeMs > KEEP_MS)
|
|
103
|
+
fs.rmSync(f, { recursive: true, force: true });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// a leftover temp file costs nothing
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/** Writes the snapshot as `<dir>/<session>.jsonl` plus its subagents, and returns the transcript path. */
|
|
111
|
+
export function writeClaudeTranscript(snap, dir = TRANSCRIPT_DIR) {
|
|
112
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
113
|
+
prune(dir);
|
|
114
|
+
const safe = (id) => id.replace(/[^A-Za-z0-9_-]/g, '_');
|
|
115
|
+
const base = path.join(dir, safe(snap.sessionID));
|
|
116
|
+
writeFileAtomic(`${base}.jsonl`, toClaudeEvents(snap.messages, snap.directory).join('\n'));
|
|
117
|
+
const subdir = path.join(base, 'subagents');
|
|
118
|
+
fs.rmSync(subdir, { recursive: true, force: true });
|
|
119
|
+
const descriptions = taskDescriptions(snap.messages);
|
|
120
|
+
for (const child of snap.children ?? []) {
|
|
121
|
+
const id = child?.session?.id;
|
|
122
|
+
if (typeof id !== 'string')
|
|
123
|
+
continue;
|
|
124
|
+
fs.mkdirSync(subdir, { recursive: true });
|
|
125
|
+
fs.writeFileSync(path.join(subdir, `agent-${safe(id)}.jsonl`), toClaudeEvents(child.messages, snap.directory, id).join('\n'));
|
|
126
|
+
const description = descriptions.get(id) ?? child.session.title?.replace(/\s*\(@\S+ subagent\)\s*$/, '');
|
|
127
|
+
fs.writeFileSync(path.join(subdir, `agent-${safe(id)}.meta.json`), JSON.stringify({ ...(child.session.agent ? { agentType: child.session.agent } : {}), ...(description ? { description } : {}) }));
|
|
128
|
+
}
|
|
129
|
+
return `${base}.jsonl`;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Save (or refresh) the session's hand-off. OpenCode has no session end: `session.idle` fires after
|
|
133
|
+
* every turn, so this runs in the mid-session mode (PreCompact's): it refreshes one hand-off in place
|
|
134
|
+
* and never marks the session done. `compacting` also returns the text to put back in the context.
|
|
135
|
+
*/
|
|
136
|
+
export function captureOpenCodeSession(snap, opts = {}) {
|
|
137
|
+
if (!snap || typeof snap.sessionID !== 'string' || typeof snap.directory !== 'string' || !Array.isArray(snap.messages))
|
|
138
|
+
return { skipped: 'no-transcript' };
|
|
139
|
+
const transcript = writeClaudeTranscript(snap);
|
|
140
|
+
const res = captureSession({ session_id: snap.sessionID, transcript_path: transcript, cwd: snap.directory }, snap.directory, undefined, { preCompact: true });
|
|
141
|
+
if (!opts.compacting)
|
|
142
|
+
return res;
|
|
143
|
+
const recall = compactRecall({ source: 'compact', session_id: snap.sessionID, cwd: snap.directory }, snap.directory);
|
|
144
|
+
return recall ? { ...res, text: recall.text } : res;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=OpenCodeSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenCodeSession.js","sourceRoot":"","sources":["../../../src/utils/OpenCodeSession.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAsB/C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC;AAChE,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,iGAAiG;AACjG,MAAM,UAAU,GAA2B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACvL,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAEnE,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,SAAkB;IACpC,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC7C,OAAO,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACxG,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,EAAsB,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAErI,wFAAwF;AACxF,MAAM,UAAU,cAAc,CAAC,QAA2B,EAAE,SAAiB,EAAE,SAAkB;IAC/F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAE,CAA0B,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1H,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;QAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBACtF,IAAI,CAAC,EAAE,EAAE,IAAI,KAAK,MAAM;oBACtB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9D,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACxG,CAAC;iBAAM,IAAI,CAAC,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,wDAAwD;gBACxD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;oBAAE,IAAI,OAAO,CAAC,KAAK,QAAQ;wBAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACvN,CAAC;iBAAM,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5D,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAA4B,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBAAE,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtG,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,KAAK,MAAM,CAAC,IAAI,KAAK;wBAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3L,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrH,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;oBACvD,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;oBACzF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5I,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6GAA6G;AAC7G,SAAS,gBAAgB,CAAC,QAA2B;IACnD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,QAAQ,IAAI,EAAE;QAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACtD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC;YAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ;gBAAE,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO;gBAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;AACH,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,qBAAqB,CAAC,IAAsB,EAAE,MAAc,cAAc;IACxF,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,KAAK,CAAC,GAAG,CAAC,CAAC;IACX,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAClD,eAAe,CAAC,GAAG,IAAI,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9B,IAAI,OAAO,EAAE,KAAK,QAAQ;YAAE,SAAS;QACrC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9H,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QACzG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtM,CAAC;IACD,OAAO,GAAG,IAAI,QAAQ,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAsB,EAAE,OAAiC,EAAE;IAChG,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC5J,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9J,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC;IACjC,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACrH,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC"}
|
|
@@ -33,14 +33,36 @@ export interface SessionDigest {
|
|
|
33
33
|
/** Timestamp of the first transcript event: where "commits made during this session" starts. */
|
|
34
34
|
startedAt?: string;
|
|
35
35
|
/** The last test/build/lint run the agent made and how it ended; unset when the output didn't say. */
|
|
36
|
-
lastVerdict?:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
headline: string;
|
|
40
|
-
};
|
|
36
|
+
lastVerdict?: Verdict;
|
|
37
|
+
/** What the session's subagents did, when asked for (digestTranscript's `subagents` option). Not counted in the fields above. */
|
|
38
|
+
subagents?: SubagentDigest[];
|
|
41
39
|
}
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
export interface Verdict {
|
|
41
|
+
command: string;
|
|
42
|
+
passed: boolean;
|
|
43
|
+
headline: string;
|
|
44
|
+
/** Timestamp of the run's result, when the transcript had one: which of several agents ran last. */
|
|
45
|
+
at?: string;
|
|
46
|
+
}
|
|
47
|
+
/** One subagent's share of the work, from its own transcript. */
|
|
48
|
+
export interface SubagentDigest {
|
|
49
|
+
agentId: string;
|
|
50
|
+
/** What the parent called it (the Agent tool's description), from the host's meta file. */
|
|
51
|
+
description?: string;
|
|
52
|
+
agentType?: string;
|
|
53
|
+
startedAt?: string;
|
|
54
|
+
toolCalls: number;
|
|
55
|
+
edited: string[];
|
|
56
|
+
lastVerdict?: Verdict;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Reads the transcript (JSONL, one event per line) into the few facts capture needs. The fields
|
|
60
|
+
* describe the main agent only; `subagents: true` adds what each subagent did, read from the
|
|
61
|
+
* sidechain events in this file and from the host's per-subagent transcripts next to it.
|
|
62
|
+
*/
|
|
63
|
+
export declare function digestTranscript(transcriptPath: string, opts?: {
|
|
64
|
+
subagents?: boolean;
|
|
65
|
+
}): SessionDigest | null;
|
|
44
66
|
/**
|
|
45
67
|
* Where a session that edited code left off, from the transcript and git alone. The task is the
|
|
46
68
|
* person's first prompt, uncut up to a limit, because that is where a multi-part plan lives; "what
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionCapture.d.ts","sourceRoot":"","sources":["../../../src/utils/SessionCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAA0C,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA2BhG,eAAO,MAAM,YAAY,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"SessionCapture.d.ts","sourceRoot":"","sources":["../../../src/utils/SessionCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAA0C,UAAU,EAAE,MAAM,4BAA4B,CAAC;AA2BhG,eAAO,MAAM,YAAY,wBAAwB,CAAC;AAkBlD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,sGAAsG;IACtG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,0GAA0G;IAC1G,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sGAAsG;IACtG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iIAAiI;IACjI,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA2CD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,GAAG,IAAI,CAYjH;AA2LD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAyC9F;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhE;AAsBD,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,eAAe,GAAG,UAAU,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;CACzI;AAED,0GAA0G;AAC1G,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,oBAAoB,CAwE5I;AAuBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAWtH"}
|
|
@@ -50,9 +50,18 @@ const AGENT_NOTE_MARK = "AGENT'S NOTE";
|
|
|
50
50
|
const MAX_AGENT_NOTE_CHARS = 1500;
|
|
51
51
|
const MAX_HANDOFF_FILES = 10;
|
|
52
52
|
const MAX_SAID_CHARS = 700;
|
|
53
|
+
/** Subagent transcripts read per session (newest first) and the bytes read from each: an orchestrator can spawn dozens. */
|
|
54
|
+
const MAX_SUBAGENT_TRANSCRIPTS = 30;
|
|
55
|
+
const MAX_SUBAGENT_BYTES = 2 * 1024 * 1024;
|
|
56
|
+
const SUBAGENT_HEAD_BYTES = 128 * 1024;
|
|
57
|
+
const SUBAGENT_TAIL_BYTES = 1536 * 1024;
|
|
58
|
+
const MAX_SUBAGENT_LINES = 6;
|
|
59
|
+
const MAX_DESCRIPTION_CHARS = 80;
|
|
53
60
|
const REMEMBERED_SESSIONS = 50;
|
|
54
61
|
/** Tools that mean the agent already wrote (or deliberately declined to write) its own memory. */
|
|
55
62
|
const OWN_MEMORY_TOOL = /^mcp__lemma__(store|update|forget)_memory$/;
|
|
63
|
+
/** Lemma's own editing tools: `filePath` is relative to the project root (multi_file_patch carries a list of them). */
|
|
64
|
+
const LEMMA_EDIT_TOOL = /^mcp__lemma__(write_workspace_file|create_workspace_file|apply_workspace_patch|multi_file_patch)$/;
|
|
56
65
|
function textOf(content) {
|
|
57
66
|
if (typeof content === 'string')
|
|
58
67
|
return content;
|
|
@@ -69,13 +78,13 @@ function textOf(content) {
|
|
|
69
78
|
* done; dropping them would leave no hand-off where it matters most. Counts such as `toolCalls`
|
|
70
79
|
* then describe the tail only.
|
|
71
80
|
*/
|
|
72
|
-
function readEnds(file, size) {
|
|
81
|
+
function readEnds(file, size, headBytes = HEAD_BYTES, tailBytes = TAIL_BYTES) {
|
|
73
82
|
const fd = fs.openSync(file, 'r');
|
|
74
83
|
try {
|
|
75
|
-
const head = Buffer.alloc(
|
|
76
|
-
fs.readSync(fd, head, 0,
|
|
77
|
-
const tail = Buffer.alloc(
|
|
78
|
-
fs.readSync(fd, tail, 0,
|
|
84
|
+
const head = Buffer.alloc(headBytes);
|
|
85
|
+
fs.readSync(fd, head, 0, headBytes, 0);
|
|
86
|
+
const tail = Buffer.alloc(tailBytes);
|
|
87
|
+
fs.readSync(fd, tail, 0, tailBytes, size - tailBytes);
|
|
79
88
|
const h = head.toString('utf8');
|
|
80
89
|
const t = tail.toString('utf8');
|
|
81
90
|
// Drop the partial line at each cut; an unparseable line would be skipped anyway, but a cut
|
|
@@ -86,8 +95,24 @@ function readEnds(file, size) {
|
|
|
86
95
|
fs.closeSync(fd);
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
|
-
|
|
90
|
-
|
|
98
|
+
function parseLines(raw) {
|
|
99
|
+
const events = [];
|
|
100
|
+
for (const line of raw.split('\n')) {
|
|
101
|
+
if (!line)
|
|
102
|
+
continue;
|
|
103
|
+
try {
|
|
104
|
+
events.push(JSON.parse(line));
|
|
105
|
+
}
|
|
106
|
+
catch { /* a cut or garbled line */ }
|
|
107
|
+
}
|
|
108
|
+
return events;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Reads the transcript (JSONL, one event per line) into the few facts capture needs. The fields
|
|
112
|
+
* describe the main agent only; `subagents: true` adds what each subagent did, read from the
|
|
113
|
+
* sidechain events in this file and from the host's per-subagent transcripts next to it.
|
|
114
|
+
*/
|
|
115
|
+
export function digestTranscript(transcriptPath, opts = {}) {
|
|
91
116
|
let raw;
|
|
92
117
|
try {
|
|
93
118
|
const stat = fs.statSync(transcriptPath);
|
|
@@ -96,21 +121,19 @@ export function digestTranscript(transcriptPath) {
|
|
|
96
121
|
catch {
|
|
97
122
|
return null;
|
|
98
123
|
}
|
|
124
|
+
const events = parseLines(raw);
|
|
125
|
+
const digest = scan(events.filter((ev) => !ev?.isSidechain));
|
|
126
|
+
if (opts.subagents)
|
|
127
|
+
digest.subagents = digestSubagents(transcriptPath, events.filter((ev) => ev?.isSidechain));
|
|
128
|
+
return digest;
|
|
129
|
+
}
|
|
130
|
+
function scan(events) {
|
|
99
131
|
const digest = { prompt: '', answer: '', toolCalls: 0, edited: [], read: [], storedOwnMemory: false };
|
|
100
132
|
const readCount = new Map();
|
|
101
133
|
const verdictCommands = new Map(); // tool_use id -> command, for verdict-shaped Bash runs
|
|
102
134
|
let edited = false;
|
|
103
|
-
for (const
|
|
104
|
-
if (!
|
|
105
|
-
continue;
|
|
106
|
-
let ev;
|
|
107
|
-
try {
|
|
108
|
-
ev = JSON.parse(line);
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
if (ev.isSidechain)
|
|
135
|
+
for (const ev of events) {
|
|
136
|
+
if (!ev || typeof ev !== 'object')
|
|
114
137
|
continue;
|
|
115
138
|
if (!digest.startedAt && typeof ev.timestamp === 'string')
|
|
116
139
|
digest.startedAt = ev.timestamp;
|
|
@@ -126,7 +149,7 @@ export function digestTranscript(transcriptPath) {
|
|
|
126
149
|
const passed = inferVerdict(output);
|
|
127
150
|
if (passed === null)
|
|
128
151
|
continue;
|
|
129
|
-
digest.lastVerdict = { command, passed, headline: passed ? '' : extractFailure(output).headline };
|
|
152
|
+
digest.lastVerdict = { command, passed, headline: passed ? '' : extractFailure(output).headline, ...(typeof ev.timestamp === 'string' ? { at: ev.timestamp } : {}) };
|
|
130
153
|
}
|
|
131
154
|
}
|
|
132
155
|
if (ev.type === 'user') {
|
|
@@ -158,11 +181,15 @@ export function digestTranscript(transcriptPath) {
|
|
|
158
181
|
}
|
|
159
182
|
if (name === 'Bash')
|
|
160
183
|
digest.ranAfterEdit = edited;
|
|
161
|
-
|
|
184
|
+
const lemmaEdits = LEMMA_EDIT_TOOL.test(name)
|
|
185
|
+
? [block.input?.filePath, ...(Array.isArray(block.input?.patches) ? block.input.patches.map((x) => x?.filePath) : [])].filter((f) => typeof f === 'string' && !!f)
|
|
186
|
+
: [];
|
|
187
|
+
if ((typeof file === 'string' && /^(Edit|Write|MultiEdit|NotebookEdit)$/.test(name)) || lemmaEdits.length) {
|
|
162
188
|
edited = true;
|
|
163
189
|
digest.ranAfterEdit = false;
|
|
164
|
-
|
|
165
|
-
digest.edited.
|
|
190
|
+
for (const f of lemmaEdits.length ? lemmaEdits : [file])
|
|
191
|
+
if (!digest.edited.includes(f))
|
|
192
|
+
digest.edited.push(f);
|
|
166
193
|
}
|
|
167
194
|
else if (typeof file === 'string' && name === 'Read') {
|
|
168
195
|
readCount.set(file, (readCount.get(file) ?? 0) + 1);
|
|
@@ -172,6 +199,94 @@ export function digestTranscript(transcriptPath) {
|
|
|
172
199
|
digest.read = [...readCount.entries()].sort((a, b) => b[1] - a[1]).map(([f]) => f);
|
|
173
200
|
return digest;
|
|
174
201
|
}
|
|
202
|
+
function readMeta(file) {
|
|
203
|
+
try {
|
|
204
|
+
const m = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
205
|
+
return {
|
|
206
|
+
...(typeof m?.description === 'string' && m.description.trim() ? { description: m.description.trim() } : {}),
|
|
207
|
+
...(typeof m?.agentType === 'string' && m.agentType ? { agentType: m.agentType } : {}),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
return {};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function subagentDigest(agentId, events, meta) {
|
|
215
|
+
const d = scan(events);
|
|
216
|
+
return { agentId, ...meta, ...(d.startedAt ? { startedAt: d.startedAt } : {}), toolCalls: d.toolCalls, edited: d.edited, ...(d.lastVerdict ? { lastVerdict: d.lastVerdict } : {}) };
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* What the session's subagents did. Claude Code writes each one to
|
|
220
|
+
* `<transcript without .jsonl>/subagents/agent-<id>.jsonl`, with a `.meta.json` beside it naming
|
|
221
|
+
* the description the parent gave; older builds put the same events in the main transcript,
|
|
222
|
+
* flagged isSidechain. A subagent found in both is read from its own file, which is whole.
|
|
223
|
+
* An orchestrator that delegated the edits used to leave an empty hand-off: its own transcript
|
|
224
|
+
* holds the Agent calls, not the files they changed or the tests they ran.
|
|
225
|
+
*/
|
|
226
|
+
function digestSubagents(transcriptPath, sidechain) {
|
|
227
|
+
const byId = new Map();
|
|
228
|
+
const dir = path.join(transcriptPath.replace(/\.jsonl$/, ''), 'subagents');
|
|
229
|
+
let files = [];
|
|
230
|
+
try {
|
|
231
|
+
files = fs.readdirSync(dir)
|
|
232
|
+
.map((name) => /^agent-(.+)\.jsonl$/.exec(name))
|
|
233
|
+
.filter((m) => !!m)
|
|
234
|
+
.map((m) => {
|
|
235
|
+
const file = path.join(dir, m[0]);
|
|
236
|
+
const st = fs.statSync(file);
|
|
237
|
+
return { id: m[1], file, mtime: st.mtimeMs, size: st.size };
|
|
238
|
+
})
|
|
239
|
+
.sort((a, b) => b.mtime - a.mtime)
|
|
240
|
+
.slice(0, MAX_SUBAGENT_TRANSCRIPTS);
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// no subagents directory: a session that delegated nothing, or an older host
|
|
244
|
+
}
|
|
245
|
+
for (const f of files) {
|
|
246
|
+
try {
|
|
247
|
+
const raw = f.size > MAX_SUBAGENT_BYTES ? readEnds(f.file, f.size, SUBAGENT_HEAD_BYTES, SUBAGENT_TAIL_BYTES) : fs.readFileSync(f.file, 'utf8');
|
|
248
|
+
byId.set(f.id, subagentDigest(f.id, parseLines(raw), readMeta(f.file.replace(/\.jsonl$/, '.meta.json'))));
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
// unreadable: that subagent simply isn't listed
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const inline = new Map();
|
|
255
|
+
for (const ev of sidechain) {
|
|
256
|
+
const id = typeof ev.agentId === 'string' && ev.agentId ? ev.agentId : 'sidechain';
|
|
257
|
+
if (byId.has(id))
|
|
258
|
+
continue;
|
|
259
|
+
if (!inline.has(id))
|
|
260
|
+
inline.set(id, []);
|
|
261
|
+
inline.get(id).push(ev);
|
|
262
|
+
}
|
|
263
|
+
for (const [id, evs] of inline)
|
|
264
|
+
byId.set(id, subagentDigest(id, evs, {}));
|
|
265
|
+
return [...byId.values()].sort((a, b) => String(a.startedAt ?? '').localeCompare(String(b.startedAt ?? '')));
|
|
266
|
+
}
|
|
267
|
+
/** Files edited by the main agent first, then by its subagents, once each. */
|
|
268
|
+
function allEdited(digest) {
|
|
269
|
+
const out = [...digest.edited];
|
|
270
|
+
for (const s of digest.subagents ?? [])
|
|
271
|
+
for (const f of s.edited)
|
|
272
|
+
if (!out.includes(f))
|
|
273
|
+
out.push(f);
|
|
274
|
+
return out;
|
|
275
|
+
}
|
|
276
|
+
/** The latest test/build run by any agent of the session, and which subagent ran it (unset for the main agent). */
|
|
277
|
+
function latestVerdict(digest) {
|
|
278
|
+
let best = digest.lastVerdict ? { verdict: digest.lastVerdict } : null;
|
|
279
|
+
for (const s of digest.subagents ?? []) {
|
|
280
|
+
const v = s.lastVerdict;
|
|
281
|
+
if (!v)
|
|
282
|
+
continue;
|
|
283
|
+
// Without timestamps on both there is no telling who ran last, and the run already chosen stands.
|
|
284
|
+
if (!best || (v.at && best.verdict.at && v.at > best.verdict.at))
|
|
285
|
+
best = { verdict: v, by: s };
|
|
286
|
+
}
|
|
287
|
+
return best;
|
|
288
|
+
}
|
|
289
|
+
const subagentName = (s) => `${s.description ? `"${clip(s.description, MAX_DESCRIPTION_CHARS)}"` : `agent ${s.agentId}`}${s.agentType ? ` (${s.agentType})` : ''}`;
|
|
175
290
|
function seen(root) {
|
|
176
291
|
try {
|
|
177
292
|
const parsed = JSON.parse(fs.readFileSync(path.join(root, STATE_FILE), 'utf8'));
|
|
@@ -200,6 +315,20 @@ function git(root, args) {
|
|
|
200
315
|
}
|
|
201
316
|
}
|
|
202
317
|
const clip = (text, max) => (text.length > max ? `${text.slice(0, max)}…` : text);
|
|
318
|
+
/**
|
|
319
|
+
* A path as the filesystem resolves it. git reports the root resolved (macOS /var and /tmp are links to
|
|
320
|
+
* /private/…) while a host can report the same files through the link, and path.relative between the two
|
|
321
|
+
* spellings gave `../../../../var/folders/…/src/tax.js`, and the file was not tracked.
|
|
322
|
+
*/
|
|
323
|
+
function realPath(root, f) {
|
|
324
|
+
const abs = path.resolve(root, f);
|
|
325
|
+
try {
|
|
326
|
+
return fs.realpathSync(abs);
|
|
327
|
+
}
|
|
328
|
+
catch {
|
|
329
|
+
return abs; // deleted since: the spelling the host gave is the best there is
|
|
330
|
+
}
|
|
331
|
+
}
|
|
203
332
|
/**
|
|
204
333
|
* Where a session that edited code left off, from the transcript and git alone. The task is the
|
|
205
334
|
* person's first prompt, uncut up to a limit, because that is where a multi-part plan lives; "what
|
|
@@ -207,8 +336,9 @@ const clip = (text, max) => (text.length > max ? `${text.slice(0, max)}…` : te
|
|
|
207
336
|
* against what changed. Exported for tests.
|
|
208
337
|
*/
|
|
209
338
|
export function buildHandoff(root, digest, carriedPlan) {
|
|
210
|
-
|
|
211
|
-
const
|
|
339
|
+
// Lemma's edit tools record paths relative to the project root, the host's are absolute.
|
|
340
|
+
const rel = (f) => path.relative(root, realPath(root, f)) || f;
|
|
341
|
+
const edited = allEdited(digest).map(rel);
|
|
212
342
|
// A continuation's own prompt ("continue where we left off") says nothing: the plan is the one
|
|
213
343
|
// the previous hand-off held, carried forward as it was first given.
|
|
214
344
|
const taskBlock = carriedPlan
|
|
@@ -226,9 +356,24 @@ export function buildHandoff(root, digest, carriedPlan) {
|
|
|
226
356
|
const commits = digest.startedAt ? git(root, ['log', `--since=${digest.startedAt}`, '-5', '--format=%h %s']) : '';
|
|
227
357
|
const dirty = git(root, ['status', '--porcelain']).split('\n').filter((l) => l && !/\s\.lemma(\/|$)/.test(l));
|
|
228
358
|
lines.push(`GIT${branch ? ` (${branch})` : ''}: ${commits ? `commits this session: ${commits.split('\n').join('; ')}` : 'no commits this session'}; ${dirty.length} uncommitted file(s)${dirty.length ? `: ${dirty.slice(0, MAX_HANDOFF_FILES).map((l) => l.slice(3)).join(', ')}` : ''}`);
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
359
|
+
const ran = (v) => `\`${clip(v.command, 100)}\` ${v.passed ? 'passed' : `FAILED${v.headline ? ` — ${clip(v.headline, 160)}` : ''}`}`;
|
|
360
|
+
const last = latestVerdict(digest);
|
|
361
|
+
if (last)
|
|
362
|
+
lines.push(`LAST TEST/BUILD RUN${last.by ? ` (by subagent ${subagentName(last.by)})` : ''}: ${ran(last.verdict)}`);
|
|
363
|
+
const subs = digest.subagents ?? [];
|
|
364
|
+
const worked = subs.filter((s) => s.edited.length > 0 || s.lastVerdict);
|
|
365
|
+
if (worked.length) {
|
|
366
|
+
lines.push('', `SUBAGENTS (${subs.length} ran, ${subs.filter((s) => s.edited.length > 0).length} edited code):`);
|
|
367
|
+
for (const s of worked.slice(0, MAX_SUBAGENT_LINES)) {
|
|
368
|
+
const parts = [
|
|
369
|
+
...(s.edited.length ? [`edited ${s.edited.slice(0, MAX_FILES).map(rel).join(', ')}${s.edited.length > MAX_FILES ? ', …' : ''}`] : []),
|
|
370
|
+
...(s.lastVerdict ? [`last run ${ran(s.lastVerdict)}`] : []),
|
|
371
|
+
];
|
|
372
|
+
lines.push(`- ${subagentName(s)}: ${parts.join('; ')}`);
|
|
373
|
+
}
|
|
374
|
+
if (worked.length > MAX_SUBAGENT_LINES)
|
|
375
|
+
lines.push(`- …and ${worked.length - MAX_SUBAGENT_LINES} more`);
|
|
376
|
+
}
|
|
232
377
|
if (digest.answer)
|
|
233
378
|
lines.push('', 'LAST SAID BY THE AGENT:', clip(digest.answer, MAX_SAID_CHARS));
|
|
234
379
|
return lines.join('\n');
|
|
@@ -282,10 +427,11 @@ export function captureSession(payload, cwd, brain, opts = {}) {
|
|
|
282
427
|
// PreCompact runs mid-session and again at SessionEnd: it must neither be stopped by nor leave the "captured" mark.
|
|
283
428
|
if (!opts.preCompact && sessionId && seen(root).includes(sessionId))
|
|
284
429
|
return { skipped: 'already-captured' };
|
|
285
|
-
const digest = digestTranscript(p.transcript_path);
|
|
430
|
+
const digest = digestTranscript(p.transcript_path, { subagents: true });
|
|
286
431
|
if (!digest)
|
|
287
432
|
return { skipped: 'no-transcript' };
|
|
288
|
-
const
|
|
433
|
+
const edited = allEdited(digest);
|
|
434
|
+
const handoff = edited.length > 0;
|
|
289
435
|
if (opts.preCompact && !handoff)
|
|
290
436
|
return { skipped: 'no-edits' }; // only a hand-off is worth re-injecting
|
|
291
437
|
// The closing answer is skipped when the agent wrote its own memory, but the hand-off is not:
|
|
@@ -294,7 +440,9 @@ export function captureSession(payload, cwd, brain, opts = {}) {
|
|
|
294
440
|
// task verbatim. Both live side by side: the note is the agent's reading, this is the source.
|
|
295
441
|
if (digest.storedOwnMemory && !handoff)
|
|
296
442
|
return { skipped: 'agent-stored' };
|
|
297
|
-
|
|
443
|
+
// An orchestrator's own calls are few (it delegates); its subagents' calls are the session's work too.
|
|
444
|
+
const toolCalls = digest.toolCalls + (digest.subagents ?? []).reduce((n, s) => n + s.toolCalls, 0);
|
|
445
|
+
if (toolCalls < MIN_TOOL_CALLS)
|
|
298
446
|
return { skipped: 'small-session' };
|
|
299
447
|
if (!digest.prompt)
|
|
300
448
|
return { skipped: 'no-answer' };
|
|
@@ -302,10 +450,10 @@ export function captureSession(payload, cwd, brain, opts = {}) {
|
|
|
302
450
|
if (!handoff && digest.answer.length < MIN_ANSWER_CHARS)
|
|
303
451
|
return { skipped: 'no-answer' };
|
|
304
452
|
const inRoot = (f) => {
|
|
305
|
-
const abs =
|
|
453
|
+
const abs = realPath(root, f);
|
|
306
454
|
return abs.startsWith(root + path.sep) && fs.existsSync(abs) ? abs : null;
|
|
307
455
|
};
|
|
308
|
-
const tracked = (
|
|
456
|
+
const tracked = (edited.length > 0 ? edited : digest.read)
|
|
309
457
|
.map(inRoot)
|
|
310
458
|
.filter((f) => !!f)
|
|
311
459
|
.slice(0, MAX_FILES);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionCapture.js","sourceRoot":"","sources":["../../../src/utils/SessionCapture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SessionCapture.js","sourceRoot":"","sources":["../../../src/utils/SessionCapture.ts"],"names":[],"mappings":"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"}
|