mindweave 3.2.2 → 3.2.3

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.
Files changed (53) hide show
  1. package/dist/cli/App.js +2 -2
  2. package/dist/cli/App.js.map +1 -1
  3. package/dist/cli/agentLines.js +196 -0
  4. package/dist/cli/agentLines.js.map +1 -0
  5. package/dist/cli/components/BlockView.js +1 -1
  6. package/dist/cli/components/BlockView.js.map +1 -1
  7. package/dist/cli/components/SubagentView.js +43 -74
  8. package/dist/cli/components/SubagentView.js.map +1 -1
  9. package/dist/cli/help.js +3 -1
  10. package/dist/cli/help.js.map +1 -1
  11. package/dist/cli/transcript.js +13 -3
  12. package/dist/cli/transcript.js.map +1 -1
  13. package/dist/core/turnRunner.js +2 -2
  14. package/dist/core/turnRunner.js.map +1 -1
  15. package/dist/dynamo/engine.js +6 -3
  16. package/dist/dynamo/engine.js.map +1 -1
  17. package/dist/dynamo/guard.js +6 -0
  18. package/dist/dynamo/guard.js.map +1 -1
  19. package/dist/dynamo/marathon.js +17 -4
  20. package/dist/dynamo/marathon.js.map +1 -1
  21. package/dist/memory/compaction.js +60 -6
  22. package/dist/memory/compaction.js.map +1 -1
  23. package/dist/memory/session.js +2 -0
  24. package/dist/memory/session.js.map +1 -1
  25. package/dist/tools/guard.js +13 -0
  26. package/dist/tools/guard.js.map +1 -1
  27. package/dist/tools/registry.js +1 -1
  28. package/dist/tools/registry.js.map +1 -1
  29. package/dist/tools/runCommand.js +9 -0
  30. package/dist/tools/runCommand.js.map +1 -1
  31. package/dist/tools/screenshot.js +28 -9
  32. package/dist/tools/screenshot.js.map +1 -1
  33. package/dist/tools/screenshotWin.js +258 -175
  34. package/dist/tools/screenshotWin.js.map +1 -1
  35. package/dist/tools/subagent.js +55 -27
  36. package/dist/tools/subagent.js.map +1 -1
  37. package/dist/tools/subagentOutcome.js +24 -0
  38. package/dist/tools/subagentOutcome.js.map +1 -0
  39. package/dist/tools/treeGuard.js +164 -0
  40. package/dist/tools/treeGuard.js.map +1 -0
  41. package/dist/tools/ui.js +27 -0
  42. package/dist/tools/ui.js.map +1 -1
  43. package/dist/tools/uiHide.js +19 -6
  44. package/dist/tools/uiHide.js.map +1 -1
  45. package/dist/tools/verifierCommands.js +188 -0
  46. package/dist/tools/verifierCommands.js.map +1 -0
  47. package/dist/tools/verifierRun.js +88 -0
  48. package/dist/tools/verifierRun.js.map +1 -0
  49. package/dist/tools/verifierTools.js +19 -0
  50. package/dist/tools/verifierTools.js.map +1 -0
  51. package/dist/tools/verifyReport.js +79 -9
  52. package/dist/tools/verifyReport.js.map +1 -1
  53. package/package.json +3 -3
@@ -0,0 +1,196 @@
1
+ /**
2
+ * agentLines.ts — what a sub-agent says about itself on screen (pure).
3
+ *
4
+ * A sub-agent used to be its task prompt pasted onto one line, then every call it made, then a
5
+ * summary built for the lead agent. This turns that into what a person wants to know, in the order
6
+ * they want it: a short title, how it ended, and, opened, the task, the result and what it did.
7
+ * The list of calls is folded the way the commands row folds them: counts first, repeats merged.
8
+ */
9
+ import { itemLabel } from "./toolItems.js";
10
+ import { visibleWidth, wrapAnsi } from "./wrap.js";
11
+ /**
12
+ * A short title from the task the agent was given (pure). The task is a prompt written for a model
13
+ * ("You are re-verifying a FIXED bug in Notes App, an Electron app at C:\\Projects\\...") and is
14
+ * never a title, so this keeps the first idea in it: the opening words dropped, the first sentence
15
+ * or clause kept, a path left off, and the cut made at a word, never in the middle of one.
16
+ */
17
+ export function agentTitle(task, max) {
18
+ let t = task.replace(/\s+/g, " ").trim();
19
+ t = t.replace(/^(?:you are|you're|your task is to|your job is to|task:|please)\s+/i, "");
20
+ const end = t.search(/[.!?](?:\s|$)|:\s| — | - /);
21
+ if (end >= 12)
22
+ t = t.slice(0, end);
23
+ const comma = t.indexOf(", ");
24
+ if (comma >= 20)
25
+ t = t.slice(0, comma);
26
+ t = t.replace(/\s+(?:at|in|under|inside)\s+(?:[A-Za-z]:\\|\/|~)\S*.*$/i, "");
27
+ t = t.replace(/[\s,;:.-]+$/, "");
28
+ if (t === "")
29
+ return "";
30
+ t = t.charAt(0).toUpperCase() + t.slice(1);
31
+ if (t.length <= max)
32
+ return t;
33
+ const room = Math.max(1, max - 1);
34
+ const space = t.lastIndexOf(" ", room);
35
+ return `${t.slice(0, space >= Math.floor(room / 2) ? space : room).replace(/[\s,;:.-]+$/, "")}…`;
36
+ }
37
+ /** A span of time, whole seconds under a minute and `2m 10s` past it (pure). */
38
+ export function humanSpan(ms) {
39
+ const seconds = Math.max(0, Math.round(ms / 1000));
40
+ if (seconds < 60)
41
+ return `${seconds}s`;
42
+ const m = Math.floor(seconds / 60);
43
+ const s = seconds % 60;
44
+ return s === 0 ? `${m}m` : `${m}m ${s}s`;
45
+ }
46
+ /**
47
+ * Everything a worker did as lines, repeats merged wherever they happen (pure).
48
+ * A poll that came back six times, with other calls between, is `Shell #4 (running) ×6`, not six
49
+ * lines. First appearance sets the order, so the list still reads as what happened.
50
+ */
51
+ export function didRows(items) {
52
+ const rows = [];
53
+ const byLabel = new Map();
54
+ for (const it of items) {
55
+ // A look at the shell list ("1 running, 4 total") is bookkeeping, not something it did to the project.
56
+ const label = it.name === "Shell" && !it.arg ? "Checked the shells" : itemLabel(it);
57
+ const at = byLabel.get(label);
58
+ if (at) {
59
+ at.count += 1;
60
+ if (it.status === "error")
61
+ at.error = true;
62
+ }
63
+ else {
64
+ const row = { label, count: 1, error: it.status === "error" };
65
+ byLabel.set(label, row);
66
+ rows.push(row);
67
+ }
68
+ }
69
+ return rows;
70
+ }
71
+ function kindOf(it) {
72
+ switch (it.kind) {
73
+ case "read":
74
+ return "read";
75
+ case "search":
76
+ return "search";
77
+ case "run":
78
+ return "run";
79
+ case "edit":
80
+ case "write":
81
+ return "change";
82
+ default:
83
+ return "other";
84
+ }
85
+ }
86
+ /**
87
+ * What it did, counted: "Read 6 files, ran 4 commands" (pure). Each kind has its own tense and its
88
+ * own noun, in the order they began, and a call that failed or was refused is said at the end.
89
+ */
90
+ export function didText(items, live) {
91
+ if (items.length === 0)
92
+ return live ? "Starting" : "Nothing";
93
+ const order = [];
94
+ for (const it of items) {
95
+ const k = kindOf(it);
96
+ if (!order.includes(k))
97
+ order.push(k);
98
+ }
99
+ const parts = order.map((k, i) => {
100
+ const mine = items.filter((it) => kindOf(it) === k);
101
+ const going = live && mine.some((it) => it.status === "running");
102
+ const n = k === "read" ? mine.reduce((sum, it) => sum + Math.max(1, it.covers ?? 1), 0) : mine.length;
103
+ let text;
104
+ switch (k) {
105
+ case "read":
106
+ text = `${going ? "Reading" : "Read"} ${n} file${n === 1 ? "" : "s"}`;
107
+ break;
108
+ case "search":
109
+ text = `${going ? "Searching" : "Searched"} ${n === 1 ? "once" : `${n} times`}`;
110
+ break;
111
+ case "run":
112
+ text = `${going ? "Running" : "Ran"} ${n} command${n === 1 ? "" : "s"}`;
113
+ break;
114
+ case "change":
115
+ text = `${going ? "Changing" : "Changed"} ${n} file${n === 1 ? "" : "s"}`;
116
+ break;
117
+ default:
118
+ text = `${n} other call${n === 1 ? "" : "s"}`;
119
+ }
120
+ return i === 0 ? text : text.charAt(0).toLowerCase() + text.slice(1);
121
+ });
122
+ const failed = items.filter((it) => it.status === "error").length;
123
+ return failed > 0 ? `${parts.join(", ")}, ${failed} failed` : parts.join(", ");
124
+ }
125
+ /** What it is doing right now, in the present tense: "reading use-debounced.ts" (pure). */
126
+ export function nowText(items) {
127
+ const going = [...items].reverse().find((it) => it.status === "running");
128
+ if (!going)
129
+ return "";
130
+ const text = itemLabel(going);
131
+ return text.charAt(0).toLowerCase() + text.slice(1);
132
+ }
133
+ export function toneOf(agent) {
134
+ if (agent.verdict === "pass")
135
+ return "good";
136
+ if (agent.verdict === "fail" || agent.status === "error")
137
+ return "bad";
138
+ if (agent.verdict === "partial" || agent.verdict === "unknown")
139
+ return "warn";
140
+ return undefined;
141
+ }
142
+ /** The mark before the outcome: a tick, a cross, or a bang for "not sure". */
143
+ export function markOf(tone) {
144
+ return tone === "good" ? "✓" : tone === "bad" ? "✗" : tone === "warn" ? "!" : "·";
145
+ }
146
+ /** How many lines of what it did are shown opened before the rest is counted. */
147
+ export const MAX_DID_ROWS = 12;
148
+ /**
149
+ * The opened view (pure): the task, how it ended, what it did in a count, then each thing it did.
150
+ * The task is cut to three lines of `width` and ends in an ellipsis when there is more.
151
+ */
152
+ export function bodyRows(agent, live, width) {
153
+ const rows = [];
154
+ const task = (agent.full ?? agent.task).replace(/\s+/g, " ").trim();
155
+ if (task)
156
+ rows.push({ label: "Task", text: cutLines(task, width, 3) });
157
+ if (!live && agent.headline)
158
+ rows.push({ label: "Result", text: `${markOf(toneOf(agent))} ${agent.headline}`, tone: toneOf(agent) });
159
+ else if (!live && agent.summary)
160
+ rows.push({ label: "Result", text: agent.summary, tone: toneOf(agent) });
161
+ rows.push({ label: "Did", text: didText(agent.items, live) });
162
+ const list = didRows(agent.items);
163
+ const shown = list.slice(0, MAX_DID_ROWS);
164
+ for (const r of shown)
165
+ rows.push({ label: "", text: r.count > 1 ? `${r.label} ×${r.count}` : r.label, tone: r.error ? "bad" : undefined });
166
+ if (list.length > shown.length)
167
+ rows.push({ label: "", text: `… and ${list.length - shown.length} more` });
168
+ return rows;
169
+ }
170
+ /** A text kept to `lines` rows of `width` columns, with an ellipsis where it was cut (pure). */
171
+ function cutLines(text, width, lines) {
172
+ const room = Math.max(8, width) * lines;
173
+ if (text.length <= room)
174
+ return text;
175
+ const cut = text.lastIndexOf(" ", room - 1);
176
+ return `${text.slice(0, cut > room / 2 ? cut : room - 1).replace(/[\s,;:.-]+$/, "")}…`;
177
+ }
178
+ /** The width of the label column ("Result") and what is left of a line for the words. */
179
+ export const LABEL_WIDTH = 8;
180
+ export function bandText(columns) {
181
+ return Math.max(8, columns - 14);
182
+ }
183
+ /**
184
+ * The opened rows as lines of exact width (pure): every line wraps to the room beside the label
185
+ * column, a wrapped line hangs under its words, and each is padded so the band is a clean block.
186
+ */
187
+ export function bandRows(rows, columns) {
188
+ const room = bandText(columns);
189
+ const out = [];
190
+ for (const r of rows) {
191
+ const parts = wrapAnsi(r.text === "" ? " " : r.text, room);
192
+ parts.forEach((part, i) => out.push({ label: i === 0 ? r.label : "", text: part, tone: r.tone, pad: Math.max(0, room - visibleWidth(part)) }));
193
+ }
194
+ return out;
195
+ }
196
+ //# sourceMappingURL=agentLines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentLines.js","sourceRoot":"","sources":["../../src/cli/agentLines.ts"],"names":[],"mappings":"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"}
@@ -79,7 +79,7 @@ function BlockViewInner({ block, columns, tightTop, hovered, hoveredItem }) {
79
79
  case "work":
80
80
  return (_jsx(WorkGroup, { id: block.id, items: block.items, open: block.open, live: block.live, columns: columns, tightTop: tightTop, hovered: hovered, hoveredItem: hoveredItem }));
81
81
  case "subagent":
82
- return (_jsx(SubagentView, { agents: block.agents, done: block.done, columns: columns, tightTop: tightTop }));
82
+ return (_jsx(SubagentView, { id: block.id, agents: block.agents, done: block.done, columns: columns, tightTop: tightTop, hoveredItem: hoveredItem }));
83
83
  case "error":
84
84
  return (_jsxs(Box, { marginTop: 1, flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: _jsx(Text, { color: BAD, children: "●" }) }), _jsx(WrappedText, { text: block.text, width: textWidth, color: BAD })] }));
85
85
  case "completion":
@@ -1 +1 @@
1
- {"version":3,"file":"BlockView.js","sourceRoot":"","sources":["../../../src/cli/components/BlockView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockView.js","sourceRoot":"","sources":["../../../src/cli/components/BlockView.tsx"],"names":[],"mappings":"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"}
@@ -1,89 +1,58 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  /**
3
- * SubagentView — delegated work, as a distinct NESTED block.
3
+ * SubagentView — delegated work, as a title and an answer, with the working a click away.
4
4
  *
5
- * ONE worker keeps its full rail, because there is room to watch it:
5
+ * ● Sub-agent Re-verifying a FIXED bug in Notes App · read-only
6
+ * ! Could not fully verify · 8 checks · 20 steps · 2m 10s ▸
6
7
  *
7
- * ◆ Subagent · read-only find every authFetch call site
8
- * │ Searching authFetch
9
- * │ Read login.ts
10
- * ⎿ 3 steps · read-only ← collapses here once it reports back
8
+ * While it works, the dot pulses and the second line says where it is:
11
9
  *
12
- * SEVERAL at once become a topology instead, because read-only workers fan out in
13
- * parallel and their rails, side by side, are a stripe nobody can follow:
10
+ * ● Sub-agent Re-verifying a FIXED bug in Notes App · read-only
11
+ * step 12 · reading use-debounced.ts 1m 5s ▸
14
12
  *
15
- * ◆ Subagents · 2 delegated
16
- * ├── #1 · read-only find every authFetch call site
17
- * │ ⎿ 3 steps · read-only
18
- * └── #2 draft unit tests for runCommand.ts
19
- * ⎿ working · 4 steps
13
+ * What you want from a worker is the answer, so that is what shows: how it ended (a tick, a cross,
14
+ * or a bang when it could only half do it), the steps it took and the time. Its task is a prompt
15
+ * written for a model, so the line holds a short title taken from it, not the prompt itself. A
16
+ * click opens a shaded band: the task, the result, a count of what it did, then each thing it
17
+ * did, with repeats merged (a poll that came back six times is one line, ×6).
20
18
  *
21
- * The trade is deliberate: with one worker you can afford to watch each call; with
22
- * several you need the SHAPE of the delegation — who is doing what, and how far along
23
- * — and the individual calls become noise. What is shown is only what a worker
24
- * actually reports (its task, whether it may write, its progress). The reference
25
- * design also labels each with a model and an "isolated 8k window"; a sub-agent
26
- * carries neither, so inventing them would be decoration that reads as fact.
27
- *
28
- * A violet ◆ marker sets the whole family apart from the blue tool rows — these are
29
- * separate minds working inside the transcript, not more tools. A child's prose is
30
- * never shown; only its final distilled report crosses back, as the spawn's result.
19
+ * Several at once are one group, each with its own two lines, so the shape of the delegation is
20
+ * visible: who is doing what and how far along. A child's own prose is never shown; only its
21
+ * report crosses back. The same look as the folded commands row, so there is one thing to learn.
31
22
  */
32
23
  import { Box, Text } from "ink";
33
- import { ERROR_COLOR } from "../toolDisplay.js";
34
- import { collapseAdjacent } from "../toolItems.js";
35
24
  import { PulseDot } from "./PulseDot.js";
36
- import { BAD } from "../theme.js";
37
- const DIAMOND = "●";
38
- const BRANCH = "⎿";
39
- const RAIL = "│";
40
- const TEE = "├──";
41
- const ELBOW = "└──";
42
- // The rail/branch occupy 3 columns; item text hangs beside them, aligned under the
43
- // header content and never spilling left into the marker gutter.
44
- const RAIL_INDENT = 3;
45
- /** A sub-agent is not given a colour of its own: plain, and red when one failed. */
46
- const AGENT_COLOR = undefined;
47
- export function SubagentView({ agents, done, columns, tightTop, }) {
25
+ import { Elapsed } from "./ToolLine.js";
26
+ import { agentTitle, bandRows, bodyRows, humanSpan, markOf, nowText, toneOf } from "../agentLines.js";
27
+ import { registerExpandable, itemHit } from "../expandHits.js";
28
+ import { BAD, GOOD, USER_BG, USER_FG, WARN } from "../theme.js";
29
+ const DOT = "●";
30
+ const COLOUR = { good: GOOD, bad: BAD, warn: WARN };
31
+ const colourOf = (tone) => (tone ? COLOUR[tone] : undefined);
32
+ export function SubagentView({ id, agents, done, columns, tightTop, hoveredItem, }) {
48
33
  if (agents.length === 0)
49
34
  return null;
50
- const anyError = agents.some((a) => a.status === "error");
51
- const dotColor = anyError ? ERROR_COLOR : AGENT_COLOR;
52
- return (_jsxs(Box, { marginTop: tightTop ? 0 : 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: done ? _jsx(Text, { children: DIAMOND }) : _jsx(PulseDot, { glyph: DIAMOND }) }), agents.length === 1 ? (_jsx(SoloHeader, { agent: agents[0], columns: columns, color: dotColor })) : (_jsxs(_Fragment, { children: [_jsx(Text, { bold: true, color: dotColor, children: "Subagents" }), _jsx(Text, { dimColor: true, children: ` · ${agents.length} delegated` })] }))] }), agents.length === 1 ? (_jsx(SoloBody, { agent: agents[0], columns: columns, done: done })) : (_jsx(Topology, { agents: agents, columns: columns }))] }));
53
- }
54
- /** One worker's header: its identity and the task it was given. */
55
- function SoloHeader({ agent, columns, color }) {
56
- const taskLabel = clip(agent.task, Math.max(16, columns - 22));
57
- return (_jsxs(_Fragment, { children: [_jsx(Text, { bold: true, color: color, children: "Subagent" }), agent.readOnly ? _jsx(Text, { dimColor: true, children: " \u00B7 read-only" }) : null, taskLabel ? _jsxs(Text, { dimColor: true, children: [" ", taskLabel] }) : null] }));
58
- }
59
- /** One worker's live rail: every call it makes, then its closing line. */
60
- function SoloBody({ agent, columns, done }) {
61
- const content = Math.max(8, columns - RAIL_INDENT - 1);
62
- const errored = agent.status === "error";
63
- return (_jsxs(Box, { flexDirection: "column", children: [collapseAdjacent(agent.items).map((row) => (_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { color: AGENT_COLOR, dimColor: true, children: ` ${RAIL} ` }), _jsx(Box, { width: content, children: _jsxs(Text, { color: row.anyError ? BAD : undefined, dimColor: !row.anyError, wrap: "truncate-end", children: [row.label, row.count > 1 ? ` ×${row.count}` : ""] }) })] }, row.item.toolId))), done && agent.summary ? (_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { dimColor: true, children: ` ${BRANCH} ` }), _jsx(Box, { width: content, children: _jsx(Text, { color: errored ? BAD : undefined, dimColor: !errored, wrap: "truncate-end", children: agent.summary }) })] })) : null] }));
35
+ const solo = agents.length === 1;
36
+ return (_jsxs(Box, { marginTop: tightTop ? 0 : 1, flexDirection: "column", children: [solo ? null : (_jsxs(Box, { flexDirection: "row", children: [_jsx(Box, { minWidth: 2, children: done ? _jsx(Text, { children: DOT }) : _jsx(PulseDot, { glyph: DOT }) }), _jsx(Text, { bold: true, children: "Sub-agents" }), _jsx(Text, { dimColor: true, children: ` · ${agents.length} delegated` })] })), agents.map((agent, i) => (_jsx(AgentBlock, { id: id, index: i, agent: agent, lead: solo, done: done, columns: columns, hot: hoveredItem === i }, agent.agentId)))] }));
64
37
  }
65
- /** Several workers as a tree: one branch each, task on the branch, progress under it. */
66
- function Topology({ agents, columns }) {
67
- return (_jsx(Box, { flexDirection: "column", children: agents.map((agent, i) => {
68
- const last = i === agents.length - 1;
69
- const errored = agent.status === "error";
70
- // A worker still going is described by what it has DONE so far, since its
71
- // closing summary does not exist yet — otherwise a running branch says nothing
72
- // and reads as stalled.
73
- const steps = agent.items.length;
74
- const progress = agent.summary
75
- ? agent.summary
76
- : `working${steps > 0 ? ` · ${steps} step${steps === 1 ? "" : "s"}` : ""}`;
77
- const label = `#${i + 1}${agent.readOnly ? " · read-only" : ""}`;
78
- const taskWidth = Math.max(8, columns - 8 - label.length);
79
- return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { color: AGENT_COLOR, dimColor: true, children: ` ${last ? ELBOW : TEE} ` }), _jsx(Text, { bold: true, color: errored ? ERROR_COLOR : AGENT_COLOR, children: label }), _jsx(Box, { width: taskWidth, children: _jsxs(Text, { dimColor: true, wrap: "truncate-end", children: [" ", clip(agent.task, taskWidth)] }) })] }), _jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { color: AGENT_COLOR, dimColor: true, children: ` ${last ? " " : RAIL} ${BRANCH} ` }), _jsx(Box, { width: Math.max(8, columns - 12), children: _jsx(Text, { color: errored ? BAD : undefined, dimColor: !errored, wrap: "truncate-end", children: progress }) })] })] }, agent.agentId));
80
- }) }));
38
+ function AgentBlock({ id, index, agent, lead, done, columns, hot, }) {
39
+ const running = agent.status === "running";
40
+ const tone = toneOf(agent);
41
+ const name = lead ? "Sub-agent" : `#${index + 1}`;
42
+ const tag = agent.readOnly ? " · read-only" : "";
43
+ // Everything on the title line has a fixed place, so a long title is cut at a word and never squeezes
44
+ // the name, as it once did ("Subagen").
45
+ const room = Math.max(10, columns - 2 - name.length - 2 - tag.length - 1);
46
+ const title = agentTitle(agent.task, room);
47
+ const steps = agent.steps ?? agent.items.length;
48
+ const took = agent.endedAt !== undefined && agent.startedAt !== undefined ? humanSpan(agent.endedAt - agent.startedAt) : "";
49
+ const arrow = agent.open ? " ▾" : " ▸";
50
+ const registered = (node) => registerExpandable(itemHit(id, index), node);
51
+ const band = agent.open ? bandRows(bodyRows(agent, running, bandWidth(columns)), columns) : [];
52
+ return (_jsxs(Box, { flexDirection: "column", ref: registered, children: [_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Box, { minWidth: 2, flexShrink: 0, children: lead ? running ? _jsx(PulseDot, { glyph: DOT }) : _jsx(Text, { children: DOT }) : _jsx(Text, { children: " " }) }), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { bold: true, children: name }) }), title ? (_jsx(Box, { flexShrink: 0, children: _jsxs(Text, { bold: hot, children: [" ", title] }) })) : null, tag ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: tag }) })) : null] }), _jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { children: " " }), running ? (_jsxs(_Fragment, { children: [_jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: `step ${agent.items.length}${nowText(agent.items) ? ` · ${nowText(agent.items)}` : ""}`.slice(0, Math.max(12, columns - 16)) }) }), agent.startedAt !== undefined ? _jsx(Elapsed, { since: agent.startedAt }) : null] })) : (_jsxs(_Fragment, { children: [_jsx(Box, { flexShrink: 0, children: _jsx(Text, { color: colourOf(tone), bold: tone === "bad", children: `${markOf(tone)} ${agent.headline ?? agent.summary ?? "Finished"}` }) }), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: ` · ${steps} step${steps === 1 ? "" : "s"}${took ? ` · ${took}` : ""}` }) })] })), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: !hot, bold: hot, children: arrow }) })] }), agent.open ? (_jsx(Box, { flexDirection: "column", width: columns, children: band.map((r, j) => (_jsxs(Box, { flexDirection: "row", width: columns, children: [_jsx(Text, { children: " " }), _jsxs(Text, { backgroundColor: USER_BG, color: USER_FG, children: [" ", _jsx(Text, { dimColor: true, children: r.label.padEnd(8) }), _jsx(Text, { color: colourOf(r.tone), children: r.text }), " ".repeat(r.pad), " "] })] }, j))) })) : null] }));
81
53
  }
82
- /** Flatten and clip a task to one short line for a header. */
83
- function clip(s, max) {
84
- const flat = s.replace(/\s+/g, " ").trim();
85
- if (max <= 1)
86
- return "";
87
- return flat.length <= max ? flat : flat.slice(0, max - 1) + "…";
54
+ /** The width its task and the rest are wrapped to inside the band. */
55
+ function bandWidth(columns) {
56
+ return Math.max(8, columns - 14);
88
57
  }
89
58
  //# sourceMappingURL=SubagentView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubagentView.js","sourceRoot":"","sources":["../../../src/cli/components/SubagentView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubagentView.js","sourceRoot":"","sources":["../../../src/cli/components/SubagentView.tsx"],"names":[],"mappings":"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"}
package/dist/cli/help.js CHANGED
@@ -63,7 +63,9 @@ export function formatHelp(sections) {
63
63
  " Their raw tool loops and output never enter the main conversation, so a large\n" +
64
64
  " search costs you a summary instead of a hundred results. They return finished\n" +
65
65
  " work (a patch, an answer), compact their own context independently, and cannot\n" +
66
- " change files unless the job they were given is a job that changes files.",
66
+ " change files unless the job they were given is a job that changes files.\n" +
67
+ " On screen a sub-agent is a short title and how it ended (✓ done, ✗ failed, ! only\n" +
68
+ " partly), with its steps and time. Click it to see its task, what it did and the result.",
67
69
  ].join("\n\n");
68
70
  }
69
71
  //# sourceMappingURL=help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,wEAAwE;AACxE,SAAS,MAAM,CAAC,QAAgC;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgC;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,MAAM;QACT,8EAA8E;QAC9E,oEAAoE;QACpE,QAAQ;YACN,8EAA8E;YAC9E,2CAA2C;YAC3C,qEAAqE;YACrE,yEAAyE;YACzE,6EAA6E;YAC7E,+EAA+E;YAC/E,2EAA2E;YAC3E,2EAA2E;YAC3E,mFAAmF;YACnF,sFAAsF;YACtF,0FAA0F;QAC5F,0FAA0F;QAC1F,sFAAsF;QACtF,6BAA6B;YAC3B,2EAA2E;YAC3E,gDAAgD;YAChD,0FAA0F;YAC1F,0FAA0F;YAC1F,sFAAsF;YACtF,sFAAsF;YACtF,iGAAiG;QACnG,8EAA8E;QAC9E,gFAAgF;QAChF,iFAAiF;QACjF,qEAAqE;QACrE,oBAAoB;YAClB,+EAA+E;YAC/E,oFAAoF;YACpF,mFAAmF;YACnF,mFAAmF;YACnF,oFAAoF;YACpF,4EAA4E;KAC/E,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,wEAAwE;AACxE,SAAS,MAAM,CAAC,QAAgC;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgC;IACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3D,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,MAAM;QACT,8EAA8E;QAC9E,oEAAoE;QACpE,QAAQ;YACN,8EAA8E;YAC9E,2CAA2C;YAC3C,qEAAqE;YACrE,yEAAyE;YACzE,6EAA6E;YAC7E,+EAA+E;YAC/E,2EAA2E;YAC3E,2EAA2E;YAC3E,mFAAmF;YACnF,sFAAsF;YACtF,0FAA0F;QAC5F,0FAA0F;QAC1F,sFAAsF;QACtF,6BAA6B;YAC3B,2EAA2E;YAC3E,gDAAgD;YAChD,0FAA0F;YAC1F,0FAA0F;YAC1F,sFAAsF;YACtF,sFAAsF;YACtF,iGAAiG;QACnG,8EAA8E;QAC9E,gFAAgF;QAChF,iFAAiF;QACjF,qEAAqE;QACrE,oBAAoB;YAClB,+EAA+E;YAC/E,oFAAoF;YACpF,mFAAmF;YACnF,mFAAmF;YACnF,oFAAoF;YACpF,8EAA8E;YAC9E,uFAAuF;YACvF,2FAA2F;KAC9F,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC"}
@@ -46,7 +46,7 @@ export function lastExpandable(s) {
46
46
  for (const list of [s.tail, s.committed]) {
47
47
  for (let i = list.length - 1; i >= 0; i--) {
48
48
  const b = list[i];
49
- if ((b.kind === "tool" && b.full) || b.kind === "work")
49
+ if ((b.kind === "tool" && b.full) || b.kind === "work" || b.kind === "subagent")
50
50
  return b.id;
51
51
  }
52
52
  }
@@ -348,13 +348,17 @@ export function reduce(s, a) {
348
348
  ? { ...b, expanded: !b.expanded }
349
349
  : b.kind === "work" && b.id === a.id
350
350
  ? { ...b, open: !b.open }
351
- : b;
351
+ : b.kind === "subagent" && b.id === a.id
352
+ ? { ...b, agents: b.agents.map((ag) => ({ ...ag, open: !b.agents.some((x) => x.open) })) }
353
+ : b;
352
354
  return { ...s, committed: s.committed.map(flip), tail: s.tail.map(flip) };
353
355
  }
354
356
  case "toggleItem": {
355
357
  const flip = (b) => b.kind === "work" && b.id === a.id && b.items[a.index]
356
358
  ? { ...b, items: b.items.map((it, i) => (i === a.index ? { ...it, open: !it.open } : it)) }
357
- : b;
359
+ : b.kind === "subagent" && b.id === a.id && b.agents[a.index]
360
+ ? { ...b, agents: b.agents.map((ag, i) => (i === a.index ? { ...ag, open: !ag.open } : ag)) }
361
+ : b;
358
362
  return { ...s, committed: s.committed.map(flip), tail: s.tail.map(flip) };
359
363
  }
360
364
  case "endTurn": {
@@ -412,6 +416,8 @@ export function reduce(s, a) {
412
416
  readOnly: a.readOnly,
413
417
  status: "running",
414
418
  items: [],
419
+ startedAt: Date.now(),
420
+ ...(a.full ? { full: a.full } : {}),
415
421
  };
416
422
  // A worker starting while another is still going JOINS that block rather than
417
423
  // opening its own. Read-only workers fan out in parallel, and as separate blocks
@@ -448,6 +454,10 @@ export function reduce(s, a) {
448
454
  ...ag,
449
455
  status: a.ok ? "ok" : "error",
450
456
  summary: a.summary,
457
+ endedAt: Date.now(),
458
+ ...(a.headline ? { headline: a.headline } : {}),
459
+ ...(a.verdict ? { verdict: a.verdict } : {}),
460
+ ...(a.steps !== undefined ? { steps: a.steps } : {}),
451
461
  }));
452
462
  const blk = findAgentBlock(next, a.agentId);
453
463
  if (!blk)