mindweave 2.3.1 → 2.4.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 +26 -43
- package/dist/alternator/chassis/lsp.js +67 -0
- package/dist/alternator/chassis/lsp.js.map +1 -1
- package/dist/cli/App.js +1175 -99
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/altScreen.js +80 -10
- package/dist/cli/altScreen.js.map +1 -1
- package/dist/cli/appIdentity.js +54 -0
- package/dist/cli/appIdentity.js.map +1 -0
- package/dist/cli/attachments.js +27 -3
- package/dist/cli/attachments.js.map +1 -1
- package/dist/cli/blockHeights.js +58 -0
- package/dist/cli/blockHeights.js.map +1 -0
- package/dist/cli/caretPark.js +94 -0
- package/dist/cli/caretPark.js.map +1 -0
- package/dist/cli/clipboard.js +68 -0
- package/dist/cli/clipboard.js.map +1 -0
- package/dist/cli/commandLabel.js +19 -2
- package/dist/cli/commandLabel.js.map +1 -1
- package/dist/cli/commands.js +1 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/components/BlockView.js +1 -1
- package/dist/cli/components/BlockView.js.map +1 -1
- package/dist/cli/components/KeyManager.js +11 -5
- package/dist/cli/components/KeyManager.js.map +1 -1
- package/dist/cli/components/Picker.js +18 -3
- package/dist/cli/components/Picker.js.map +1 -1
- package/dist/cli/components/PromptInput.js +300 -74
- package/dist/cli/components/PromptInput.js.map +1 -1
- package/dist/cli/components/TipLine.js +33 -0
- package/dist/cli/components/TipLine.js.map +1 -0
- package/dist/cli/components/ToolLine.js +30 -3
- package/dist/cli/components/ToolLine.js.map +1 -1
- package/dist/cli/dropHandles.js +76 -0
- package/dist/cli/dropHandles.js.map +1 -0
- package/dist/cli/exitCursor.js +56 -0
- package/dist/cli/exitCursor.js.map +1 -0
- package/dist/cli/framebuffer/overlay.js +42 -0
- package/dist/cli/framebuffer/overlay.js.map +1 -0
- package/dist/cli/framebuffer/paint.js +8 -1
- package/dist/cli/framebuffer/paint.js.map +1 -1
- package/dist/cli/framebuffer/parse.js +54 -4
- package/dist/cli/framebuffer/parse.js.map +1 -1
- package/dist/cli/framebuffer/writer.js +357 -6
- package/dist/cli/framebuffer/writer.js.map +1 -1
- package/dist/cli/groupReveal.js +29 -3
- package/dist/cli/groupReveal.js.map +1 -1
- package/dist/cli/inputView.js +45 -0
- package/dist/cli/inputView.js.map +1 -1
- package/dist/cli/livePad.js +53 -0
- package/dist/cli/livePad.js.map +1 -0
- package/dist/cli/memoryTuning.js +31 -0
- package/dist/cli/memoryTuning.js.map +1 -0
- package/dist/cli/messageQueue.js +76 -7
- package/dist/cli/messageQueue.js.map +1 -1
- package/dist/cli/mouse.js +40 -7
- package/dist/cli/mouse.js.map +1 -1
- package/dist/cli/quietConsole.js +50 -0
- package/dist/cli/quietConsole.js.map +1 -0
- package/dist/cli/screenMode.js +118 -0
- package/dist/cli/screenMode.js.map +1 -0
- package/dist/cli/screenShell.js +67 -0
- package/dist/cli/screenShell.js.map +1 -0
- package/dist/cli/screenStore.js +46 -0
- package/dist/cli/screenStore.js.map +1 -0
- package/dist/cli/scrollPill.js +101 -0
- package/dist/cli/scrollPill.js.map +1 -0
- package/dist/cli/selection.js +130 -0
- package/dist/cli/selection.js.map +1 -0
- package/dist/cli/startupFill.js +48 -0
- package/dist/cli/startupFill.js.map +1 -0
- package/dist/cli/terminalRestore.js +1 -1
- package/dist/cli/terminalRestore.js.map +1 -1
- package/dist/cli/toolDisplay.js +11 -2
- package/dist/cli/toolDisplay.js.map +1 -1
- package/dist/cli/toolItems.js +1 -0
- package/dist/cli/toolItems.js.map +1 -1
- package/dist/cli/transcript.js +54 -3
- package/dist/cli/transcript.js.map +1 -1
- package/dist/cli/wordEdit.js +95 -0
- package/dist/cli/wordEdit.js.map +1 -0
- package/dist/drivers/openai/manifest.js +4 -1
- package/dist/drivers/openai/manifest.js.map +1 -1
- package/dist/dynamo/engine.js +126 -20
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/index.js +42 -3
- package/dist/index.js.map +1 -1
- package/dist/memory/pastedText.js +37 -0
- package/dist/memory/pastedText.js.map +1 -0
- package/dist/memory/presence.js +47 -0
- package/dist/memory/presence.js.map +1 -1
- package/dist/memory/session.js +78 -4
- package/dist/memory/session.js.map +1 -1
- package/dist/memory/store.js +22 -1
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/tools/backgroundShells.js +105 -18
- package/dist/tools/backgroundShells.js.map +1 -1
- package/dist/tools/commandOutput.js +207 -0
- package/dist/tools/commandOutput.js.map +1 -0
- package/dist/tools/detail.js +2 -2
- package/dist/tools/detail.js.map +1 -1
- package/dist/tools/openDefault.js +150 -0
- package/dist/tools/openDefault.js.map +1 -0
- package/dist/tools/outputShape.js +31 -6
- package/dist/tools/outputShape.js.map +1 -1
- package/dist/tools/pathList.js +32 -0
- package/dist/tools/pathList.js.map +1 -0
- package/dist/tools/readFile.js +3 -15
- package/dist/tools/readFile.js.map +1 -1
- package/dist/tools/registry.js +3 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/runCommand.js +154 -58
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/screenshot.js +35 -3
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/viewImage.js +88 -0
- package/dist/tools/viewImage.js.map +1 -0
- package/dist/tools/writeFile.js +9 -1
- package/dist/tools/writeFile.js.map +1 -1
- package/package.json +74 -74
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scrollPill.ts — the chip that says you are not at the bottom.
|
|
3
|
+
*
|
|
4
|
+
* Scrolling back in the full-screen shell used to leave no trace of itself. The
|
|
5
|
+
* transcript moved and nothing else did: no marker, no way back other than scrolling
|
|
6
|
+
* the whole distance again by hand. That is fine for one screen and quietly awful for
|
|
7
|
+
* fifty, and it is worst during a turn — the reply lands below the fold, the screen
|
|
8
|
+
* stays exactly as it was, and the app looks like it has stopped.
|
|
9
|
+
*
|
|
10
|
+
* So a chip rides the last row of the viewport whenever the view is scrolled back. It
|
|
11
|
+
* says one of two things:
|
|
12
|
+
*
|
|
13
|
+
* - **Jump to bottom** — you are reading history and nothing new has arrived.
|
|
14
|
+
* - **N new replies** — the model has answered since you scrolled away.
|
|
15
|
+
*
|
|
16
|
+
* Both name the key, because a chip that reports a state without offering the way out
|
|
17
|
+
* of it is only half an answer.
|
|
18
|
+
*
|
|
19
|
+
* ## Why this is a module and not four lines in the view
|
|
20
|
+
*
|
|
21
|
+
* Every clause below is a rule with a reason, and each one is a thing that can be got
|
|
22
|
+
* wrong invisibly: showing the chip over a transcript that does not actually scroll,
|
|
23
|
+
* advertising a key that is currently inert, or painting a 27-column chip into a
|
|
24
|
+
* 20-column terminal. Pure input, pure output, so all of that is tested rather than
|
|
25
|
+
* eyeballed on one terminal at one width.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* The chip, ready to paint, or null for "show nothing".
|
|
29
|
+
*
|
|
30
|
+
* The returned string INCLUDES the single space at each end. The padding is what makes
|
|
31
|
+
* it read as a chip rather than as a word dropped into the transcript, so it belongs
|
|
32
|
+
* with the text it pads — and returning the exact painted string means the width
|
|
33
|
+
* guard below is measuring the thing that actually lands on the row.
|
|
34
|
+
*/
|
|
35
|
+
export function scrollPill(input) {
|
|
36
|
+
if (input.scrolled <= 0 || input.overlayOpen)
|
|
37
|
+
return null;
|
|
38
|
+
const label = input.newReplies > 0
|
|
39
|
+
? `${input.newReplies} new ${input.newReplies === 1 ? "reply" : "replies"}`
|
|
40
|
+
: "Jump to bottom";
|
|
41
|
+
// The chord first, since it is the more useful half on a wide terminal.
|
|
42
|
+
const full = ` ${label} (ctrl+End) ↓ `;
|
|
43
|
+
if (full.length + 2 <= input.width)
|
|
44
|
+
return full;
|
|
45
|
+
// Narrow: the state is still worth saying even when the chord no longer fits. The
|
|
46
|
+
// arrow stays — it is what makes the chip legible as "there is more below".
|
|
47
|
+
const bare = ` ${label} ↓ `;
|
|
48
|
+
if (bare.length + 2 <= input.width)
|
|
49
|
+
return bare;
|
|
50
|
+
// Narrower than the shortest honest form. A chip clipped mid-word is worse than none:
|
|
51
|
+
// it reads as corruption, which is a bug report about the wrong thing.
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Replies that arrived after `mark` (pure).
|
|
56
|
+
*
|
|
57
|
+
* Counts REPLIES, not blocks. A turn that reads six files and edits two appends nine
|
|
58
|
+
* blocks, and "9 new" for one answer is a number that means nothing to the person
|
|
59
|
+
* reading it — they are waiting for the reply, and the tool rows are how it got there.
|
|
60
|
+
*
|
|
61
|
+
* Walks from the newest and stops at the mark. Block ids are handed out in order, so
|
|
62
|
+
* that break is exact, and the scan costs what has happened since you scrolled away
|
|
63
|
+
* rather than what has happened all session.
|
|
64
|
+
*/
|
|
65
|
+
export function countNewReplies(blocks, mark) {
|
|
66
|
+
if (mark === null)
|
|
67
|
+
return 0;
|
|
68
|
+
let n = 0;
|
|
69
|
+
for (let i = blocks.length - 1; i >= 0; i--) {
|
|
70
|
+
const block = blocks[i];
|
|
71
|
+
if (block.id <= mark)
|
|
72
|
+
break;
|
|
73
|
+
if (block.kind === "assistant")
|
|
74
|
+
n++;
|
|
75
|
+
}
|
|
76
|
+
return n;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The cells the chip occupies (pure).
|
|
80
|
+
*
|
|
81
|
+
* Ink centres it with `justifyContent`, which floors: a chip of `n` columns in a `width`
|
|
82
|
+
* terminal starts at `floor((width - n) / 2)`. Computed rather than measured because the
|
|
83
|
+
* chip has no children to measure and the arithmetic is the layout's own — and because a
|
|
84
|
+
* click has to be answered from a pointer handler that runs between frames, where a
|
|
85
|
+
* measurement would be a frame out of date.
|
|
86
|
+
*/
|
|
87
|
+
export function pillBounds(pill, width, row) {
|
|
88
|
+
const left = Math.max(0, Math.floor((width - pill.length) / 2));
|
|
89
|
+
return { row, left, right: left + pill.length - 1 };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Whether a pointer landed on the chip (pure).
|
|
93
|
+
*
|
|
94
|
+
* The whole chip, including the padding space at each end — that space is what makes it
|
|
95
|
+
* read as a button, so it is part of the button. Exactly one row: the chip is one row
|
|
96
|
+
* tall, and accepting the rows around it would swallow clicks meant for the transcript.
|
|
97
|
+
*/
|
|
98
|
+
export function hitsPill(bounds, x, y) {
|
|
99
|
+
return y === bounds.row && x >= bounds.left && x <= bounds.right;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=scrollPill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollPill.js","sourceRoot":"","sources":["../../src/cli/scrollPill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA2BH;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,KAAK,GACT,KAAK,CAAC,UAAU,GAAG,CAAC;QAClB,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,QAAQ,KAAK,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE;QAC3E,CAAC,CAAC,gBAAgB,CAAC;IAEvB,wEAAwE;IACxE,MAAM,IAAI,GAAG,IAAI,KAAK,gBAAgB,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAChD,kFAAkF;IAClF,4EAA4E;IAC5E,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC;IAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAChD,sFAAsF;IACtF,uEAAuE;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+C,EAAE,IAAmB;IAClG,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI;YAAE,MAAM;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAkB,EAAE,CAAS,EAAE,CAAS;IAC/D,OAAO,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* selection.ts — dragging to select text, and what gets copied.
|
|
3
|
+
*
|
|
4
|
+
* The terminal normally does this for you, and while an app has mouse reporting on it
|
|
5
|
+
* cannot: once the app asks for mouse events the terminal hands them over and stops
|
|
6
|
+
* drawing selections of its own, which is why selecting used to need Shift held down.
|
|
7
|
+
* Wheel scrolling in the alternate screen needs that same reporting, so the two cannot
|
|
8
|
+
* both be the terminal's job. This is the other way round the problem: keep the mouse,
|
|
9
|
+
* and do the selecting here.
|
|
10
|
+
*
|
|
11
|
+
* It works on the FRAMEBUFFER GRID rather than on any React tree, which is the whole
|
|
12
|
+
* reason it is safe. A mouse report carries a terminal row and column; the grid is the
|
|
13
|
+
* terminal, one entry per cell. So a click maps onto a cell with no arithmetic about
|
|
14
|
+
* where anything was laid out, and highlighting is a bit flipped on cells after the
|
|
15
|
+
* frame is built, which cannot move, wrap, or resize a single thing on screen.
|
|
16
|
+
*
|
|
17
|
+
* Selection is by TEXT FLOW, not by rectangle: dragging across three lines takes the end
|
|
18
|
+
* of the first, all of the second, and the start of the third, the way selecting in a
|
|
19
|
+
* document does.
|
|
20
|
+
*/
|
|
21
|
+
import { ATTR, DEFAULT_COLOR, WIDE_CONTINUATION } from "./framebuffer/screen.js";
|
|
22
|
+
/** True when the drag never left the cell it started in, so nothing is selected. */
|
|
23
|
+
export function isEmpty(sel) {
|
|
24
|
+
return sel.anchor.x === sel.focus.x && sel.anchor.y === sel.focus.y;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* What Ctrl+C should do given the current selection (pure).
|
|
28
|
+
*
|
|
29
|
+
* The app owns the mouse in the full-screen shell, so text is selected by dragging and
|
|
30
|
+
* Ctrl+C is the reflex to copy it. Quitting on that reflex — right after someone
|
|
31
|
+
* highlighted something to keep — loses the selection and the session at once. So a
|
|
32
|
+
* live selection turns Ctrl+C into a copy that also dismisses the highlight; with
|
|
33
|
+
* nothing selected it quits, so a second press once the highlight is gone still leaves.
|
|
34
|
+
*/
|
|
35
|
+
export function ctrlCShouldCopy(sel) {
|
|
36
|
+
return sel !== null && !isEmpty(sel);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The two ends in reading order, so the rest of the file never has to care which way the
|
|
40
|
+
* user dragged. Selecting upwards and selecting downwards are the same selection.
|
|
41
|
+
*/
|
|
42
|
+
export function normalize(sel) {
|
|
43
|
+
const { anchor, focus } = sel;
|
|
44
|
+
const anchorFirst = anchor.y < focus.y || (anchor.y === focus.y && anchor.x <= focus.x);
|
|
45
|
+
return anchorFirst ? { start: anchor, end: focus } : { start: focus, end: anchor };
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The columns covered on row `y`, as a half-open range, or null when the row is outside
|
|
49
|
+
* the selection. A middle row is covered end to end; the first and last are cut by where
|
|
50
|
+
* the drag began and ended.
|
|
51
|
+
*/
|
|
52
|
+
export function rowSpan(sel, y, width) {
|
|
53
|
+
const { start, end } = normalize(sel);
|
|
54
|
+
if (y < start.y || y > end.y)
|
|
55
|
+
return null;
|
|
56
|
+
const from = y === start.y ? start.x : 0;
|
|
57
|
+
// The focus cell is where the pointer is, and the character under the pointer is part
|
|
58
|
+
// of what you are selecting, so the range includes it.
|
|
59
|
+
const to = y === end.y ? end.x + 1 : width;
|
|
60
|
+
return { from: Math.max(0, Math.min(from, width)), to: Math.max(0, Math.min(to, width)) };
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Mark the selected cells inverse, in place.
|
|
64
|
+
*
|
|
65
|
+
* Called on the frame AFTER it is built and before it is diffed against the screen, so
|
|
66
|
+
* the highlight costs one attribute bit per cell and nothing else: no layout, no reflow,
|
|
67
|
+
* and no second render. Clearing a selection needs no undo for the same reason — the
|
|
68
|
+
* next frame is built without the bit and the diff repaints those cells on its own.
|
|
69
|
+
*/
|
|
70
|
+
export function applySelection(screen, sel) {
|
|
71
|
+
if (!sel || isEmpty(sel))
|
|
72
|
+
return;
|
|
73
|
+
for (let y = 0; y < screen.height; y++) {
|
|
74
|
+
const span = rowSpan(sel, y, screen.width);
|
|
75
|
+
if (!span)
|
|
76
|
+
continue;
|
|
77
|
+
for (let x = span.from; x < span.to; x++) {
|
|
78
|
+
const i = screen.index(x, y);
|
|
79
|
+
// NORMALISE the colour first, then invert. Inverting alone swaps each cell's own
|
|
80
|
+
// colours in, so a red error line becomes a red block and a cyan hint a cyan one —
|
|
81
|
+
// the highlight takes on whatever the text under it happened to be, and one
|
|
82
|
+
// selection reads as a patchwork. Resetting foreground and background to the
|
|
83
|
+
// terminal's defaults BEFORE inverting makes every selected cell the same: the
|
|
84
|
+
// default fg on the default bg, inverted, whatever colour the text was. The result
|
|
85
|
+
// is one flat block that stays readable in a light theme or a dark one, because it
|
|
86
|
+
// is the terminal's own inverse rather than a colour we picked. Only the tinted
|
|
87
|
+
// copy is touched; the clean frame keeps the real colours for when the highlight
|
|
88
|
+
// moves or clears (see the framebuffer's `clean`).
|
|
89
|
+
//
|
|
90
|
+
// NOT dim, for the reason it always was: on an inverted cell `dim` applies to the
|
|
91
|
+
// block behind the text, washing it grey while the blanks beside it stay solid.
|
|
92
|
+
screen.fg[i] = DEFAULT_COLOR;
|
|
93
|
+
screen.bg[i] = DEFAULT_COLOR;
|
|
94
|
+
screen.attrs[i] = (screen.attrs[i] | ATTR.inverse) & ~ATTR.dim;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* The text a selection covers, as it would be pasted.
|
|
100
|
+
*
|
|
101
|
+
* Trailing blanks are cut from every row, because a terminal row is padded out to the
|
|
102
|
+
* full width and copying that padding would paste a wall of spaces. A row that holds
|
|
103
|
+
* nothing but padding becomes an empty line, which is what keeps the blank line between
|
|
104
|
+
* two paragraphs.
|
|
105
|
+
*/
|
|
106
|
+
export function selectionText(screen, sel) {
|
|
107
|
+
if (!sel || isEmpty(sel))
|
|
108
|
+
return "";
|
|
109
|
+
const lines = [];
|
|
110
|
+
for (let y = 0; y < screen.height; y++) {
|
|
111
|
+
const span = rowSpan(sel, y, screen.width);
|
|
112
|
+
if (!span)
|
|
113
|
+
continue;
|
|
114
|
+
let line = "";
|
|
115
|
+
for (let x = span.from; x < span.to; x++) {
|
|
116
|
+
const ch = screen.chars[screen.index(x, y)];
|
|
117
|
+
// The right half of a wide character carries no codepoint of its own; the left
|
|
118
|
+
// half already contributed the whole character. The other out-of-range value is
|
|
119
|
+
// the renderer's "unknown cell" sentinel, which a grid mid-repaint can hold and
|
|
120
|
+
// which is not a character either. Neither may reach String.fromCodePoint, which
|
|
121
|
+
// throws on them rather than returning something harmless.
|
|
122
|
+
if (ch === WIDE_CONTINUATION || ch > 0x10ffff)
|
|
123
|
+
continue;
|
|
124
|
+
line += String.fromCodePoint(ch);
|
|
125
|
+
}
|
|
126
|
+
lines.push(line.replace(/\s+$/, ""));
|
|
127
|
+
}
|
|
128
|
+
return lines.join("\n");
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../src/cli/selection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAU,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAczF,oFAAoF;AACpF,MAAM,UAAU,OAAO,CAAC,GAAc;IACpC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAqB;IACnD,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAc;IACtC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IACxF,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACrF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,GAAc,EAAE,CAAS,EAAE,KAAa;IAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,sFAAsF;IACtF,uDAAuD;IACvD,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,GAAqB;IAClE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,iFAAiF;YACjF,mFAAmF;YACnF,4EAA4E;YAC5E,6EAA6E;YAC7E,+EAA+E;YAC/E,mFAAmF;YACnF,mFAAmF;YACnF,gFAAgF;YAChF,iFAAiF;YACjF,mDAAmD;YACnD,EAAE;YACF,kFAAkF;YAClF,gFAAgF;YAChF,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;YAC7B,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;YAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,GAAqB;IACjE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;YAC7C,+EAA+E;YAC/E,gFAAgF;YAChF,gFAAgF;YAChF,iFAAiF;YACjF,2DAA2D;YAC3D,IAAI,EAAE,KAAK,iBAAiB,IAAI,EAAE,GAAG,QAAQ;gBAAE,SAAS;YACxD,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* startupFill.ts — how many blank rows the inline shell prints above its first screen.
|
|
3
|
+
*
|
|
4
|
+
* The inline shell prints into the terminal's own scrollback, top to bottom, and the
|
|
5
|
+
* prompt is simply the last thing printed. On a fresh or short session that leaves the
|
|
6
|
+
* prompt floating part-way up the window with empty rows below it, because a terminal
|
|
7
|
+
* puts the cursor wherever printing ended and draws nothing under it. A run of blank rows
|
|
8
|
+
* printed ABOVE the conversation pushes the whole thing down so the footer lands at the
|
|
9
|
+
* bottom edge.
|
|
10
|
+
*
|
|
11
|
+
* Those blank rows go into `<Static>`, which prints each item exactly once — so the
|
|
12
|
+
* fill's height is fixed the moment it is first printed and cannot change for that mount.
|
|
13
|
+
* That is the trap this module exists to handle: the first render often runs before the
|
|
14
|
+
* real terminal height is known (the size hook re-reads a moment later), so a fill sized
|
|
15
|
+
* then is frozen too small, and the band of empty screen it was meant to remove stays at
|
|
16
|
+
* the bottom until something forces a reprint.
|
|
17
|
+
*
|
|
18
|
+
* The rule is therefore not "size it once" but "grow it whenever the terminal turns out
|
|
19
|
+
* taller than the fill assumed", remounting `<Static>` so the recent conversation is
|
|
20
|
+
* reprinted with the footer back at the edge. Growing only, never shrinking: once the
|
|
21
|
+
* conversation overflows the screen the footer sits at the bottom on its own, and
|
|
22
|
+
* shrinking the fill then would reprint on every small drag for a void that is not there.
|
|
23
|
+
*/
|
|
24
|
+
/** Rows the live region occupies at rest: the blank separator, the input box, the tip. */
|
|
25
|
+
export const INLINE_LIVE_RESERVE = 5;
|
|
26
|
+
/** The starting state, before anything has been sized. */
|
|
27
|
+
export const NO_FILL = { fill: 0, basis: 0 };
|
|
28
|
+
/**
|
|
29
|
+
* Decide the fill for this render (pure).
|
|
30
|
+
*
|
|
31
|
+
* Grows the fill when `rows` exceeds the height it was last sized for — the settle after
|
|
32
|
+
* a wrong first read, or a window dragged taller — and leaves it alone otherwise. A
|
|
33
|
+
* shorter terminal is deliberately ignored: the conversation already reaches the bottom
|
|
34
|
+
* there, so the fill is moot and reprinting would be churn.
|
|
35
|
+
*
|
|
36
|
+
* @param reserve rows to leave for the live region; defaults to `INLINE_LIVE_RESERVE`.
|
|
37
|
+
*/
|
|
38
|
+
export function growFill(prev, rows, reserve = INLINE_LIVE_RESERVE) {
|
|
39
|
+
if (rows <= prev.basis)
|
|
40
|
+
return { ...prev, remount: false };
|
|
41
|
+
return {
|
|
42
|
+
fill: Math.max(0, rows - reserve),
|
|
43
|
+
basis: rows,
|
|
44
|
+
// The first sizing (nothing printed yet) does not need a remount; a later grow does.
|
|
45
|
+
remount: prev.basis !== 0,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=startupFill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startupFill.js","sourceRoot":"","sources":["../../src/cli/startupFill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,0FAA0F;AAC1F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAUrC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,OAAO,GAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAYxD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAe,EAAE,IAAY,EAAE,OAAO,GAAG,mBAAmB;IACnF,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3D,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC;QACjC,KAAK,EAAE,IAAI;QACX,qFAAqF;QACrF,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* later, by hand.
|
|
16
16
|
*/
|
|
17
17
|
/** Wheel reporting off: the SGR encoding (1006) first, then reporting itself (1000). */
|
|
18
|
-
export const MOUSE_OFF = "\x1b[?1006l\x1b[?1000l";
|
|
18
|
+
export const MOUSE_OFF = "\x1b[?1006l\x1b[?1002l\x1b[?1000l";
|
|
19
19
|
/** Leave the alternate screen buffer, revealing the shell scrollback underneath. */
|
|
20
20
|
export const ALT_SCREEN_OFF = "\x1b[?1049l";
|
|
21
21
|
/** Show the cursor again. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminalRestore.js","sourceRoot":"","sources":["../../src/cli/terminalRestore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,wFAAwF;AACxF,MAAM,CAAC,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"terminalRestore.js","sourceRoot":"","sources":["../../src/cli/terminalRestore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,wFAAwF;AACxF,MAAM,CAAC,MAAM,SAAS,GAAG,mCAAmC,CAAC;AAE7D,oFAAoF;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAE5C,6BAA6B;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,GAAG,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC"}
|
package/dist/cli/toolDisplay.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* test)`. Pure, display-only (never sent to a model), and deterministic from the
|
|
7
7
|
* tool name + parsed args.
|
|
8
8
|
*/
|
|
9
|
+
import { toPathList } from "../tools/pathList.js";
|
|
9
10
|
/** Raw tool name → the bold display name shown in the row. */
|
|
10
11
|
const DISPLAY_NAME = {
|
|
11
12
|
read_file: "Read",
|
|
@@ -21,6 +22,7 @@ const DISPLAY_NAME = {
|
|
|
21
22
|
web_fetch: "Fetch",
|
|
22
23
|
web_search: "WebSearch",
|
|
23
24
|
screenshot: "WindowCapture",
|
|
25
|
+
view_image: "Viewed",
|
|
24
26
|
use_skill: "Skill",
|
|
25
27
|
create_skill: "Skill",
|
|
26
28
|
todo_write: "Todo",
|
|
@@ -103,6 +105,7 @@ const TOOL_KIND = {
|
|
|
103
105
|
web_search: "websearch",
|
|
104
106
|
web: "websearch",
|
|
105
107
|
screenshot: "screenshot",
|
|
108
|
+
view_image: "screenshot",
|
|
106
109
|
kill_shell: "run",
|
|
107
110
|
governor: "governor",
|
|
108
111
|
// The MCP family: finding an external server's tools, reading its data, adding one.
|
|
@@ -198,8 +201,14 @@ export function toolDisplay(name, args) {
|
|
|
198
201
|
//
|
|
199
202
|
// A multi-path read has no line range to show — ranges only apply to a single file, and
|
|
200
203
|
// the tool ignores them for a list — so the names are the whole story.
|
|
201
|
-
|
|
202
|
-
|
|
204
|
+
//
|
|
205
|
+
// Read through the SAME reader the tool uses, not a second one written to match it.
|
|
206
|
+
// The row is a statement about a call that has already been made, so any shape the
|
|
207
|
+
// tool accepts has to be a shape this can name — and it was not. A call that passed
|
|
208
|
+
// its four files under the older singular `path` was read in full and displayed as
|
|
209
|
+
// "Reading 1 file" with no filenames at all, the header contradicting its own result.
|
|
210
|
+
const many = toPathList(args);
|
|
211
|
+
const path = many.length === 1 ? (many[0] ?? "") : "";
|
|
203
212
|
const detail = many.length > 1
|
|
204
213
|
? many.map(base).join(", ")
|
|
205
214
|
: path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDisplay.js","sourceRoot":"","sources":["../../src/cli/toolDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"toolDisplay.js","sourceRoot":"","sources":["../../src/cli/toolDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,8DAA8D;AAC9D,MAAM,YAAY,GAA2B;IAC3C,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,MAAM;IACnB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,OAAO;IACnB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;IACf,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,OAAO;IAClB,YAAY,EAAE,OAAO;IACrB,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,UAAU;IAC1B,MAAM,EAAE,OAAO;IACf,kFAAkF;IAClF,2EAA2E;IAC3E,2EAA2E;IAC3E,gFAAgF;IAChF,mBAAmB,EAAE,QAAQ;IAC7B,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,OAAO;IACnB,cAAc,EAAE,KAAK;IACrB,YAAY,EAAE,KAAK;IACnB,qFAAqF;IACrF,sFAAsF;IACtF,oDAAoD;IACpD,UAAU,EAAE,OAAO;IACnB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,KAAK;IACf,GAAG,EAAE,KAAK;CACX,CAAC;AAEF;;;kFAGkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAE3C,2EAA2E;AAC3E,2EAA2E;AAC3E,mBAAmB;AACnB,EAAE;AACF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,gFAAgF;AAChF,gFAAgF;AAChF,6DAA6D;AAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,WAAW;IACX,aAAa;IACb,mFAAmF;IACnF,oFAAoF;IACpF,yFAAyF;IACzF,QAAQ;CACT,CAAC,CAAC;AACH,qFAAqF;AACrF,qFAAqF;AACrF,sFAAsF;AACtF,oFAAoF;AACpF,sFAAsF;AACtF,mFAAmF;AAEnF,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAuBD,MAAM,SAAS,GAA6B;IAC1C,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,mBAAmB,EAAE,MAAM;IAC3B,UAAU,EAAE,OAAO;IACnB,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,OAAO;IACvB,MAAM,EAAE,KAAK;IACb,6EAA6E;IAC7E,mEAAmE;IACnE,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,WAAW;IACvB,GAAG,EAAE,WAAW;IAChB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,UAAU;IACpB,oFAAoF;IACpF,2EAA2E;IAC3E,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,4DAA4D;CAC7D,CAAC;AAEF;;qFAEqF;AACrF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AACnC,CAAC;AAED;mFACmF;AACnF,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,IAAI,EAAE,SAAS,EAAE,+BAA+B;IAChD,MAAM,EAAE,SAAS,EAAE,0CAA0C;IAC7D,IAAI,EAAE,SAAS,EAAE,6BAA6B;IAC9C,KAAK,EAAE,SAAS,EAAE,wBAAwB;IAC1C,GAAG,EAAE,SAAS,EAAE,6BAA6B;IAC7C,KAAK,EAAE,SAAS,EAAE,iCAAiC;IACnD,KAAK,EAAE,SAAS,EAAE,qEAAqE;IACvF,SAAS,EAAE,SAAS,EAAE,2DAA2D;IACjF,UAAU,EAAE,SAAS,EAAE,6DAA6D;IACpF,GAAG,EAAE,SAAS,EAAE,wDAAwD;IACxE,UAAU,EAAE,SAAS,EAAE,yDAAyD;IAChF,QAAQ,EAAE,SAAS,EAAE,0DAA0D;IAC/E,IAAI,EAAE,SAAS,EAAE,gDAAgD;CAClE,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAqBrC,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAA6B;IACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE5B,gFAAgF;IAChF,+EAA+E;IAC/E,qDAAqD;IACrD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,+EAA+E;IAC/E,6DAA6D;IAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC;IAEtB,gFAAgF;IAChF,4EAA4E;IAC5E,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3G,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,kFAAkF;QAClF,4EAA4E;QAC5E,mFAAmF;QACnF,gFAAgF;QAChF,qBAAqB;QACrB,EAAE;QACF,+EAA+E;QAC/E,+EAA+E;QAC/E,iFAAiF;QACjF,wCAAwC;QACxC,EAAE;QACF,kFAAkF;QAClF,kFAAkF;QAClF,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,OAAO;YACL,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS;YACnC,IAAI;YACJ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;IACpG,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;IACvG,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9F,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;IAE1G,oFAAoF;IACpF,oFAAoF;IACpF,wFAAwF;IACxF,uFAAuF;IACvF,yBAAyB;IACzB,EAAE;IACF,wFAAwF;IACxF,uEAAuE;IACvE,EAAE;IACF,oFAAoF;IACpF,mFAAmF;IACnF,oFAAoF;IACpF,mFAAmF;IACnF,sFAAsF;IACtF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,GAAG,CAAC;QACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,IAAI;YACJ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,OAAO;QACL,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,MAAM,IAAI,SAAS;QACxB,IAAI;QACJ,4DAA4D;QAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,oFAAoF;AACpF,SAAS,IAAI,CAAC,CAAS;IACrB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,IAAI,CAAC,CAAS,EAAE,GAAW;IAClC,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AAClE,CAAC"}
|
package/dist/cli/toolItems.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolItems.js","sourceRoot":"","sources":["../../src/cli/toolItems.ts"],"names":[],"mappings":"AAgBA,kFAAkF;AAClF,6EAA6E;AAC7E,iFAAiF;AACjF,6EAA6E;AAC7E,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,qDAAqD;AACrD,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;kDACkD;AAClD,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa;IACpD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;;cAGc;AACd,MAAM,UAAU,SAAS,CAAC,EAAiB;IACzC,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;QAC7C,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,IAAI,EAAE,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AACnD,CAAC;AAWD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"toolItems.js","sourceRoot":"","sources":["../../src/cli/toolItems.ts"],"names":[],"mappings":"AAgBA,kFAAkF;AAClF,6EAA6E;AAC7E,iFAAiF;AACjF,6EAA6E;AAC7E,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,qDAAqD;AACrD,MAAM,CAAC,MAAM,WAAW,GAA2B;IACjD,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,WAAW;IACnB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;kDACkD;AAClD,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAAa;IACpD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;;cAGc;AACd,MAAM,UAAU,SAAS,CAAC,EAAiB;IACzC,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;QAC7C,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,IAAI,EAAE,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AACnD,CAAC;AAWD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAsB;IACrD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/cli/transcript.js
CHANGED
|
@@ -118,6 +118,30 @@ function sealAssistant(s, asReply) {
|
|
|
118
118
|
next = { ...next, narrated: true };
|
|
119
119
|
return drain(next);
|
|
120
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Close any wait that is still counting, because the model has just spoken or acted.
|
|
123
|
+
*
|
|
124
|
+
* The number belongs to the gap between handing something over and getting an answer,
|
|
125
|
+
* so it is stopped by the first sign of that answer — a token, or the next tool call —
|
|
126
|
+
* rather than at the end of the turn. Stopping at the turn would fold in every step the
|
|
127
|
+
* model took afterwards and report a wait that never happened.
|
|
128
|
+
*
|
|
129
|
+
* Idempotent: a row that already has its number is left exactly as it is.
|
|
130
|
+
*/
|
|
131
|
+
function settleWaits(s) {
|
|
132
|
+
const now = Date.now();
|
|
133
|
+
const settle = (b) => b.kind === "tool" && b.since !== undefined && b.waited === undefined
|
|
134
|
+
? { ...b, waited: Math.max(0, Math.round((now - b.since) / 1000)) }
|
|
135
|
+
: b;
|
|
136
|
+
// BOTH lists, the same as endTurn. A finished tool row drains into `committed` almost
|
|
137
|
+
// immediately, so by the time the model answers, the row holding the clock is no longer
|
|
138
|
+
// in the tail — and a version that only walked the tail left every wait unstamped.
|
|
139
|
+
const tail = s.tail.map(settle);
|
|
140
|
+
const committed = s.committed.map(settle);
|
|
141
|
+
const changed = tail.some((b, i) => b !== s.tail[i]) ||
|
|
142
|
+
committed.some((b, i) => b !== s.committed[i]);
|
|
143
|
+
return changed ? { ...s, tail, committed } : s;
|
|
144
|
+
}
|
|
121
145
|
export function reduce(s, a) {
|
|
122
146
|
switch (a.type) {
|
|
123
147
|
case "clear":
|
|
@@ -129,11 +153,21 @@ export function reduce(s, a) {
|
|
|
129
153
|
// outlive the conversation it belonged to.
|
|
130
154
|
return { ...initialState(), seq: s.seq };
|
|
131
155
|
case "user": {
|
|
132
|
-
|
|
133
|
-
// A
|
|
134
|
-
|
|
156
|
+
// The open tool group is closed FIRST, like every other block that can arrive
|
|
157
|
+
// mid-turn. A user message used to be able to arrive only between turns, when
|
|
158
|
+
// nothing was open; it can now be steered into a running one, and a group left
|
|
159
|
+
// open would keep collecting rows that happened AFTER this line while sitting
|
|
160
|
+
// above it. The group is a claim about what ran together, and that would make it
|
|
161
|
+
// a false one.
|
|
162
|
+
const c = closeToolGroup(s);
|
|
163
|
+
const id = c.seq + 1;
|
|
164
|
+
// The narration budget refills here and nowhere else — including for a message
|
|
165
|
+
// steered mid-turn, which is a new instruction and worth one line of answer.
|
|
166
|
+
return drain({ ...c, seq: id, narrated: false, tail: c.tail.concat({ kind: "user", id, done: true, text: a.text }) });
|
|
135
167
|
}
|
|
136
168
|
case "token": {
|
|
169
|
+
// The model answering IS the end of the wait, and this is the first sign of it.
|
|
170
|
+
s = settleWaits(s);
|
|
137
171
|
// Accumulate SILENTLY — the assistant block renders nothing until it seals,
|
|
138
172
|
// then the whole text appears at once. We still open the block so a later
|
|
139
173
|
// seal can find it. Narration after a discovery burst closes the group.
|
|
@@ -152,6 +186,8 @@ export function reduce(s, a) {
|
|
|
152
186
|
return { ...next, raw: next.raw + a.delta };
|
|
153
187
|
}
|
|
154
188
|
case "toolStart": {
|
|
189
|
+
// The next call is also the model having moved on: stop any wait still running.
|
|
190
|
+
s = settleWaits(s);
|
|
155
191
|
// Seal any narration before the tool (commit it) first.
|
|
156
192
|
const sealed = sealAssistant(s, false);
|
|
157
193
|
if (a.group) {
|
|
@@ -201,6 +237,19 @@ export function reduce(s, a) {
|
|
|
201
237
|
}),
|
|
202
238
|
});
|
|
203
239
|
}
|
|
240
|
+
case "toolProgress": {
|
|
241
|
+
const blockId = s.toolMap[a.toolId];
|
|
242
|
+
if (blockId == null)
|
|
243
|
+
return s;
|
|
244
|
+
const block = s.tail.find((b) => b.id === blockId);
|
|
245
|
+
// Only a standalone row, and only while it is still running. A grouped call folds
|
|
246
|
+
// into a one-line summary that has nowhere to put output, and a row that has already
|
|
247
|
+
// resolved must keep the result it settled on rather than being overwritten by a
|
|
248
|
+
// late tail from before it finished.
|
|
249
|
+
if (!block || block.kind !== "tool" || block.done)
|
|
250
|
+
return s;
|
|
251
|
+
return patchTail(s, blockId, { detail: a.text, detailKind: "shell" });
|
|
252
|
+
}
|
|
204
253
|
case "toolEnd": {
|
|
205
254
|
const blockId = s.toolMap[a.toolId];
|
|
206
255
|
if (blockId == null)
|
|
@@ -228,6 +277,7 @@ export function reduce(s, a) {
|
|
|
228
277
|
done: true,
|
|
229
278
|
...(a.action ? { action: a.action } : {}),
|
|
230
279
|
...(a.name ? { name: a.name } : {}),
|
|
280
|
+
...(a.awaitsModel ? { since: Date.now() } : {}),
|
|
231
281
|
}));
|
|
232
282
|
}
|
|
233
283
|
case "error": {
|
|
@@ -241,6 +291,7 @@ export function reduce(s, a) {
|
|
|
241
291
|
// rows are patched as well as tail ones — every block is re-rendered each
|
|
242
292
|
// frame (there is no <Static>), so a row that has already scrolled up still
|
|
243
293
|
// settles into the past tense with the rest of the turn.
|
|
294
|
+
s = settleWaits(s);
|
|
244
295
|
const clear = (b) => (b.kind === "tool" || b.kind === "tools") && b.live ? { ...b, live: false } : b;
|
|
245
296
|
return { ...s, committed: s.committed.map(clear), tail: s.tail.map(clear) };
|
|
246
297
|
}
|
|
@@ -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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"}
|