mindweave 2.2.0 → 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/alternator/chassis/lsp.js +47 -2
- package/dist/alternator/chassis/lsp.js.map +1 -1
- 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/drivers/meta/client.js +15 -4
- package/dist/drivers/meta/client.js.map +1 -1
- package/dist/drivers/meta/manifest.js +40 -13
- package/dist/drivers/meta/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/README.md
CHANGED
|
@@ -41,6 +41,8 @@ the agent maintains across sessions, and a long list of things that were quietly
|
|
|
41
41
|
Requires **Windows** and **Node.js 20+**. macOS and Linux are not supported yet, and the
|
|
42
42
|
reason is written down in [KNOWN-ISSUES.md](KNOWN-ISSUES.md) rather than glossed over.
|
|
43
43
|
|
|
44
|
+
Big features coming out soon!
|
|
45
|
+
|
|
44
46
|
```bash
|
|
45
47
|
npm install -g mindweave
|
|
46
48
|
```
|
|
@@ -69,7 +71,7 @@ else is configured inside a session.
|
|
|
69
71
|
|
|
70
72
|
## What it can do
|
|
71
73
|
|
|
72
|
-
**14 providers,
|
|
74
|
+
**14 providers, 53 models, one key.** DeepSeek, Anthropic, OpenAI, Gemini, xAI, Mistral,
|
|
73
75
|
Groq, Cerebras, Qwen, Kimi, GLM, Meta, MiniMax and Tencent. Each family gets its own driver so it
|
|
74
76
|
runs at its best without bloating the shared core, and only the driver you are using is
|
|
75
77
|
ever loaded. Switch with `/provider` and `/model`; the choice is remembered per project.
|
|
@@ -80,7 +82,8 @@ and language servers, costing no tokens, so the agent understands your codebase
|
|
|
80
82
|
than just the file you opened.
|
|
81
83
|
|
|
82
84
|
**Real tools.** File read and edit, multi-file edits, ripgrep search, a shell with
|
|
83
|
-
background jobs, sub-agents
|
|
85
|
+
background jobs, and sub-agents. Every edit comes back with the language server's own
|
|
86
|
+
errors for that file, so a mistake surfaces where it was made. Read-before-edit is enforced, and
|
|
84
87
|
`/undo` is a real net rather than a hope.
|
|
85
88
|
|
|
86
89
|
**Session memory.** Long sessions stay sharp through automatic compaction plus a running
|
|
@@ -118,6 +121,7 @@ paths or commands the agent has to respect.
|
|
|
118
121
|
| `/provider` · `/model` · `/think` | Who answers, which model, how hard it reasons |
|
|
119
122
|
| `/clear` · `/continue` | Start fresh, or resume an earlier session |
|
|
120
123
|
| `/undo` | Reverts what the last turn changed |
|
|
124
|
+
| `/update` | Installs the newest version and reopens on this conversation |
|
|
121
125
|
| `/mcp` | Manages connected MCP servers |
|
|
122
126
|
| `shift-tab` | Cycles interaction modes |
|
|
123
127
|
|
|
@@ -25,6 +25,17 @@ const SHUTDOWN_TIMEOUT = 2_000;
|
|
|
25
25
|
const MAX_OPEN_DOCS = 300;
|
|
26
26
|
/** Documents opened in a single `ensureProjectOpen` call, to bound its latency. */
|
|
27
27
|
const OPEN_BATCH = 50;
|
|
28
|
+
/**
|
|
29
|
+
* How long to keep asking a just-opened server for a symbol before believing its
|
|
30
|
+
* empty answer, in milliseconds between attempts.
|
|
31
|
+
*
|
|
32
|
+
* Backing off rather than polling evenly, because the common case is a server that is
|
|
33
|
+
* ready almost at once and the expensive case is one that is not. Six attempts, ~4.6s
|
|
34
|
+
* in total, paid once per server and only when nothing came back — a cold pyright on a
|
|
35
|
+
* loaded four-core machine takes seconds to index where a warm laptop takes
|
|
36
|
+
* milliseconds, which is why a fixed wait tuned on the laptop was never going to hold.
|
|
37
|
+
*/
|
|
38
|
+
const INDEX_RETRY_DELAYS = [100, 200, 400, 800, 1500, 1600];
|
|
28
39
|
export class LspManager {
|
|
29
40
|
root;
|
|
30
41
|
sessions = new Map();
|
|
@@ -57,9 +68,18 @@ export class LspManager {
|
|
|
57
68
|
continue;
|
|
58
69
|
// A server like tsserver won't index a project until a file in it is
|
|
59
70
|
// opened — open the project's files (bounded) before querying navto.
|
|
60
|
-
await this.ensureProjectOpen(session, spec);
|
|
71
|
+
const opened = await this.ensureProjectOpen(session, spec);
|
|
61
72
|
try {
|
|
62
|
-
|
|
73
|
+
// `textDocument/didOpen` is a NOTIFICATION: it returns the moment it is
|
|
74
|
+
// written, while the server is still building its index. A
|
|
75
|
+
// `workspace/symbol` sent immediately after is answered honestly and
|
|
76
|
+
// emptily, which reaches the caller as "no such symbol" rather than "not
|
|
77
|
+
// indexed yet" — a wrong answer, silently, and then a fall back to
|
|
78
|
+
// tree-sitter that nobody asked for. Retried while an empty result is
|
|
79
|
+
// still plausibly a cold index, and ONLY when this call actually opened
|
|
80
|
+
// documents: on a warm session an empty answer is the real one, and
|
|
81
|
+
// waiting for it again would tax every miss.
|
|
82
|
+
const res = await this.querySymbols(session, name, opened > 0);
|
|
63
83
|
for (const s of res ?? []) {
|
|
64
84
|
if (s.name !== name)
|
|
65
85
|
continue; // workspace/symbol is fuzzy; keep exact
|
|
@@ -342,9 +362,34 @@ export class LspManager {
|
|
|
342
362
|
}
|
|
343
363
|
/** Open the noted files this server handles, so the project is loaded/indexed.
|
|
344
364
|
* Bounded per call AND across the session — see `filesToOpen`. */
|
|
365
|
+
/** Opens what this query needs and reports HOW MANY it opened, which is what
|
|
366
|
+
* tells `symbols` whether an empty result might just be a cold index. */
|
|
345
367
|
async ensureProjectOpen(session, spec) {
|
|
368
|
+
let opened = 0;
|
|
346
369
|
for (const path of filesToOpen(this.files, session.opened, spec.key)) {
|
|
370
|
+
const before = session.opened.size;
|
|
347
371
|
await this.didOpen(session, path);
|
|
372
|
+
if (session.opened.size > before)
|
|
373
|
+
opened++;
|
|
374
|
+
}
|
|
375
|
+
return opened;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* `workspace/symbol`, retried while the index may still be filling.
|
|
379
|
+
*
|
|
380
|
+
* The delays back off and stop; the total is bounded and is paid at most once per
|
|
381
|
+
* server, on the first query after documents were opened. A server that has been
|
|
382
|
+
* asked and has nothing is answered on the first attempt — the retry exists for the
|
|
383
|
+
* server that has not finished reading yet, which is indistinguishable from it in
|
|
384
|
+
* the reply and distinguishable in time.
|
|
385
|
+
*/
|
|
386
|
+
async querySymbols(session, name, mayBeCold) {
|
|
387
|
+
const delays = mayBeCold ? INDEX_RETRY_DELAYS : [];
|
|
388
|
+
for (let attempt = 0;; attempt++) {
|
|
389
|
+
const res = (await this.request(session, "workspace/symbol", { query: name }));
|
|
390
|
+
if ((res?.length ?? 0) > 0 || attempt >= delays.length)
|
|
391
|
+
return res;
|
|
392
|
+
await new Promise((r) => setTimeout(r, delays[attempt]));
|
|
348
393
|
}
|
|
349
394
|
}
|
|
350
395
|
async didOpen(session, absPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp.js","sourceRoot":"","sources":["../../../src/alternator/chassis/lsp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lsp.js","sourceRoot":"","sources":["../../../src/alternator/chassis/lsp.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/App.js
CHANGED
|
@@ -58,6 +58,10 @@ import { Picker } from "./components/Picker.js";
|
|
|
58
58
|
import { ApprovalBox } from "./components/ApprovalBox.js";
|
|
59
59
|
import { BlockView } from "./components/BlockView.js";
|
|
60
60
|
import { initialState, reduce, trimNarration } from "./transcript.js";
|
|
61
|
+
import { isTight } from "./blockSpacing.js";
|
|
62
|
+
import { BASE_COMMANDS } from "./commands.js";
|
|
63
|
+
import { manualCommand, refusalReason } from "./selfUpdate.js";
|
|
64
|
+
import { currentInstall, requestRestart, runUpdate } from "./updateRunner.js";
|
|
61
65
|
import { enableMouse, readWheel } from "./mouse.js";
|
|
62
66
|
import { chatLayout, reflowScroll } from "./chatAnchor.js";
|
|
63
67
|
import { virtualWindow } from "./virtualWindow.js";
|
|
@@ -106,7 +110,7 @@ const RESUME_MODES = [
|
|
|
106
110
|
{ label: "Continue as-is", description: "resume the full conversation unchanged" },
|
|
107
111
|
{ label: "Fresh start", description: "leave it and start a new empty session here instead" },
|
|
108
112
|
];
|
|
109
|
-
export function App() {
|
|
113
|
+
export function App({ resumeSessionId }) {
|
|
110
114
|
// The transcript state machine lives in a ref and is advanced by the reducer as
|
|
111
115
|
// the stream arrives; `render` forces a paint. A ref (not useState) so the async
|
|
112
116
|
// streaming loop always reads/writes the latest state without stale closures.
|
|
@@ -321,8 +325,14 @@ export function App() {
|
|
|
321
325
|
// the SAME reducer actions the live stream uses — so a resumed chat shows the
|
|
322
326
|
// exact rows it did before: user/assistant prose, every `● Tool(arg)` with its
|
|
323
327
|
// `⎿` result/diff, the consolidated discovery groups, and a marker where context
|
|
324
|
-
// was summarized. The tool display fields (summary/detail/isError) were
|
|
325
|
-
// each tool entry at run time, so nothing about a row is lost across a resume.
|
|
328
|
+
// was summarized. The tool display fields (summary/detail/detailKind/isError) were
|
|
329
|
+
// stored on each tool entry at run time, so nothing about a row is lost across a resume.
|
|
330
|
+
//
|
|
331
|
+
// `detailKind` used to be missing from that list while this comment already claimed
|
|
332
|
+
// the rows came back identical. They did not: the diff text survived and the fact that
|
|
333
|
+
// it WAS a diff did not, so every resumed edit rendered as dim plain lines. Anything
|
|
334
|
+
// added to a row's appearance has to be stored here too, or the claim above quietly
|
|
335
|
+
// stops being true again.
|
|
326
336
|
function showResumed(transcript) {
|
|
327
337
|
for (const e of transcript) {
|
|
328
338
|
if (e.role === "user") {
|
|
@@ -346,8 +356,22 @@ export function App() {
|
|
|
346
356
|
dispatch({ type: "say", text: intermediate ? trimNarration(e.content) : e.content });
|
|
347
357
|
}
|
|
348
358
|
for (const call of e.toolCalls ?? []) {
|
|
359
|
+
// The spawn itself is drawn by its sub-agent block live, never as a raw row.
|
|
360
|
+
// Replaying it as one puts a `● SpawnSubagent(...)` in a resumed transcript
|
|
361
|
+
// that was not in the live one.
|
|
362
|
+
if (call.name === "spawn_subagent")
|
|
363
|
+
continue;
|
|
349
364
|
const d = toolDisplay(call.name, parseToolArgs(call.arguments));
|
|
350
|
-
dispatch({
|
|
365
|
+
dispatch({
|
|
366
|
+
type: "toolStart",
|
|
367
|
+
toolId: call.id,
|
|
368
|
+
name: d.name,
|
|
369
|
+
arg: d.arg,
|
|
370
|
+
...(d.meta ? { meta: d.meta } : {}),
|
|
371
|
+
action: d.kind,
|
|
372
|
+
group: isGroupable(call.name),
|
|
373
|
+
...(d.covers ? { covers: d.covers } : {}),
|
|
374
|
+
});
|
|
351
375
|
}
|
|
352
376
|
}
|
|
353
377
|
else {
|
|
@@ -358,6 +382,10 @@ export function App() {
|
|
|
358
382
|
ok: e.isError === undefined ? !e.content.startsWith("Error:") : !e.isError,
|
|
359
383
|
summary: e.summary,
|
|
360
384
|
detail: e.detail,
|
|
385
|
+
...(e.detailKind ? { detailKind: e.detailKind } : {}),
|
|
386
|
+
...(e.quiet ? { quiet: true } : {}),
|
|
387
|
+
...(e.displayName ? { name: e.displayName } : {}),
|
|
388
|
+
...(e.displayKind ? { action: e.displayKind } : {}),
|
|
361
389
|
});
|
|
362
390
|
}
|
|
363
391
|
}
|
|
@@ -407,6 +435,9 @@ export function App() {
|
|
|
407
435
|
}
|
|
408
436
|
function attachApproval(s) {
|
|
409
437
|
s.toolContext.requestApproval = (q, o, detail, title) => askApproval.current(q, o, detail, title);
|
|
438
|
+
// Same stop Esc performs. A tool reaches for this when the USER has said, by
|
|
439
|
+
// dismissing a question, that the work should not carry on without them.
|
|
440
|
+
s.toolContext.interrupt = () => abortRef.current?.abort();
|
|
410
441
|
s.toolContext.backgroundShells?.setOnChange(handleBgChange);
|
|
411
442
|
// Servers connect in the background and can die or revive at any time; without this
|
|
412
443
|
// the /mcp view would only ever show what was true when the last key was pressed.
|
|
@@ -480,10 +511,22 @@ export function App() {
|
|
|
480
511
|
// One session for the whole conversation (a ref so it survives re-renders).
|
|
481
512
|
const session = useRef(null);
|
|
482
513
|
useEffect(() => {
|
|
483
|
-
|
|
514
|
+
// A relaunch after `/update` opens on the conversation it left. A resume that does
|
|
515
|
+
// not work out — an id that names nothing, a session file that will not load —
|
|
516
|
+
// falls through to a normal start rather than refusing to open: the point of the
|
|
517
|
+
// whole mechanism is that an update costs you nothing, and failing to come up at
|
|
518
|
+
// all is the one outcome worse than losing the thread. `/continue` still reaches it.
|
|
519
|
+
const open = resumeSessionId
|
|
520
|
+
? resumeSession(process.cwd(), resumeSessionId).then((s) => s ?? createSession())
|
|
521
|
+
: createSession();
|
|
522
|
+
open.then((s) => {
|
|
484
523
|
attachApproval(s);
|
|
485
524
|
session.current = s;
|
|
486
525
|
setReady(true);
|
|
526
|
+
if (resumeSessionId && s.id === resumeSessionId) {
|
|
527
|
+
showResumed(s.transcript);
|
|
528
|
+
note(`— updated to v${appVersion()}, continuing —`);
|
|
529
|
+
}
|
|
487
530
|
// The project may have a model saved from a different provider than the
|
|
488
531
|
// default, so re-check against what we're actually about to run.
|
|
489
532
|
const cur = session.current;
|
|
@@ -513,7 +556,7 @@ export function App() {
|
|
|
513
556
|
void checkForUpdate().then((latest) => {
|
|
514
557
|
if (!latest)
|
|
515
558
|
return;
|
|
516
|
-
note(`update available: v${appVersion()} → v${latest} —
|
|
559
|
+
note(`update available: v${appVersion()} → v${latest} — /update to take it`);
|
|
517
560
|
});
|
|
518
561
|
}, []);
|
|
519
562
|
// When a background shell finishes and Mindweave is idle, react to it automatically.
|
|
@@ -1035,7 +1078,7 @@ export function App() {
|
|
|
1035
1078
|
enqueueReveal({ type: "subToolStart", agentId: e.agent, toolId: e.id, name: d.name, arg: d.arg, action: d.kind });
|
|
1036
1079
|
}
|
|
1037
1080
|
else {
|
|
1038
|
-
enqueueReveal({ type: "toolStart", toolId: e.id, name: d.name, arg: d.arg, meta: d.meta, action: d.kind, group: isGroupable(e.name) });
|
|
1081
|
+
enqueueReveal({ type: "toolStart", toolId: e.id, name: d.name, arg: d.arg, meta: d.meta, action: d.kind, group: isGroupable(e.name), ...(d.covers ? { covers: d.covers } : {}) });
|
|
1039
1082
|
}
|
|
1040
1083
|
}
|
|
1041
1084
|
else if (e.type === "tool" && e.phase === "end") {
|
|
@@ -1409,6 +1452,60 @@ export function App() {
|
|
|
1409
1452
|
]));
|
|
1410
1453
|
return;
|
|
1411
1454
|
}
|
|
1455
|
+
// /update — take the newer version and come back to this same conversation.
|
|
1456
|
+
//
|
|
1457
|
+
// The restart is the point. A process cannot replace its own code: driver modules
|
|
1458
|
+
// are imported lazily, so a copy that rewrote itself mid-session would be an old
|
|
1459
|
+
// process reading new files, which fails later and somewhere else. Ending and
|
|
1460
|
+
// reopening is what makes the new version actually the version running, and landing
|
|
1461
|
+
// back in this session is what makes that invisible.
|
|
1462
|
+
if (name === "/update") {
|
|
1463
|
+
if (busy) {
|
|
1464
|
+
note("Finish or stop the current turn first — restarting would strand it.", { error: true });
|
|
1465
|
+
return;
|
|
1466
|
+
}
|
|
1467
|
+
const install = currentInstall();
|
|
1468
|
+
if (install.kind !== "global") {
|
|
1469
|
+
// Never guessed at. Overwriting a working tree or another project's dependency
|
|
1470
|
+
// is the one thing this command must not do; see selfUpdate.ts.
|
|
1471
|
+
note(`${refusalReason(install)}\n\nTo do it by hand:\n ${manualCommand(install)}`, { error: true });
|
|
1472
|
+
return;
|
|
1473
|
+
}
|
|
1474
|
+
// Past the once-a-day cache deliberately: someone typing this is asking NOW, and
|
|
1475
|
+
// answering from a check made this morning would report "up to date" about a
|
|
1476
|
+
// release that has happened since.
|
|
1477
|
+
const latest = await checkForUpdate({ readCacheImpl: () => null });
|
|
1478
|
+
const current = appVersion();
|
|
1479
|
+
if (!latest) {
|
|
1480
|
+
note(`Already on the latest${current ? ` (v${current})` : ""}.`);
|
|
1481
|
+
return;
|
|
1482
|
+
}
|
|
1483
|
+
const choice = await askApproval.current(`Update from v${current} to v${latest}? Mindweave will restart into this same conversation.`, ["Yes, update and restart", "No"], manualCommand(install), "This will run");
|
|
1484
|
+
if (!choice.startsWith("Yes")) {
|
|
1485
|
+
note("Left as it is.");
|
|
1486
|
+
return;
|
|
1487
|
+
}
|
|
1488
|
+
note(`Updating to v${latest}…`);
|
|
1489
|
+
const result = await runUpdate(install.prefix);
|
|
1490
|
+
if (!result.ok) {
|
|
1491
|
+
// A failure here is a no-op rather than a half-state: npm either replaced the
|
|
1492
|
+
// package or it did not, and the copy running is the copy that always was.
|
|
1493
|
+
note(`The update did not run, and nothing was changed.\n${result.message}\n\nTo do it by hand:\n ${manualCommand(install)}`, { error: true });
|
|
1494
|
+
return;
|
|
1495
|
+
}
|
|
1496
|
+
// On disk before the successor goes looking for it.
|
|
1497
|
+
await saveSession(s);
|
|
1498
|
+
// Recorded rather than done here: the terminal can only be handed over once Ink
|
|
1499
|
+
// has unmounted, and unmounting is what ends this render. `index.ts` picks it up.
|
|
1500
|
+
requestRestart({
|
|
1501
|
+
packageRoot: install.packageRoot,
|
|
1502
|
+
sessionId: s.id,
|
|
1503
|
+
previousVersion: current,
|
|
1504
|
+
prefix: install.prefix,
|
|
1505
|
+
});
|
|
1506
|
+
exit();
|
|
1507
|
+
return;
|
|
1508
|
+
}
|
|
1412
1509
|
// /clear — a fresh conversation without leaving the folder. Until now the only
|
|
1413
1510
|
// way to start over was to quit and relaunch, or to go through /continue and pick
|
|
1414
1511
|
// its third option, which is not somewhere anyone looks for "start over".
|
|
@@ -2243,14 +2340,6 @@ const MIN_CHAT_ROWS = 3;
|
|
|
2243
2340
|
const FOOTER_BASE_ROWS = 7;
|
|
2244
2341
|
/** The palette's own chrome: title, the "Tab completes" hint, top+bottom border. */
|
|
2245
2342
|
const MENU_CHROME_ROWS = 4;
|
|
2246
|
-
/** Whether a block hugs the one above it — consecutive tool rows have no blank
|
|
2247
|
-
* line between them. Takes the FULL list, not the rendered slice, so the first
|
|
2248
|
-
* visible block still spaces correctly against the one scrolled off above it. */
|
|
2249
|
-
function isTight(all, i) {
|
|
2250
|
-
const block = all[i];
|
|
2251
|
-
const prev = i > 0 ? all[i - 1] : undefined;
|
|
2252
|
-
return !!block && block.kind === "tool" && !!prev && prev.kind === "tool";
|
|
2253
|
-
}
|
|
2254
2343
|
/** Lines PageUp/PageDown move per press. */
|
|
2255
2344
|
const PAGE_LINES = 10;
|
|
2256
2345
|
/** Lines one wheel notch moves. Three is the usual terminal step, and a flick
|
|
@@ -2383,30 +2472,6 @@ function useTerminalSize() {
|
|
|
2383
2472
|
}, [stdout]);
|
|
2384
2473
|
return size;
|
|
2385
2474
|
}
|
|
2386
|
-
// The built-in slash commands offered by the input's autocomplete. Project skills
|
|
2387
|
-
// are appended at render time from the live session.
|
|
2388
|
-
const BASE_COMMANDS = [
|
|
2389
|
-
{ name: "/help", description: "show this list" },
|
|
2390
|
-
{ name: "/init", description: "write MINDWEAVE.md — what the agent should always know about this project" },
|
|
2391
|
-
{ name: "/provider", description: "choose which provider serves this project" },
|
|
2392
|
-
{ name: "/key", description: "add or replace an API key" },
|
|
2393
|
-
{ name: "/model", description: "choose which model answers, from the current provider" },
|
|
2394
|
-
{ name: "/think", description: "set the reasoning level for the model" },
|
|
2395
|
-
{ name: "/rules", description: "list rules, or add one: /rules <directive>" },
|
|
2396
|
-
{ name: "/skills", description: "list skills, or make one: /skills <description>" },
|
|
2397
|
-
{ name: "/forbidden", description: "list protected paths, or add: /forbidden <path>" },
|
|
2398
|
-
{ name: "/forbid-command", description: "list forbidden commands, or add: /forbid-command <command>" },
|
|
2399
|
-
{ name: "/link", description: "pull in the rest of the project (monorepo / sibling repos)" },
|
|
2400
|
-
{ name: "/include", description: "add a folder to the workspace: /include <path>" },
|
|
2401
|
-
{ name: "/exclude", description: "remove an added folder: /exclude <label>" },
|
|
2402
|
-
{ name: "/shells", description: "view or stop background commands (tests, servers)" },
|
|
2403
|
-
{ name: "/mcp", description: "view MCP servers; /mcp add <name> <command|url> to connect one" },
|
|
2404
|
-
{ name: "/context", description: "show what Mindweave sees about this project" },
|
|
2405
|
-
{ name: "/undo", description: "roll back file changes: /undo, /undo list, /undo <n>" },
|
|
2406
|
-
{ name: "/compact", description: "summarize the conversation to free up context" },
|
|
2407
|
-
{ name: "/clear", description: "start a fresh conversation in this project" },
|
|
2408
|
-
{ name: "/continue", description: "pick a past session to resume" },
|
|
2409
|
-
];
|
|
2410
2475
|
/** Split a /include argument into paths: quoted segments (spaces) or bare tokens. */
|
|
2411
2476
|
function parsePaths(arg) {
|
|
2412
2477
|
const out = [];
|