mindweave 3.4.1 → 3.4.2
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 +26 -3
- package/dist/cli/App.js +52 -8
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/commands.js +1 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/components/ToolLine.js +5 -3
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/components/WorkGroup.js +82 -64
- package/dist/cli/components/WorkGroup.js.map +1 -1
- package/dist/cli/startupArgs.js +24 -4
- package/dist/cli/startupArgs.js.map +1 -1
- package/dist/cli/transcript.js +14 -0
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/workLines.js +40 -0
- package/dist/cli/workLines.js.map +1 -1
- package/dist/core/turnRunner.js +35 -23
- package/dist/core/turnRunner.js.map +1 -1
- package/dist/dynamo/contextWindow.js +28 -36
- package/dist/dynamo/contextWindow.js.map +1 -1
- package/dist/dynamo/engine.js +51 -9
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/guard.js +1 -1
- package/dist/dynamo/guard.js.map +1 -1
- package/dist/dynamo/prompt.js +1 -1
- package/dist/headless/args.js +82 -0
- package/dist/headless/args.js.map +1 -0
- package/dist/headless/main.js +87 -0
- package/dist/headless/main.js.map +1 -0
- package/dist/headless/output.js +150 -0
- package/dist/headless/output.js.map +1 -0
- package/dist/headless/run.js +188 -0
- package/dist/headless/run.js.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/main.js +5 -0
- package/dist/main.js.map +1 -1
- package/dist/memory/compaction.js +94 -2
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/rewind.js +10 -6
- package/dist/memory/rewind.js.map +1 -1
- package/dist/memory/session.js +2 -2
- package/dist/memory/session.js.map +1 -1
- package/dist/memory/sessionMemory.js +270 -69
- package/dist/memory/sessionMemory.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/project/context.js +34 -6
- package/dist/project/context.js.map +1 -1
- package/dist/tools/coauthor.js +154 -0
- package/dist/tools/coauthor.js.map +1 -0
- package/dist/tools/codeIntel.js +38 -10
- package/dist/tools/codeIntel.js.map +1 -1
- package/dist/tools/docOutline.js +250 -0
- package/dist/tools/docOutline.js.map +1 -0
- package/dist/tools/editRipple.js +29 -2
- package/dist/tools/editRipple.js.map +1 -1
- package/dist/tools/emptyResult.js +24 -0
- package/dist/tools/emptyResult.js.map +1 -0
- package/dist/tools/glob.js +11 -2
- package/dist/tools/glob.js.map +1 -1
- package/dist/tools/grep.js +4 -3
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/missingPath.js +90 -0
- package/dist/tools/missingPath.js.map +1 -0
- package/dist/tools/readFile.js +3 -1
- package/dist/tools/readFile.js.map +1 -1
- package/dist/tools/rebuildDetail.js +9 -5
- package/dist/tools/rebuildDetail.js.map +1 -1
- package/dist/tools/runCommand.js +5 -1
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/webSearch.js +3 -1
- package/dist/tools/webSearch.js.map +1 -1
- package/package.json +2 -2
|
@@ -69,63 +69,184 @@ export const SESSION_MEMORY_SECTION_TOKENS = env("MINDWEAVE_SESSION_MEMORY_SECTI
|
|
|
69
69
|
* italic _descriptions_ are template instructions (kept intact); the model only fills
|
|
70
70
|
* the content beneath each. "Current State" is first-class: it's what lets the model
|
|
71
71
|
* pick up cleanly after a compaction. */
|
|
72
|
-
export const SESSION_MEMORY_TEMPLATE = `# Session Title
|
|
73
|
-
_A short and distinctive 3-6 word title for the session, like a commit subject ("Fix SQL injection in login"). No project name, no filler_
|
|
74
|
-
|
|
75
|
-
# Current State
|
|
76
|
-
_What is actively being worked on right now? Pending tasks not yet completed. Immediate next steps._
|
|
77
|
-
|
|
78
|
-
# Task specification
|
|
79
|
-
_What did the user ask to build? Any design decisions or other explanatory context_
|
|
80
|
-
|
|
81
|
-
# Files and Functions
|
|
82
|
-
_What are the important files? In short, what do they contain and why are they relevant?_
|
|
83
|
-
|
|
84
|
-
# Workflow
|
|
85
|
-
_What commands are usually run and in what order? How to interpret their output if not obvious?_
|
|
86
|
-
|
|
87
|
-
# Errors & Corrections
|
|
88
|
-
_Errors encountered and how they were fixed. What did the user correct? What approaches failed and should not be tried again?_
|
|
89
|
-
|
|
90
|
-
# Codebase and System Documentation
|
|
91
|
-
_What are the important system components? How do they work/fit together?_
|
|
92
|
-
|
|
93
|
-
# Learnings
|
|
94
|
-
_What has worked well? What has not? What to avoid? Do not duplicate items from other sections_
|
|
95
|
-
|
|
96
|
-
# Key results
|
|
97
|
-
_If the user asked a specific output such as an answer to a question, a table, or other document, repeat the exact result here_
|
|
98
|
-
|
|
99
|
-
# Worklog
|
|
72
|
+
export const SESSION_MEMORY_TEMPLATE = `# Session Title
|
|
73
|
+
_A short and distinctive 3-6 word title for the session, like a commit subject ("Fix SQL injection in login"). No project name, no filler_
|
|
74
|
+
|
|
75
|
+
# Current State
|
|
76
|
+
_What is actively being worked on right now? Pending tasks not yet completed. Immediate next steps._
|
|
77
|
+
|
|
78
|
+
# Task specification
|
|
79
|
+
_What did the user ask to build? Any design decisions or other explanatory context_
|
|
80
|
+
|
|
81
|
+
# Files and Functions
|
|
82
|
+
_What are the important files? In short, what do they contain and why are they relevant?_
|
|
83
|
+
|
|
84
|
+
# Workflow
|
|
85
|
+
_What commands are usually run and in what order? How to interpret their output if not obvious?_
|
|
86
|
+
|
|
87
|
+
# Errors & Corrections
|
|
88
|
+
_Errors encountered and how they were fixed. What did the user correct? What approaches failed and should not be tried again?_
|
|
89
|
+
|
|
90
|
+
# Codebase and System Documentation
|
|
91
|
+
_What are the important system components? How do they work/fit together?_
|
|
92
|
+
|
|
93
|
+
# Learnings
|
|
94
|
+
_What has worked well? What has not? What to avoid? Do not duplicate items from other sections_
|
|
95
|
+
|
|
96
|
+
# Key results
|
|
97
|
+
_If the user asked a specific output such as an answer to a question, a table, or other document, repeat the exact result here_
|
|
98
|
+
|
|
99
|
+
# Worklog
|
|
100
100
|
_Step by step, what was attempted, done? Very terse summary for each step_`;
|
|
101
101
|
const UPDATE_SYSTEM = "You maintain a running notes document that captures the live state of a software " +
|
|
102
102
|
"engineering session, so work can continue seamlessly across context compaction. You " +
|
|
103
|
-
"will be given the CURRENT notes and what has happened SINCE they were written
|
|
104
|
-
"
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
103
|
+
"will be given the CURRENT notes and what has happened SINCE they were written, and you " +
|
|
104
|
+
"reply with only the parts of the notes that change.";
|
|
105
|
+
/**
|
|
106
|
+
* How the notes writer is told to answer, the same wording in both ways of calling it.
|
|
107
|
+
*
|
|
108
|
+
* It answers with the sections that CHANGED, not the whole document. Writing the whole thing back
|
|
109
|
+
* every time cost as many output tokens as the notes are long (6.5K for a 25 KB document, per
|
|
110
|
+
* refresh, several refreshes in a minute during busy work), and a long enough document no longer
|
|
111
|
+
* fits in one answer at all: the reply was cut off mid-way and thrown away, and the next refresh
|
|
112
|
+
* paid for the same attempt again. A changed section is a few hundred tokens, however long the
|
|
113
|
+
* notes have grown.
|
|
114
|
+
*/
|
|
115
|
+
const UPDATE_RULES = "Reply with ONLY the sections of the notes that need to change, each as its exact \"# Heading\" line " +
|
|
116
|
+
"followed by its new content. Leave out every section with nothing new; an unchanged section must not appear. " +
|
|
117
|
+
"If nothing at all changed, reply: NO CHANGES.\n" +
|
|
118
|
+
"- A section you list REPLACES the one in the notes, so write its complete new content, dense and specific " +
|
|
119
|
+
"(file paths, function names, exact commands, error messages, decisions).\n" +
|
|
120
|
+
"- To add to a section without rewriting it, make the first line of its content APPEND: and write only the new " +
|
|
121
|
+
"lines after it. Use this for the Worklog.\n" +
|
|
122
|
+
"- Never repeat the italic _description_ line under a heading; it is kept for you.\n" +
|
|
123
|
+
`- Keep each section under ~${SESSION_MEMORY_SECTION_TOKENS} tokens: when one grows past that, CYCLE OUT the ` +
|
|
124
|
+
"least important details while preserving the most critical. A section over its budget has to be rewritten shorter.\n" +
|
|
125
|
+
"- Where the new activity contradicts what the notes say, the new activity is right: correct the notes, and do not " +
|
|
126
|
+
"write about the correction.\n" +
|
|
127
|
+
"- ALWAYS keep \"Current State\" accurate to the latest turn — it is what continues the work after compaction.\n" +
|
|
128
|
+
"- Do NOT record facts about the machine that change on their own: process ids, whether an app or server is " +
|
|
129
|
+
"currently running, ports in use, temporary files or database rows that exist only for a test. They are wrong " +
|
|
130
|
+
"within minutes. If one matters, say what was done and when (\"started the dev server at 09:04\"), never that it " +
|
|
131
|
+
"is still so.\n" +
|
|
132
|
+
"- Reply with text only. Do not call any tool. No preamble, no commentary, no code fences.";
|
|
125
133
|
/** The `# Heading` lines of the template, in order (pure). */
|
|
126
134
|
function templateHeaders() {
|
|
127
135
|
return SESSION_MEMORY_TEMPLATE.split("\n").filter((l) => l.startsWith("# "));
|
|
128
136
|
}
|
|
137
|
+
const DESCRIPTION_LINE = /^_.*_$/;
|
|
138
|
+
const NOTHING_CHANGED = /^\W*(no changes?|n\/a|none|nothing (new|to (add|change|update))|unchanged)\b/i;
|
|
139
|
+
function stripFences(text) {
|
|
140
|
+
const lines = text.replace(/\r\n/g, "\n").split("\n");
|
|
141
|
+
while (lines.length > 0 && /^\s*```/.test(lines[0]))
|
|
142
|
+
lines.shift();
|
|
143
|
+
while (lines.length > 0 && /^\s*```\s*$/.test(lines[lines.length - 1]))
|
|
144
|
+
lines.pop();
|
|
145
|
+
return lines;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* The sections a reply gave, read as changes to the notes (pure).
|
|
149
|
+
*
|
|
150
|
+
* Only a template heading starts a section, so a model that wraps its answer in a sentence, or
|
|
151
|
+
* writes a "# Something" line of its own inside a section, does not break the parse. A section's
|
|
152
|
+
* words are what follows its heading, minus the italic description line a model is told not to
|
|
153
|
+
* repeat but often does. `truncated` says the reply was cut off by the output limit: the last
|
|
154
|
+
* section is then incomplete and is dropped, rather than written over the real one half-finished.
|
|
155
|
+
*/
|
|
156
|
+
export function parseNotesPatch(reply, truncated = false) {
|
|
157
|
+
const known = new Map(templateHeaders().map((h) => [h.toLowerCase(), h]));
|
|
158
|
+
const raw = [];
|
|
159
|
+
for (const line of stripFences(reply)) {
|
|
160
|
+
const header = known.get(line.trim().toLowerCase());
|
|
161
|
+
if (header)
|
|
162
|
+
raw.push({ header, lines: [] });
|
|
163
|
+
else
|
|
164
|
+
raw.at(-1)?.lines.push(line);
|
|
165
|
+
}
|
|
166
|
+
if (truncated)
|
|
167
|
+
raw.pop();
|
|
168
|
+
const patch = new Map();
|
|
169
|
+
for (const { header, lines } of raw) {
|
|
170
|
+
const body = [...lines];
|
|
171
|
+
while (body.length > 0 && (body[0].trim() === "" || DESCRIPTION_LINE.test(body[0].trim())))
|
|
172
|
+
body.shift();
|
|
173
|
+
let mode = "set";
|
|
174
|
+
const first = body[0]?.match(/^\s*APPEND:?\s*(.*)$/i);
|
|
175
|
+
if (first) {
|
|
176
|
+
mode = "append";
|
|
177
|
+
body[0] = first[1] ?? "";
|
|
178
|
+
}
|
|
179
|
+
const text = body.join("\n").trim();
|
|
180
|
+
if (!text || NOTHING_CHANGED.test(text) && text.length < 40)
|
|
181
|
+
continue;
|
|
182
|
+
patch.set(header, { mode, body: text });
|
|
183
|
+
}
|
|
184
|
+
return patch;
|
|
185
|
+
}
|
|
186
|
+
/** Whether a reply says, in words, that there was nothing to change (pure). */
|
|
187
|
+
export function saysNothingChanged(reply) {
|
|
188
|
+
const text = reply.trim();
|
|
189
|
+
return text.length < 80 && NOTHING_CHANGED.test(text);
|
|
190
|
+
}
|
|
191
|
+
/** The notes as sections, in document order; anything before the first heading is dropped (pure). */
|
|
192
|
+
function splitSections(notes) {
|
|
193
|
+
const known = new Set(templateHeaders().map((h) => h.toLowerCase()));
|
|
194
|
+
const out = [];
|
|
195
|
+
for (const line of notes.replace(/\r\n/g, "\n").split("\n")) {
|
|
196
|
+
if (known.has(line.trim().toLowerCase()))
|
|
197
|
+
out.push({ header: line.trim(), lines: [] });
|
|
198
|
+
else
|
|
199
|
+
out.at(-1)?.lines.push(line);
|
|
200
|
+
}
|
|
201
|
+
return out.map(({ header, lines }) => {
|
|
202
|
+
const body = [...lines];
|
|
203
|
+
const description = [];
|
|
204
|
+
while (body.length > 0 && (body[0].trim() === "" || DESCRIPTION_LINE.test(body[0].trim()))) {
|
|
205
|
+
if (body[0].trim() !== "")
|
|
206
|
+
description.push(body[0]);
|
|
207
|
+
body.shift();
|
|
208
|
+
}
|
|
209
|
+
return { header, description: description.join("\n"), body: body.join("\n").trim(), raw: [header, ...lines].join("\n").trimEnd() };
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
/** A section's tokens, for telling the writer which ones are over their budget (pure). */
|
|
213
|
+
export function oversizedSections(notes, limit = SESSION_MEMORY_SECTION_TOKENS) {
|
|
214
|
+
return splitSections(notes)
|
|
215
|
+
.filter((sec) => estimateTokens(sec.body) > limit)
|
|
216
|
+
.map((sec) => sec.header.replace(/^#\s*/, ""));
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* The notes with a reply's changes folded in (pure). A heading the notes lack is added from the
|
|
220
|
+
* template; a replacement that would throw away most of a long section is refused, so one bad
|
|
221
|
+
* answer cannot empty a record the rest of the notes depend on. `changed` names what was
|
|
222
|
+
* actually written, which is what tells "nothing new" from "an answer nothing could be done with".
|
|
223
|
+
*/
|
|
224
|
+
export function applyNotesPatch(current, patch) {
|
|
225
|
+
const have = new Map(splitSections(current).map((sec) => [sec.header, sec]));
|
|
226
|
+
const template = new Map(splitSections(SESSION_MEMORY_TEMPLATE).map((sec) => [sec.header, sec]));
|
|
227
|
+
const changed = [];
|
|
228
|
+
const refused = [];
|
|
229
|
+
const parts = [];
|
|
230
|
+
for (const header of templateHeaders()) {
|
|
231
|
+
const base = have.get(header) ?? template.get(header);
|
|
232
|
+
const change = patch.get(header);
|
|
233
|
+
if (!change) {
|
|
234
|
+
parts.push(have.has(header) ? base.raw : [base.header, base.description].filter(Boolean).join("\n"));
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
const body = change.mode === "append" ? [base.body, change.body].filter(Boolean).join("\n") : change.body;
|
|
238
|
+
const collapsed = change.mode === "set" && base.body.length > 1_200 && body.length < base.body.length * 0.25;
|
|
239
|
+
if (collapsed || body === base.body) {
|
|
240
|
+
if (collapsed)
|
|
241
|
+
refused.push(header);
|
|
242
|
+
parts.push(base.raw);
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
changed.push(header);
|
|
246
|
+
parts.push([base.header, base.description, body].filter(Boolean).join("\n"));
|
|
247
|
+
}
|
|
248
|
+
return { notes: boundSessionMemory(parts.join("\n\n")), changed, refused };
|
|
249
|
+
}
|
|
129
250
|
/**
|
|
130
251
|
* How many tool calls the entries from `from` on contain (pure). Counted from the point the
|
|
131
252
|
* notes last covered, so there is no counter to keep in step with the transcript.
|
|
@@ -191,11 +312,27 @@ export function notesAreUsable(previous, next) {
|
|
|
191
312
|
return false;
|
|
192
313
|
return true;
|
|
193
314
|
}
|
|
315
|
+
/** What the covered end of the transcript says, so a reader of the conversation can find it (pure). */
|
|
316
|
+
function boundaryNote(transcript, covered) {
|
|
317
|
+
if (covered <= 0)
|
|
318
|
+
return "nothing: the notes are still empty, so everything above is new";
|
|
319
|
+
const e = transcript[Math.min(covered, transcript.length) - 1];
|
|
320
|
+
if (!e)
|
|
321
|
+
return "the start";
|
|
322
|
+
const text = (e.role === "assistant" || e.role === "user" || e.role === "summary" ? e.content : "").replace(/\s+/g, " ").trim().slice(0, 100);
|
|
323
|
+
return `the ${e.role} message that begins: "${text}"`;
|
|
324
|
+
}
|
|
194
325
|
/**
|
|
195
|
-
* Refresh the session notes from what happened since they were written (one
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
326
|
+
* Refresh the session notes from what happened since they were written (one model call, thinking
|
|
327
|
+
* off). Mutates `session.sessionMemory` and the coverage marks IN MEMORY only — the CLI persists
|
|
328
|
+
* the notes file, keeping the engine filesystem-pure. Degrade-safe: on any failure the previous
|
|
329
|
+
* notes are kept untouched.
|
|
330
|
+
*
|
|
331
|
+
* Two ways to make the call. When the provider still holds the conversation in its cache and
|
|
332
|
+
* reading it from there is cheaper than sending what is new at full price (`shared`), the call is
|
|
333
|
+
* the main request with one more message on the end: the model reads the real conversation, at the
|
|
334
|
+
* cached price, and the instruction goes after it. Otherwise the call stands alone and is given the
|
|
335
|
+
* entries the notes have not seen. Either way the answer is only the sections that changed.
|
|
199
336
|
*
|
|
200
337
|
* Runs while the turn goes on, so it works from a snapshot: it reads the entries as they
|
|
201
338
|
* were when it started, and records THAT as what the notes cover. If the transcript was
|
|
@@ -204,12 +341,20 @@ export function notesAreUsable(previous, next) {
|
|
|
204
341
|
*/
|
|
205
342
|
export async function updateSessionMemory(session, signal,
|
|
206
343
|
/** Told what the call cost: it is a real model call on the user's key that nobody asked for. */
|
|
207
|
-
onUsage) {
|
|
208
|
-
const
|
|
344
|
+
onUsage, shared) {
|
|
345
|
+
const current = session.sessionMemory?.trim() || SESSION_MEMORY_TEMPLATE;
|
|
346
|
+
const covered0 = Math.min(session.sessionMemoryEntries ?? 0, session.transcript.length);
|
|
347
|
+
const tokensOf = (from, to) => estimateEntriesTokens(session.transcript.slice(from, to));
|
|
348
|
+
// Which snapshot this refresh describes: the whole transcript as it is, or the part of it the
|
|
349
|
+
// last main request carried.
|
|
350
|
+
const fresh = session.transcript.length;
|
|
351
|
+
const unseenNow = tokensOf(Math.max(covered0, fresh - FEED_ENTRIES), fresh);
|
|
352
|
+
const prefix = session.sharedNotesOff ? null : ((await shared?.(unseenNow)) ?? null);
|
|
353
|
+
const upto = prefix ? prefix.entries : fresh;
|
|
209
354
|
if (upto === 0)
|
|
210
355
|
return false;
|
|
211
|
-
const last = session.transcript[upto - 1];
|
|
212
|
-
const covered = Math.min(
|
|
356
|
+
const last = prefix ? prefix.last : session.transcript[upto - 1];
|
|
357
|
+
const covered = Math.min(covered0, upto);
|
|
213
358
|
// Only what the notes have not seen, as far back as one refresh reads. Reading a fixed
|
|
214
359
|
// number of the newest entries instead dropped the middle of anything longer than that.
|
|
215
360
|
const from = Math.max(covered, upto - FEED_ENTRIES);
|
|
@@ -218,8 +363,43 @@ onUsage) {
|
|
|
218
363
|
return false;
|
|
219
364
|
const skipped = from - covered;
|
|
220
365
|
const tokensAtStart = estimateEntriesTokens(session.transcript.slice(0, upto));
|
|
221
|
-
const
|
|
222
|
-
|
|
366
|
+
const over = oversizedSections(current);
|
|
367
|
+
const budgetNote = over.length > 0 ? `\nOver their budget and to be rewritten shorter: ${over.join(", ")}.` : "";
|
|
368
|
+
const ask = async () => {
|
|
369
|
+
if (prefix) {
|
|
370
|
+
try {
|
|
371
|
+
const model = prefix.request.model ?? session.modelConfig;
|
|
372
|
+
await ensureDriver(model.model);
|
|
373
|
+
const turn = await activeDriver().toolTurn({
|
|
374
|
+
...prefix.request,
|
|
375
|
+
// The volatile tail is dropped: this message takes its place, right after the cached part.
|
|
376
|
+
context: undefined,
|
|
377
|
+
messages: [
|
|
378
|
+
...prefix.request.messages,
|
|
379
|
+
{
|
|
380
|
+
role: "user",
|
|
381
|
+
content: `The conversation above is the session the notes describe. Do not continue it and do not call a tool: ` +
|
|
382
|
+
`this message asks only for an update of the session notes.\n\n` +
|
|
383
|
+
`NOW: ${new Date().toISOString()}\n\n` +
|
|
384
|
+
`CURRENT NOTES. They already cover everything up to and including ${boundaryNote(session.transcript, covered)}; ` +
|
|
385
|
+
`what comes after it is new:\n${current}\n\n${UPDATE_RULES}${budgetNote}`,
|
|
386
|
+
},
|
|
387
|
+
],
|
|
388
|
+
}, { signal });
|
|
389
|
+
if (turn.usage)
|
|
390
|
+
onUsage?.(turn.usage);
|
|
391
|
+
if (turn.content.trim() || turn.toolCalls.length === 0) {
|
|
392
|
+
return { content: turn.content, stop: turn.stop, usage: turn.usage, calls: turn.toolCalls.length > 0 };
|
|
393
|
+
}
|
|
394
|
+
// The model answered with a tool call instead of notes. Not something to keep asking this way.
|
|
395
|
+
session.sharedNotesOff = true;
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
if (signal?.aborted)
|
|
399
|
+
return null;
|
|
400
|
+
// This model or provider would not take the main request as it is: use the plain call.
|
|
401
|
+
}
|
|
402
|
+
}
|
|
223
403
|
// With reasoning off where the model allows it; see dynamo/auxModel.ts.
|
|
224
404
|
// `ensureDriver` first: `activeDriver()` is a plain global, and a sub-agent (or
|
|
225
405
|
// another background aux call) running its own model in between leaves it
|
|
@@ -229,7 +409,7 @@ onUsage) {
|
|
|
229
409
|
//
|
|
230
410
|
// `withTools`: a real (read-only) tool set, attached only if the model already
|
|
231
411
|
// refused a bare call — some free models serve only tool-shaped requests.
|
|
232
|
-
const
|
|
412
|
+
const turn = await withAuxModel(session.modelConfig, async (model, withTools) => {
|
|
233
413
|
await ensureDriver(model.model);
|
|
234
414
|
return activeDriver().toolTurn({
|
|
235
415
|
system: UPDATE_SYSTEM,
|
|
@@ -240,24 +420,45 @@ onUsage) {
|
|
|
240
420
|
`CURRENT NOTES:\n${current}\n\n` +
|
|
241
421
|
`WHAT HAPPENED SINCE THEY WERE WRITTEN` +
|
|
242
422
|
(skipped > 0 ? ` (${skipped} earlier entries were too many to include)` : "") +
|
|
243
|
-
`:\n${formatTranscriptForSummary(unseen)}\n\n${
|
|
423
|
+
`:\n${formatTranscriptForSummary(unseen)}\n\n${UPDATE_RULES}${budgetNote}`,
|
|
244
424
|
},
|
|
245
425
|
],
|
|
246
426
|
model,
|
|
247
427
|
...(withTools ? { tools: toolSchemas({ readOnlyOnly: true }) } : {}),
|
|
248
428
|
}, { signal }); // Esc reaches this call too; a slow model must not hold a stop open
|
|
249
429
|
});
|
|
250
|
-
if (usage)
|
|
251
|
-
onUsage?.(usage);
|
|
252
|
-
|
|
253
|
-
|
|
430
|
+
if (turn.usage)
|
|
431
|
+
onUsage?.(turn.usage);
|
|
432
|
+
return { content: turn.content, stop: turn.stop, usage: turn.usage, calls: false };
|
|
433
|
+
};
|
|
434
|
+
try {
|
|
435
|
+
const answer = await ask();
|
|
436
|
+
if (!answer)
|
|
254
437
|
return failed(session, tokensAtStart);
|
|
438
|
+
const patch = parseNotesPatch(answer.content, answer.stop === "truncated");
|
|
439
|
+
let notes;
|
|
440
|
+
if (patch.size === 0) {
|
|
441
|
+
// "Nothing new" is an answer; anything else with no sections in it is not one.
|
|
442
|
+
if (!saysNothingChanged(answer.content))
|
|
443
|
+
return failed(session, tokensAtStart);
|
|
444
|
+
notes = session.sessionMemory ?? "";
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
const applied = applyNotesPatch(current, patch);
|
|
448
|
+
// A reply that only repeats what the notes say is an answer; one whose every change was refused is not.
|
|
449
|
+
if (applied.changed.length === 0 && applied.refused.length > 0)
|
|
450
|
+
return failed(session, tokensAtStart);
|
|
451
|
+
notes = applied.notes;
|
|
452
|
+
if (applied.changed.length > 0 && !notesAreUsable(session.sessionMemory, notes))
|
|
453
|
+
return failed(session, tokensAtStart);
|
|
454
|
+
}
|
|
255
455
|
// The snapshot has to still be the start of the transcript. Compaction, a rewind, /clear
|
|
256
456
|
// and the shedding of old rounds all replace it, and a refresh that began before one of
|
|
257
457
|
// them describes entries that may no longer be where it thinks.
|
|
258
458
|
if (session.transcript[upto - 1] !== last)
|
|
259
459
|
return false;
|
|
260
|
-
|
|
460
|
+
if (notes)
|
|
461
|
+
session.sessionMemory = notes;
|
|
261
462
|
session.sessionMemoryTokens = tokensAtStart;
|
|
262
463
|
// The boundary compaction-from-notes splits on: everything up to here is written
|
|
263
464
|
// down, everything after it has to be kept verbatim. Recorded at the same moment
|
|
@@ -289,10 +490,10 @@ function failed(session, tokensAtStart) {
|
|
|
289
490
|
* Two refreshes at once would each read the same unseen entries and the later one would
|
|
290
491
|
* overwrite the earlier with notes that know less. The returned promise never rejects.
|
|
291
492
|
*/
|
|
292
|
-
export function refreshSessionMemory(session, signal, onUsage) {
|
|
493
|
+
export function refreshSessionMemory(session, signal, onUsage, shared) {
|
|
293
494
|
if (session.sessionMemoryRun)
|
|
294
495
|
return session.sessionMemoryRun;
|
|
295
|
-
const run = updateSessionMemory(session, signal, onUsage).finally(() => {
|
|
496
|
+
const run = updateSessionMemory(session, signal, onUsage, shared).finally(() => {
|
|
296
497
|
if (session.sessionMemoryRun === run)
|
|
297
498
|
session.sessionMemoryRun = undefined;
|
|
298
499
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionMemory.js","sourceRoot":"","sources":["../../src/memory/sessionMemory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessionMemory.js","sourceRoot":"","sources":["../../src/memory/sessionMemory.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAwLA;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY;IACtC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa;QAAE,OAAO,EAAE,CAAC;IAC7D,OAAO,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;AAC/F,CAAC"}
|
package/dist/project/context.js
CHANGED
|
@@ -71,18 +71,27 @@ function collectEnvironment(cwd) {
|
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
73
|
async function collectGit(cwd) {
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
// Every git process costs a spawn, so the ones that cannot run a program are started together: whether this is a
|
|
75
|
+
// repository, whether its own config defines filters, the branch and the log. Only `status` waits for the answers.
|
|
76
|
+
const insideP = runGit(["rev-parse", "--is-inside-work-tree"], cwd);
|
|
77
|
+
const filtersP = repoDefinesFilters(cwd);
|
|
78
|
+
const branchP = runGit(["rev-parse", "--abbrev-ref", "HEAD"], cwd);
|
|
79
|
+
const logP = runGit(["log", "--oneline", "--no-show-signature", "-n", String(GIT_LOG_COUNT)], cwd);
|
|
80
|
+
const inside = (await insideP)?.trim();
|
|
81
|
+
if (inside !== "true") {
|
|
82
|
+
await Promise.allSettled([filtersP, branchP, logP]);
|
|
76
83
|
return null;
|
|
84
|
+
}
|
|
77
85
|
// `status` runs the repository's content filters, and a filter is a program named in
|
|
78
86
|
// the repository's own config, which arrives with any folder that is copied together
|
|
79
87
|
// with its .git directory. Filters cannot be switched off from the command line, so
|
|
80
|
-
// when the repository defines one, status is left out of the snapshot
|
|
81
|
-
|
|
88
|
+
// when the repository defines one, status is left out of the snapshot, and it is not
|
|
89
|
+
// even started until that is known.
|
|
90
|
+
const filters = await filtersP;
|
|
82
91
|
const [branchRaw, statusRaw, logRaw] = await Promise.all([
|
|
83
|
-
|
|
92
|
+
branchP,
|
|
84
93
|
filters ? Promise.resolve(null) : runGit(["status", "--short", "--ignore-submodules=all"], cwd),
|
|
85
|
-
|
|
94
|
+
logP,
|
|
86
95
|
]);
|
|
87
96
|
const branch = branchRaw?.trim() || "(detached)";
|
|
88
97
|
let status = (statusRaw ?? "").trim();
|
|
@@ -374,6 +383,25 @@ export function renderProjectContext(pc) {
|
|
|
374
383
|
export async function projectContextText(cwd) {
|
|
375
384
|
return renderProjectContext(await collectProjectContext(cwd));
|
|
376
385
|
}
|
|
386
|
+
/** How long a project's context is reused when a saved session is reopened. */
|
|
387
|
+
export const RECENT_CONTEXT_MS = 20_000;
|
|
388
|
+
const recentContext = new Map();
|
|
389
|
+
/**
|
|
390
|
+
* The same text, reused for a few seconds per project. Reopening a saved session collects the project's snapshot again,
|
|
391
|
+
* and its slowest part is starting several `git` processes: about a tenth of a second spent on each switch between
|
|
392
|
+
* the sessions of one project, for an answer that has not changed. A brand-new session always collects afresh
|
|
393
|
+
* (`projectContextText`), since the person may have just changed the project.
|
|
394
|
+
*/
|
|
395
|
+
export function projectContextTextRecent(cwd, now = Date.now()) {
|
|
396
|
+
const hit = recentContext.get(cwd);
|
|
397
|
+
if (hit && now - hit.at < RECENT_CONTEXT_MS)
|
|
398
|
+
return hit.text;
|
|
399
|
+
const text = projectContextText(cwd);
|
|
400
|
+
recentContext.set(cwd, { at: now, text });
|
|
401
|
+
// A failed collection must not be remembered.
|
|
402
|
+
text.catch(() => recentContext.delete(cwd));
|
|
403
|
+
return text;
|
|
404
|
+
}
|
|
377
405
|
// ── helpers ──────────────────────────────────────────────────────────────────
|
|
378
406
|
/**
|
|
379
407
|
* Settings that make git start a program, switched off for every command this module
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/project/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/project/context.ts"],"names":[],"mappings":"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"}
|