mindweave 2.5.1 → 3.0.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 (235) hide show
  1. package/README.md +50 -114
  2. package/dist/cli/App.js +578 -303
  3. package/dist/cli/App.js.map +1 -1
  4. package/dist/cli/analytics.js +27 -18
  5. package/dist/cli/analytics.js.map +1 -1
  6. package/dist/cli/attachments.js +34 -0
  7. package/dist/cli/attachments.js.map +1 -1
  8. package/dist/cli/bannerFit.js +70 -0
  9. package/dist/cli/bannerFit.js.map +1 -0
  10. package/dist/cli/bootstrap.js +41 -3
  11. package/dist/cli/bootstrap.js.map +1 -1
  12. package/dist/cli/commands.js +4 -1
  13. package/dist/cli/commands.js.map +1 -1
  14. package/dist/cli/components/ApprovalBox.js +3 -2
  15. package/dist/cli/components/ApprovalBox.js.map +1 -1
  16. package/dist/cli/components/BlockView.js +27 -6
  17. package/dist/cli/components/BlockView.js.map +1 -1
  18. package/dist/cli/components/FirstRunFrame.js +2 -1
  19. package/dist/cli/components/FirstRunFrame.js.map +1 -1
  20. package/dist/cli/components/KeyManager.js +5 -4
  21. package/dist/cli/components/KeyManager.js.map +1 -1
  22. package/dist/cli/components/KeySetup.js +29 -13
  23. package/dist/cli/components/KeySetup.js.map +1 -1
  24. package/dist/cli/components/MarathonBox.js +64 -0
  25. package/dist/cli/components/MarathonBox.js.map +1 -0
  26. package/dist/cli/components/McpMinitabs.js +8 -7
  27. package/dist/cli/components/McpMinitabs.js.map +1 -1
  28. package/dist/cli/components/Picker.js +4 -3
  29. package/dist/cli/components/Picker.js.map +1 -1
  30. package/dist/cli/components/PromptInput.js +47 -8
  31. package/dist/cli/components/PromptInput.js.map +1 -1
  32. package/dist/cli/components/PulseDot.js +42 -0
  33. package/dist/cli/components/PulseDot.js.map +1 -0
  34. package/dist/cli/components/SubagentView.js +9 -6
  35. package/dist/cli/components/SubagentView.js.map +1 -1
  36. package/dist/cli/components/TipLine.js +2 -1
  37. package/dist/cli/components/TipLine.js.map +1 -1
  38. package/dist/cli/components/ToolGroup.js +65 -49
  39. package/dist/cli/components/ToolGroup.js.map +1 -1
  40. package/dist/cli/components/ToolLine.js +20 -19
  41. package/dist/cli/components/ToolLine.js.map +1 -1
  42. package/dist/cli/components/TrustGate.js +2 -1
  43. package/dist/cli/components/TrustGate.js.map +1 -1
  44. package/dist/cli/components/minitabs.js +3 -2
  45. package/dist/cli/components/minitabs.js.map +1 -1
  46. package/dist/cli/desktopApp.js +45 -0
  47. package/dist/cli/desktopApp.js.map +1 -0
  48. package/dist/cli/help.js +1 -0
  49. package/dist/cli/help.js.map +1 -1
  50. package/dist/cli/inkOutputPatch.js +285 -0
  51. package/dist/cli/inkOutputPatch.js.map +1 -0
  52. package/dist/cli/inkSpeed.js +29 -0
  53. package/dist/cli/inkSpeed.js.map +1 -0
  54. package/dist/cli/inkSpeedLoader.js +47 -0
  55. package/dist/cli/inkSpeedLoader.js.map +1 -0
  56. package/dist/cli/inputText.js +30 -0
  57. package/dist/cli/inputText.js.map +1 -0
  58. package/dist/cli/keyManager.js +2 -1
  59. package/dist/cli/keyManager.js.map +1 -1
  60. package/dist/cli/keyPrefs.js +90 -0
  61. package/dist/cli/keyPrefs.js.map +1 -0
  62. package/dist/cli/keySetup.js +5 -2
  63. package/dist/cli/keySetup.js.map +1 -1
  64. package/dist/cli/marathonUi.js +113 -0
  65. package/dist/cli/marathonUi.js.map +1 -0
  66. package/dist/cli/markdown.js +63 -11
  67. package/dist/cli/markdown.js.map +1 -1
  68. package/dist/cli/modes.js +3 -3
  69. package/dist/cli/modes.js.map +1 -1
  70. package/dist/cli/prodEnv.js +43 -0
  71. package/dist/cli/prodEnv.js.map +1 -0
  72. package/dist/cli/revealPace.js +5 -5
  73. package/dist/cli/revealPace.js.map +1 -1
  74. package/dist/cli/revealQueue.js +120 -0
  75. package/dist/cli/revealQueue.js.map +1 -0
  76. package/dist/cli/theme.js +47 -0
  77. package/dist/cli/theme.js.map +1 -0
  78. package/dist/cli/toolDisplay.js +112 -18
  79. package/dist/cli/toolDisplay.js.map +1 -1
  80. package/dist/cli/transcript.js +1 -1
  81. package/dist/cli/transcript.js.map +1 -1
  82. package/dist/cli/virtualWindow.js +14 -2
  83. package/dist/cli/virtualWindow.js.map +1 -1
  84. package/dist/cli/wheelAccel.js +73 -0
  85. package/dist/cli/wheelAccel.js.map +1 -0
  86. package/dist/cli/widestLinePatch.js +48 -0
  87. package/dist/cli/widestLinePatch.js.map +1 -0
  88. package/dist/cli/workingVerb.js +88 -28
  89. package/dist/cli/workingVerb.js.map +1 -1
  90. package/dist/cli/wrap.js +1 -1
  91. package/dist/cli/wrap.js.map +1 -1
  92. package/dist/core/contextSettings.js +84 -0
  93. package/dist/core/contextSettings.js.map +1 -0
  94. package/dist/core/limitsView.js +40 -0
  95. package/dist/core/limitsView.js.map +1 -0
  96. package/dist/core/mcpServers.js +164 -0
  97. package/dist/core/mcpServers.js.map +1 -0
  98. package/dist/core/permissions.js +209 -0
  99. package/dist/core/permissions.js.map +1 -0
  100. package/dist/core/providerKeys.js +187 -0
  101. package/dist/core/providerKeys.js.map +1 -0
  102. package/dist/core/rulesSkills.js +142 -0
  103. package/dist/core/rulesSkills.js.map +1 -0
  104. package/dist/core/spendView.js +90 -0
  105. package/dist/core/spendView.js.map +1 -0
  106. package/dist/core/turnRunner.js +453 -60
  107. package/dist/core/turnRunner.js.map +1 -1
  108. package/dist/drivers/anthropic/client.js +24 -5
  109. package/dist/drivers/anthropic/client.js.map +1 -1
  110. package/dist/drivers/anthropic/manifest.js +15 -2
  111. package/dist/drivers/anthropic/manifest.js.map +1 -1
  112. package/dist/drivers/cerebras/manifest.js +6 -2
  113. package/dist/drivers/cerebras/manifest.js.map +1 -1
  114. package/dist/drivers/deepseek/manifest.js +12 -3
  115. package/dist/drivers/deepseek/manifest.js.map +1 -1
  116. package/dist/drivers/glm/manifest.js +3 -1
  117. package/dist/drivers/glm/manifest.js.map +1 -1
  118. package/dist/drivers/groq/manifest.js +5 -2
  119. package/dist/drivers/groq/manifest.js.map +1 -1
  120. package/dist/drivers/ollama/catalog.js +71 -0
  121. package/dist/drivers/ollama/catalog.js.map +1 -0
  122. package/dist/drivers/ollama/client.js +164 -0
  123. package/dist/drivers/ollama/client.js.map +1 -0
  124. package/dist/drivers/ollama/endpoint.js +42 -0
  125. package/dist/drivers/ollama/endpoint.js.map +1 -0
  126. package/dist/drivers/ollama/index.js +5 -0
  127. package/dist/drivers/ollama/index.js.map +1 -0
  128. package/dist/drivers/ollama/manifest.js +64 -0
  129. package/dist/drivers/ollama/manifest.js.map +1 -0
  130. package/dist/drivers/openai/client.js +10 -4
  131. package/dist/drivers/openai/client.js.map +1 -1
  132. package/dist/drivers/openai/manifest.js +46 -12
  133. package/dist/drivers/openai/manifest.js.map +1 -1
  134. package/dist/drivers/registry.js +11 -0
  135. package/dist/drivers/registry.js.map +1 -1
  136. package/dist/drivers/retryPolicy.js +26 -1
  137. package/dist/drivers/retryPolicy.js.map +1 -1
  138. package/dist/dynamo/auxModel.js +54 -0
  139. package/dist/dynamo/auxModel.js.map +1 -0
  140. package/dist/dynamo/engine.js +380 -99
  141. package/dist/dynamo/engine.js.map +1 -1
  142. package/dist/dynamo/guard.js +10 -0
  143. package/dist/dynamo/guard.js.map +1 -1
  144. package/dist/dynamo/liveMeter.js +25 -6
  145. package/dist/dynamo/liveMeter.js.map +1 -1
  146. package/dist/dynamo/marathon.js +409 -0
  147. package/dist/dynamo/marathon.js.map +1 -0
  148. package/dist/dynamo/marathonPrompt.js +45 -0
  149. package/dist/dynamo/marathonPrompt.js.map +1 -0
  150. package/dist/dynamo/model.js +6 -2
  151. package/dist/dynamo/model.js.map +1 -1
  152. package/dist/dynamo/toolBatches.js +58 -0
  153. package/dist/dynamo/toolBatches.js.map +1 -0
  154. package/dist/dynamo/usageLimits.js +446 -0
  155. package/dist/dynamo/usageLimits.js.map +1 -0
  156. package/dist/governor/freshness.js +10 -7
  157. package/dist/governor/freshness.js.map +1 -1
  158. package/dist/governor/index.js +76 -9
  159. package/dist/governor/index.js.map +1 -1
  160. package/dist/governor/write.js +43 -14
  161. package/dist/governor/write.js.map +1 -1
  162. package/dist/index.js +18 -151
  163. package/dist/index.js.map +1 -1
  164. package/dist/main.js +162 -0
  165. package/dist/main.js.map +1 -0
  166. package/dist/mcp/manager.js +18 -0
  167. package/dist/mcp/manager.js.map +1 -1
  168. package/dist/memory/allMetas.js +69 -0
  169. package/dist/memory/allMetas.js.map +1 -0
  170. package/dist/memory/compaction.js +69 -14
  171. package/dist/memory/compaction.js.map +1 -1
  172. package/dist/memory/earlier.js +15 -0
  173. package/dist/memory/earlier.js.map +1 -0
  174. package/dist/memory/profile.js +93 -0
  175. package/dist/memory/profile.js.map +1 -0
  176. package/dist/memory/rewind.js +262 -0
  177. package/dist/memory/rewind.js.map +1 -0
  178. package/dist/memory/session.js +42 -10
  179. package/dist/memory/session.js.map +1 -1
  180. package/dist/memory/sessionMemory.js +48 -13
  181. package/dist/memory/sessionMemory.js.map +1 -1
  182. package/dist/memory/sessionMemoryCompact.js +1 -1
  183. package/dist/memory/sessionMemoryCompact.js.map +1 -1
  184. package/dist/memory/sessionTitle.js +50 -0
  185. package/dist/memory/sessionTitle.js.map +1 -0
  186. package/dist/memory/store.js +42 -1
  187. package/dist/memory/store.js.map +1 -1
  188. package/dist/memory/types.js.map +1 -1
  189. package/dist/tools/askUser.js +14 -0
  190. package/dist/tools/askUser.js.map +1 -1
  191. package/dist/tools/backgroundShells.js +208 -5
  192. package/dist/tools/backgroundShells.js.map +1 -1
  193. package/dist/tools/browser.js +176 -0
  194. package/dist/tools/browser.js.map +1 -0
  195. package/dist/tools/cdp.js +165 -0
  196. package/dist/tools/cdp.js.map +1 -0
  197. package/dist/tools/checkpoints.js +208 -5
  198. package/dist/tools/checkpoints.js.map +1 -1
  199. package/dist/tools/deferredNative.js +2 -0
  200. package/dist/tools/deferredNative.js.map +1 -1
  201. package/dist/tools/exitPlan.js +4 -0
  202. package/dist/tools/exitPlan.js.map +1 -1
  203. package/dist/tools/hiddenDesktop.js +273 -0
  204. package/dist/tools/hiddenDesktop.js.map +1 -0
  205. package/dist/tools/listeningPorts.js +134 -0
  206. package/dist/tools/listeningPorts.js.map +1 -0
  207. package/dist/tools/mcpSearch.js +8 -0
  208. package/dist/tools/mcpSearch.js.map +1 -1
  209. package/dist/tools/mindweaveStatus.js +1 -1
  210. package/dist/tools/mindweaveStatus.js.map +1 -1
  211. package/dist/tools/registry.js +3 -0
  212. package/dist/tools/registry.js.map +1 -1
  213. package/dist/tools/runCommand.js +107 -6
  214. package/dist/tools/runCommand.js.map +1 -1
  215. package/dist/tools/screenshot.js +4 -6
  216. package/dist/tools/screenshot.js.map +1 -1
  217. package/dist/tools/screenshotWin.js +26 -9
  218. package/dist/tools/screenshotWin.js.map +1 -1
  219. package/dist/tools/stateCheckpoint.js +128 -0
  220. package/dist/tools/stateCheckpoint.js.map +1 -0
  221. package/dist/tools/todo.js +6 -0
  222. package/dist/tools/todo.js.map +1 -1
  223. package/dist/tools/ui.js +1295 -0
  224. package/dist/tools/ui.js.map +1 -0
  225. package/dist/tools/uiHide.js +356 -0
  226. package/dist/tools/uiHide.js.map +1 -0
  227. package/dist/tools/uiPage.js +861 -0
  228. package/dist/tools/uiPage.js.map +1 -0
  229. package/dist/tools/uiWin.js +506 -0
  230. package/dist/tools/uiWin.js.map +1 -0
  231. package/dist/tools/webFetch.js +32 -25
  232. package/dist/tools/webFetch.js.map +1 -1
  233. package/dist/tools/webSearch.js +12 -0
  234. package/dist/tools/webSearch.js.map +1 -1
  235. package/package.json +78 -78
@@ -17,7 +17,21 @@ import { fail, failQuietly } from "./results.js";
17
17
  import { defaultOpenRewrite } from "./openDefault.js";
18
18
  import { composeFileOutput, createOutputFile, removeOutputFile, tailOf } from "./commandOutput.js";
19
19
  import { stripNativeStderrNoise } from "./nativeStderr.js";
20
+ import { hiddenDesktopName, launcherPath, VIRTUAL_DISPLAY_ARGS, wantsHiddenDesktop } from "./hiddenDesktop.js";
20
21
  const IS_WINDOWS = process.platform === "win32";
22
+ /**
23
+ * How long a command that starts an app or a server is watched, inside the call that starts
24
+ * it, before the model is told how it went. A window usually opens, and a port conflict or a
25
+ * missing script usually fails, within a couple of seconds; four covers both without making a
26
+ * launch feel slow. Read on every call so a test can change it, and 0 turns the wait off.
27
+ */
28
+ export function readyWindowMs() {
29
+ const raw = process.env.MINDWEAVE_READY_WINDOW_MS;
30
+ if (raw == null || raw.trim() === "")
31
+ return 4_000;
32
+ const v = Number(raw);
33
+ return Number.isFinite(v) && v >= 0 ? v : 4_000;
34
+ }
21
35
  const DEFAULT_TIMEOUT_MS = 120_000; // 2 minutes
22
36
  const MAX_TIMEOUT_MS = 600_000; // 10 minutes
23
37
  /**
@@ -54,6 +68,7 @@ export function commandShellLabel() {
54
68
  export const runCommand = {
55
69
  name: "run_command",
56
70
  readOnly: false,
71
+ liveRow: true,
57
72
  // Two claims in the previous version of this description were false, and both were
58
73
  // the kind a model obeys without being able to check. It promised that a backgrounded
59
74
  // command would report when it finished, which is true only for notify:'on_finish'
@@ -120,6 +135,13 @@ export const runCommand = {
120
135
  "closing their own app is not something to act on. 'never': you're told nothing at all. " +
121
136
  "Say which; guessing from the command name gets it wrong for anything unusual.",
122
137
  },
138
+ hidden: {
139
+ type: "boolean",
140
+ description: "Windows, and Linux with xvfb installed: start what this command opens on a hidden desktop, where its windows never " +
141
+ "appear on the user's screen but can still be tested with the ui tool. Automatic when the " +
142
+ "command (or the package script it runs) has the ui tool's debugging-port flags. Pass true " +
143
+ "for any other app you start only to test it; pass false when the user asked to see the app.",
144
+ },
123
145
  },
124
146
  },
125
147
  async execute(args, ctx, call) {
@@ -232,7 +254,25 @@ export const runCommand = {
232
254
  const background = args.run_in_background === true;
233
255
  const watch = !background && !looksReadOnly(command);
234
256
  const before = watch ? await snapshotBeforeCommand(ctx) : undefined;
235
- const result = await runShell(command, ctx, timeout, background, shell, declared, call);
257
+ // An app started to be tested goes where the user cannot see it (hiddenDesktop.ts).
258
+ // If that cannot be done it is not started at all: the promise is that it never
259
+ // appears on the user's screen, and starting it in plain sight would break that.
260
+ let launcher;
261
+ if (wantsHiddenDesktop(command, ctx.cwd, typeof args.hidden === "boolean" ? args.hidden : undefined)) {
262
+ try {
263
+ launcher = await launcherPath();
264
+ }
265
+ catch (error) {
266
+ return fail(`Could not start this where the user cannot see it (${error instanceof Error ? error.message : String(error)}). ` +
267
+ `To start it on the user's screen instead, run it again with hidden: false.`);
268
+ }
269
+ }
270
+ const result = await runShell(command, ctx, timeout, background, shell, declared, call, launcher);
271
+ if (launcher) {
272
+ result.output =
273
+ `${result.output}\n\nStarted on a hidden desktop: its windows never appear on the user's screen, and the ui ` +
274
+ `tool still reaches them. If the user wants to see the app, stop it and start it again with hidden: false.`;
275
+ }
236
276
  // Told in the OUTPUT, where the model reads it, because it changes what the model may
237
277
  // say afterwards: it asked for one browser and a different one opened. Reporting a
238
278
  // page as "checked in Edge" when Edge never ran is the failure this closes.
@@ -252,8 +292,9 @@ export const runCommand = {
252
292
  /** How long a command runs before it starts reporting. Almost everything finishes inside
253
293
  * this, and a row that flashed a tail and then settled would be motion for its own sake. */
254
294
  const PROGRESS_AFTER_MS = 2000;
255
- /** How often the tail is resent while it keeps running. */
256
- const PROGRESS_POLL_MS = 1000;
295
+ /** How often the tail is resent while it keeps running: four times a second, so output scrolls through
296
+ * the row instead of arriving as a new block once a second. */
297
+ const PROGRESS_POLL_MS = 250;
257
298
  /** Lines of tail shown while a command is still going. */
258
299
  const PROGRESS_LINES = 6;
259
300
  /** How much of the file a progress glance reads. A few lines of any real output fit in
@@ -296,7 +337,7 @@ export function neverBackground(command) {
296
337
  const base = first.replace(/^.*[\\/]/, "").toLowerCase();
297
338
  return base === "sleep" || base === "start-sleep";
298
339
  }
299
- async function runShell(command, ctx, timeoutMs, background, shell, declaredNotify, call) {
340
+ async function runShell(command, ctx, timeoutMs, background, shell, declaredNotify, call, hiddenLauncher) {
300
341
  // How long the command took, for the row's outcome. Taken here rather than around the
301
342
  // spawn so it covers what the user actually waited through.
302
343
  const startedAt = Date.now();
@@ -315,7 +356,13 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
315
356
  // its output streams. Nothing this process does can then block the command: it writes
316
357
  // to a descriptor, not into a pipe somebody has to keep draining.
317
358
  const outFile = await createOutputFile();
318
- const child = spawnManaged(bin, [...args, wrapped], {
359
+ // On the hidden desktop the launcher starts the shell there and passes the rest of its
360
+ // command line through untouched, so the shell sees exactly what it would have.
361
+ const child = spawnManaged(hiddenLauncher ?? bin, hiddenLauncher
362
+ ? process.platform === "win32"
363
+ ? [hiddenDesktopName(), bin, ...args, wrapped]
364
+ : [...VIRTUAL_DISPLAY_ARGS, bin, ...args, wrapped]
365
+ : [...args, wrapped], {
319
366
  cwd: ctx.cwd,
320
367
  // stdin stays a pipe so an interactive prompt sees a closed stream and gives up
321
368
  // rather than waiting; stdout and stderr are the SAME descriptor, so the two
@@ -363,6 +410,20 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
363
410
  // silent: no output in `shells`, "(no output)" on every note, and a watchdog that
364
411
  // could never see the prompt it exists to catch.
365
412
  const info = mgr.adopt(child, { command, cwd: ctx.cwd, outputPath: outFile.path, cwdFile, tempFile, notify });
413
+ // An app or a server: see how its first moments go before answering, so the model writes
414
+ // ONE message that knows the outcome instead of "starting" now and "running" ten seconds
415
+ // later. A finite task keeps the old hand-off, because its result is the point and it
416
+ // arrives on its own.
417
+ const windowMs = notify === "on_failure" ? readyWindowMs() : 0;
418
+ if (windowMs > 0) {
419
+ const settled = await mgr.settle(info.id, windowMs, ctx.abortSignal);
420
+ // Esc during the wait cancels the launch, the same as before it started: an app the user
421
+ // believes they stopped must not be left running.
422
+ if (settled?.outcome === "aborted")
423
+ mgr.kill(info.id, "system");
424
+ if (settled)
425
+ return settledResult(settled, command, info.id, windowMs);
426
+ }
366
427
  return backgroundedResult(info.id, command, `Started in the background as shell #${info.id}`, notify);
367
428
  }
368
429
  return new Promise((resolve) => {
@@ -528,6 +589,41 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
528
589
  });
529
590
  });
530
591
  }
592
+ /**
593
+ * The result for an app or server that was watched through its first moments (see `settle`).
594
+ *
595
+ * "Up" says only what is known: the process was still alive when the watch ended. It does not say a
596
+ * window is visible or a page loads, and it tells the model not to claim that. Failing inside the
597
+ * window is a failed tool call, with the output that says why, so the model can fix it in the same
598
+ * turn instead of being woken for it later.
599
+ */
600
+ function settledResult(s, command, id, windowMs) {
601
+ const secs = Math.max(1, Math.round(windowMs / 1000));
602
+ if (s.outcome === "aborted") {
603
+ return { output: "Interrupted while starting.", isError: true, summary: `interrupted \`${clip(command)}\`` };
604
+ }
605
+ const tail = s.output.trim() ? `Output so far:\n${s.output.trim()}` : "It has printed nothing so far.";
606
+ if (s.outcome === "ended") {
607
+ const how = s.info.signal ? `was stopped (${s.info.signal})` : `exited with code ${s.info.exitCode ?? "unknown"}`;
608
+ return {
609
+ output: `\`${clip(command)}\` ${how} inside its first ${secs}s, so it never came up. Nothing is running.\n\n${tail}\n\n` +
610
+ `Fix the cause and start it again if the task needs it running.`,
611
+ isError: true,
612
+ summary: `stopped at start · ${s.info.signal ?? `exit ${s.info.exitCode ?? "?"}`}`,
613
+ };
614
+ }
615
+ const port = s.info.listening?.length ? s.info.listening : s.info.port !== undefined ? [s.info.port] : [];
616
+ const where = port.length ? `, listening on port ${port.join(", ")}` : "";
617
+ return {
618
+ output: `Started as shell #${id} and still running after ${secs}s${where}.\n\n${tail}\n\n` +
619
+ `Tell the user in ONE short line that it is running, and nothing more: running only means the process ` +
620
+ `started, so do not describe what it shows or say a change is visible unless you have looked. Then STOP ` +
621
+ `(end your turn). You will not be told when it stops, because the user closing their own app is not an ` +
622
+ `event to act on, so never restart it on your own. Use shells({id: ${id}}) to inspect it and ` +
623
+ `kill_shell(${id}) to stop it.`,
624
+ summary: `Running as shell #${id}`,
625
+ };
626
+ }
531
627
  /**
532
628
  * The result returned when a command is (or becomes) a background shell.
533
629
  *
@@ -765,7 +861,12 @@ keptPath) {
765
861
  // Only for a command that RAN to a conclusion. A run killed on a timeout has whatever
766
862
  // its runner had printed by then, and summarising a partial log as a result would put a
767
863
  // confident set of numbers under a command nobody let finish.
768
- const testRun = timedOut || signal !== null ? undefined : parseTestRun(body);
864
+ // A run that counted no failures is not a green row when the COMMAND failed: the tests can
865
+ // pass and something chained after them (a typecheck, a build) still exit non-zero, and a
866
+ // row reading "✓ 14 passed" over a red dot hid exactly that. Falling through shows the
867
+ // real output and the exit code instead.
868
+ const parsedRun = timedOut || signal !== null ? undefined : parseTestRun(body);
869
+ const testRun = parsedRun && failed && parsedRun.failed === 0 ? undefined : parsedRun;
769
870
  return {
770
871
  output: parts.join("\n"),
771
872
  isError: failed,
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/tools/runCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/tools/runCommand.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,8 @@
7
7
  * it properly, and the same applies to a layout that is subtly wrong, a chart
8
8
  * with no data, or a dialog nobody expected.
9
9
  *
10
- * CAPTURE ONLY. There is no clicking, typing, or moving anything, and that is a
11
- * scope decision rather than a missing feature. Seeing closes the verification
12
- * loop; acting is a different product with a far larger risk surface, and it does
13
- * not belong in a small core.
10
+ * CAPTURE ONLY. Pressing buttons and typing into the window is `ui` (ui.ts), which
11
+ * ends every action with one of these pictures; this tool stays the plain look.
14
12
  *
15
13
  * ## Privacy is the design, not a footnote
16
14
  *
@@ -164,8 +162,8 @@ export const screenshot = {
164
162
  "the focused window rather than guessing its title. " +
165
163
  "It photographs whatever that window is showing, so call it when looking will " +
166
164
  "genuinely tell you something, not as a routine check. " +
167
- "Windows only, one window at a time — the whole screen is never captured, and " +
168
- "nothing can be clicked or typed.",
165
+ "Windows only, one window at a time — the whole screen is never captured. " +
166
+ "To press buttons, switch views or type into the app, use `ui` instead.",
169
167
  parameters: {
170
168
  type: "object",
171
169
  additionalProperties: false,
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../src/tools/screenshot.ts"],"names":[],"mappings":"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"}
@@ -40,9 +40,10 @@ import { spawn } from "node:child_process";
40
40
  import { mkdtemp, writeFile } from "node:fs/promises";
41
41
  import { tmpdir } from "node:os";
42
42
  import { join } from "node:path";
43
+ import { DESK_CS, HIDDEN_MARK, hiddenDesktopName, windowArgs } from "./hiddenDesktop.js";
43
44
  const PS_TIMEOUT_MS = 20_000;
44
45
  const SCRIPT = String.raw `
45
- param([string]$Mode = "list", [string]$Handle = "", [string]$Out = "")
46
+ param([string]$Mode = "list", [string]$Handle = "", [string]$Out = "", [string]$Desktop = "", [string]$Hidden = "")
46
47
  $ErrorActionPreference = "Stop"
47
48
  Add-Type -AssemblyName System.Drawing
48
49
 
@@ -110,7 +111,12 @@ public static class MwCapture {
110
111
  return GetWindowRect(h, out r);
111
112
  }
112
113
 
113
- public static List<string> List() {
114
+ // The hidden desktop's windows are marked, so a capture is sent back there.
115
+ public static string ListOn(string desk) {
116
+ return MwDesk.On(desk, () => string.Join("\n", List("${HIDDEN_MARK}").ToArray()));
117
+ }
118
+
119
+ public static List<string> List(string mark) {
114
120
  var found = new List<string>();
115
121
  IntPtr fg = GetForegroundWindow();
116
122
  EnumWindows(delegate(IntPtr h, IntPtr l) {
@@ -138,13 +144,19 @@ public static class MwCapture {
138
144
  }
139
145
  // The leading marker is how the caller knows which window the user is
140
146
  // actually looking at, so it can name it when asking permission.
141
- found.Add((h == fg ? "*" : "-") + h.ToInt64().ToString() + "\t" + title);
147
+ found.Add((h == fg && mark.Length == 0 ? "*" : "-") + mark + h.ToInt64().ToString() + "\t" + title);
142
148
  return true;
143
149
  }, IntPtr.Zero);
144
150
  return found;
145
151
  }
146
152
 
147
- public static string Capture(IntPtr h, string path) {
153
+ public static string CaptureOn(string desk, IntPtr h, string path) {
154
+ return MwDesk.On(desk, () => Capture(h, path, string.IsNullOrEmpty(desk)));
155
+ }
156
+
157
+ // screen: whether a blank PrintWindow may fall back to copying the screen. Never for a
158
+ // window on the hidden desktop: the screen is the USER's, and that window is not on it.
159
+ public static string Capture(IntPtr h, string path, bool screen) {
148
160
  RECT r;
149
161
  if (!Bounds(h, out r)) return "ERR could not measure the window";
150
162
  int w = r.Right - r.Left, ht = r.Bottom - r.Top;
@@ -157,6 +169,7 @@ public static class MwCapture {
157
169
  g.ReleaseHdc(hdc);
158
170
  }
159
171
  if (!drew || Blank(bmp)) {
172
+ if (!screen) return "ERR the window drew nothing to capture";
160
173
  using (var g = Graphics.FromImage(bmp)) {
161
174
  g.CopyFromScreen(r.Left, r.Top, 0, 0, new Size(w, ht));
162
175
  }
@@ -175,20 +188,23 @@ public static class MwCapture {
175
188
  && b.GetPixel(b.Width - 2, b.Height - 2).A == 0;
176
189
  }
177
190
  }
191
+ ${DESK_CS}
178
192
  "@
179
193
 
180
194
  # Before any measurement, or every rectangle is in the wrong coordinate space.
181
195
  [MwCapture]::Dpi() | Out-Null
182
196
 
183
197
  if ($Mode -eq "list") {
184
- [MwCapture]::List() | ForEach-Object { Write-Output $_ }
198
+ [MwCapture]::List("") | ForEach-Object { Write-Output $_ }
199
+ # The windows of apps started for testing, which are never on the screen.
200
+ if ($Hidden -and [MwDesk]::Exists($Hidden)) { Write-Output ([MwCapture]::ListOn($Hidden)) }
185
201
  exit 0
186
202
  }
187
203
 
188
204
  if ($Mode -eq "capture") {
189
205
  $h = if ($Handle -eq "foreground") { [MwCapture]::GetForegroundWindow() } else { [IntPtr][Int64]$Handle }
190
206
  if ($h -eq [IntPtr]::Zero) { Write-Output "ERR no such window"; exit 1 }
191
- $r = [MwCapture]::Capture($h, $Out)
207
+ $r = [MwCapture]::CaptureOn($Desktop, $h, $Out)
192
208
  Write-Output $r
193
209
  if ($r.StartsWith("ERR")) { exit 1 }
194
210
  exit 0
@@ -254,7 +270,7 @@ export function parseWindowList(stdout) {
254
270
  continue;
255
271
  const marked = line.slice(0, tab).trim();
256
272
  const title = line.slice(tab + 1).trim();
257
- const match = /^([*-])(\d+)$/.exec(marked);
273
+ const match = new RegExp(`^([*-])(${HIDDEN_MARK}?\\d+)$`).exec(marked);
258
274
  if (!match || !title)
259
275
  continue;
260
276
  windows.push({ handle: match[2], title, foreground: match[1] === "*" });
@@ -267,11 +283,12 @@ export function parseWindowList(stdout) {
267
283
  * title (a custom title bar) kept and labelled by its process rather than dropped.
268
284
  */
269
285
  export async function listWindows(signal) {
270
- return parseWindowList(await runScript(["-Mode", "list"], signal));
286
+ return parseWindowList(await runScript(["-Mode", "list", "-Hidden", hiddenDesktopName()], signal));
271
287
  }
272
288
  /** Capture one window to `outPath`. `handle` may be the literal "foreground". */
273
289
  export async function captureWindow(handle, outPath, signal) {
274
- const out = await runScript(["-Mode", "capture", "-Handle", handle, "-Out", outPath], signal);
290
+ const target = windowArgs(handle);
291
+ const out = await runScript(["-Mode", "capture", "-Handle", target.handle, "-Out", outPath, ...target.desktop], signal);
275
292
  const match = /OK\s+(\d+)\s+(\d+)/.exec(out);
276
293
  if (!match)
277
294
  throw new Error(firstLine(out) || "the capture produced no image");
@@ -1 +1 @@
1
- {"version":3,"file":"screenshotWin.js","sourceRoot":"","sources":["../../src/tools/screenshotWin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenshotWin.js","sourceRoot":"","sources":["../../src/tools/screenshotWin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * stateCheckpoint.ts — what the agent saves about itself goes into the undo net too.
3
+ *
4
+ * Memories, rules, skills, protected paths and MCP servers are all files, but the tools
5
+ * that write them (save_memory, governor, skill, mcp_server) write through their own
6
+ * helpers rather than the edit tools, so none of it was checkpointed: `/undo` and a
7
+ * rewind put the project back and left behind a rule, a memory or a server added by the
8
+ * very turns being taken back.
9
+ *
10
+ * So those tools are wrapped rather than rewritten: the files they could touch are read
11
+ * before the call and again after, and whatever changed is handed to the checkpoints
12
+ * exactly as an edit would be. From there the existing machinery does the rest,
13
+ * including leaving alone anything the user has changed since.
14
+ */
15
+ import { promises as fs } from "node:fs";
16
+ import { join } from "node:path";
17
+ import { projectDir, stateRoot } from "../memory/store.js";
18
+ import { memoryDir, MEMORY_INDEX } from "../memory/autoMemory.js";
19
+ import { globalConfigPath, projectConfigPath } from "../mcp/config.js";
20
+ /** The tools that write the agent's own state. */
21
+ const STATE_TOOLS = new Set(["save_memory", "governor", "skill", "mcp_server"]);
22
+ /** The permission lists of one scope, by file name. */
23
+ const PERMISSION_FILES = ["forbidden.md", "forbidden-commands.md", "forbidden-mcp-tools.md", "sentinel-allow.md"];
24
+ /** Whether a tool writes agent state that needs snapshotting around it. */
25
+ export function writesAgentState(toolName) {
26
+ return STATE_TOOLS.has(toolName);
27
+ }
28
+ /** The project root the governance tools write under (see governorTools' projectRoot). */
29
+ function rootOf(ctx) {
30
+ return ctx.governance?.forbidden.root ?? ctx.cwd;
31
+ }
32
+ async function filesUnder(dir, depth) {
33
+ let entries;
34
+ try {
35
+ entries = await fs.readdir(dir, { withFileTypes: true });
36
+ }
37
+ catch {
38
+ return [];
39
+ }
40
+ const out = [];
41
+ for (const e of entries) {
42
+ const path = join(dir, e.name);
43
+ if (e.isFile())
44
+ out.push(path);
45
+ else if (e.isDirectory() && depth > 0)
46
+ out.push(...(await filesUnder(path, depth - 1)));
47
+ }
48
+ return out;
49
+ }
50
+ /** Every file these tools can write, as it exists right now. */
51
+ async function candidates(ctx) {
52
+ const root = rootOf(ctx);
53
+ const project = projectDir(root);
54
+ const nested = await Promise.all([
55
+ filesUnder(join(project, "rules"), 0),
56
+ filesUnder(join(project, "skills"), 2),
57
+ filesUnder(memoryDir(root), 0),
58
+ ]);
59
+ return [
60
+ ...nested.flat(),
61
+ ...PERMISSION_FILES.map((f) => join(project, f)),
62
+ ...PERMISSION_FILES.map((f) => join(stateRoot(), f)),
63
+ projectConfigPath(root),
64
+ globalConfigPath(),
65
+ ];
66
+ }
67
+ async function readOrNull(path) {
68
+ try {
69
+ return await fs.readFile(path, "utf8");
70
+ }
71
+ catch {
72
+ return null;
73
+ }
74
+ }
75
+ /** Read everything a state tool could change, before it runs. */
76
+ export async function snapshotAgentState(ctx) {
77
+ const paths = await candidates(ctx);
78
+ const values = await Promise.all(paths.map(readOrNull));
79
+ return new Map(paths.map((p, i) => [p, values[i]]));
80
+ }
81
+ /**
82
+ * After the tool ran: hand every file it created, changed or deleted to the checkpoints,
83
+ * with what it was before. A file that appeared is recorded as "did not exist", so undo
84
+ * removes it; one that vanished is recorded as deleted, so undo puts it back.
85
+ */
86
+ export async function recordAgentStateChanges(ctx, before) {
87
+ const cp = ctx.checkpoints;
88
+ if (!cp)
89
+ return;
90
+ const paths = new Set([...before.keys(), ...(await candidates(ctx))]);
91
+ for (const path of paths) {
92
+ const was = before.get(path) ?? null;
93
+ const now = await readOrNull(path);
94
+ if (was !== now)
95
+ cp.backup(path, was, now);
96
+ }
97
+ }
98
+ const norm = (p) => p.replace(/\\/g, "/").toLowerCase();
99
+ /** Which agent state a path belongs to, or null for an ordinary project file. Every file
100
+ * in those places counts as agent state, the memory index and a skill's extra files too. */
101
+ export function stateKindOf(path, root) {
102
+ const project = projectDir(root);
103
+ const p = norm(path);
104
+ if (p === norm(projectConfigPath(root)) || p === norm(globalConfigPath()))
105
+ return "mcp";
106
+ if (p.startsWith(norm(memoryDir(root)) + "/"))
107
+ return "memory";
108
+ if (p.startsWith(norm(join(project, "rules")) + "/"))
109
+ return "rule";
110
+ if (p.startsWith(norm(join(project, "skills")) + "/"))
111
+ return "skill";
112
+ const name = p.split("/").pop() ?? "";
113
+ if (PERMISSION_FILES.includes(name) && (p.startsWith(norm(project) + "/") || p.startsWith(norm(stateRoot()) + "/")))
114
+ return "permission";
115
+ return null;
116
+ }
117
+ /** Whether this state file is one ITEM worth counting ("1 memory"), rather than an index
118
+ * or a skill's supporting file that changed along with it. */
119
+ export function isStateItem(path, root) {
120
+ const kind = stateKindOf(path, root);
121
+ const name = norm(path).split("/").pop() ?? "";
122
+ if (kind === "memory")
123
+ return name !== MEMORY_INDEX.toLowerCase();
124
+ if (kind === "skill")
125
+ return name === "skill.md";
126
+ return kind !== null;
127
+ }
128
+ //# sourceMappingURL=stateCheckpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stateCheckpoint.js","sourceRoot":"","sources":["../../src/tools/stateCheckpoint.ts"],"names":[],"mappings":"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"}