mindweave 3.0.0 → 3.1.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.
Files changed (140) hide show
  1. package/README.md +36 -4
  2. package/dist/alternator/chassis/lsp.js +36 -4
  3. package/dist/alternator/chassis/lsp.js.map +1 -1
  4. package/dist/alternator/chassis/provision.js +54 -6
  5. package/dist/alternator/chassis/provision.js.map +1 -1
  6. package/dist/alternator/chassis/servers.js +34 -21
  7. package/dist/alternator/chassis/servers.js.map +1 -1
  8. package/dist/cli/App.js +6 -6
  9. package/dist/cli/App.js.map +1 -1
  10. package/dist/cli/attachments.js +37 -1
  11. package/dist/cli/attachments.js.map +1 -1
  12. package/dist/cli/bootstrap.js +25 -3
  13. package/dist/cli/bootstrap.js.map +1 -1
  14. package/dist/cli/components/FirstRunFrame.js +1 -1
  15. package/dist/cli/components/MarathonBox.js +2 -1
  16. package/dist/cli/components/MarathonBox.js.map +1 -1
  17. package/dist/cli/marathonUi.js +2 -0
  18. package/dist/cli/marathonUi.js.map +1 -1
  19. package/dist/cli/startupArgs.js +1 -1
  20. package/dist/core/permissions.js +26 -1
  21. package/dist/core/permissions.js.map +1 -1
  22. package/dist/core/spendView.js +8 -1
  23. package/dist/core/spendView.js.map +1 -1
  24. package/dist/core/turnRunner.js +28 -2
  25. package/dist/core/turnRunner.js.map +1 -1
  26. package/dist/drivers/deepseek/inlineTools.js +36 -2
  27. package/dist/drivers/deepseek/inlineTools.js.map +1 -1
  28. package/dist/drivers/ollama/endpoint.js +25 -0
  29. package/dist/drivers/ollama/endpoint.js.map +1 -1
  30. package/dist/dynamo/engine.js +408 -88
  31. package/dist/dynamo/engine.js.map +1 -1
  32. package/dist/dynamo/guard.js +11 -4
  33. package/dist/dynamo/guard.js.map +1 -1
  34. package/dist/dynamo/hooks.js +209 -0
  35. package/dist/dynamo/hooks.js.map +1 -0
  36. package/dist/dynamo/marathon.js +67 -10
  37. package/dist/dynamo/marathon.js.map +1 -1
  38. package/dist/dynamo/todoReminder.js +26 -0
  39. package/dist/dynamo/todoReminder.js.map +1 -0
  40. package/dist/governor/forbidden.js +19 -0
  41. package/dist/governor/forbidden.js.map +1 -1
  42. package/dist/governor/freshness.js +1 -1
  43. package/dist/governor/freshness.js.map +1 -1
  44. package/dist/governor/index.js +8 -1
  45. package/dist/governor/index.js.map +1 -1
  46. package/dist/governor/rules.js +1 -0
  47. package/dist/governor/rules.js.map +1 -1
  48. package/dist/governor/write.js +50 -2
  49. package/dist/governor/write.js.map +1 -1
  50. package/dist/mcp/config.js +0 -41
  51. package/dist/mcp/config.js.map +1 -1
  52. package/dist/mcp/projectApproval.js +117 -0
  53. package/dist/mcp/projectApproval.js.map +1 -0
  54. package/dist/mcp/resultStore.js +19 -5
  55. package/dist/mcp/resultStore.js.map +1 -1
  56. package/dist/mcp/transport/stdio.js +4 -1
  57. package/dist/mcp/transport/stdio.js.map +1 -1
  58. package/dist/memory/allMetas.js +1 -1
  59. package/dist/memory/allMetas.js.map +1 -1
  60. package/dist/memory/autoMemory.js +1 -0
  61. package/dist/memory/autoMemory.js.map +1 -1
  62. package/dist/memory/clearedArchive.js +120 -0
  63. package/dist/memory/clearedArchive.js.map +1 -0
  64. package/dist/memory/compaction.js +154 -14
  65. package/dist/memory/compaction.js.map +1 -1
  66. package/dist/memory/counters.js +64 -0
  67. package/dist/memory/counters.js.map +1 -0
  68. package/dist/memory/projectNotes.js +61 -13
  69. package/dist/memory/projectNotes.js.map +1 -1
  70. package/dist/memory/rewind.js +6 -2
  71. package/dist/memory/rewind.js.map +1 -1
  72. package/dist/memory/session.js +13 -5
  73. package/dist/memory/session.js.map +1 -1
  74. package/dist/memory/sessionMemory.js +6 -2
  75. package/dist/memory/sessionMemory.js.map +1 -1
  76. package/dist/memory/store.js +3 -0
  77. package/dist/memory/store.js.map +1 -1
  78. package/dist/memory/workingSet.js +0 -375
  79. package/dist/memory/workingSet.js.map +1 -1
  80. package/dist/project/context.js +54 -7
  81. package/dist/project/context.js.map +1 -1
  82. package/dist/tools/approval.js +19 -4
  83. package/dist/tools/approval.js.map +1 -1
  84. package/dist/tools/backgroundShells.js +8 -1
  85. package/dist/tools/backgroundShells.js.map +1 -1
  86. package/dist/tools/browser.js +2 -1
  87. package/dist/tools/browser.js.map +1 -1
  88. package/dist/tools/checkpoints.js +28 -4
  89. package/dist/tools/checkpoints.js.map +1 -1
  90. package/dist/tools/childEnv.js +50 -0
  91. package/dist/tools/childEnv.js.map +1 -0
  92. package/dist/tools/codeIntel.js +4 -1
  93. package/dist/tools/codeIntel.js.map +1 -1
  94. package/dist/tools/commandParse.js +238 -0
  95. package/dist/tools/commandParse.js.map +1 -0
  96. package/dist/tools/commandPolicy.js +283 -0
  97. package/dist/tools/commandPolicy.js.map +1 -0
  98. package/dist/tools/edit.js +2 -1
  99. package/dist/tools/edit.js.map +1 -1
  100. package/dist/tools/editRipple.js +18 -3
  101. package/dist/tools/editRipple.js.map +1 -1
  102. package/dist/tools/editTarget.js +11 -6
  103. package/dist/tools/editTarget.js.map +1 -1
  104. package/dist/tools/governorTools.js +61 -1
  105. package/dist/tools/governorTools.js.map +1 -1
  106. package/dist/tools/grep.js +13 -5
  107. package/dist/tools/grep.js.map +1 -1
  108. package/dist/tools/guard.js +249 -2
  109. package/dist/tools/guard.js.map +1 -1
  110. package/dist/tools/invisible.js +62 -0
  111. package/dist/tools/invisible.js.map +1 -0
  112. package/dist/tools/killTree.js +3 -0
  113. package/dist/tools/killTree.js.map +1 -1
  114. package/dist/tools/readFile.js +2 -2
  115. package/dist/tools/readFile.js.map +1 -1
  116. package/dist/tools/readSymbol.js +5 -24
  117. package/dist/tools/readSymbol.js.map +1 -1
  118. package/dist/tools/replaceSymbol.js +1 -1
  119. package/dist/tools/replaceSymbol.js.map +1 -1
  120. package/dist/tools/ripgrepShell.js +56 -0
  121. package/dist/tools/ripgrepShell.js.map +1 -0
  122. package/dist/tools/runCommand.js +74 -15
  123. package/dist/tools/runCommand.js.map +1 -1
  124. package/dist/tools/runsLater.js +50 -0
  125. package/dist/tools/runsLater.js.map +1 -0
  126. package/dist/tools/serverConsent.js +27 -0
  127. package/dist/tools/serverConsent.js.map +1 -0
  128. package/dist/tools/ui.js +27 -0
  129. package/dist/tools/ui.js.map +1 -1
  130. package/dist/tools/untrusted.js +22 -1
  131. package/dist/tools/untrusted.js.map +1 -1
  132. package/dist/tools/viewImage.js +2 -2
  133. package/dist/tools/viewImage.js.map +1 -1
  134. package/dist/tools/webFetch.js +76 -8
  135. package/dist/tools/webFetch.js.map +1 -1
  136. package/dist/tools/workspace.js +87 -24
  137. package/dist/tools/workspace.js.map +1 -1
  138. package/dist/tools/writeFile.js +9 -4
  139. package/dist/tools/writeFile.js.map +1 -1
  140. package/package.json +3 -3
package/README.md CHANGED
@@ -26,8 +26,9 @@ desktop app, built on the same engine, for Windows, macOS and Linux.
26
26
 
27
27
  ## Install
28
28
 
29
- Needs **Node.js 24+**. The npm package is supported on **Windows**; on macOS and Linux,
30
- use the desktop app for now ([why](KNOWN-ISSUES.md)).
29
+ Needs **Node.js 24+**. The npm package is tested on **Windows** and **Linux**. It has not
30
+ been run on a real Mac yet, so on macOS the desktop app is the safe choice
31
+ ([details](KNOWN-ISSUES.md)).
31
32
 
32
33
  ```bash
33
34
  npm install -g mindweave
@@ -60,13 +61,44 @@ npm link
60
61
  verified done, blocked, or out of budget.
61
62
  - **Memory** — project notes in MINDWEAVE.md, compaction that keeps what matters, and
62
63
  earlier sessions it can look back at.
63
- - **Safety nets** — `/undo`, `/rewind`, approval modes, and per-project rules for paths
64
- and commands it must not touch.
64
+ - **Safety nets** — `/undo`, `/rewind`, approval modes, per-project rules for paths
65
+ and commands it must not touch, and a project's own servers and hooks never run unasked.
65
66
  - **MCP servers** — connect external tools with `/mcp`. [docs/MCP.md](docs/MCP.md)
66
67
 
67
68
  `/help` lists every command. `shift+tab` switches modes. Type while it works and your
68
69
  message queues.
69
70
 
71
+ ## Your own rules and hooks
72
+
73
+ Both live in your state folder (`~/.mindweave`, or `projects/<name>` inside it for one
74
+ project), never in the repository, so a project you clone cannot add them.
75
+
76
+ **`command-rules.md`** sets what Sentinel asks about, one line per rule, matched on the start
77
+ of the command:
78
+
79
+ ```
80
+ allow npm test
81
+ prompt git push
82
+ forbid rm -rf :: use the trash folder
83
+ ```
84
+
85
+ `forbid` refuses the command in every mode and tells the agent your reason. `prompt` always
86
+ asks. `allow` stops the question for that command, but never for one that writes a file or
87
+ that Mindweave cannot read with certainty.
88
+
89
+ **`hooks.json`** runs your own commands at set moments. Each gets one JSON object on its
90
+ input, and exit code 2 stops the action and tells the agent why:
91
+
92
+ ```json
93
+ { "hooks": {
94
+ "PreToolUse": [ { "matcher": "run_command|edit", "command": "node check.js" } ],
95
+ "Stop": [ { "command": "npm test --silent" } ]
96
+ } }
97
+ ```
98
+
99
+ The moments are `PreToolUse`, `PostToolUse`, `UserPromptSubmit`, `Stop` and `SessionStart`.
100
+ A hook is stopped after 60 seconds unless it sets `timeoutMs`.
101
+
70
102
  ## More
71
103
 
72
104
  [CHANGELOG](CHANGELOG.md) · [Known issues](KNOWN-ISSUES.md) ·
@@ -5,6 +5,27 @@ import { languageIdFor, serverFor, specForLanguage } from "./servers.js";
5
5
  import { flattenDocSymbols, pickNearest } from "../../tools/spanCore.js";
6
6
  import { killTreeSync, spawnManaged } from "../../tools/killTree.js";
7
7
  const INIT_TIMEOUT = 15_000;
8
+ /**
9
+ * What this client can do, told to every server at initialize.
10
+ *
11
+ * It was `{}`, and a server only sends what the client says it can take: the TypeScript
12
+ * server published no diagnostics at all to a client that did not declare
13
+ * publishDiagnostics, so the diagnostics tool and the after-edit check answered
14
+ * "nothing" for every TypeScript and JavaScript project and spent their full wait doing
15
+ * it. Declared here: exactly the features this client uses. Nothing that would make a
16
+ * server send requests this client does not answer (workspace/configuration, progress
17
+ * tokens), and no hierarchical document symbols, whose different reply shape the symbol
18
+ * code does not parse.
19
+ */
20
+ export const CLIENT_CAPABILITIES = {
21
+ textDocument: {
22
+ synchronization: { dynamicRegistration: false, willSave: false, willSaveWaitUntil: false, didSave: false },
23
+ publishDiagnostics: { relatedInformation: false, versionSupport: false },
24
+ references: { dynamicRegistration: false },
25
+ documentSymbol: { dynamicRegistration: false },
26
+ },
27
+ workspace: { symbol: { dynamicRegistration: false } },
28
+ };
8
29
  const REQUEST_TIMEOUT = 10_000;
9
30
  /** How long to wait for a server's `shutdown` reply before killing it anyway. */
10
31
  const SHUTDOWN_TIMEOUT = 2_000;
@@ -224,7 +245,8 @@ export class LspManager {
224
245
  catch {
225
246
  return [];
226
247
  }
227
- const key = absPath.split("\\").join("/");
248
+ const shown = absPath.split("\\").join("/");
249
+ const key = fileKey(absPath);
228
250
  const uri = pathToFileURL(absPath).toString();
229
251
  // Clear so we can detect a FRESH publish (an empty array is a valid "clean" result).
230
252
  this.diagnosticsByFile.delete(key);
@@ -250,7 +272,7 @@ export class LspManager {
250
272
  while (Date.now() < deadline && !this.diagnosticsByFile.has(key)) {
251
273
  await delay(60);
252
274
  }
253
- return (this.diagnosticsByFile.get(key) ?? []).map((d) => toCodeDiagnostic(key, d));
275
+ return (this.diagnosticsByFile.get(key) ?? []).map((d) => toCodeDiagnostic(shown, d));
254
276
  }
255
277
  /** Process ids of the servers currently tracked. Lets a caller (and the tests)
256
278
  * check that teardown actually reaped them, rather than that it returned. */
@@ -404,7 +426,7 @@ export class LspManager {
404
426
  conn.onNotification("textDocument/publishDiagnostics", (params) => {
405
427
  const p = params;
406
428
  if (p?.uri)
407
- this.diagnosticsByFile.set(uriToPath(p.uri), p.diagnostics ?? []);
429
+ this.diagnosticsByFile.set(fileKey(uriToPath(p.uri)), p.diagnostics ?? []);
408
430
  });
409
431
  conn.listen();
410
432
  const rootUri = pathToFileURL(this.root).toString();
@@ -412,7 +434,7 @@ export class LspManager {
412
434
  await withTimeout(conn.sendRequest("initialize", {
413
435
  processId: process.pid,
414
436
  rootUri,
415
- capabilities: {},
437
+ capabilities: CLIENT_CAPABILITIES,
416
438
  workspaceFolders: [{ uri: rootUri, name: "root" }],
417
439
  }), INIT_TIMEOUT);
418
440
  }
@@ -503,6 +525,16 @@ function toCodeDiagnostic(file, d) {
503
525
  function delay(ms) {
504
526
  return new Promise((resolve) => setTimeout(resolve, ms));
505
527
  }
528
+ /**
529
+ * The key a file's diagnostics are kept under. Windows paths are case-insensitive and
530
+ * servers do not echo the spelling they were sent: the TypeScript server publishes for
531
+ * `file:///c%3A/...` a file opened as `C:\...`. Keyed by the raw path, every publish was
532
+ * stored under a name nobody looked up, and diagnostics() always returned nothing.
533
+ */
534
+ function fileKey(path) {
535
+ const slashed = path.split("\\").join("/");
536
+ return process.platform === "win32" ? slashed.toLowerCase() : slashed;
537
+ }
506
538
  function uriToPath(uri) {
507
539
  try {
508
540
  return fileURLToPath(uri).split("\\").join("/");
@@ -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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"}
@@ -17,15 +17,49 @@
17
17
  * once per session.
18
18
  */
19
19
  import { killTree, spawnManaged } from "../../tools/killTree.js";
20
- import { existsSync, promises as fs } from "node:fs";
20
+ import { createHash } from "node:crypto";
21
+ import { existsSync, promises as fs, readFileSync } from "node:fs";
21
22
  import { homedir } from "node:os";
22
23
  import { join } from "node:path";
23
24
  import zlib from "node:zlib";
24
25
  import AdmZip from "adm-zip";
26
+ import { stateRoot } from "../../memory/store.js";
27
+ import { writeFileAtomic } from "../../tools/atomicWrite.js";
25
28
  const IS_WIN = process.platform === "win32";
26
29
  export function autoInstallEnabled() {
27
30
  return !process.env.MINDWEAVE_NO_AUTO_INSTALL;
28
31
  }
32
+ function decisionsPath() {
33
+ return join(stateRoot(), "servers", "decisions.json");
34
+ }
35
+ function readDecisions() {
36
+ try {
37
+ const v = JSON.parse(readFileSync(decisionsPath(), "utf8"));
38
+ return v && typeof v === "object" && !Array.isArray(v) ? v : {};
39
+ }
40
+ catch {
41
+ return {};
42
+ }
43
+ }
44
+ /** What the user decided about installing server `key`, if anything. */
45
+ export function installDecision(key) {
46
+ const d = readDecisions()[key];
47
+ return d === "yes" || d === "never" ? d : undefined;
48
+ }
49
+ /** Record the user's answer for server `key`, for good. */
50
+ export async function recordInstallDecision(key, decision) {
51
+ const all = { ...readDecisions(), [key]: decision };
52
+ await fs.mkdir(join(stateRoot(), "servers"), { recursive: true });
53
+ await writeFileAtomic(decisionsPath(), JSON.stringify(all, null, 2));
54
+ }
55
+ /** Servers wanted this session that the user has not decided about yet. */
56
+ const undecided = new Map();
57
+ /** Take the servers waiting for a question (each is asked about once). */
58
+ export function takeUndecidedInstalls() {
59
+ const out = [...undecided].map(([key, spec]) => ({ key, spec }));
60
+ undecided.clear();
61
+ return out;
62
+ }
29
63
  export function platformKey() {
30
64
  return `${process.platform}-${process.arch}`;
31
65
  }
@@ -56,6 +90,13 @@ export function ensureInstalled(key, spec, log) {
56
90
  return Promise.resolve(already);
57
91
  if (!autoInstallEnabled())
58
92
  return Promise.resolve(null);
93
+ const decision = installDecision(key);
94
+ if (decision === "never")
95
+ return Promise.resolve(null);
96
+ if (decision !== "yes") {
97
+ undecided.set(key, spec);
98
+ return Promise.resolve(null);
99
+ }
59
100
  let p = inflight.get(key);
60
101
  if (!p) {
61
102
  p = doInstall(key, spec, log).catch(() => null);
@@ -126,7 +167,11 @@ async function installNpm(key, spec) {
126
167
  await fs.writeFile(join(dir, "package.json"), JSON.stringify({ name: `mindweave-server-${key}`, version: "0.0.0", private: true }));
127
168
  // Pass the whole command as one string for the shell (npm is a .cmd shim on
128
169
  // Windows). Args are from the curated registry, not user input.
129
- const cmd = `npm install ${spec.package}@${spec.version} --no-save --no-audit --no-fund --loglevel=error`;
170
+ //
171
+ // --ignore-scripts: no package here needs an install script, and without the flag the
172
+ // server's and EVERY dependency's install scripts ran as the user, from whatever
173
+ // versions the registry served that day.
174
+ const cmd = `npm install ${spec.package}@${spec.version} --ignore-scripts --no-save --no-audit --no-fund --loglevel=error`;
130
175
  return runBounded(cmd, [], { cwd: dir, shell: true, stdio: "ignore" }, NPM_INSTALL_TIMEOUT_MS);
131
176
  }
132
177
  // ── github source ────────────────────────────────────────────────────────────
@@ -138,7 +183,7 @@ async function installGithub(key, spec) {
138
183
  const asset = target.asset.replaceAll("{version}", spec.version);
139
184
  const url = `https://github.com/${spec.repo}/releases/download/${spec.version}/${asset}`;
140
185
  const archive = join(dir, asset);
141
- if (!(await download(url, archive)))
186
+ if (!(await download(url, archive, target.sha256)))
142
187
  return false;
143
188
  try {
144
189
  if (asset.endsWith(".zip")) {
@@ -175,15 +220,18 @@ async function installGithub(key, spec) {
175
220
  }
176
221
  return existsSync(bin);
177
222
  }
178
- /** Download `url` to `dest` (follows GitHub's redirect to the CDN). */
179
- async function download(url, dest) {
223
+ /** Download `url` to `dest` (follows GitHub's redirect to the CDN), only if it has the expected SHA-256. */
224
+ async function download(url, dest, sha256) {
180
225
  // AbortSignal.timeout covers the whole exchange, body included — a stalled
181
226
  // download mid-body is the realistic failure, not a stalled connect.
182
227
  try {
183
228
  const res = await fetch(url, { redirect: "follow", signal: AbortSignal.timeout(DOWNLOAD_TIMEOUT_MS) });
184
229
  if (!res.ok)
185
230
  return false;
186
- await fs.writeFile(dest, Buffer.from(await res.arrayBuffer()));
231
+ const bytes = Buffer.from(await res.arrayBuffer());
232
+ if (createHash("sha256").update(bytes).digest("hex") !== sha256.toLowerCase())
233
+ return false;
234
+ await fs.writeFile(dest, bytes);
187
235
  return true;
188
236
  }
189
237
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/alternator/chassis/provision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../../src/alternator/chassis/provision.ts"],"names":[],"mappings":"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"}
@@ -85,37 +85,37 @@ const github = (repo, version, targets) => ({
85
85
  // rust-analyzer ships prebuilt binaries: .zip on Windows (contains the .exe),
86
86
  // single-file .gz on macOS/Linux (decompresses straight to the binary).
87
87
  const RUST_ANALYZER = github("rust-lang/rust-analyzer", "2026-06-22", {
88
- "win32-x64": { asset: "rust-analyzer-x86_64-pc-windows-msvc.zip", bin: "rust-analyzer.exe" },
89
- "win32-arm64": { asset: "rust-analyzer-aarch64-pc-windows-msvc.zip", bin: "rust-analyzer.exe" },
90
- "darwin-x64": { asset: "rust-analyzer-x86_64-apple-darwin.gz", bin: "rust-analyzer" },
91
- "darwin-arm64": { asset: "rust-analyzer-aarch64-apple-darwin.gz", bin: "rust-analyzer" },
92
- "linux-x64": { asset: "rust-analyzer-x86_64-unknown-linux-gnu.gz", bin: "rust-analyzer" },
93
- "linux-arm64": { asset: "rust-analyzer-aarch64-unknown-linux-gnu.gz", bin: "rust-analyzer" },
88
+ "win32-x64": { asset: "rust-analyzer-x86_64-pc-windows-msvc.zip", sha256: "6071dc5b28aa6d22c715f63c08d75b827c066be4ea866796587e52ed48b2922f", bin: "rust-analyzer.exe" },
89
+ "win32-arm64": { asset: "rust-analyzer-aarch64-pc-windows-msvc.zip", sha256: "30f873713ea3663db10999c23e95b74fe19968c893d5c0e9b8a896b31dbf8cf8", bin: "rust-analyzer.exe" },
90
+ "darwin-x64": { asset: "rust-analyzer-x86_64-apple-darwin.gz", sha256: "bf65b0d4586f127ab11bf33476dd6aac82dad173946c5d3b1cede19d63ae85ed", bin: "rust-analyzer" },
91
+ "darwin-arm64": { asset: "rust-analyzer-aarch64-apple-darwin.gz", sha256: "c8cdf6d5e488752b907d5ee15e31768b59a78d992e9a54b9f9660e1bfdf39f27", bin: "rust-analyzer" },
92
+ "linux-x64": { asset: "rust-analyzer-x86_64-unknown-linux-gnu.gz", sha256: "feb7c170d2c1a2e4b8a88ac73f937eddb576828e3821b0a63ee0e64bd0bc9440", bin: "rust-analyzer" },
93
+ "linux-arm64": { asset: "rust-analyzer-aarch64-unknown-linux-gnu.gz", sha256: "9602ca5b24dcaa07a5a021274763bed367d8a32da9a226fe3e139de3306569cb", bin: "rust-analyzer" },
94
94
  });
95
95
  // clangd: per-OS .zip; the binary is at clangd_<version>/bin/clangd. The mac build
96
96
  // is a universal binary (used for both arches); clangd has no arm64-linux build.
97
97
  const CLANGD = github("clangd/clangd", "22.1.0", {
98
- "win32-x64": { asset: "clangd-windows-{version}.zip", bin: "clangd_{version}/bin/clangd.exe" },
99
- "darwin-x64": { asset: "clangd-mac-{version}.zip", bin: "clangd_{version}/bin/clangd" },
100
- "darwin-arm64": { asset: "clangd-mac-{version}.zip", bin: "clangd_{version}/bin/clangd" },
101
- "linux-x64": { asset: "clangd-linux-{version}.zip", bin: "clangd_{version}/bin/clangd" },
98
+ "win32-x64": { asset: "clangd-windows-{version}.zip", sha256: "e31e271fe11f6dcd7cf87ca74be4a12788ff8ce5a0b07762583e335c058e939a", bin: "clangd_{version}/bin/clangd.exe" },
99
+ "darwin-x64": { asset: "clangd-mac-{version}.zip", sha256: "71eddc5303da9a5bc5e8b509488b5b2c5acf45f20e33b8394e71a12a56d67198", bin: "clangd_{version}/bin/clangd" },
100
+ "darwin-arm64": { asset: "clangd-mac-{version}.zip", sha256: "71eddc5303da9a5bc5e8b509488b5b2c5acf45f20e33b8394e71a12a56d67198", bin: "clangd_{version}/bin/clangd" },
101
+ "linux-x64": { asset: "clangd-linux-{version}.zip", sha256: "c54e57dbff3ccc9e8352367ddb7030ad3f624073ec58c7477424e7919f578572", bin: "clangd_{version}/bin/clangd" },
102
102
  });
103
103
  // zls: .zip on Windows, .tar.xz on Unix (system tar extracts xz); binary at root.
104
104
  const ZLS = github("zigtools/zls", "0.16.0", {
105
- "win32-x64": { asset: "zls-x86_64-windows.zip", bin: "zls.exe" },
106
- "win32-arm64": { asset: "zls-aarch64-windows.zip", bin: "zls.exe" },
107
- "darwin-x64": { asset: "zls-x86_64-macos.tar.xz", bin: "zls" },
108
- "darwin-arm64": { asset: "zls-aarch64-macos.tar.xz", bin: "zls" },
109
- "linux-x64": { asset: "zls-x86_64-linux.tar.xz", bin: "zls" },
110
- "linux-arm64": { asset: "zls-aarch64-linux.tar.xz", bin: "zls" },
105
+ "win32-x64": { asset: "zls-x86_64-windows.zip", sha256: "35cbb7163224e8cf92d21099c1b1391f2aba927f25d389f021b13a21d40b96dd", bin: "zls.exe" },
106
+ "win32-arm64": { asset: "zls-aarch64-windows.zip", sha256: "ef4c5ccb93c80c9f023105c5f558ae8774ac6668d560ba6f92a2f87d95df2311", bin: "zls.exe" },
107
+ "darwin-x64": { asset: "zls-x86_64-macos.tar.xz", sha256: "49f716ea96c1aadaecaa5d9c0a50874cbcf443dc42b825f1e7ee35499ad3eb96", bin: "zls" },
108
+ "darwin-arm64": { asset: "zls-aarch64-macos.tar.xz", sha256: "b93ec549f8558a7e85984a840e9276d274f1059b54ade4254296ef4982958359", bin: "zls" },
109
+ "linux-x64": { asset: "zls-x86_64-linux.tar.xz", sha256: "ded6d562a0b86ee878b1ddf70ffab2797ce3cdca3b02d6077548f9d56dff96b6", bin: "zls" },
110
+ "linux-arm64": { asset: "zls-aarch64-linux.tar.xz", sha256: "430cd293d201eb70ae2519dbc96c854bf8791b8df7fc9392e8d2dc9680a2bed7", bin: "zls" },
111
111
  });
112
112
  // lua-language-server: .zip on Windows, .tar.gz on Unix; binary at bin/.
113
113
  const LUA_LS = github("LuaLS/lua-language-server", "3.18.2", {
114
- "win32-x64": { asset: "lua-language-server-{version}-win32-x64.zip", bin: "bin/lua-language-server.exe" },
115
- "darwin-x64": { asset: "lua-language-server-{version}-darwin-x64.tar.gz", bin: "bin/lua-language-server" },
116
- "darwin-arm64": { asset: "lua-language-server-{version}-darwin-arm64.tar.gz", bin: "bin/lua-language-server" },
117
- "linux-x64": { asset: "lua-language-server-{version}-linux-x64.tar.gz", bin: "bin/lua-language-server" },
118
- "linux-arm64": { asset: "lua-language-server-{version}-linux-arm64.tar.gz", bin: "bin/lua-language-server" },
114
+ "win32-x64": { asset: "lua-language-server-{version}-win32-x64.zip", sha256: "a4439a8f5e8e9e6505c11f045a7bf45db602124a1e246371c1dbe34924f3cf71", bin: "bin/lua-language-server.exe" },
115
+ "darwin-x64": { asset: "lua-language-server-{version}-darwin-x64.tar.gz", sha256: "e26cfefe423dd7326fc7c649539e4d4aaa4f35f34d2fefd8af2ed7090b72c556", bin: "bin/lua-language-server" },
116
+ "darwin-arm64": { asset: "lua-language-server-{version}-darwin-arm64.tar.gz", sha256: "cec99d70b1f612acec4a10a79a03664e3aa0c229d4d8a586cb3f928ec37d509e", bin: "bin/lua-language-server" },
117
+ "linux-x64": { asset: "lua-language-server-{version}-linux-x64.tar.gz", sha256: "ca71415dd19f19e30aaa35a4915aefca9fdb5fec31b98331cc3d77f778d539c5", bin: "bin/lua-language-server" },
118
+ "linux-arm64": { asset: "lua-language-server-{version}-linux-arm64.tar.gz", sha256: "273af33f26f4a1143f27c96d9f9e1188aba619c71e0807042134f66b4bd27f24", bin: "bin/lua-language-server" },
119
119
  });
120
120
  const REGISTRY = [
121
121
  // Bundled — instant, offline.
@@ -193,6 +193,19 @@ export function serverFor(absPath) {
193
193
  const lang = languageIdFor(absPath);
194
194
  return lang ? specForLanguage(lang) : null;
195
195
  }
196
+ /**
197
+ * Install server `key` now that the user has approved it, and let the next query use it.
198
+ * Returns whether it is available afterwards.
199
+ */
200
+ export async function installApproved(key, log) {
201
+ const entry = REGISTRY.find((e) => e.key === key);
202
+ if (!entry?.install)
203
+ return false;
204
+ const cmd = await ensureInstalled(entry.key, entry.install, log);
205
+ if (cmd)
206
+ specCache.delete(entry.key);
207
+ return cmd !== null;
208
+ }
196
209
  /**
197
210
  * Auto-install any servers needed for `langIds` that aren't already available.
198
211
  * Best-effort and deduped; after a successful install the cache is invalidated so
@@ -1 +1 @@
1
- {"version":3,"file":"servers.js","sourceRoot":"","sources":["../../../src/alternator/chassis/servers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"servers.js","sourceRoot":"","sources":["../../../src/alternator/chassis/servers.ts"],"names":[],"mappings":"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"}
package/dist/cli/App.js CHANGED
@@ -77,7 +77,7 @@ import { applyScreenMode } from "./screenShell.js";
77
77
  import { saveScreenMode } from "./screenStore.js";
78
78
  import { needsMeasure, pruneHeights } from "./blockHeights.js";
79
79
  import { BASE_COMMANDS } from "./commands.js";
80
- import { dismissMarathon } from "../core/turnRunner.js";
80
+ import { attachmentBudget, dismissMarathon } from "../core/turnRunner.js";
81
81
  import { describeMarathonEvent, resumeMarathon, startMarathon } from "../dynamo/marathon.js";
82
82
  import { MarathonBox } from "./components/MarathonBox.js";
83
83
  import { isFinished, isLive, marathonUiReduce } from "./marathonUi.js";
@@ -1850,7 +1850,7 @@ export function App({ resumeSessionId, initialScreen }) {
1850
1850
  // Dropped files are carried in the buffer as short handles. Put the real paths back
1851
1851
  // before anything is resolved against the disk, and hand the same handle back as the
1852
1852
  // label so the chat shows what the user typed rather than a third name for the file.
1853
- const { modelText, displayText, notes, images } = await resolveAttachments(expandHandles(text, dropHandles.current), s.cwd, canSeeImages, (abs) => dropHandles.current.labelFor(abs));
1853
+ const { modelText, displayText, notes, images } = await resolveAttachments(expandHandles(text, dropHandles.current), s.cwd, canSeeImages, (abs) => dropHandles.current.labelFor(abs), attachmentBudget(s.modelConfig.model));
1854
1854
  // Restore any collapsed pastes into the model's copy only (the chat keeps chips).
1855
1855
  return { content: expandPastes(modelText), displayText, notes, images };
1856
1856
  }
@@ -2724,9 +2724,9 @@ export function App({ resumeSessionId, initialScreen }) {
2724
2724
  const overhead = measured && measured.model === s.modelConfig.model ? measured.tokens : undefined;
2725
2725
  const budget = contextBudget(s.transcript, overhead);
2726
2726
  note("context breakdown:");
2727
- say(`${formatBudget(budget, sharpContextWindow(s.modelConfig.model), effectiveAutoCompactThreshold(s))}
2728
-
2729
- /context project shows what Mindweave read about this directory at startup.
2727
+ say(`${formatBudget(budget, sharpContextWindow(s.modelConfig.model), effectiveAutoCompactThreshold(s))}
2728
+
2729
+ /context project shows what Mindweave read about this directory at startup.
2730
2730
  /context limit shows or sets your own compaction limit.`);
2731
2731
  return;
2732
2732
  }
@@ -3983,7 +3983,7 @@ export function Banner({ width: given, mode, modelConfig, busy }) {
3983
3983
  // The release name, not the raw semver — the version stays available through
3984
3984
  // --help and the update-check note; this bar is read constantly during a working
3985
3985
  // turn and has no room to spare for a number nobody is reading it for.
3986
- const left = "Mindweave 1";
3986
+ const left = "Mindweave 2";
3987
3987
  // Three separate facts, so three separate colours. As one run they read as a single
3988
3988
  // undifferentiated status string and the eye has to parse the pipes to find the part
3989
3989
  // it wants. The mode keeps its own colour because that colour IS the mode's identity