@nxuss/lemma 1.44.0 → 1.45.1
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 +59 -8
- 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/console/mailer.d.ts +2 -0
- package/dist/cjs/cloud/console/mailer.d.ts.map +1 -1
- package/dist/cjs/cloud/console/mailer.js +3 -1
- package/dist/cjs/cloud/console/mailer.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/console/mailer.d.ts +2 -0
- package/dist/esm/cloud/console/mailer.d.ts.map +1 -1
- package/dist/esm/cloud/console/mailer.js +3 -1
- package/dist/esm/cloud/console/mailer.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
|
@@ -62,9 +62,18 @@ const AGENT_NOTE_MARK = "AGENT'S NOTE";
|
|
|
62
62
|
const MAX_AGENT_NOTE_CHARS = 1500;
|
|
63
63
|
const MAX_HANDOFF_FILES = 10;
|
|
64
64
|
const MAX_SAID_CHARS = 700;
|
|
65
|
+
/** Subagent transcripts read per session (newest first) and the bytes read from each: an orchestrator can spawn dozens. */
|
|
66
|
+
const MAX_SUBAGENT_TRANSCRIPTS = 30;
|
|
67
|
+
const MAX_SUBAGENT_BYTES = 2 * 1024 * 1024;
|
|
68
|
+
const SUBAGENT_HEAD_BYTES = 128 * 1024;
|
|
69
|
+
const SUBAGENT_TAIL_BYTES = 1536 * 1024;
|
|
70
|
+
const MAX_SUBAGENT_LINES = 6;
|
|
71
|
+
const MAX_DESCRIPTION_CHARS = 80;
|
|
65
72
|
const REMEMBERED_SESSIONS = 50;
|
|
66
73
|
/** Tools that mean the agent already wrote (or deliberately declined to write) its own memory. */
|
|
67
74
|
const OWN_MEMORY_TOOL = /^mcp__lemma__(store|update|forget)_memory$/;
|
|
75
|
+
/** Lemma's own editing tools: `filePath` is relative to the project root (multi_file_patch carries a list of them). */
|
|
76
|
+
const LEMMA_EDIT_TOOL = /^mcp__lemma__(write_workspace_file|create_workspace_file|apply_workspace_patch|multi_file_patch)$/;
|
|
68
77
|
function textOf(content) {
|
|
69
78
|
if (typeof content === 'string')
|
|
70
79
|
return content;
|
|
@@ -81,13 +90,13 @@ function textOf(content) {
|
|
|
81
90
|
* done; dropping them would leave no hand-off where it matters most. Counts such as `toolCalls`
|
|
82
91
|
* then describe the tail only.
|
|
83
92
|
*/
|
|
84
|
-
function readEnds(file, size) {
|
|
93
|
+
function readEnds(file, size, headBytes = HEAD_BYTES, tailBytes = TAIL_BYTES) {
|
|
85
94
|
const fd = fs_1.default.openSync(file, 'r');
|
|
86
95
|
try {
|
|
87
|
-
const head = Buffer.alloc(
|
|
88
|
-
fs_1.default.readSync(fd, head, 0,
|
|
89
|
-
const tail = Buffer.alloc(
|
|
90
|
-
fs_1.default.readSync(fd, tail, 0,
|
|
96
|
+
const head = Buffer.alloc(headBytes);
|
|
97
|
+
fs_1.default.readSync(fd, head, 0, headBytes, 0);
|
|
98
|
+
const tail = Buffer.alloc(tailBytes);
|
|
99
|
+
fs_1.default.readSync(fd, tail, 0, tailBytes, size - tailBytes);
|
|
91
100
|
const h = head.toString('utf8');
|
|
92
101
|
const t = tail.toString('utf8');
|
|
93
102
|
// Drop the partial line at each cut; an unparseable line would be skipped anyway, but a cut
|
|
@@ -98,8 +107,24 @@ function readEnds(file, size) {
|
|
|
98
107
|
fs_1.default.closeSync(fd);
|
|
99
108
|
}
|
|
100
109
|
}
|
|
101
|
-
|
|
102
|
-
|
|
110
|
+
function parseLines(raw) {
|
|
111
|
+
const events = [];
|
|
112
|
+
for (const line of raw.split('\n')) {
|
|
113
|
+
if (!line)
|
|
114
|
+
continue;
|
|
115
|
+
try {
|
|
116
|
+
events.push(JSON.parse(line));
|
|
117
|
+
}
|
|
118
|
+
catch { /* a cut or garbled line */ }
|
|
119
|
+
}
|
|
120
|
+
return events;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Reads the transcript (JSONL, one event per line) into the few facts capture needs. The fields
|
|
124
|
+
* describe the main agent only; `subagents: true` adds what each subagent did, read from the
|
|
125
|
+
* sidechain events in this file and from the host's per-subagent transcripts next to it.
|
|
126
|
+
*/
|
|
127
|
+
function digestTranscript(transcriptPath, opts = {}) {
|
|
103
128
|
let raw;
|
|
104
129
|
try {
|
|
105
130
|
const stat = fs_1.default.statSync(transcriptPath);
|
|
@@ -108,21 +133,19 @@ function digestTranscript(transcriptPath) {
|
|
|
108
133
|
catch {
|
|
109
134
|
return null;
|
|
110
135
|
}
|
|
136
|
+
const events = parseLines(raw);
|
|
137
|
+
const digest = scan(events.filter((ev) => !ev?.isSidechain));
|
|
138
|
+
if (opts.subagents)
|
|
139
|
+
digest.subagents = digestSubagents(transcriptPath, events.filter((ev) => ev?.isSidechain));
|
|
140
|
+
return digest;
|
|
141
|
+
}
|
|
142
|
+
function scan(events) {
|
|
111
143
|
const digest = { prompt: '', answer: '', toolCalls: 0, edited: [], read: [], storedOwnMemory: false };
|
|
112
144
|
const readCount = new Map();
|
|
113
145
|
const verdictCommands = new Map(); // tool_use id -> command, for verdict-shaped Bash runs
|
|
114
146
|
let edited = false;
|
|
115
|
-
for (const
|
|
116
|
-
if (!
|
|
117
|
-
continue;
|
|
118
|
-
let ev;
|
|
119
|
-
try {
|
|
120
|
-
ev = JSON.parse(line);
|
|
121
|
-
}
|
|
122
|
-
catch {
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
if (ev.isSidechain)
|
|
147
|
+
for (const ev of events) {
|
|
148
|
+
if (!ev || typeof ev !== 'object')
|
|
126
149
|
continue;
|
|
127
150
|
if (!digest.startedAt && typeof ev.timestamp === 'string')
|
|
128
151
|
digest.startedAt = ev.timestamp;
|
|
@@ -138,7 +161,7 @@ function digestTranscript(transcriptPath) {
|
|
|
138
161
|
const passed = (0, FixCapture_1.inferVerdict)(output);
|
|
139
162
|
if (passed === null)
|
|
140
163
|
continue;
|
|
141
|
-
digest.lastVerdict = { command, passed, headline: passed ? '' : (0, FixCapture_1.extractFailure)(output).headline };
|
|
164
|
+
digest.lastVerdict = { command, passed, headline: passed ? '' : (0, FixCapture_1.extractFailure)(output).headline, ...(typeof ev.timestamp === 'string' ? { at: ev.timestamp } : {}) };
|
|
142
165
|
}
|
|
143
166
|
}
|
|
144
167
|
if (ev.type === 'user') {
|
|
@@ -170,11 +193,15 @@ function digestTranscript(transcriptPath) {
|
|
|
170
193
|
}
|
|
171
194
|
if (name === 'Bash')
|
|
172
195
|
digest.ranAfterEdit = edited;
|
|
173
|
-
|
|
196
|
+
const lemmaEdits = LEMMA_EDIT_TOOL.test(name)
|
|
197
|
+
? [block.input?.filePath, ...(Array.isArray(block.input?.patches) ? block.input.patches.map((x) => x?.filePath) : [])].filter((f) => typeof f === 'string' && !!f)
|
|
198
|
+
: [];
|
|
199
|
+
if ((typeof file === 'string' && /^(Edit|Write|MultiEdit|NotebookEdit)$/.test(name)) || lemmaEdits.length) {
|
|
174
200
|
edited = true;
|
|
175
201
|
digest.ranAfterEdit = false;
|
|
176
|
-
|
|
177
|
-
digest.edited.
|
|
202
|
+
for (const f of lemmaEdits.length ? lemmaEdits : [file])
|
|
203
|
+
if (!digest.edited.includes(f))
|
|
204
|
+
digest.edited.push(f);
|
|
178
205
|
}
|
|
179
206
|
else if (typeof file === 'string' && name === 'Read') {
|
|
180
207
|
readCount.set(file, (readCount.get(file) ?? 0) + 1);
|
|
@@ -184,6 +211,94 @@ function digestTranscript(transcriptPath) {
|
|
|
184
211
|
digest.read = [...readCount.entries()].sort((a, b) => b[1] - a[1]).map(([f]) => f);
|
|
185
212
|
return digest;
|
|
186
213
|
}
|
|
214
|
+
function readMeta(file) {
|
|
215
|
+
try {
|
|
216
|
+
const m = JSON.parse(fs_1.default.readFileSync(file, 'utf8'));
|
|
217
|
+
return {
|
|
218
|
+
...(typeof m?.description === 'string' && m.description.trim() ? { description: m.description.trim() } : {}),
|
|
219
|
+
...(typeof m?.agentType === 'string' && m.agentType ? { agentType: m.agentType } : {}),
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
return {};
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
function subagentDigest(agentId, events, meta) {
|
|
227
|
+
const d = scan(events);
|
|
228
|
+
return { agentId, ...meta, ...(d.startedAt ? { startedAt: d.startedAt } : {}), toolCalls: d.toolCalls, edited: d.edited, ...(d.lastVerdict ? { lastVerdict: d.lastVerdict } : {}) };
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* What the session's subagents did. Claude Code writes each one to
|
|
232
|
+
* `<transcript without .jsonl>/subagents/agent-<id>.jsonl`, with a `.meta.json` beside it naming
|
|
233
|
+
* the description the parent gave; older builds put the same events in the main transcript,
|
|
234
|
+
* flagged isSidechain. A subagent found in both is read from its own file, which is whole.
|
|
235
|
+
* An orchestrator that delegated the edits used to leave an empty hand-off: its own transcript
|
|
236
|
+
* holds the Agent calls, not the files they changed or the tests they ran.
|
|
237
|
+
*/
|
|
238
|
+
function digestSubagents(transcriptPath, sidechain) {
|
|
239
|
+
const byId = new Map();
|
|
240
|
+
const dir = path_1.default.join(transcriptPath.replace(/\.jsonl$/, ''), 'subagents');
|
|
241
|
+
let files = [];
|
|
242
|
+
try {
|
|
243
|
+
files = fs_1.default.readdirSync(dir)
|
|
244
|
+
.map((name) => /^agent-(.+)\.jsonl$/.exec(name))
|
|
245
|
+
.filter((m) => !!m)
|
|
246
|
+
.map((m) => {
|
|
247
|
+
const file = path_1.default.join(dir, m[0]);
|
|
248
|
+
const st = fs_1.default.statSync(file);
|
|
249
|
+
return { id: m[1], file, mtime: st.mtimeMs, size: st.size };
|
|
250
|
+
})
|
|
251
|
+
.sort((a, b) => b.mtime - a.mtime)
|
|
252
|
+
.slice(0, MAX_SUBAGENT_TRANSCRIPTS);
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
// no subagents directory: a session that delegated nothing, or an older host
|
|
256
|
+
}
|
|
257
|
+
for (const f of files) {
|
|
258
|
+
try {
|
|
259
|
+
const raw = f.size > MAX_SUBAGENT_BYTES ? readEnds(f.file, f.size, SUBAGENT_HEAD_BYTES, SUBAGENT_TAIL_BYTES) : fs_1.default.readFileSync(f.file, 'utf8');
|
|
260
|
+
byId.set(f.id, subagentDigest(f.id, parseLines(raw), readMeta(f.file.replace(/\.jsonl$/, '.meta.json'))));
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
// unreadable: that subagent simply isn't listed
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
const inline = new Map();
|
|
267
|
+
for (const ev of sidechain) {
|
|
268
|
+
const id = typeof ev.agentId === 'string' && ev.agentId ? ev.agentId : 'sidechain';
|
|
269
|
+
if (byId.has(id))
|
|
270
|
+
continue;
|
|
271
|
+
if (!inline.has(id))
|
|
272
|
+
inline.set(id, []);
|
|
273
|
+
inline.get(id).push(ev);
|
|
274
|
+
}
|
|
275
|
+
for (const [id, evs] of inline)
|
|
276
|
+
byId.set(id, subagentDigest(id, evs, {}));
|
|
277
|
+
return [...byId.values()].sort((a, b) => String(a.startedAt ?? '').localeCompare(String(b.startedAt ?? '')));
|
|
278
|
+
}
|
|
279
|
+
/** Files edited by the main agent first, then by its subagents, once each. */
|
|
280
|
+
function allEdited(digest) {
|
|
281
|
+
const out = [...digest.edited];
|
|
282
|
+
for (const s of digest.subagents ?? [])
|
|
283
|
+
for (const f of s.edited)
|
|
284
|
+
if (!out.includes(f))
|
|
285
|
+
out.push(f);
|
|
286
|
+
return out;
|
|
287
|
+
}
|
|
288
|
+
/** The latest test/build run by any agent of the session, and which subagent ran it (unset for the main agent). */
|
|
289
|
+
function latestVerdict(digest) {
|
|
290
|
+
let best = digest.lastVerdict ? { verdict: digest.lastVerdict } : null;
|
|
291
|
+
for (const s of digest.subagents ?? []) {
|
|
292
|
+
const v = s.lastVerdict;
|
|
293
|
+
if (!v)
|
|
294
|
+
continue;
|
|
295
|
+
// Without timestamps on both there is no telling who ran last, and the run already chosen stands.
|
|
296
|
+
if (!best || (v.at && best.verdict.at && v.at > best.verdict.at))
|
|
297
|
+
best = { verdict: v, by: s };
|
|
298
|
+
}
|
|
299
|
+
return best;
|
|
300
|
+
}
|
|
301
|
+
const subagentName = (s) => `${s.description ? `"${clip(s.description, MAX_DESCRIPTION_CHARS)}"` : `agent ${s.agentId}`}${s.agentType ? ` (${s.agentType})` : ''}`;
|
|
187
302
|
function seen(root) {
|
|
188
303
|
try {
|
|
189
304
|
const parsed = JSON.parse(fs_1.default.readFileSync(path_1.default.join(root, STATE_FILE), 'utf8'));
|
|
@@ -212,6 +327,20 @@ function git(root, args) {
|
|
|
212
327
|
}
|
|
213
328
|
}
|
|
214
329
|
const clip = (text, max) => (text.length > max ? `${text.slice(0, max)}…` : text);
|
|
330
|
+
/**
|
|
331
|
+
* A path as the filesystem resolves it. git reports the root resolved (macOS /var and /tmp are links to
|
|
332
|
+
* /private/…) while a host can report the same files through the link, and path.relative between the two
|
|
333
|
+
* spellings gave `../../../../var/folders/…/src/tax.js`, and the file was not tracked.
|
|
334
|
+
*/
|
|
335
|
+
function realPath(root, f) {
|
|
336
|
+
const abs = path_1.default.resolve(root, f);
|
|
337
|
+
try {
|
|
338
|
+
return fs_1.default.realpathSync(abs);
|
|
339
|
+
}
|
|
340
|
+
catch {
|
|
341
|
+
return abs; // deleted since: the spelling the host gave is the best there is
|
|
342
|
+
}
|
|
343
|
+
}
|
|
215
344
|
/**
|
|
216
345
|
* Where a session that edited code left off, from the transcript and git alone. The task is the
|
|
217
346
|
* person's first prompt, uncut up to a limit, because that is where a multi-part plan lives; "what
|
|
@@ -219,8 +348,9 @@ const clip = (text, max) => (text.length > max ? `${text.slice(0, max)}…` : te
|
|
|
219
348
|
* against what changed. Exported for tests.
|
|
220
349
|
*/
|
|
221
350
|
function buildHandoff(root, digest, carriedPlan) {
|
|
222
|
-
|
|
223
|
-
const
|
|
351
|
+
// Lemma's edit tools record paths relative to the project root, the host's are absolute.
|
|
352
|
+
const rel = (f) => path_1.default.relative(root, realPath(root, f)) || f;
|
|
353
|
+
const edited = allEdited(digest).map(rel);
|
|
224
354
|
// A continuation's own prompt ("continue where we left off") says nothing: the plan is the one
|
|
225
355
|
// the previous hand-off held, carried forward as it was first given.
|
|
226
356
|
const taskBlock = carriedPlan
|
|
@@ -238,9 +368,24 @@ function buildHandoff(root, digest, carriedPlan) {
|
|
|
238
368
|
const commits = digest.startedAt ? git(root, ['log', `--since=${digest.startedAt}`, '-5', '--format=%h %s']) : '';
|
|
239
369
|
const dirty = git(root, ['status', '--porcelain']).split('\n').filter((l) => l && !/\s\.lemma(\/|$)/.test(l));
|
|
240
370
|
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(', ')}` : ''}`);
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
371
|
+
const ran = (v) => `\`${clip(v.command, 100)}\` ${v.passed ? 'passed' : `FAILED${v.headline ? ` — ${clip(v.headline, 160)}` : ''}`}`;
|
|
372
|
+
const last = latestVerdict(digest);
|
|
373
|
+
if (last)
|
|
374
|
+
lines.push(`LAST TEST/BUILD RUN${last.by ? ` (by subagent ${subagentName(last.by)})` : ''}: ${ran(last.verdict)}`);
|
|
375
|
+
const subs = digest.subagents ?? [];
|
|
376
|
+
const worked = subs.filter((s) => s.edited.length > 0 || s.lastVerdict);
|
|
377
|
+
if (worked.length) {
|
|
378
|
+
lines.push('', `SUBAGENTS (${subs.length} ran, ${subs.filter((s) => s.edited.length > 0).length} edited code):`);
|
|
379
|
+
for (const s of worked.slice(0, MAX_SUBAGENT_LINES)) {
|
|
380
|
+
const parts = [
|
|
381
|
+
...(s.edited.length ? [`edited ${s.edited.slice(0, MAX_FILES).map(rel).join(', ')}${s.edited.length > MAX_FILES ? ', …' : ''}`] : []),
|
|
382
|
+
...(s.lastVerdict ? [`last run ${ran(s.lastVerdict)}`] : []),
|
|
383
|
+
];
|
|
384
|
+
lines.push(`- ${subagentName(s)}: ${parts.join('; ')}`);
|
|
385
|
+
}
|
|
386
|
+
if (worked.length > MAX_SUBAGENT_LINES)
|
|
387
|
+
lines.push(`- …and ${worked.length - MAX_SUBAGENT_LINES} more`);
|
|
388
|
+
}
|
|
244
389
|
if (digest.answer)
|
|
245
390
|
lines.push('', 'LAST SAID BY THE AGENT:', clip(digest.answer, MAX_SAID_CHARS));
|
|
246
391
|
return lines.join('\n');
|
|
@@ -294,10 +439,11 @@ function captureSession(payload, cwd, brain, opts = {}) {
|
|
|
294
439
|
// PreCompact runs mid-session and again at SessionEnd: it must neither be stopped by nor leave the "captured" mark.
|
|
295
440
|
if (!opts.preCompact && sessionId && seen(root).includes(sessionId))
|
|
296
441
|
return { skipped: 'already-captured' };
|
|
297
|
-
const digest = digestTranscript(p.transcript_path);
|
|
442
|
+
const digest = digestTranscript(p.transcript_path, { subagents: true });
|
|
298
443
|
if (!digest)
|
|
299
444
|
return { skipped: 'no-transcript' };
|
|
300
|
-
const
|
|
445
|
+
const edited = allEdited(digest);
|
|
446
|
+
const handoff = edited.length > 0;
|
|
301
447
|
if (opts.preCompact && !handoff)
|
|
302
448
|
return { skipped: 'no-edits' }; // only a hand-off is worth re-injecting
|
|
303
449
|
// The closing answer is skipped when the agent wrote its own memory, but the hand-off is not:
|
|
@@ -306,7 +452,9 @@ function captureSession(payload, cwd, brain, opts = {}) {
|
|
|
306
452
|
// task verbatim. Both live side by side: the note is the agent's reading, this is the source.
|
|
307
453
|
if (digest.storedOwnMemory && !handoff)
|
|
308
454
|
return { skipped: 'agent-stored' };
|
|
309
|
-
|
|
455
|
+
// An orchestrator's own calls are few (it delegates); its subagents' calls are the session's work too.
|
|
456
|
+
const toolCalls = digest.toolCalls + (digest.subagents ?? []).reduce((n, s) => n + s.toolCalls, 0);
|
|
457
|
+
if (toolCalls < MIN_TOOL_CALLS)
|
|
310
458
|
return { skipped: 'small-session' };
|
|
311
459
|
if (!digest.prompt)
|
|
312
460
|
return { skipped: 'no-answer' };
|
|
@@ -314,10 +462,10 @@ function captureSession(payload, cwd, brain, opts = {}) {
|
|
|
314
462
|
if (!handoff && digest.answer.length < MIN_ANSWER_CHARS)
|
|
315
463
|
return { skipped: 'no-answer' };
|
|
316
464
|
const inRoot = (f) => {
|
|
317
|
-
const abs =
|
|
465
|
+
const abs = realPath(root, f);
|
|
318
466
|
return abs.startsWith(root + path_1.default.sep) && fs_1.default.existsSync(abs) ? abs : null;
|
|
319
467
|
};
|
|
320
|
-
const tracked = (
|
|
468
|
+
const tracked = (edited.length > 0 ? edited : digest.read)
|
|
321
469
|
.map(inRoot)
|
|
322
470
|
.filter((f) => !!f)
|
|
323
471
|
.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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestAutofixInterceptor.d.ts","sourceRoot":"","sources":["../../../src/utils/TestAutofixInterceptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TestAutofixInterceptor.d.ts","sourceRoot":"","sources":["../../../src/utils/TestAutofixInterceptor.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AA6ED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,YAAa,EAC5B,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAoCnB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.runTestAutofix = runTestAutofix;
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
|
+
const NoTerminal_1 = require("./NoTerminal");
|
|
5
6
|
const TheBrainV2_1 = require("../subconscious/TheBrainV2");
|
|
6
7
|
function extractFailures(output) {
|
|
7
8
|
const failures = [];
|
|
@@ -85,6 +86,7 @@ function runTestAutofix(command = 'npm test', projectRoot) {
|
|
|
85
86
|
encoding: 'utf8',
|
|
86
87
|
timeout: 30000,
|
|
87
88
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
89
|
+
...NoTerminal_1.NO_TERMINAL,
|
|
88
90
|
});
|
|
89
91
|
}
|
|
90
92
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestAutofixInterceptor.js","sourceRoot":"","sources":["../../../src/utils/TestAutofixInterceptor.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TestAutofixInterceptor.js","sourceRoot":"","sources":["../../../src/utils/TestAutofixInterceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,8 +44,9 @@ export declare const CLAUDE_PRE_COMPACT_HOOK_COMMAND = "command -v lemma-brain-i
|
|
|
44
44
|
*/
|
|
45
45
|
export declare const CLAUDE_STOP_HOOK_COMMAND = "command -v lemma-brain-ingest >/dev/null 2>&1 && lemma-brain-ingest --stop || true";
|
|
46
46
|
/**
|
|
47
|
-
* PostToolUseFailure (Bash): Claude Code sends a command that exits non-zero here and NOT to PostToolUse, so
|
|
48
|
-
*
|
|
47
|
+
* PostToolUseFailure (Bash): Claude Code sends a command that exits non-zero here and NOT to PostToolUse, so a
|
|
48
|
+
* failing test run never reached FixCapture (no red, so no red → green fix memory), the recall of a recorded fix,
|
|
49
|
+
* or the leak warning. The handler treats it exactly like PostToolUse.
|
|
49
50
|
*/
|
|
50
51
|
export declare const CLAUDE_FAILURE_HOOK_COMMAND = "command -v lemma-brain-ingest >/dev/null 2>&1 && lemma-brain-ingest --hook-failure || true";
|
|
51
52
|
export declare const CLAUDE_FAILURE_MATCHER = "Bash";
|
|
@@ -74,12 +75,42 @@ export declare function installCodexHooks(home?: string): HookInstallOutcome;
|
|
|
74
75
|
/** Cursor format: `{ version: 1, hooks: { <event>: [{ command, matcher? }] } }`. */
|
|
75
76
|
export declare function installCursorHooks(home?: string): HookInstallOutcome;
|
|
76
77
|
/**
|
|
77
|
-
* OpenCode has no hook protocol, so the hook is a plugin:
|
|
78
|
-
* to `lemma-brain-ingest --host=opencode
|
|
79
|
-
*
|
|
80
|
-
* tool.execute.before, keyed by call id
|
|
78
|
+
* OpenCode has no hook protocol, so the hook is a plugin:
|
|
79
|
+
* - each finished tool call goes to `lemma-brain-ingest --host=opencode`, and the note it prints (if
|
|
80
|
+
* any) is appended to the tool's output, the only place a plugin can put text the model reads.
|
|
81
|
+
* Arguments are taken from tool.execute.before, keyed by call id: the after-hook's input lacks them.
|
|
82
|
+
* - session.idle (OpenCode has no session end) sends the session and its subagents' child sessions to
|
|
83
|
+
* `--opencode-idle`, which saves the hand-off (see OpenCodeSession); experimental.session.compacting
|
|
84
|
+
* does the same and adds the hand-off to the compaction context, so the plan survives it.
|
|
85
|
+
* - experimental.chat.system.transform adds the session briefing (what `SessionStart` gives Claude
|
|
86
|
+
* Code) to the system prompt, computed once per session and repeated on every step so the prompt
|
|
87
|
+
* stays the same between steps. Subagent sessions get none of this: they are the parent's work.
|
|
88
|
+
* The session is NOT fetched from the SDK on every turn: measured on real sessions, one message's
|
|
89
|
+
* `summary.diffs` held 99.7 MB and whole sessions 170-207 MB, all of which `client.session.messages`
|
|
90
|
+
* returns. The plugin keeps its own trimmed log from the bus events it already receives
|
|
91
|
+
* (message.updated, message.part.updated, session.created/updated). A session it joined midway (opened with
|
|
92
|
+
* -s / --continue) is not fetched either: no SDK query can leave that one message out. Its hand-off then
|
|
93
|
+
* covers what this process saw, and the previous process's hand-off carries the plan and the files over
|
|
94
|
+
* (SessionCapture's continuation). Only session.get, which is small, is asked for, to tell a subagent.
|
|
95
|
+
* The idle/compaction/briefing calls are async (a spawnSync would freeze OpenCode's UI meanwhile) and
|
|
96
|
+
* every hook swallows its errors: Lemma must never be the reason a session fails.
|
|
81
97
|
*/
|
|
82
|
-
export declare const OPENCODE_PLUGIN = "// managed by `lemma init` \u2014 delete this file to disable Lemma Brain recall in OpenCode\nimport { spawnSync } from \"node:child_process\";\n\nexport const LemmaBrainRecall = async ({ directory }) => {\n const argsByCall = new Map();\n return {\n \"tool.execute.before\": async (input, output) => {\n if (!input || !input.callID) return;\n argsByCall.set(input.callID, (output && output.args) || {});\n if (argsByCall.size > 200) argsByCall.delete(argsByCall.keys().next().value);\n },\n \"tool.execute.after\": async (input, output) => {\n try {\n const args = argsByCall.get(input.callID) || input.args || {};\n argsByCall.delete(input.callID);\n if (!output || typeof output.output !== \"string\") return;\n const payload = { tool: input.tool, sessionID: input.sessionID, args, output: output.output, metadata: output.metadata || {}, directory };\n const r = spawnSync(\"lemma-brain-ingest\", [\"--hook-result\", \"--host=opencode\"], { input: JSON.stringify(payload), encoding: \"utf8\", timeout: 5000 });\n const note = typeof r.stdout === \"string\" ? r.stdout.trim() : \"\";\n if (note) output.output += \"\\n\\n\" + note;\n } catch {\n // A recall hint must never be the reason a tool call fails.\n }\n },\n };\n};\n";
|
|
98
|
+
export declare const OPENCODE_PLUGIN = "// managed by `lemma init` \u2014 delete this file to disable Lemma Brain recall in OpenCode\nimport { spawn, spawnSync } from \"node:child_process\";\n\nconst MAX_TEXT = 8000;\nconst OUTPUT_HEAD = 1500;\nconst OUTPUT_TAIL = 4500;\nconst MAX_PARTS = 4000;\nconst INPUT_KEYS = [\"filePath\", \"file_path\", \"path\", \"command\", \"description\", \"subagent_type\", \"patchText\", \"searchContent\", \"replaceContent\", \"patches\"];\n\nconst clip = (s, n) => (typeof s === \"string\" && s.length > n ? s.slice(0, n) : s);\nconst ends = (s) => (typeof s === \"string\" && s.length > OUTPUT_HEAD + OUTPUT_TAIL ? s.slice(0, OUTPUT_HEAD) + \"\\n\u2026\\n\" + s.slice(-OUTPUT_TAIL) : s);\n\n// What Lemma reads of a part (see OpenCodeSession): nothing else crosses the process boundary.\nfunction slimPart(p) {\n if (!p || typeof p !== \"object\") return null;\n if (p.type === \"text\") return p.synthetic || typeof p.text !== \"string\" ? null : { type: \"text\", text: clip(p.text, MAX_TEXT) };\n if (p.type === \"patch\") return Array.isArray(p.files) ? { type: \"patch\", files: p.files.slice(0, 50) } : null;\n if (p.type !== \"tool\" || typeof p.tool !== \"string\") return null;\n const st = p.state || {};\n const raw = st.input && typeof st.input === \"object\" ? st.input : {};\n const input = {};\n for (const k of INPUT_KEYS) if (raw[k] !== undefined) input[k] = typeof raw[k] === \"string\" ? clip(raw[k], 20000) : raw[k];\n const meta = st.metadata || {};\n return { type: \"tool\", tool: p.tool, callID: p.callID, state: { status: st.status, input, output: ends(typeof st.output === \"string\" ? st.output : \"\"), error: clip(st.error, 2000), time: st.time, metadata: { sessionId: meta.sessionId, exit: meta.exit } } };\n}\n\nexport const LemmaBrainRecall = async ({ client, directory }) => {\n const argsByCall = new Map();\n const sessions = new Map(); // id -> { parentID, title, agent, joined, messages: Map(msgId -> { info, parts: Map(partId -> slim) }) }\n const briefings = new Map();\n const ingest = (args, payload, timeoutMs) => new Promise((resolve) => {\n let out = \"\";\n let done = false;\n const finish = () => { if (!done) { done = true; clearTimeout(timer); resolve(out.trim()); } };\n const child = spawn(\"lemma-brain-ingest\", args, { stdio: [\"pipe\", \"pipe\", \"ignore\"] });\n const timer = setTimeout(() => { try { child.kill(); } catch {} finish(); }, timeoutMs);\n child.stdout.on(\"data\", (d) => { out += d; });\n child.on(\"error\", finish);\n child.on(\"close\", finish);\n child.stdin.on(\"error\", () => {});\n child.stdin.end(JSON.stringify(payload));\n });\n const session = (id) => {\n if (!sessions.has(id)) sessions.set(id, { parentID: undefined, title: undefined, agent: undefined, joined: false, messages: new Map(), parts: 0 });\n return sessions.get(id);\n };\n const learn = (info) => {\n if (!info || typeof info.id !== \"string\") return;\n const s = session(info.id);\n s.parentID = info.parentID || null;\n s.title = info.title;\n s.agent = info.agent;\n };\n const message = (s, info) => {\n const m = s.messages.get(info.id) || { info: {}, parts: new Map() };\n // A part can arrive before its message: the placeholder's role and time are corrected here.\n m.info = { role: info.role, time: { created: info.time && info.time.created } };\n s.messages.set(info.id, m);\n return m;\n };\n const addPart = (s, messageID, part) => {\n const slim = slimPart(part);\n if (!slim || !messageID) return;\n const m = s.messages.get(messageID) || (s.messages.set(messageID, { info: { role: \"assistant\", time: {} }, parts: new Map() }), s.messages.get(messageID));\n if (!m.parts.has(part.id)) s.parts++;\n m.parts.set(part.id || String(m.parts.size), slim);\n // A runaway session keeps its first parts (the task) and its latest ones (the work at hand).\n if (s.parts > MAX_PARTS) {\n const ids = [...s.messages.keys()];\n for (const id of ids.slice(2, Math.max(2, ids.length - 300))) { s.parts -= s.messages.get(id).parts.size; s.messages.delete(id); if (s.parts <= MAX_PARTS * 0.8) break; }\n }\n };\n // A session this process did not see start (opened with -s / --continue): only ask whether it is a subagent.\n const join = async (id) => {\n const s = session(id);\n if (s.joined) return s;\n s.joined = true;\n try {\n if (s.parentID === undefined) learn(((await client.session.get({ path: { id } })).data) || { id });\n } catch { /* unknown parent: treated as a main session */ }\n return s;\n };\n const isSubagent = async (id) => !!(await join(id)).parentID;\n const plain = (s) => [...s.messages.values()].sort((a, b) => (a.info.time.created || 0) - (b.info.time.created || 0)).map((m) => ({ info: m.info, parts: [...m.parts.values()] }));\n const snapshot = async (id) => {\n const s = await join(id);\n const kids = [];\n for (const [kid, k] of sessions) if (k.parentID === id) kids.push({ session: { id: kid, title: k.title, agent: k.agent }, messages: plain(k) });\n return { sessionID: id, directory, messages: plain(s), children: kids };\n };\n return {\n \"tool.execute.before\": async (input, output) => {\n if (!input || !input.callID) return;\n argsByCall.set(input.callID, (output && output.args) || {});\n if (argsByCall.size > 200) argsByCall.delete(argsByCall.keys().next().value);\n },\n \"tool.execute.after\": async (input, output) => {\n try {\n const args = argsByCall.get(input.callID) || input.args || {};\n argsByCall.delete(input.callID);\n if (!output || typeof output.output !== \"string\") return;\n const payload = { tool: input.tool, sessionID: input.sessionID, args, output: output.output, metadata: output.metadata || {}, directory };\n const r = spawnSync(\"lemma-brain-ingest\", [\"--hook-result\", \"--host=opencode\"], { input: JSON.stringify(payload), encoding: \"utf8\", timeout: 5000 });\n const note = typeof r.stdout === \"string\" ? r.stdout.trim() : \"\";\n if (note) output.output += \"\\n\\n\" + note;\n } catch {\n // A recall hint must never be the reason a tool call fails.\n }\n },\n event: async ({ event }) => {\n try {\n if (!event || !event.properties) return;\n const props = event.properties;\n if (event.type === \"session.created\" || event.type === \"session.updated\") {\n learn(props.info);\n if (event.type === \"session.created\" && props.info) session(props.info.id).joined = true; // seen from its start\n return;\n }\n if (event.type === \"message.updated\" && props.info && props.info.sessionID) { message(session(props.info.sessionID), props.info); return; }\n if (event.type === \"message.part.updated\" && props.part && props.part.sessionID) { addPart(session(props.part.sessionID), props.part.messageID, props.part); return; }\n if (event.type !== \"session.idle\") return;\n const id = props.sessionID;\n if (!id || (await isSubagent(id))) return;\n await ingest([\"--opencode-idle\", \"--host=opencode\"], await snapshot(id), 15000);\n } catch {\n // the hand-off is a courtesy; the session is never held up by it\n }\n },\n \"experimental.session.compacting\": async (input, output) => {\n try {\n if (!input || !input.sessionID || (await isSubagent(input.sessionID))) return;\n const text = await ingest([\"--opencode-compacting\", \"--host=opencode\"], await snapshot(input.sessionID), 15000);\n if (text && output && Array.isArray(output.context)) output.context.push(text);\n } catch {\n // the compaction goes ahead without the hand-off\n }\n },\n \"experimental.chat.system.transform\": async (input, output) => {\n try {\n const id = input && input.sessionID;\n if (!id || !output || !Array.isArray(output.system)) return;\n if (!briefings.has(id)) {\n briefings.set(id, (await isSubagent(id)) ? \"\" : await ingest([\"--session-start\", \"--host=opencode\"], { cwd: directory, session_id: id, host: \"opencode\" }, 5000));\n }\n const text = briefings.get(id);\n if (text) output.system.push(text);\n } catch {\n // no briefing this time\n }\n },\n };\n};\n";
|
|
99
|
+
/** What `lemma init` registers as OpenCode's MCP server: OpenCode's local-server shape (`type`, argv array). */
|
|
100
|
+
export declare const OPENCODE_MCP_ENTRY: {
|
|
101
|
+
type: string;
|
|
102
|
+
command: string[];
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Register Lemma's MCP server where OpenCode reads it: `~/.config/opencode/opencode.json` (or the
|
|
107
|
+
* `.jsonc` beside it, when that is the one in use). `lemma init` used to write `~/.opencode.json`, a path
|
|
108
|
+
* OpenCode no longer reads, in the old `{command, args}` shape, so outside a repo with its own
|
|
109
|
+
* opencode.json OpenCode had no Lemma tools at all (`opencode mcp list`: "No MCP servers configured").
|
|
110
|
+
* An existing `mcp.lemma` is kept as it is (it may point at a local build on purpose); a file that is
|
|
111
|
+
* not plain JSON (a .jsonc with comments) is left alone and the caller gets the snippet to add.
|
|
112
|
+
*/
|
|
113
|
+
export declare function registerOpenCodeMcp(home?: string): HookInstallOutcome;
|
|
83
114
|
export declare function installOpenCodePlugin(home?: string): HookInstallOutcome;
|
|
84
115
|
export interface HostHookReport {
|
|
85
116
|
host: 'Claude Code' | 'Codex' | 'Cursor' | 'OpenCode';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostHooks.d.ts","sourceRoot":"","sources":["../../../src/cli/hostHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgBH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAGvE;AAED,eAAO,MAAM,mBAAmB,QAAwB,CAAC;AACzD,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,gGAA4E,CAAC;AACpH,uGAAuG;AACvG,eAAO,MAAM,4BAA4B,2FAA8E,CAAC;AACxH,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAC3E,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,gGAA6E,CAAC;AACtH,sGAAsG;AACtG,eAAO,MAAM,+BAA+B,8FAAiF,CAAC;AAC9H;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,8FAAiF,CAAC;AAC9H;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,uFAA0E,CAAC;AAChH
|
|
1
|
+
{"version":3,"file":"hostHooks.d.ts","sourceRoot":"","sources":["../../../src/cli/hostHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAgBH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAGvE;AAED,eAAO,MAAM,mBAAmB,QAAwB,CAAC;AACzD,0FAA0F;AAC1F,eAAO,MAAM,0BAA0B,gGAA4E,CAAC;AACpH,uGAAuG;AACvG,eAAO,MAAM,4BAA4B,2FAA8E,CAAC;AACxH,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAC3E,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,gGAA6E,CAAC;AACtH,sGAAsG;AACtG,eAAO,MAAM,+BAA+B,8FAAiF,CAAC;AAC9H;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,8FAAiF,CAAC;AAC9H;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,uFAA0E,CAAC;AAChH;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,+FAA6E,CAAC;AACtH,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,mBAAmB,gDAAgD,CAAC;AACjF,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAChE,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,UAWD,CAAC;AAEjC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6FD,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,EAAE,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,kBAAkB,CA8B3H;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAqB,GAAG,kBAAkB,CAEjF;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAqB,GAAG,kBAAkB,CAkClF;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe,suQAwJ3B,CAAC;AAEF,gHAAgH;AAChH,eAAO,MAAM,kBAAkB;;;;CAAkF,CAAC;AAElH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,MAAqB,GAAG,kBAAkB,CAsBnF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,MAAqB,GAAG,kBAAkB,CAYrF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtD,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,EAAE,IAAI,GAAE,MAAqB,GAAG,cAAc,EAAE,CAO3G;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,kBAAkB,GAAG,IAAI,CAWxF"}
|