mindweave 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/App.js +116 -14
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/components/BlockView.js +5 -5
- package/dist/cli/components/BlockView.js.map +1 -1
- package/dist/cli/components/CommandGroup.js +100 -0
- package/dist/cli/components/CommandGroup.js.map +1 -0
- package/dist/cli/components/TipLine.js +1 -0
- package/dist/cli/components/TipLine.js.map +1 -1
- package/dist/cli/components/ToolLine.js +69 -14
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/components/WorkGroup.js +115 -0
- package/dist/cli/components/WorkGroup.js.map +1 -0
- package/dist/cli/diffWrap.js +24 -0
- package/dist/cli/diffWrap.js.map +1 -0
- package/dist/cli/expandHits.js +74 -0
- package/dist/cli/expandHits.js.map +1 -0
- package/dist/cli/mouse.js +16 -8
- package/dist/cli/mouse.js.map +1 -1
- package/dist/cli/scrollGlide.js +72 -0
- package/dist/cli/scrollGlide.js.map +1 -0
- package/dist/cli/scrollPill.js +21 -1
- package/dist/cli/scrollPill.js.map +1 -1
- package/dist/cli/selfUpdate.js +7 -0
- package/dist/cli/selfUpdate.js.map +1 -1
- package/dist/cli/terminalRestore.js +1 -1
- package/dist/cli/terminalRestore.js.map +1 -1
- package/dist/cli/toolDisplay.js +14 -10
- package/dist/cli/toolDisplay.js.map +1 -1
- package/dist/cli/transcript.js +100 -29
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/uiLines.js +60 -0
- package/dist/cli/uiLines.js.map +1 -0
- package/dist/cli/wheelStep.js +29 -0
- package/dist/cli/wheelStep.js.map +1 -0
- package/dist/cli/workLines.js +84 -0
- package/dist/cli/workLines.js.map +1 -0
- package/dist/core/turnRunner.js +8 -6
- package/dist/core/turnRunner.js.map +1 -1
- package/dist/dynamo/engine.js +6 -0
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/memory/compaction.js +24 -1
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/detail.js +113 -1
- package/dist/tools/detail.js.map +1 -1
- package/dist/tools/readFile.js +9 -1
- package/dist/tools/readFile.js.map +1 -1
- package/dist/tools/rebuildDetail.js +155 -0
- package/dist/tools/rebuildDetail.js.map +1 -0
- package/dist/tools/runCommand.js +3 -3
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/ui.js +54 -1
- package/dist/tools/ui.js.map +1 -1
- package/package.json +3 -3
package/dist/cli/transcript.js
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* a later block can never print before an earlier one.
|
|
21
21
|
*/
|
|
22
22
|
import { sanitizeStreamText } from "../drivers/registry.js";
|
|
23
|
+
import { contentLines } from "../tools/detail.js";
|
|
23
24
|
export function initialState() {
|
|
24
25
|
return { committed: [], tail: [], openAsstId: null, raw: "", toolMap: {}, seq: 0, lastReply: "", narrated: false };
|
|
25
26
|
}
|
|
@@ -32,6 +33,25 @@ function drain(s) {
|
|
|
32
33
|
return s;
|
|
33
34
|
return { ...s, committed: s.committed.concat(s.tail.slice(0, i)), tail: s.tail.slice(i) };
|
|
34
35
|
}
|
|
36
|
+
/** Does the uncut block say more than the shortened one did? A row is only worth
|
|
37
|
+
* expanding when it does. */
|
|
38
|
+
export function hasMore(detail, full) {
|
|
39
|
+
if (!full || full === detail)
|
|
40
|
+
return false;
|
|
41
|
+
// The cut's own marker is not content: see contentLines.
|
|
42
|
+
return full.split("\n").length > contentLines(detail);
|
|
43
|
+
}
|
|
44
|
+
/** The newest row that can be expanded, for the keyboard way in. */
|
|
45
|
+
export function lastExpandable(s) {
|
|
46
|
+
for (const list of [s.tail, s.committed]) {
|
|
47
|
+
for (let i = list.length - 1; i >= 0; i--) {
|
|
48
|
+
const b = list[i];
|
|
49
|
+
if ((b.kind === "tool" && b.full) || b.kind === "work")
|
|
50
|
+
return b.id;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
35
55
|
function patchTail(s, id, fields) {
|
|
36
56
|
return { ...s, tail: s.tail.map((b) => (b.id === id ? { ...b, ...fields } : b)) };
|
|
37
57
|
}
|
|
@@ -49,17 +69,25 @@ function patchTail(s, id, fields) {
|
|
|
49
69
|
function dropTool(s, toolId, blockId) {
|
|
50
70
|
const { [toolId]: _gone, ...toolMap } = s.toolMap;
|
|
51
71
|
const block = s.tail.find((b) => b.id === blockId);
|
|
52
|
-
if (block && block.kind === "
|
|
72
|
+
if (block && block.kind === "work") {
|
|
53
73
|
const items = block.items.filter((it) => it.toolId !== toolId);
|
|
54
|
-
|
|
55
|
-
|
|
74
|
+
if (items.length === 0)
|
|
75
|
+
return drain({ ...s, tail: s.tail.filter((b) => b.id !== blockId), toolMap });
|
|
76
|
+
const done = !!block.closed && items.every((it) => it.status !== "running");
|
|
77
|
+
return drain({ ...s, tail: s.tail.map((b) => (b.id === blockId ? { ...b, items, done } : b)), toolMap });
|
|
56
78
|
}
|
|
57
79
|
return drain({ ...s, tail: s.tail.filter((b) => b.id !== blockId), toolMap });
|
|
58
80
|
}
|
|
59
|
-
/**
|
|
81
|
+
/**
|
|
82
|
+
* Nothing more joins the open work row, before any event that is not a command or a read.
|
|
83
|
+
* It is done once everything in it is.
|
|
84
|
+
*/
|
|
60
85
|
function closeToolGroup(s) {
|
|
61
|
-
const open = s.tail.find((b) => b.kind === "
|
|
62
|
-
|
|
86
|
+
const open = s.tail.find((b) => b.kind === "work" && !b.closed);
|
|
87
|
+
if (!open || open.kind !== "work")
|
|
88
|
+
return s;
|
|
89
|
+
const done = open.items.every((it) => it.status !== "running");
|
|
90
|
+
return drain(patchTail(s, open.id, { closed: true, done }));
|
|
63
91
|
}
|
|
64
92
|
/**
|
|
65
93
|
* Seal the streaming assistant block: finalize its text and commit it, or drop it
|
|
@@ -108,8 +136,9 @@ function sealAssistant(s, asReply) {
|
|
|
108
136
|
// conversation.
|
|
109
137
|
const text = asReply ? clean : trimNarration(clean);
|
|
110
138
|
let next = { ...s, openAsstId: null, raw: "" };
|
|
139
|
+
// Visible words end the run of work before them, so what comes after starts a new row.
|
|
111
140
|
if (text)
|
|
112
|
-
next = patchTail(next, id, { text, done: true });
|
|
141
|
+
next = closeToolGroup(patchTail(next, id, { text, done: true }));
|
|
113
142
|
else
|
|
114
143
|
next = { ...next, tail: next.tail.filter((b) => b.id !== id) };
|
|
115
144
|
if (asReply)
|
|
@@ -170,8 +199,10 @@ export function reduce(s, a) {
|
|
|
170
199
|
s = settleWaits(s);
|
|
171
200
|
// Accumulate SILENTLY — the assistant block renders nothing until it seals,
|
|
172
201
|
// then the whole text appears at once. We still open the block so a later
|
|
173
|
-
// seal can find it.
|
|
174
|
-
|
|
202
|
+
// seal can find it. The open work row is NOT closed here: words that turn out to lead
|
|
203
|
+
// only to unseen tools are dropped before they are ever shown, and the row must carry on
|
|
204
|
+
// across them. It closes when the words seal as something the reader can see.
|
|
205
|
+
let next = s;
|
|
175
206
|
let openId = next.openAsstId;
|
|
176
207
|
if (openId == null) {
|
|
177
208
|
openId = next.seq + 1;
|
|
@@ -191,15 +222,23 @@ export function reduce(s, a) {
|
|
|
191
222
|
// Seal any narration before the tool (commit it) first.
|
|
192
223
|
const sealed = sealAssistant(s, false);
|
|
193
224
|
if (a.group) {
|
|
194
|
-
// A
|
|
195
|
-
//
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
225
|
+
// A command or a read: it joins the open work row, or opens one. They share a row, in
|
|
226
|
+
// whatever order they come, until the agent does something else.
|
|
227
|
+
const item = {
|
|
228
|
+
toolId: a.toolId,
|
|
229
|
+
name: a.name,
|
|
230
|
+
arg: a.arg,
|
|
231
|
+
kind: a.action,
|
|
232
|
+
status: "running",
|
|
233
|
+
startedAt: a.at ?? Date.now(),
|
|
234
|
+
...(a.covers ? { covers: a.covers } : {}),
|
|
235
|
+
};
|
|
236
|
+
const open = sealed.tail.find((b) => b.kind === "work" && !b.closed);
|
|
237
|
+
if (open && open.kind === "work") {
|
|
199
238
|
return {
|
|
200
239
|
...sealed,
|
|
201
240
|
toolMap: { ...sealed.toolMap, [a.toolId]: open.id },
|
|
202
|
-
tail: sealed.tail.map((b) => b.id === open.id && b.kind === "
|
|
241
|
+
tail: sealed.tail.map((b) => (b.id === open.id && b.kind === "work" ? { ...b, items: [...b.items, item], done: false } : b)),
|
|
203
242
|
};
|
|
204
243
|
}
|
|
205
244
|
const gid = sealed.seq + 1;
|
|
@@ -207,13 +246,7 @@ export function reduce(s, a) {
|
|
|
207
246
|
...sealed,
|
|
208
247
|
seq: gid,
|
|
209
248
|
toolMap: { ...sealed.toolMap, [a.toolId]: gid },
|
|
210
|
-
tail: sealed.tail.concat({
|
|
211
|
-
kind: "tools",
|
|
212
|
-
id: gid,
|
|
213
|
-
done: false,
|
|
214
|
-
live: true,
|
|
215
|
-
items: [{ toolId: a.toolId, name: a.name, arg: a.arg, kind: a.action, status: "running" }],
|
|
216
|
-
}),
|
|
249
|
+
tail: sealed.tail.concat({ kind: "work", id: gid, done: false, live: true, items: [item] }),
|
|
217
250
|
};
|
|
218
251
|
}
|
|
219
252
|
// A mutating/standalone tool: close any open group, then show it on its own row.
|
|
@@ -247,6 +280,15 @@ export function reduce(s, a) {
|
|
|
247
280
|
// into a one-line summary that has nowhere to put output, and a row that has already
|
|
248
281
|
// resolved must keep the result it settled on rather than being overwritten by a
|
|
249
282
|
// late tail from before it finished.
|
|
283
|
+
if (block && block.kind === "work") {
|
|
284
|
+
// A read has no output to show, and a call that is not running keeps its result.
|
|
285
|
+
const target = block.items.find((it) => it.toolId === a.toolId);
|
|
286
|
+
if (!target || target.status !== "running" || target.kind === "read")
|
|
287
|
+
return s;
|
|
288
|
+
return patchTail(s, blockId, {
|
|
289
|
+
items: block.items.map((it) => (it.toolId === a.toolId && it.status === "running" && it.kind !== "read" ? { ...it, detail: a.text, detailKind: "shell" } : it)),
|
|
290
|
+
});
|
|
291
|
+
}
|
|
250
292
|
if (!block || block.kind !== "tool" || block.done)
|
|
251
293
|
return s;
|
|
252
294
|
return patchTail(s, blockId, { detail: a.text, detailKind: "shell" });
|
|
@@ -263,18 +305,31 @@ export function reduce(s, a) {
|
|
|
263
305
|
// reason, and the transcript still records it — this is a display decision only.
|
|
264
306
|
if (a.quiet)
|
|
265
307
|
return dropTool(s, a.toolId, blockId);
|
|
266
|
-
if (block && block.kind === "
|
|
267
|
-
//
|
|
268
|
-
//
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
308
|
+
if (block && block.kind === "work") {
|
|
309
|
+
// Some providers number their calls from zero every round, so an id can come up again in
|
|
310
|
+
// a row that stayed open across rounds: the result belongs to the one still running.
|
|
311
|
+
const at = block.items.findIndex((it) => it.toolId === a.toolId && it.status === "running");
|
|
312
|
+
const items = block.items.map((it, i) => i === at
|
|
313
|
+
? {
|
|
314
|
+
...it,
|
|
315
|
+
status: a.ok ? "ok" : "error",
|
|
316
|
+
summary: a.summary,
|
|
317
|
+
// The one-line result a read leaves ("lines 410-551"), shown beside its file.
|
|
318
|
+
note: a.summary,
|
|
319
|
+
detail: a.detail,
|
|
320
|
+
detailKind: a.detailKind,
|
|
321
|
+
...(hasMore(a.detail, a.detailFull) ? { full: a.detailFull } : {}),
|
|
322
|
+
}
|
|
323
|
+
: it);
|
|
324
|
+
const done = !!block.closed && items.every((it) => it.status !== "running");
|
|
325
|
+
return drain(patchTail(s, blockId, { items, done }));
|
|
272
326
|
}
|
|
273
327
|
return drain(patchTail(s, blockId, {
|
|
274
328
|
status: a.ok ? "ok" : "error",
|
|
275
329
|
summary: a.summary,
|
|
276
330
|
detail: a.detail,
|
|
277
331
|
detailKind: a.detailKind,
|
|
332
|
+
...(hasMore(a.detail, a.detailFull) ? { full: a.detailFull } : {}),
|
|
278
333
|
done: true,
|
|
279
334
|
...(a.action ? { action: a.action } : {}),
|
|
280
335
|
...(a.name ? { name: a.name } : {}),
|
|
@@ -286,6 +341,22 @@ export function reduce(s, a) {
|
|
|
286
341
|
const id = sealed.seq + 1;
|
|
287
342
|
return drain({ ...sealed, seq: id, tail: sealed.tail.concat({ kind: "error", id, done: true, text: a.text }) });
|
|
288
343
|
}
|
|
344
|
+
case "toggleExpand": {
|
|
345
|
+
// Committed rows too: every block is re-rendered each frame, and the row being
|
|
346
|
+
// clicked is nearly always one that finished a while ago.
|
|
347
|
+
const flip = (b) => b.kind === "tool" && b.id === a.id && b.full
|
|
348
|
+
? { ...b, expanded: !b.expanded }
|
|
349
|
+
: b.kind === "work" && b.id === a.id
|
|
350
|
+
? { ...b, open: !b.open }
|
|
351
|
+
: b;
|
|
352
|
+
return { ...s, committed: s.committed.map(flip), tail: s.tail.map(flip) };
|
|
353
|
+
}
|
|
354
|
+
case "toggleItem": {
|
|
355
|
+
const flip = (b) => b.kind === "work" && b.id === a.id && b.items[a.index]
|
|
356
|
+
? { ...b, items: b.items.map((it, i) => (i === a.index ? { ...it, open: !it.open } : it)) }
|
|
357
|
+
: b;
|
|
358
|
+
return { ...s, committed: s.committed.map(flip), tail: s.tail.map(flip) };
|
|
359
|
+
}
|
|
289
360
|
case "endTurn": {
|
|
290
361
|
// The one moment a tool row is allowed to change after it appears, and it
|
|
291
362
|
// changes by exactly one word: "Reading 2 files" → "Read 2 files". Committed
|
|
@@ -293,7 +364,7 @@ export function reduce(s, a) {
|
|
|
293
364
|
// frame (there is no <Static>), so a row that has already scrolled up still
|
|
294
365
|
// settles into the past tense with the rest of the turn.
|
|
295
366
|
s = settleWaits(s);
|
|
296
|
-
const clear = (b) => (b.kind === "tool" || b.kind === "
|
|
367
|
+
const clear = (b) => (b.kind === "tool" || b.kind === "work") && b.live ? { ...b, live: false } : b;
|
|
297
368
|
return { ...s, committed: s.committed.map(clear), tail: s.tail.map(clear) };
|
|
298
369
|
}
|
|
299
370
|
case "resetReply":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/cli/transcript.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/cli/transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* uiLines.ts — how the lines of a UI test's row are coloured (pure).
|
|
3
|
+
*
|
|
4
|
+
* The row used to be one grey block: steps, list and headings all the same weight, so the
|
|
5
|
+
* part worth reading (what was done, and which control it was done to) looked exactly like
|
|
6
|
+
* the part nobody reads (the thirty controls of the page). Here the steps are plain text,
|
|
7
|
+
* the controls are dim, the numbers that tie the two together stand out, and each section
|
|
8
|
+
* has a title, so the opened row reads as two parts of one result.
|
|
9
|
+
*
|
|
10
|
+
* A line that is none of these is dim, which is what it was.
|
|
11
|
+
*/
|
|
12
|
+
const TITLE = /^(Steps|Page|Page reported|Result)( · .*)?$/;
|
|
13
|
+
const STEP = /^(\s*)(\d+\.) (.*)$/;
|
|
14
|
+
const CONTROL = /^(\s*)(\[\d+\]) (.*)$/;
|
|
15
|
+
const REF_OR_QUOTE = /(\[\d+\])|("(?:[^"\\]|\\.)*")/g;
|
|
16
|
+
/** A step's own words: numbers in brackets and quoted names stand out, the rest is plain. */
|
|
17
|
+
function stepWords(text) {
|
|
18
|
+
const out = [];
|
|
19
|
+
let last = 0;
|
|
20
|
+
for (const m of text.matchAll(REF_OR_QUOTE)) {
|
|
21
|
+
if (m.index > last)
|
|
22
|
+
out.push({ text: text.slice(last, m.index), kind: "plain" });
|
|
23
|
+
out.push({ text: m[0], kind: m[1] ? "ref" : "name" });
|
|
24
|
+
last = m.index + m[0].length;
|
|
25
|
+
}
|
|
26
|
+
if (last < text.length)
|
|
27
|
+
out.push({ text: text.slice(last), kind: "plain" });
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
/** A control's own words: what it is (dim), what it is called, then its value and state (dim). */
|
|
31
|
+
function controlWords(text) {
|
|
32
|
+
const q = text.search(/"/);
|
|
33
|
+
if (q < 0)
|
|
34
|
+
return [{ text, kind: "dim" }];
|
|
35
|
+
const end = text.slice(q + 1).search(/(?<!\\)"/);
|
|
36
|
+
if (end < 0)
|
|
37
|
+
return [{ text, kind: "dim" }];
|
|
38
|
+
const nameEnd = q + 1 + end + 1;
|
|
39
|
+
const out = [];
|
|
40
|
+
if (q > 0)
|
|
41
|
+
out.push({ text: text.slice(0, q), kind: "dim" });
|
|
42
|
+
out.push({ text: text.slice(q, nameEnd), kind: "name" });
|
|
43
|
+
if (nameEnd < text.length)
|
|
44
|
+
out.push({ text: text.slice(nameEnd), kind: "dim" });
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
export function uiSegments(line) {
|
|
48
|
+
if (TITLE.test(line)) {
|
|
49
|
+
const dot = line.indexOf(" · ");
|
|
50
|
+
return dot < 0 ? [{ text: line, kind: "title" }] : [{ text: line.slice(0, dot), kind: "title" }, { text: line.slice(dot), kind: "dim" }];
|
|
51
|
+
}
|
|
52
|
+
const step = STEP.exec(line);
|
|
53
|
+
if (step)
|
|
54
|
+
return [{ text: `${step[1]}${step[2]} `, kind: "dim" }, ...stepWords(step[3])];
|
|
55
|
+
const control = CONTROL.exec(line);
|
|
56
|
+
if (control)
|
|
57
|
+
return [{ text: control[1], kind: "dim" }, { text: control[2], kind: "ref" }, { text: " ", kind: "dim" }, ...controlWords(control[3])];
|
|
58
|
+
return [{ text: line, kind: "dim" }];
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=uiLines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiLines.js","sourceRoot":"","sources":["../../src/cli/uiLines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* wheelStep.ts — how far the wheel moves the view.
|
|
3
|
+
*
|
|
4
|
+
* One notch is `LINES_PER_NOTCH` lines, always, and the view moves at once. No speed-up, no
|
|
5
|
+
* animation. The wheel used to accelerate (a hard spin moved the view 24 lines in a single
|
|
6
|
+
* frame, about 1,400 lines a second), which is what made it easy to lose your place; a
|
|
7
|
+
* glide was tried after that and read as slow, because it made the view arrive later than
|
|
8
|
+
* the hand did. What is left is the plain version: turn the wheel a little, the view moves
|
|
9
|
+
* a little, straight away, the same every time.
|
|
10
|
+
*
|
|
11
|
+
* The one guard is a ceiling on what a SINGLE input chunk may move. A touchpad can deliver
|
|
12
|
+
* dozens of reports in one burst, and applied whole that is a screenful in one frame,
|
|
13
|
+
* which is the old problem again. Capped, the rest of the spin simply arrives in the next
|
|
14
|
+
* chunks, a few milliseconds later.
|
|
15
|
+
*
|
|
16
|
+
* Pure.
|
|
17
|
+
*/
|
|
18
|
+
/** Lines one notch of the wheel moves. */
|
|
19
|
+
export const LINES_PER_NOTCH = 4;
|
|
20
|
+
/** The most one input chunk moves, in lines (four notches). */
|
|
21
|
+
export const MAX_LINES_PER_CHUNK = 16;
|
|
22
|
+
/**
|
|
23
|
+
* The signed distance for a chunk carrying `net` notches (up positive).
|
|
24
|
+
*/
|
|
25
|
+
export function wheelLines(net) {
|
|
26
|
+
const lines = net * LINES_PER_NOTCH;
|
|
27
|
+
return Math.max(-MAX_LINES_PER_CHUNK, Math.min(MAX_LINES_PER_CHUNK, lines));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=wheelStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wheelStep.js","sourceRoot":"","sources":["../../src/cli/wheelStep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,GAAG,GAAG,eAAe,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/** Whether this call read a file (or a symbol of one), rather than ran something. */
|
|
2
|
+
export function isRead(it) {
|
|
3
|
+
return it.kind === "read";
|
|
4
|
+
}
|
|
5
|
+
/** The files one read call took, by name: a list call names each, any other names one. */
|
|
6
|
+
export function filesOf(it) {
|
|
7
|
+
if (!it.arg)
|
|
8
|
+
return [];
|
|
9
|
+
return (it.covers ?? 1) > 1 ? it.arg.split(/,\s*/).filter(Boolean) : [it.arg];
|
|
10
|
+
}
|
|
11
|
+
/** How many different files the reads in this row took. A file read twice is still one file. */
|
|
12
|
+
export function fileCount(items) {
|
|
13
|
+
const names = new Set();
|
|
14
|
+
for (const it of items) {
|
|
15
|
+
if (!isRead(it))
|
|
16
|
+
continue;
|
|
17
|
+
const files = filesOf(it);
|
|
18
|
+
if (files.length === 0)
|
|
19
|
+
names.add(it.toolId);
|
|
20
|
+
for (const f of files)
|
|
21
|
+
names.add(f);
|
|
22
|
+
}
|
|
23
|
+
return names.size;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* What the header says (pure): commands and files each with their own tense and count, in the
|
|
27
|
+
* order they began.
|
|
28
|
+
*
|
|
29
|
+
* While some of a kind are still working and some are done, the count says so: "Running 1 of 3
|
|
30
|
+
* commands", not "Running 3 commands" above a mark that shows two of them finished.
|
|
31
|
+
*/
|
|
32
|
+
export function workHeader(items, live) {
|
|
33
|
+
const order = [];
|
|
34
|
+
for (const it of items) {
|
|
35
|
+
const k = isRead(it) ? "read" : "run";
|
|
36
|
+
if (!order.includes(k))
|
|
37
|
+
order.push(k);
|
|
38
|
+
}
|
|
39
|
+
const parts = order.map((k, i) => {
|
|
40
|
+
const mine = items.filter((it) => (k === "read") === isRead(it));
|
|
41
|
+
const going = !live ? [] : mine.filter((it) => it.status === "running");
|
|
42
|
+
const n = k === "read" ? fileCount(mine) : mine.length;
|
|
43
|
+
const nGoing = k === "read" ? fileCount(going) : going.length;
|
|
44
|
+
const noun = k === "read" ? (n === 1 ? "file" : "files") : n === 1 ? "command" : "commands";
|
|
45
|
+
const count = going.length > 0 && nGoing < n ? `${nGoing} of ${n}` : `${n}`;
|
|
46
|
+
const verb = going.length > 0 ? (k === "read" ? "Reading" : "Running") : k === "read" ? "Read" : "Ran";
|
|
47
|
+
const text = `${verb} ${count} ${noun}`;
|
|
48
|
+
return i === 0 ? text : text.charAt(0).toLowerCase() + text.slice(1);
|
|
49
|
+
});
|
|
50
|
+
return { text: parts.join(", "), working: !!live && items.some((it) => it.status === "running") };
|
|
51
|
+
}
|
|
52
|
+
/** Which part of the file a read took, in words (pure). */
|
|
53
|
+
export function rangeText(it) {
|
|
54
|
+
const said = (it.note ?? it.summary ?? "").trim();
|
|
55
|
+
if (it.status === "running")
|
|
56
|
+
return "";
|
|
57
|
+
if (it.status === "error")
|
|
58
|
+
return `✗ ${said.replace(/^read\s+/i, "") || "failed"}`;
|
|
59
|
+
if ((it.covers ?? 1) > 1)
|
|
60
|
+
return "whole file";
|
|
61
|
+
const lines = said.match(/lines ([\d,]+)\s*[-–]\s*([\d,]+)(?: of ([\d,]+))?/);
|
|
62
|
+
if (lines)
|
|
63
|
+
return `lines ${lines[1]}–${lines[2]}${lines[3] ? ` of ${lines[3]}` : ""}`;
|
|
64
|
+
const symbol = said.match(/\((.+?):([\d,]+)-([\d,]+)\)\s*$/);
|
|
65
|
+
if (symbol)
|
|
66
|
+
return `lines ${symbol[2]}–${symbol[3]} of ${symbol[1].split(/[\\/]/).pop()}`;
|
|
67
|
+
const whole = said.match(/\(([\d,]+) lines?\)/);
|
|
68
|
+
if (whole)
|
|
69
|
+
return `whole file · ${whole[1]} line${whole[1] === "1" ? "" : "s"}`;
|
|
70
|
+
if (/\(empty\)/.test(said))
|
|
71
|
+
return "empty file";
|
|
72
|
+
if (/\(unchanged\)/.test(said))
|
|
73
|
+
return "read before, unchanged";
|
|
74
|
+
return said.replace(/^read\s+\S+\s*/i, "");
|
|
75
|
+
}
|
|
76
|
+
/** The lines a read contributes to the opened list: one per file, each with the part taken. */
|
|
77
|
+
export function readRows(it) {
|
|
78
|
+
const files = filesOf(it);
|
|
79
|
+
const range = rangeText(it);
|
|
80
|
+
if (files.length === 0)
|
|
81
|
+
return [{ label: it.name.toLowerCase(), range }];
|
|
82
|
+
return files.map((f) => ({ label: f, range }));
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=workLines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workLines.js","sourceRoot":"","sources":["../../src/cli/workLines.ts"],"names":[],"mappings":"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"}
|
package/dist/core/turnRunner.js
CHANGED
|
@@ -36,7 +36,7 @@ import { stat, readFile } from "node:fs/promises";
|
|
|
36
36
|
import { join } from "node:path";
|
|
37
37
|
import { NOTES_FILE } from "../memory/projectNotes.js";
|
|
38
38
|
import { writeFileAtomic } from "../tools/atomicWrite.js";
|
|
39
|
-
import {
|
|
39
|
+
import { shownText, withoutClearedNote } from "../memory/compaction.js";
|
|
40
40
|
import { stopChassis } from "../alternator/lane.js";
|
|
41
41
|
import { stopUi } from "../tools/ui.js";
|
|
42
42
|
import { runCommand } from "../tools/runCommand.js";
|
|
@@ -294,10 +294,11 @@ export function replayHistory(session) {
|
|
|
294
294
|
const stepCalls = (entry.toolCalls ?? []).map((c) => ({ name: c.name, args: safeParseArgs(c.arguments) }));
|
|
295
295
|
const shown = stepCalls.length === 0 || narrationShown(stepCalls, readThisTurn);
|
|
296
296
|
noteReads(stepCalls, readThisTurn);
|
|
297
|
-
//
|
|
298
|
-
//
|
|
299
|
-
|
|
300
|
-
|
|
297
|
+
// What was SAID is shown. Clearing old context leaves a note for the model in its place
|
|
298
|
+
// and keeps the words for the screen (`shown`); the note itself is never shown.
|
|
299
|
+
const said = shownText(entry);
|
|
300
|
+
if (shown && said && said.trim())
|
|
301
|
+
out.push({ type: "assistantMessage", text: said });
|
|
301
302
|
for (const call of entry.toolCalls ?? [])
|
|
302
303
|
calls.set(call.id, call);
|
|
303
304
|
}
|
|
@@ -330,8 +331,9 @@ export function replayHistory(session) {
|
|
|
330
331
|
arg,
|
|
331
332
|
kind,
|
|
332
333
|
ok: !entry.isError,
|
|
333
|
-
summary: entry.summary ?? entry.content,
|
|
334
|
+
summary: entry.summary ?? withoutClearedNote(entry.content),
|
|
334
335
|
detail: entry.detail,
|
|
336
|
+
...(entry.detailFull ? { detailFull: entry.detailFull } : {}),
|
|
335
337
|
detailKind: entry.detailKind,
|
|
336
338
|
...(entry.imagePaths?.length ? { images: entry.imagePaths } : {}),
|
|
337
339
|
...(entry.web ? { web: entry.web } : {}),
|