mindweave 2.2.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/dist/cli/App.js +104 -39
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/altScreen.js +17 -1
- package/dist/cli/altScreen.js.map +1 -1
- package/dist/cli/blockSpacing.js +29 -0
- package/dist/cli/blockSpacing.js.map +1 -0
- package/dist/cli/commandLabel.js +85 -0
- package/dist/cli/commandLabel.js.map +1 -0
- package/dist/cli/commands.js +40 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/components/PromptInput.js +8 -1
- package/dist/cli/components/PromptInput.js.map +1 -1
- package/dist/cli/components/ToolGroup.js +5 -1
- package/dist/cli/components/ToolGroup.js.map +1 -1
- package/dist/cli/components/ToolLine.js +61 -6
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/framebuffer/parse.js +10 -4
- package/dist/cli/framebuffer/parse.js.map +1 -1
- package/dist/cli/framebuffer/screen.js +26 -0
- package/dist/cli/framebuffer/screen.js.map +1 -1
- package/dist/cli/framebuffer/writer.js +131 -23
- package/dist/cli/framebuffer/writer.js.map +1 -1
- package/dist/cli/restart.js +99 -0
- package/dist/cli/restart.js.map +1 -0
- package/dist/cli/selfUpdate.js +124 -0
- package/dist/cli/selfUpdate.js.map +1 -0
- package/dist/cli/startupArgs.js +29 -2
- package/dist/cli/startupArgs.js.map +1 -1
- package/dist/cli/terminalRestore.js +9 -1
- package/dist/cli/terminalRestore.js.map +1 -1
- package/dist/cli/toolDisplay.js +15 -6
- package/dist/cli/toolDisplay.js.map +1 -1
- package/dist/cli/transcript.js +1 -1
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/updateRunner.js +105 -0
- package/dist/cli/updateRunner.js.map +1 -0
- package/dist/drivers/gemini/manifest.js +16 -11
- package/dist/drivers/gemini/manifest.js.map +1 -1
- package/dist/dynamo/engine.js +30 -4
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/prompt.js +7 -4
- package/dist/dynamo/prompt.js.map +1 -1
- package/dist/dynamo/verify.js +8 -5
- package/dist/dynamo/verify.js.map +1 -1
- package/dist/index.js +32 -2
- package/dist/index.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/askUser.js +17 -5
- package/dist/tools/askUser.js.map +1 -1
- package/dist/tools/detail.js +69 -11
- package/dist/tools/detail.js.map +1 -1
- package/dist/tools/exitPlan.js +17 -1
- package/dist/tools/exitPlan.js.map +1 -1
- package/dist/tools/outputShape.js +137 -0
- package/dist/tools/outputShape.js.map +1 -0
- package/dist/tools/registry.js +0 -2
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/runCommand.js +31 -7
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/screenshot.js +33 -5
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/testSummary.js +211 -0
- package/dist/tools/testSummary.js.map +1 -0
- package/package.json +2 -2
- package/dist/alternator/chassis/rank.js +0 -72
- package/dist/alternator/chassis/rank.js.map +0 -1
- package/dist/cli/components/MenuFrame.js +0 -24
- package/dist/cli/components/MenuFrame.js.map +0 -1
- package/dist/cli/reveal.js +0 -32
- package/dist/cli/reveal.js.map +0 -1
- package/dist/cli/smoothScroll.js +0 -74
- package/dist/cli/smoothScroll.js.map +0 -1
- package/dist/cli/viewport.js +0 -179
- package/dist/cli/viewport.js.map +0 -1
- package/dist/dynamo/_probe.tmp.js +0 -20
- package/dist/dynamo/_probe.tmp.js.map +0 -1
- package/dist/tools/captureSweep.js +0 -77
- package/dist/tools/captureSweep.js.map +0 -1
- package/dist/tools/diagnostics.js +0 -174
- package/dist/tools/diagnostics.js.map +0 -1
- package/dist/tools/editFile.js +0 -183
- package/dist/tools/editFile.js.map +0 -1
- package/dist/tools/multiEdit.js +0 -168
- package/dist/tools/multiEdit.js.map +0 -1
package/dist/tools/detail.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* a diff or a command's stdout. Lines are prefixed so the
|
|
9
9
|
* renderer can colour them: `+ ` added (green), `- ` removed (red), bare = plain.
|
|
10
10
|
*/
|
|
11
|
+
import { condense, tailCap } from "./outputShape.js";
|
|
11
12
|
/** Cap a list of display lines, noting how many were hidden. */
|
|
12
13
|
export function capLines(lines, max) {
|
|
13
14
|
if (lines.length <= max)
|
|
@@ -97,31 +98,88 @@ export function outputDetail(body) {
|
|
|
97
98
|
return "";
|
|
98
99
|
return capLines(collapseBlanks(stripAnsi(body).split("\n")), 18);
|
|
99
100
|
}
|
|
101
|
+
/** Rows of output shown under a command that SUCCEEDED. Enough to see what it ended up
|
|
102
|
+
* saying; a run that worked is not a thing anyone reads. */
|
|
103
|
+
export const SHELL_ROWS_OK = 3;
|
|
104
|
+
/** Rows shown under a command that FAILED. More, because there is now something to read,
|
|
105
|
+
* and still a fixed budget: a failure must not take the screen. */
|
|
106
|
+
export const SHELL_ROWS_FAILED = 12;
|
|
107
|
+
/**
|
|
108
|
+
* A command's output as it is DISPLAYED (pure).
|
|
109
|
+
*
|
|
110
|
+
* Three steps, in this order and no other. Escapes go first, because a colour code is
|
|
111
|
+
* neither content nor width. Then the repeated chrome — job columns, timestamps — because
|
|
112
|
+
* it has to be gone before anything is counted, or the budget is spent on text that is
|
|
113
|
+
* identical from line to line. Only then is it capped, and from the END, since output is
|
|
114
|
+
* read backwards: the error is on the last line, the banner on the first.
|
|
115
|
+
*/
|
|
116
|
+
export function shellOutput(body, max) {
|
|
117
|
+
if (!body)
|
|
118
|
+
return "";
|
|
119
|
+
return tailCap(condense(collapseBlanks(stripAnsi(body).split("\n"))), max).join("\n");
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* The two outcome marks.
|
|
123
|
+
*
|
|
124
|
+
* `✗` (U+2717 BALLOT X) rather than the heavy `✖` (U+2716), and that is not a taste
|
|
125
|
+
* choice. Terminals give the heavy one EMOJI presentation and draw it two columns wide,
|
|
126
|
+
* while every width table this code and Ink consult call it one. So it overprinted the
|
|
127
|
+
* character after it and `✖ 1 · 885ms` reached the screen as `✖1 · 885ms`, while the
|
|
128
|
+
* passing row beside it sat correctly as `✓ 0 · 256ms`.
|
|
129
|
+
*
|
|
130
|
+
* `✓` and `✗` are the light pair from the same block, both text-presentation, both one
|
|
131
|
+
* column. A failure now lines up exactly like a success, which is the whole point of
|
|
132
|
+
* putting them in the same place.
|
|
133
|
+
*/
|
|
134
|
+
export const OK_MARK = "✓";
|
|
135
|
+
export const FAIL_MARK = "✗";
|
|
136
|
+
/**
|
|
137
|
+
* A wall-clock span, at the precision worth reading (pure).
|
|
138
|
+
*
|
|
139
|
+
* Sub-second work is reported in milliseconds because "0.0s" says nothing; past a minute
|
|
140
|
+
* the seconds stop mattering and the minutes start to.
|
|
141
|
+
*/
|
|
142
|
+
export function formatDuration(ms) {
|
|
143
|
+
const clamped = Math.max(0, Math.round(ms));
|
|
144
|
+
if (clamped < 1000)
|
|
145
|
+
return `${clamped}ms`;
|
|
146
|
+
if (clamped < 60_000)
|
|
147
|
+
return `${(clamped / 1000).toFixed(1)}s`;
|
|
148
|
+
const minutes = Math.floor(clamped / 60_000);
|
|
149
|
+
const seconds = Math.round((clamped % 60_000) / 1000);
|
|
150
|
+
return seconds === 0 ? `${minutes}m` : `${minutes}m ${seconds}s`;
|
|
151
|
+
}
|
|
100
152
|
/**
|
|
101
153
|
* A command's output with its outcome as the last line (pure).
|
|
102
154
|
*
|
|
103
|
-
* ✓
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
155
|
+
* ✓ 0 · 273ms
|
|
156
|
+
* ✗ 1 · 12.4s
|
|
157
|
+
* ✗ timed out after 30s
|
|
158
|
+
* ✗ killed (SIGTERM) · 2.1s
|
|
107
159
|
*
|
|
108
160
|
* Shown for a SUCCESS too, not only a failure. A row that says nothing when a command
|
|
109
161
|
* passed and something when it failed makes the absence of a line the signal, and an
|
|
110
|
-
* absence is easy to read past
|
|
111
|
-
*
|
|
162
|
+
* absence is easy to read past, especially under a wall of build output.
|
|
163
|
+
*
|
|
164
|
+
* Short, because the renderer lifts this line out of the body and sets it against the
|
|
165
|
+
* right margin of the command's own header row — the one place a verdict can sit and be
|
|
166
|
+
* in the same position every time, instead of at the bottom of however many lines of
|
|
167
|
+
* output happened to come out. `Exit code 0` spelled out is four words to say what `0`
|
|
168
|
+
* says once you know where to look, and the point of a fixed position is that you do.
|
|
112
169
|
*
|
|
113
170
|
* `exitCode` is null when a process was ended by a signal and never reported one; that
|
|
114
171
|
* case is named by the signal instead, because reporting it as "exit 0" made a killed
|
|
115
172
|
* command read as a command that worked.
|
|
116
173
|
*/
|
|
117
|
-
export function withOutcome(body, timedOut, exitCode, signal, timeoutMs, pid) {
|
|
174
|
+
export function withOutcome(body, timedOut, exitCode, signal, timeoutMs, elapsedMs, pid) {
|
|
175
|
+
const took = ` · ${formatDuration(elapsedMs)}`;
|
|
118
176
|
const line = timedOut
|
|
119
|
-
?
|
|
177
|
+
? `✗ timed out after ${Math.round(timeoutMs / 1000)}s`
|
|
120
178
|
: signal
|
|
121
|
-
?
|
|
179
|
+
? `✗ killed (${signal})${took}`
|
|
122
180
|
: exitCode === null
|
|
123
|
-
?
|
|
124
|
-
: `${exitCode === 0 ? "✓" : "
|
|
181
|
+
? `✗ no exit code${took}`
|
|
182
|
+
: `${exitCode === 0 ? "✓" : "✗"} ${exitCode}${took}`;
|
|
125
183
|
// Which process was killed, and by what. Only when something WAS killed: on an
|
|
126
184
|
// ordinary exit the pid is trivia, but after a timeout it is the thing the user needs
|
|
127
185
|
// in order to check whether it actually died or is still holding a port.
|
package/dist/tools/detail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detail.js","sourceRoot":"","sources":["../../src/tools/detail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"detail.js","sourceRoot":"","sources":["../../src/tools/detail.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/exitPlan.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { savePlanArtifact } from "../dynamo/planArtifact.js";
|
|
2
2
|
import { fail, failQuietly } from "./results.js";
|
|
3
|
-
import { readFreeText } from "./approval.js";
|
|
3
|
+
import { APPROVAL_DISMISSED, readFreeText } from "./approval.js";
|
|
4
4
|
/**
|
|
5
5
|
* What the user chose at the approval prompt. Order is the display order.
|
|
6
6
|
*
|
|
@@ -43,6 +43,10 @@ export function readDecision(choice) {
|
|
|
43
43
|
const typed = readFreeText(choice);
|
|
44
44
|
if (typed !== null)
|
|
45
45
|
return { verdict: "revise", fresh: false, feedback: typed.trim() };
|
|
46
|
+
// Before anything is matched on prose: a dismissal is not one of the answers, and the
|
|
47
|
+
// catch-all at the bottom of this function would otherwise make it a rejection.
|
|
48
|
+
if (choice === APPROVAL_DISMISSED)
|
|
49
|
+
return { verdict: "dismiss", fresh: false };
|
|
46
50
|
const c = choice.trim().toLowerCase();
|
|
47
51
|
if (c.startsWith("approve")) {
|
|
48
52
|
return { verdict: c.includes("sentinel") ? "sentinel" : "lightning", fresh: c.includes("fresh") };
|
|
@@ -92,6 +96,18 @@ export const exitPlan = {
|
|
|
92
96
|
// line. Nothing is summarised: the user still reads the whole plan.
|
|
93
97
|
const choice = await ctx.requestApproval(PLAN_QUESTION, [...PLAN_CHOICES], plan, undefined, PLAN_FEEDBACK);
|
|
94
98
|
const { verdict, fresh, feedback } = readDecision(choice);
|
|
99
|
+
if (verdict === "dismiss") {
|
|
100
|
+
// The same stop Esc performs, for the same reason it is right in ask_user: someone
|
|
101
|
+
// who closes a plan without answering is reaching for the keyboard. Leaving the
|
|
102
|
+
// turn running would have the model respond to a verdict nobody gave.
|
|
103
|
+
ctx.interrupt?.();
|
|
104
|
+
return {
|
|
105
|
+
output: "The user closed the plan without answering. That is not a rejection and not " +
|
|
106
|
+
"approval: they have said nothing about the plan yet. Do not start any of it, " +
|
|
107
|
+
"do not revise it, and do not ask again. Wait for what they say next.",
|
|
108
|
+
summary: "plan dismissed",
|
|
109
|
+
};
|
|
110
|
+
}
|
|
95
111
|
if (verdict === "reject") {
|
|
96
112
|
return {
|
|
97
113
|
output: "The user rejected the plan. Stop here and do not start any of it. Do not " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exitPlan.js","sourceRoot":"","sources":["../../src/tools/exitPlan.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"exitPlan.js","sourceRoot":"","sources":["../../src/tools/exitPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* outputShape.ts — cutting captured command output down to what is worth reading.
|
|
3
|
+
*
|
|
4
|
+
* A build log, a CI log and a test runner all have the same shape: a narrow column of
|
|
5
|
+
* information wrapped in a wide column of repetition. Every line of a GitHub Actions log
|
|
6
|
+
* carries the job name and a full timestamp before it says anything, which on a terminal
|
|
7
|
+
* is more than half the row spent on text that is identical from line to line and was
|
|
8
|
+
* never the reason anyone looked.
|
|
9
|
+
*
|
|
10
|
+
* Two rules, kept separate because they answer to different evidence:
|
|
11
|
+
*
|
|
12
|
+
* - a prefix shared by every line is chrome, whatever it happens to say
|
|
13
|
+
* - a timestamp at the start of a line is chrome even when every one differs
|
|
14
|
+
*
|
|
15
|
+
* Then what is left is capped from the END. Output is read backwards: a build says what
|
|
16
|
+
* went wrong on its last line and what it was doing on its first. The previous cap kept
|
|
17
|
+
* the head, which is why a failed run showed its opening banner and dropped the error.
|
|
18
|
+
*
|
|
19
|
+
* Pure, so all of it is decided by tests on plain arrays rather than by looking at a
|
|
20
|
+
* screen and forming an opinion.
|
|
21
|
+
*/
|
|
22
|
+
/** Minimum length for a column head to be worth removing. */
|
|
23
|
+
const MIN_PREFIX = 3;
|
|
24
|
+
/** Fewer lines than this is not a pattern, it is a coincidence. */
|
|
25
|
+
const MIN_LINES_FOR_PREFIX = 3;
|
|
26
|
+
/** How far into a line a column gutter may sit. Past this it is not a margin around the
|
|
27
|
+
* content, it is most of the content. */
|
|
28
|
+
const MAX_PREFIX = 80;
|
|
29
|
+
/** The share of lines that must carry the same head before it counts as chrome. Well
|
|
30
|
+
* under all of them, because logs interleave: a wrapped continuation, a line from
|
|
31
|
+
* another stream, and a blank all legitimately arrive without the column. */
|
|
32
|
+
const PREFIX_SHARE = 0.6;
|
|
33
|
+
/** A run of two or more spaces — how padded output separates its fields. One space is
|
|
34
|
+
* just as likely to be the space in a sentence. */
|
|
35
|
+
const GUTTER = / {2,}/g;
|
|
36
|
+
/**
|
|
37
|
+
* An ISO-8601 timestamp at the start of a line, as CI logs emit them, with or without
|
|
38
|
+
* fractional seconds and with any of the usual zone spellings.
|
|
39
|
+
*
|
|
40
|
+
* Exactly one space is taken with it, never a run. The separator after a stamp is a
|
|
41
|
+
* single space, and anything past that is the line's own indentation — a stack trace is
|
|
42
|
+
* indented under the error it belongs to, and swallowing that would flatten it.
|
|
43
|
+
*/
|
|
44
|
+
const LEADING_TIMESTAMP = /^(?:\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?|\[\d{2}:\d{2}:\d{2}(?:\.\d+)?\]) ?/;
|
|
45
|
+
/**
|
|
46
|
+
* The columns a line opens with, if it opens with any.
|
|
47
|
+
*
|
|
48
|
+
* Everything up to and including the LAST gutter that still sits near the start of the
|
|
49
|
+
* line, so a row of several padded fields gives up all of them at once rather than one
|
|
50
|
+
* per pass. A line with no gutter has no head, and is left alone.
|
|
51
|
+
*/
|
|
52
|
+
function columnHead(line) {
|
|
53
|
+
let end;
|
|
54
|
+
GUTTER.lastIndex = 0;
|
|
55
|
+
for (let m = GUTTER.exec(line); m; m = GUTTER.exec(line)) {
|
|
56
|
+
const stop = m.index + m[0].length;
|
|
57
|
+
if (stop > MAX_PREFIX)
|
|
58
|
+
break;
|
|
59
|
+
// A head that swallows the line is not chrome around content, it IS the content.
|
|
60
|
+
if (stop >= line.length)
|
|
61
|
+
break;
|
|
62
|
+
end = stop;
|
|
63
|
+
}
|
|
64
|
+
return end !== undefined && end >= MIN_PREFIX ? line.slice(0, end) : undefined;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Drop the column head that most lines share.
|
|
68
|
+
*
|
|
69
|
+
* MOST, not all, and this is the whole difficulty. Requiring every line to carry the
|
|
70
|
+
* prefix reads well as a rule and fails on every real log, because logs interleave: a
|
|
71
|
+
* stack trace continues on an unprefixed row, a second stream writes a line of its own, a
|
|
72
|
+
* wrapped path arrives with no columns at all. One such row would turn the shared prefix
|
|
73
|
+
* into nothing and hand back the untouched output — which is exactly what happened, and
|
|
74
|
+
* only showed up when a probe was pointed at a log that had one.
|
|
75
|
+
*
|
|
76
|
+
* Lines that do carry the head lose it. Lines that do not are left exactly as they are:
|
|
77
|
+
* they are already the short ones, and cutting a prefix they never had could only take
|
|
78
|
+
* away something they were saying.
|
|
79
|
+
*/
|
|
80
|
+
export function stripCommonPrefix(lines) {
|
|
81
|
+
const filled = lines.filter((l) => l.trim() !== "");
|
|
82
|
+
if (filled.length < MIN_LINES_FOR_PREFIX)
|
|
83
|
+
return lines;
|
|
84
|
+
// How many lines open with each head. The winner has to be shared rather than merely
|
|
85
|
+
// present, so a single padded line among plain ones changes nothing.
|
|
86
|
+
const counts = new Map();
|
|
87
|
+
for (const line of filled) {
|
|
88
|
+
const head = columnHead(line);
|
|
89
|
+
if (head !== undefined)
|
|
90
|
+
counts.set(head, (counts.get(head) ?? 0) + 1);
|
|
91
|
+
}
|
|
92
|
+
let best;
|
|
93
|
+
let bestCount = 0;
|
|
94
|
+
for (const [head, count] of counts) {
|
|
95
|
+
// Ties go to the longer head: two heads that both fit are nested, and the longer one
|
|
96
|
+
// is the full set of columns rather than the first of them.
|
|
97
|
+
if (count > bestCount || (count === bestCount && best !== undefined && head.length > best.length)) {
|
|
98
|
+
best = head;
|
|
99
|
+
bestCount = count;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (best === undefined || bestCount < Math.ceil(filled.length * PREFIX_SHARE))
|
|
103
|
+
return lines;
|
|
104
|
+
const head = best;
|
|
105
|
+
return lines.map((l) => (l.startsWith(head) ? l.slice(head.length) : l));
|
|
106
|
+
}
|
|
107
|
+
/** Drop a leading timestamp from each line. Applied per line, because these differ from
|
|
108
|
+
* line to line and so survive the shared-prefix rule above by design. */
|
|
109
|
+
export function stripTimestamps(lines) {
|
|
110
|
+
const hits = lines.filter((l) => LEADING_TIMESTAMP.test(l)).length;
|
|
111
|
+
const filled = lines.filter((l) => l.trim() !== "").length;
|
|
112
|
+
// Only when it is the shape of the output rather than one line that happens to open
|
|
113
|
+
// with a date. Half is a low bar on purpose: interleaved logs are common and a
|
|
114
|
+
// stamped line is no less stamped for sitting next to an unstamped one.
|
|
115
|
+
if (filled === 0 || hits * 2 < filled)
|
|
116
|
+
return lines;
|
|
117
|
+
return lines.map((l) => l.replace(LEADING_TIMESTAMP, ""));
|
|
118
|
+
}
|
|
119
|
+
/** Both rules, in the order that lets the second one see what the first uncovered. */
|
|
120
|
+
export function condense(lines) {
|
|
121
|
+
return stripTimestamps(stripCommonPrefix(lines));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Keep the last `max` lines, naming what was dropped.
|
|
125
|
+
*
|
|
126
|
+
* The notice goes ABOVE the kept lines, where it reads as "this is the end of something
|
|
127
|
+
* longer". Below them it reads as more output, which is how the old middle-drop marker
|
|
128
|
+
* ended up looking like a line the command had printed.
|
|
129
|
+
*/
|
|
130
|
+
export function tailCap(lines, max) {
|
|
131
|
+
const limit = Math.max(1, max);
|
|
132
|
+
if (lines.length <= limit)
|
|
133
|
+
return lines;
|
|
134
|
+
const hidden = lines.length - limit;
|
|
135
|
+
return [`… ${hidden.toLocaleString("en-US")} earlier line${hidden === 1 ? "" : "s"} hidden`, ...lines.slice(-limit)];
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=outputShape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputShape.js","sourceRoot":"","sources":["../../src/tools/outputShape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,6DAA6D;AAC7D,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,mEAAmE;AACnE,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B;0CAC0C;AAC1C,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;8EAE8E;AAC9E,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB;oDACoD;AACpD,MAAM,MAAM,GAAG,QAAQ,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,iBAAiB,GACrB,gHAAgH,CAAC;AAEnH;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,GAAuB,CAAC;IAC5B,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACnC,IAAI,IAAI,GAAG,UAAU;YAAE,MAAM;QAC7B,iFAAiF;QACjF,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM;QAC/B,GAAG,GAAG,IAAI,CAAC;IACb,CAAC;IACD,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAe;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,MAAM,GAAG,oBAAoB;QAAE,OAAO,KAAK,CAAC;IAEvD,qFAAqF;IACrF,qEAAqE;IACrE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,IAAwB,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,qFAAqF;QACrF,4DAA4D;QAC5D,IAAI,KAAK,GAAG,SAAS,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClG,IAAI,GAAG,IAAI,CAAC;YACZ,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5F,MAAM,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;0EAC0E;AAC1E,MAAM,UAAU,eAAe,CAAC,KAAe;IAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;IAC3D,oFAAoF;IACpF,+EAA+E;IAC/E,wEAAwE;IACxE,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,MAAM;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,QAAQ,CAAC,KAAe;IACtC,OAAO,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,KAAe,EAAE,GAAW;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IACpC,OAAO,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvH,CAAC"}
|
package/dist/tools/registry.js
CHANGED
|
@@ -6,7 +6,6 @@ import { search } from "./search.js";
|
|
|
6
6
|
import { outlineTool, definitionTool, referencesTool } from "./codeIntel.js";
|
|
7
7
|
import { readSymbolTool } from "./readSymbol.js";
|
|
8
8
|
import { replaceSymbolBody } from "./replaceSymbol.js";
|
|
9
|
-
import { diagnosticsTool } from "./diagnostics.js";
|
|
10
9
|
import { web } from "./web.js";
|
|
11
10
|
import { screenshot } from "./screenshot.js";
|
|
12
11
|
import { exitPlan } from "./exitPlan.js";
|
|
@@ -32,7 +31,6 @@ export const TOOLS = [
|
|
|
32
31
|
definitionTool,
|
|
33
32
|
referencesTool,
|
|
34
33
|
readSymbolTool,
|
|
35
|
-
diagnosticsTool,
|
|
36
34
|
// Background shells (read-only: inspect long-running commands)
|
|
37
35
|
shellsTool,
|
|
38
36
|
// External integrations (read-only: finds MCP tools, and reads the DATA servers expose
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/runCommand.js
CHANGED
|
@@ -10,7 +10,8 @@ import { posixShell, shellMismatchNote } from "./posixShell.js";
|
|
|
10
10
|
import { killTree, spawnManaged } from "./killTree.js";
|
|
11
11
|
import { captureAfterCommand, looksReadOnly, snapshotBeforeCommand } from "./shellCheckpoint.js";
|
|
12
12
|
import { canonicalRoot, relativize } from "./paths.js";
|
|
13
|
-
import {
|
|
13
|
+
import { SHELL_ROWS_FAILED, SHELL_ROWS_OK, formatDuration, shellOutput, withOutcome } from "./detail.js";
|
|
14
|
+
import { parseTestRun, testDetail } from "./testSummary.js";
|
|
14
15
|
import { powershellLintReason, powershellParseError, powershellReservedAssignmentReason } from "./shellLint.js";
|
|
15
16
|
import { findRunningDuplicate, findRecentUserClose, guessNotifyPolicy } from "./backgroundShells.js";
|
|
16
17
|
import { fail, failQuietly } from "./results.js";
|
|
@@ -226,6 +227,9 @@ export const runCommand = {
|
|
|
226
227
|
},
|
|
227
228
|
};
|
|
228
229
|
async function runShell(command, ctx, timeoutMs, background, shell, declaredNotify) {
|
|
230
|
+
// How long the command took, for the row's outcome. Taken here rather than around the
|
|
231
|
+
// spawn so it covers what the user actually waited through.
|
|
232
|
+
const startedAt = Date.now();
|
|
229
233
|
// A unique temp file the wrapped command writes its final cwd into.
|
|
230
234
|
const cwdFile = join(tmpdir(), `mindweave-cwd-${randomBytes(6).toString("hex")}.txt`);
|
|
231
235
|
// Where we stood before the command ran — applyCwd may move ctx.cwd, and the model
|
|
@@ -362,7 +366,7 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
|
|
|
362
366
|
await applyCwd(cwdFile, ctx);
|
|
363
367
|
if (tempFile)
|
|
364
368
|
await fs.rm(tempFile, { force: true }).catch(() => { });
|
|
365
|
-
resolve(format(command, ctx, collected(), dropped > 0, timedOut, exitCode, signal, timeoutMs, shell, cwdBefore, child.pid));
|
|
369
|
+
resolve(format(command, ctx, collected(), dropped > 0, timedOut, exitCode, signal, timeoutMs, shell, cwdBefore, Date.now() - startedAt, child.pid));
|
|
366
370
|
};
|
|
367
371
|
child.on("error", (error) => {
|
|
368
372
|
if (settled)
|
|
@@ -546,6 +550,8 @@ async function applyCwd(cwdFile, ctx) {
|
|
|
546
550
|
}
|
|
547
551
|
}
|
|
548
552
|
function format(command, ctx, output, truncated, timedOut, exitCode, signal, timeoutMs, shell, cwdBefore,
|
|
553
|
+
/** Wall-clock milliseconds the command ran for. */
|
|
554
|
+
elapsedMs,
|
|
549
555
|
/** The killed process, named only when something WAS killed (see withOutcome). */
|
|
550
556
|
pid) {
|
|
551
557
|
const body = output.trim();
|
|
@@ -597,9 +603,14 @@ pid) {
|
|
|
597
603
|
if (moved)
|
|
598
604
|
parts.push(moved);
|
|
599
605
|
const status = timedOut ? "timed out" : signal ? `killed (${signal})` : exitCode === 0 ? "ok" : `exit ${exitCode}`;
|
|
606
|
+
const failed = timedOut || signal !== null || (exitCode !== 0 && exitCode !== null);
|
|
607
|
+
// Only for a command that RAN to a conclusion. A run killed on a timeout has whatever
|
|
608
|
+
// its runner had printed by then, and summarising a partial log as a result would put a
|
|
609
|
+
// confident set of numbers under a command nobody let finish.
|
|
610
|
+
const testRun = timedOut || signal !== null ? undefined : parseTestRun(body);
|
|
600
611
|
return {
|
|
601
612
|
output: parts.join("\n"),
|
|
602
|
-
isError:
|
|
613
|
+
isError: failed,
|
|
603
614
|
summary: `ran \`${clip(command)}\` in ${shown} (${status})`,
|
|
604
615
|
// The outcome is appended to what is SHOWN, not just to what the model reads. A
|
|
605
616
|
// command that printed output previously ended its row with the last line of that
|
|
@@ -609,13 +620,26 @@ pid) {
|
|
|
609
620
|
// The command leads its own block on its own row. Inline in the header it was
|
|
610
621
|
// clipped to 48 characters, which for a real command line lost the half that said
|
|
611
622
|
// what it actually did (`Run(mkdir -p ..\astra-backup; Move-Item .\astra.htm…)`).
|
|
612
|
-
|
|
623
|
+
// A recognised test run is shown as a RESULT rather than as output: its own counts
|
|
624
|
+
// and the first few failures, in place of the thousands of lines it printed to say
|
|
625
|
+
// that nothing was wrong. Anything not recognised falls through to the ordinary
|
|
626
|
+
// block, whole — see testSummary.ts for why that direction is the safe one.
|
|
627
|
+
detail: testRun
|
|
628
|
+
? testDetail(testRun, formatDuration)
|
|
629
|
+
: withOutcome(shellBody(command, body, failed), timedOut, exitCode, signal, timeoutMs, elapsedMs, pid),
|
|
613
630
|
detailKind: "shell",
|
|
614
631
|
};
|
|
615
632
|
}
|
|
616
|
-
/**
|
|
617
|
-
|
|
618
|
-
|
|
633
|
+
/**
|
|
634
|
+
* The `$ command` header row above a command's captured output.
|
|
635
|
+
*
|
|
636
|
+
* How many rows of output follow depends on whether the command WORKED. A run that
|
|
637
|
+
* succeeded needs to show that it finished and what it ended up saying; a run that failed
|
|
638
|
+
* is the only one anyone reads, and gets a larger, still fixed, budget. Both are capped
|
|
639
|
+
* from the end — see `shellOutput`.
|
|
640
|
+
*/
|
|
641
|
+
function shellBody(command, body, failed) {
|
|
642
|
+
const out = shellOutput(body, failed ? SHELL_ROWS_FAILED : SHELL_ROWS_OK);
|
|
619
643
|
return out ? `$ ${command}\n${out}` : `$ ${command}`;
|
|
620
644
|
}
|
|
621
645
|
/** Single-quote a string for a POSIX shell. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/tools/runCommand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/tools/runCommand.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/screenshot.js
CHANGED
|
@@ -60,7 +60,9 @@ export function pickWindow(query, windows) {
|
|
|
60
60
|
return { kind: "none", candidates: [] };
|
|
61
61
|
if (!query) {
|
|
62
62
|
const focused = windows.find((w) => w.foreground);
|
|
63
|
-
return focused
|
|
63
|
+
return focused
|
|
64
|
+
? { kind: "match", window: focused, tied: windows.filter((w) => w !== focused) }
|
|
65
|
+
: { kind: "ambiguous", candidates: windows };
|
|
64
66
|
}
|
|
65
67
|
const needle = query.trim().toLowerCase();
|
|
66
68
|
const titled = windows.map((w) => ({ w, t: w.title.toLowerCase() }));
|
|
@@ -71,18 +73,43 @@ export function pickWindow(query, windows) {
|
|
|
71
73
|
];
|
|
72
74
|
for (const tier of tiers) {
|
|
73
75
|
if (tier.length === 1)
|
|
74
|
-
return { kind: "match", window: tier[0].w };
|
|
76
|
+
return { kind: "match", window: tier[0].w, tied: [] };
|
|
75
77
|
if (tier.length > 1) {
|
|
76
78
|
// Several equally good matches, but if exactly one has focus the user is
|
|
77
79
|
// looking at it, and that is a better answer than refusing.
|
|
80
|
+
//
|
|
81
|
+
// The losers are carried out with the winner. Resolving a tie silently makes a
|
|
82
|
+
// successful capture indistinguishable from one where the title could only ever
|
|
83
|
+
// name a single window, so a caller who wanted one of the OTHERS has no way to
|
|
84
|
+
// learn that its query cannot express the difference — and repeats the same call
|
|
85
|
+
// expecting a different picture.
|
|
78
86
|
const focused = tier.filter(({ w }) => w.foreground);
|
|
79
|
-
if (focused.length === 1)
|
|
80
|
-
return { kind: "match", window: focused[0].w };
|
|
87
|
+
if (focused.length === 1) {
|
|
88
|
+
return { kind: "match", window: focused[0].w, tied: tier.filter(({ w }) => !w.foreground).map(({ w }) => w) };
|
|
89
|
+
}
|
|
81
90
|
return { kind: "ambiguous", candidates: tier.map(({ w }) => w) };
|
|
82
91
|
}
|
|
83
92
|
}
|
|
84
93
|
return { kind: "none", candidates: windows };
|
|
85
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Say that the capture was a tie decided by focus, and that repeating it will not
|
|
97
|
+
* decide it differently (pure).
|
|
98
|
+
*
|
|
99
|
+
* Without this a tie-broken capture reads exactly like an unambiguous one. A caller
|
|
100
|
+
* wanting one of the other windows sees a plain success, changes nothing, and calls
|
|
101
|
+
* again — the same window comes back, because focus has not moved and nothing in the
|
|
102
|
+
* result ever said that focus was what chose it. So this names the number, and names the
|
|
103
|
+
* two things that would actually change the answer.
|
|
104
|
+
*/
|
|
105
|
+
export function tieNote(query, tied) {
|
|
106
|
+
if (tied.length === 0)
|
|
107
|
+
return "";
|
|
108
|
+
const others = tied.length === 1 ? "1 other window" : `${tied.length} other windows`;
|
|
109
|
+
return (` ${others} match${tied.length === 1 ? "es" : ""} ${query ? `"${query}"` : "as well"} just as closely; ` +
|
|
110
|
+
`this one had focus. Calling again will pick the same one — to reach another, focus it first ` +
|
|
111
|
+
`or name a title only it has.`);
|
|
112
|
+
}
|
|
86
113
|
/** Render window titles for an error the model can act on without another call. */
|
|
87
114
|
export function listTitles(windows) {
|
|
88
115
|
if (windows.length === 0)
|
|
@@ -186,7 +213,8 @@ export const screenshot = {
|
|
|
186
213
|
return fail(`Captured "${target.title}" but cannot use the image: ${ref.reason}`);
|
|
187
214
|
return {
|
|
188
215
|
output: `Captured "${target.title}" (${size.width}x${size.height}). ` +
|
|
189
|
-
`The image follows this result — look at it and say what you see
|
|
216
|
+
`The image follows this result — look at it and say what you see.` +
|
|
217
|
+
tieNote(query, pick.tied),
|
|
190
218
|
summary: `screenshot of ${target.title} (${size.width}x${size.height})`,
|
|
191
219
|
// The facts about the capture itself, which the model's own output does not
|
|
192
220
|
// carry: what was taken, how big it is, and WHEN — the timestamp is what tells
|