mindweave 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/README.md +26 -43
  2. package/dist/alternator/chassis/lsp.js +67 -0
  3. package/dist/alternator/chassis/lsp.js.map +1 -1
  4. package/dist/cli/App.js +1211 -100
  5. package/dist/cli/App.js.map +1 -1
  6. package/dist/cli/altScreen.js +80 -10
  7. package/dist/cli/altScreen.js.map +1 -1
  8. package/dist/cli/analytics.js +83 -0
  9. package/dist/cli/analytics.js.map +1 -0
  10. package/dist/cli/appIdentity.js +54 -0
  11. package/dist/cli/appIdentity.js.map +1 -0
  12. package/dist/cli/attachments.js +27 -3
  13. package/dist/cli/attachments.js.map +1 -1
  14. package/dist/cli/blockHeights.js +58 -0
  15. package/dist/cli/blockHeights.js.map +1 -0
  16. package/dist/cli/caretPark.js +94 -0
  17. package/dist/cli/caretPark.js.map +1 -0
  18. package/dist/cli/clipboard.js +68 -0
  19. package/dist/cli/clipboard.js.map +1 -0
  20. package/dist/cli/commandLabel.js +19 -2
  21. package/dist/cli/commandLabel.js.map +1 -1
  22. package/dist/cli/commands.js +2 -0
  23. package/dist/cli/commands.js.map +1 -1
  24. package/dist/cli/components/BlockView.js +1 -1
  25. package/dist/cli/components/BlockView.js.map +1 -1
  26. package/dist/cli/components/KeyManager.js +12 -6
  27. package/dist/cli/components/KeyManager.js.map +1 -1
  28. package/dist/cli/components/Picker.js +26 -7
  29. package/dist/cli/components/Picker.js.map +1 -1
  30. package/dist/cli/components/PromptInput.js +300 -74
  31. package/dist/cli/components/PromptInput.js.map +1 -1
  32. package/dist/cli/components/TipLine.js +33 -0
  33. package/dist/cli/components/TipLine.js.map +1 -0
  34. package/dist/cli/components/ToolLine.js +30 -3
  35. package/dist/cli/components/ToolLine.js.map +1 -1
  36. package/dist/cli/dropHandles.js +76 -0
  37. package/dist/cli/dropHandles.js.map +1 -0
  38. package/dist/cli/exitCursor.js +56 -0
  39. package/dist/cli/exitCursor.js.map +1 -0
  40. package/dist/cli/framebuffer/overlay.js +42 -0
  41. package/dist/cli/framebuffer/overlay.js.map +1 -0
  42. package/dist/cli/framebuffer/paint.js +8 -1
  43. package/dist/cli/framebuffer/paint.js.map +1 -1
  44. package/dist/cli/framebuffer/parse.js +54 -4
  45. package/dist/cli/framebuffer/parse.js.map +1 -1
  46. package/dist/cli/framebuffer/writer.js +357 -6
  47. package/dist/cli/framebuffer/writer.js.map +1 -1
  48. package/dist/cli/groupReveal.js +29 -3
  49. package/dist/cli/groupReveal.js.map +1 -1
  50. package/dist/cli/inputView.js +45 -0
  51. package/dist/cli/inputView.js.map +1 -1
  52. package/dist/cli/livePad.js +53 -0
  53. package/dist/cli/livePad.js.map +1 -0
  54. package/dist/cli/memoryTuning.js +31 -0
  55. package/dist/cli/memoryTuning.js.map +1 -0
  56. package/dist/cli/messageQueue.js +76 -7
  57. package/dist/cli/messageQueue.js.map +1 -1
  58. package/dist/cli/mouse.js +40 -7
  59. package/dist/cli/mouse.js.map +1 -1
  60. package/dist/cli/quietConsole.js +50 -0
  61. package/dist/cli/quietConsole.js.map +1 -0
  62. package/dist/cli/screenMode.js +118 -0
  63. package/dist/cli/screenMode.js.map +1 -0
  64. package/dist/cli/screenShell.js +67 -0
  65. package/dist/cli/screenShell.js.map +1 -0
  66. package/dist/cli/screenStore.js +46 -0
  67. package/dist/cli/screenStore.js.map +1 -0
  68. package/dist/cli/scrollPill.js +101 -0
  69. package/dist/cli/scrollPill.js.map +1 -0
  70. package/dist/cli/selection.js +130 -0
  71. package/dist/cli/selection.js.map +1 -0
  72. package/dist/cli/startupFill.js +48 -0
  73. package/dist/cli/startupFill.js.map +1 -0
  74. package/dist/cli/terminalRestore.js +1 -1
  75. package/dist/cli/terminalRestore.js.map +1 -1
  76. package/dist/cli/toolDisplay.js +11 -2
  77. package/dist/cli/toolDisplay.js.map +1 -1
  78. package/dist/cli/toolItems.js +1 -0
  79. package/dist/cli/toolItems.js.map +1 -1
  80. package/dist/cli/transcript.js +54 -3
  81. package/dist/cli/transcript.js.map +1 -1
  82. package/dist/cli/wordEdit.js +95 -0
  83. package/dist/cli/wordEdit.js.map +1 -0
  84. package/dist/drivers/openai/manifest.js +4 -1
  85. package/dist/drivers/openai/manifest.js.map +1 -1
  86. package/dist/dynamo/engine.js +126 -20
  87. package/dist/dynamo/engine.js.map +1 -1
  88. package/dist/index.js +42 -3
  89. package/dist/index.js.map +1 -1
  90. package/dist/memory/pastedText.js +37 -0
  91. package/dist/memory/pastedText.js.map +1 -0
  92. package/dist/memory/presence.js +47 -0
  93. package/dist/memory/presence.js.map +1 -1
  94. package/dist/memory/session.js +78 -4
  95. package/dist/memory/session.js.map +1 -1
  96. package/dist/memory/store.js +22 -1
  97. package/dist/memory/store.js.map +1 -1
  98. package/dist/memory/types.js.map +1 -1
  99. package/dist/tools/backgroundShells.js +105 -18
  100. package/dist/tools/backgroundShells.js.map +1 -1
  101. package/dist/tools/commandOutput.js +207 -0
  102. package/dist/tools/commandOutput.js.map +1 -0
  103. package/dist/tools/detail.js +2 -2
  104. package/dist/tools/detail.js.map +1 -1
  105. package/dist/tools/openDefault.js +150 -0
  106. package/dist/tools/openDefault.js.map +1 -0
  107. package/dist/tools/outputShape.js +31 -6
  108. package/dist/tools/outputShape.js.map +1 -1
  109. package/dist/tools/pathList.js +32 -0
  110. package/dist/tools/pathList.js.map +1 -0
  111. package/dist/tools/readFile.js +3 -15
  112. package/dist/tools/readFile.js.map +1 -1
  113. package/dist/tools/registry.js +3 -1
  114. package/dist/tools/registry.js.map +1 -1
  115. package/dist/tools/runCommand.js +154 -58
  116. package/dist/tools/runCommand.js.map +1 -1
  117. package/dist/tools/screenshot.js +35 -3
  118. package/dist/tools/screenshot.js.map +1 -1
  119. package/dist/tools/viewImage.js +88 -0
  120. package/dist/tools/viewImage.js.map +1 -0
  121. package/dist/tools/writeFile.js +9 -1
  122. package/dist/tools/writeFile.js.map +1 -1
  123. package/package.json +2 -2
@@ -2,7 +2,6 @@ import { randomBytes } from "node:crypto";
2
2
  import { promises as fs, writeFileSync } from "node:fs";
3
3
  import { tmpdir } from "node:os";
4
4
  import { join } from "node:path";
5
- import { StringDecoder } from "node:string_decoder";
6
5
  import { catastrophicCommandReason, sensitiveCommandReason } from "./guard.js";
7
6
  import { forbiddenCommandReason, forbiddenCommandPatternReason } from "../governor/forbidden.js";
8
7
  import { requestForbiddenLift } from "./approval.js";
@@ -15,6 +14,8 @@ import { parseTestRun, testDetail } from "./testSummary.js";
15
14
  import { powershellLintReason, powershellParseError, powershellReservedAssignmentReason } from "./shellLint.js";
16
15
  import { findRunningDuplicate, findRecentUserClose, guessNotifyPolicy } from "./backgroundShells.js";
17
16
  import { fail, failQuietly } from "./results.js";
17
+ import { defaultOpenRewrite } from "./openDefault.js";
18
+ import { composeFileOutput, createOutputFile, removeOutputFile, tailOf } from "./commandOutput.js";
18
19
  const IS_WINDOWS = process.platform === "win32";
19
20
  const DEFAULT_TIMEOUT_MS = 120_000; // 2 minutes
20
21
  const MAX_TIMEOUT_MS = 600_000; // 10 minutes
@@ -75,7 +76,12 @@ export const runCommand = {
75
76
  `spent for nothing. ` +
76
77
  `Write commands for ${commandShellLabel()} (see the shell section of the system prompt)` +
77
78
  `${IS_WINDOWS ? "; or pass shell:'cmd' to run in cmd.exe instead (for && / || chaining or cmd-only tools)" : ""}. ` +
78
- `Prefer Mindweave's read/edit/search tools over shelling out.`,
79
+ `Prefer Mindweave's read/edit/search tools over shelling out. ` +
80
+ `To open a file or a URL for the user, hand it to the system and let it choose the ` +
81
+ `app: ${IS_WINDOWS ? `'Start-Process \"<path or url>\"' with NO application named` : "'open' (macOS) or 'xdg-open' (Linux)"}. ` +
82
+ `Never name a browser or a viewer yourself — naming one launches an app the user may ` +
83
+ `not use and does not want opened, instead of the default they have chosen. ` +
84
+ `To LOOK at an image file, use view_image; do not open it in anything.`,
79
85
  parameters: {
80
86
  type: "object",
81
87
  additionalProperties: false,
@@ -115,10 +121,17 @@ export const runCommand = {
115
121
  },
116
122
  },
117
123
  },
118
- async execute(args, ctx) {
119
- const command = typeof args.command === "string" ? args.command.trim() : "";
120
- if (!command)
124
+ async execute(args, ctx, call) {
125
+ const requested = typeof args.command === "string" ? args.command.trim() : "";
126
+ if (!requested)
121
127
  return failQuietly("`command` is required.");
128
+ // Naming a browser opens an application the user did not choose, beside the one they
129
+ // are already using. Rewritten here rather than asked for in the description, because
130
+ // the description already asked and the next run named Edge anyway — a rule the model
131
+ // has to remember is a rule it drops under load. Automation (a browser with flags) is
132
+ // left alone; see openDefault.ts.
133
+ const redirected = defaultOpenRewrite(requested);
134
+ const command = redirected ? redirected.command : requested;
122
135
  // A shell can change files in ways the checkpoint net never sees (a formatter, a
123
136
  // codegen step, a `git checkout`). Flag the turn so /undo says what it did NOT
124
137
  // cover instead of implying the whole turn was rolled back.
@@ -218,7 +231,16 @@ export const runCommand = {
218
231
  const background = args.run_in_background === true;
219
232
  const watch = !background && !looksReadOnly(command);
220
233
  const before = watch ? await snapshotBeforeCommand(ctx) : undefined;
221
- const result = await runShell(command, ctx, timeout, background, shell, declared);
234
+ const result = await runShell(command, ctx, timeout, background, shell, declared, call);
235
+ // Told in the OUTPUT, where the model reads it, because it changes what the model may
236
+ // say afterwards: it asked for one browser and a different one opened. Reporting a
237
+ // page as "checked in Edge" when Edge never ran is the failure this closes.
238
+ if (redirected) {
239
+ result.output =
240
+ `${result.output}\n\nNote: that command named ${redirected.browser}, so the page was opened ` +
241
+ `with the user's DEFAULT browser instead. You do not know which browser that is — do not ` +
242
+ `name one when you describe what happened.`;
243
+ }
222
244
  if (before && before.size > 0) {
223
245
  // Never let bookkeeping fail a command that already ran and succeeded.
224
246
  await captureAfterCommand(ctx, before).catch(() => undefined);
@@ -226,7 +248,54 @@ export const runCommand = {
226
248
  return result;
227
249
  },
228
250
  };
229
- async function runShell(command, ctx, timeoutMs, background, shell, declaredNotify) {
251
+ /** How long a command runs before it starts reporting. Almost everything finishes inside
252
+ * this, and a row that flashed a tail and then settled would be motion for its own sake. */
253
+ const PROGRESS_AFTER_MS = 2000;
254
+ /** How often the tail is resent while it keeps running. */
255
+ const PROGRESS_POLL_MS = 1000;
256
+ /** Lines of tail shown while a command is still going. */
257
+ const PROGRESS_LINES = 6;
258
+ /** How much of the file a progress glance reads. A few lines of any real output fit in
259
+ * this, and it is a bounded read against a file that may be gigabytes. */
260
+ const PROGRESS_TAIL_BYTES = 8_192;
261
+ /**
262
+ * The last few lines of what a running command has printed (pure).
263
+ *
264
+ * Trailing blank lines are dropped first: a build that ends its output with a newline
265
+ * would otherwise report a tail of empty rows and look like it had stopped saying
266
+ * anything. Long lines are clipped rather than wrapped, because this is a progress
267
+ * glance and a wrapped 400-column line would push the rest of it off screen.
268
+ */
269
+ export function progressTail(output, lines = PROGRESS_LINES, width = 200) {
270
+ const rows = output.split("\n");
271
+ while (rows.length > 0 && rows[rows.length - 1].trim() === "")
272
+ rows.pop();
273
+ return rows
274
+ .slice(-lines)
275
+ .map((r) => (r.length > width ? r.slice(0, width - 1) + "…" : r))
276
+ .join("\n");
277
+ }
278
+ /**
279
+ * Commands that must never be moved to the background when they run long (pure).
280
+ *
281
+ * A pure delay IS the work. Backgrounding one at the timeout keeps a process alive that
282
+ * exists only to finish and hands back a shell id nobody wants — the wait was the point,
283
+ * and it is now neither waited on nor cancelled. Killing it is the honest outcome.
284
+ *
285
+ * Matched on the first word, after any leading environment assignments, so a wrapped or
286
+ * chained command is judged on what it actually starts with.
287
+ */
288
+ export function neverBackground(command) {
289
+ const first = command
290
+ .trim()
291
+ .split(/\s+/)
292
+ .find((word) => !/^[A-Za-z_][A-Za-z0-9_]*=/.test(word));
293
+ if (!first)
294
+ return false;
295
+ const base = first.replace(/^.*[\\/]/, "").toLowerCase();
296
+ return base === "sleep" || base === "start-sleep";
297
+ }
298
+ async function runShell(command, ctx, timeoutMs, background, shell, declaredNotify, call) {
230
299
  // How long the command took, for the row's outcome. Taken here rather than around the
231
300
  // spawn so it covers what the user actually waited through.
232
301
  const startedAt = Date.now();
@@ -241,8 +310,16 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
241
310
  // command that never left the directory.
242
311
  const cwdBefore = await canonicalRoot(ctx.cwd);
243
312
  const { bin, args, wrapped, tempFile } = buildInvocation(command, cwdFile, shell);
313
+ // The output file, opened BEFORE the spawn so the child can be handed it as both of
314
+ // its output streams. Nothing this process does can then block the command: it writes
315
+ // to a descriptor, not into a pipe somebody has to keep draining.
316
+ const outFile = await createOutputFile();
244
317
  const child = spawnManaged(bin, [...args, wrapped], {
245
318
  cwd: ctx.cwd,
319
+ // stdin stays a pipe so an interactive prompt sees a closed stream and gives up
320
+ // rather than waiting; stdout and stderr are the SAME descriptor, so the two
321
+ // interleave in the order they were written instead of being reassembled after.
322
+ stdio: ["pipe", outFile.handle.fd, outFile.handle.fd],
246
323
  env: {
247
324
  ...process.env,
248
325
  GIT_EDITOR: "true", // never drop into an interactive editor and hang
@@ -250,6 +327,10 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
250
327
  PAGER: "cat",
251
328
  },
252
329
  });
330
+ // Our copy of the descriptor. The child dup'd it at spawn, so closing here leaves it
331
+ // writing happily and means the file is released the moment the command ends rather
332
+ // than whenever this process happens to exit.
333
+ await outFile.handle.close().catch(() => { });
253
334
  const mgr = ctx.backgroundShells;
254
335
  // Explicit background: hand off immediately, don't wait for it.
255
336
  //
@@ -275,53 +356,74 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
275
356
  return backgroundedResult(info.id, command, `Started in the background as shell #${info.id}`, notify);
276
357
  }
277
358
  return new Promise((resolve) => {
278
- let head = "";
279
- let tail = "";
280
- let dropped = 0;
281
359
  let timedOut = false;
282
360
  let settled = false;
283
- // Decode ACROSS chunks. A chunk boundary can fall inside a multi-byte UTF-8
284
- // sequence, and decoding each Buffer on its own turns that character into a
285
- // replacement glyph — which shows up in any non-English output and in the box
286
- // drawing most test runners use. The decoder holds the partial bytes back until
287
- // the rest arrives.
288
- const decoder = new StringDecoder("utf8");
289
- const collect = (chunk) => {
290
- let rest = decoder.write(chunk);
291
- if (!rest)
292
- return;
293
- if (head.length < HEAD_CHARS) {
294
- const room = HEAD_CHARS - head.length;
295
- head += rest.slice(0, room);
296
- rest = rest.slice(room);
297
- }
298
- if (!rest)
299
- return;
300
- tail += rest;
301
- if (tail.length > TAIL_CHARS) {
302
- dropped += tail.length - TAIL_CHARS;
303
- tail = tail.slice(tail.length - TAIL_CHARS);
304
- }
361
+ // Nothing collects output here any more: the child writes it straight into a file it
362
+ // was given as stdout and stderr, and this process never sees the bytes. See
363
+ // commandOutput.ts for why — a pipe stops the child dead the moment nothing is
364
+ // draining it, and something always eventually is not.
365
+ //
366
+ // The head and the tail are read back from that file once the command ends. Both
367
+ // ends, weighted toward the tail: a build puts its banner at the start and its
368
+ // diagnosis at the very end, so keeping only the first bytes throws away the half
369
+ // that says what happened.
370
+ const collected = () => composeFileOutput(outFile.path, HEAD_CHARS, TAIL_CHARS);
371
+ // ── saying what it is doing while it does it ──────────────────────────────
372
+ //
373
+ // A command that runs for minutes used to show nothing at all until it finished. The
374
+ // row itself was not even on screen (the reveal held it for its own result), so a
375
+ // release build looked exactly like a hung agent — reported as one, and it was not.
376
+ //
377
+ // The LAST few lines, resent whole each time rather than as increments: the receiver
378
+ // replaces what it is showing, so a dropped update costs nothing and neither side
379
+ // keeps state the other has to agree with.
380
+ //
381
+ // Nothing is sent for the first couple of seconds. Almost every command finishes
382
+ // inside that, and a row that flashed a tail and then settled would be motion for its
383
+ // own sake on the calm case that makes up most of them.
384
+ let progressTimer = null;
385
+ let lastSent = "";
386
+ const stopProgress = () => {
387
+ if (progressTimer)
388
+ clearInterval(progressTimer);
389
+ progressTimer = null;
305
390
  };
306
- /** Everything kept, with the gap named where it happened. */
307
- const collected = () => composeOutput(head, tail, dropped);
308
- child.stdout?.on("data", collect);
309
- child.stderr?.on("data", collect);
391
+ const startProgress = setTimeout(() => {
392
+ if (settled || !call)
393
+ return;
394
+ const send = async () => {
395
+ if (settled)
396
+ return stopProgress();
397
+ const text = progressTail(await tailOf(outFile.path, PROGRESS_TAIL_BYTES));
398
+ // Only when it CHANGED. A quiet command would otherwise repaint the same rows
399
+ // once a second for as long as it ran.
400
+ if (text === lastSent)
401
+ return;
402
+ lastSent = text;
403
+ call.progress(text);
404
+ };
405
+ send();
406
+ progressTimer = setInterval(send, PROGRESS_POLL_MS);
407
+ progressTimer.unref?.();
408
+ }, PROGRESS_AFTER_MS);
409
+ startProgress.unref?.();
310
410
  const timer = setTimeout(() => {
311
411
  if (settled)
312
412
  return;
313
413
  // Soft timeout: move the LIVE process to the background (preferred), so a long
314
414
  // test/build keeps running instead of being lost. With no manager (bare tests)
315
415
  // fall back to the old behavior — kill the tree.
316
- if (mgr) {
416
+ if (mgr && !neverBackground(command)) {
317
417
  settled = true;
418
+ clearTimeout(startProgress);
419
+ stopProgress();
318
420
  detachAbort();
319
- child.stdout?.off("data", collect);
320
- child.stderr?.off("data", collect);
321
421
  // Auto-backgrounded after running too long inline. Somebody was waiting on this,
322
422
  // so its completion is the point unless the caller said otherwise.
323
423
  const notify = declaredNotify ?? "on_finish";
324
- const info = mgr.adopt(child, { command, cwd: ctx.cwd, initial: collected(), cwdFile, tempFile, notify });
424
+ // The manager takes over the same file the child is already writing into, so
425
+ // nothing is copied and no output can be lost in the handover.
426
+ const info = mgr.adopt(child, { command, cwd: ctx.cwd, outputPath: outFile.path, cwdFile, tempFile, notify });
325
427
  resolve(backgroundedResult(info.id, command, `Still running after ${Math.round(timeoutMs / 1000)}s — moved to the background as shell #${info.id}`, notify));
326
428
  }
327
429
  else {
@@ -336,18 +438,19 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
336
438
  // would stay blocked on this promise forever.
337
439
  const signal = ctx.abortSignal;
338
440
  const detachAbort = () => signal?.removeEventListener("abort", onAbort);
339
- function onAbort() {
441
+ async function onAbort() {
340
442
  if (settled)
341
443
  return;
342
444
  settled = true;
343
445
  clearTimeout(timer);
344
- child.stdout?.off("data", collect);
345
- child.stderr?.off("data", collect);
446
+ clearTimeout(startProgress);
447
+ stopProgress();
346
448
  killTree(child.pid);
347
449
  void fs.rm(cwdFile, { force: true }).catch(() => { });
348
450
  if (tempFile)
349
451
  void fs.rm(tempFile, { force: true }).catch(() => { });
350
- const body = collected().trim();
452
+ const body = (await collected()).text.trim();
453
+ removeOutputFile(outFile.path);
351
454
  resolve({
352
455
  output: body ? `${body}\n\n[interrupted]` : "Command interrupted before it finished.",
353
456
  isError: true,
@@ -362,17 +465,23 @@ async function runShell(command, ctx, timeoutMs, background, shell, declaredNoti
362
465
  return;
363
466
  settled = true;
364
467
  clearTimeout(timer);
468
+ clearTimeout(startProgress);
469
+ stopProgress();
365
470
  detachAbort();
366
471
  await applyCwd(cwdFile, ctx);
367
472
  if (tempFile)
368
473
  await fs.rm(tempFile, { force: true }).catch(() => { });
369
- resolve(format(command, ctx, collected(), dropped > 0, timedOut, exitCode, signal, timeoutMs, shell, cwdBefore, Date.now() - startedAt, child.pid));
474
+ const out = await collected();
475
+ removeOutputFile(outFile.path);
476
+ resolve(format(command, ctx, out.text, out.dropped > 0, timedOut, exitCode, signal, timeoutMs, shell, cwdBefore, Date.now() - startedAt, child.pid));
370
477
  };
371
478
  child.on("error", (error) => {
372
479
  if (settled)
373
480
  return;
374
481
  settled = true;
375
482
  clearTimeout(timer);
483
+ clearTimeout(startProgress);
484
+ stopProgress();
376
485
  detachAbort();
377
486
  void fs.rm(cwdFile, { force: true }).catch(() => { });
378
487
  if (tempFile)
@@ -493,19 +602,6 @@ function buildInvocation(command, cwdFile, shell) {
493
602
  `exit $__ec`;
494
603
  return { bin: posixShell().bin, args: ["-c"], wrapped };
495
604
  }
496
- /**
497
- * Join the kept head and tail of a long output, naming the gap (pure).
498
- *
499
- * The marker sits WHERE the loss happened rather than at the end, so the model can
500
- * see that the two halves are not contiguous. A trailing "output truncated" note
501
- * after a head-only excerpt reads as "there was a bit more", which is exactly the
502
- * wrong impression when the missing part is the answer.
503
- */
504
- export function composeOutput(head, tail, dropped) {
505
- if (dropped <= 0)
506
- return head + tail;
507
- return `${head}\n… [${dropped.toLocaleString("en-US")} characters omitted from the middle] …\n${tail}`;
508
- }
509
605
  /**
510
606
  * The line appended to a command's output when it moved the shell (pure).
511
607
  *
@@ -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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"}
@@ -43,6 +43,17 @@ import { join } from "node:path";
43
43
  import { describeImage, isRejection } from "../memory/images.js";
44
44
  import { formatBytes } from "./webFetch.js";
45
45
  import { captureWindow, listWindows } from "./screenshotWin.js";
46
+ /**
47
+ * How long to wait for a NAMED window to appear before giving up.
48
+ *
49
+ * Sized for the gap between launching a GUI app and its window being drawn, which on a
50
+ * cold browser start is a second or two. Long enough to cover that, short enough that a
51
+ * genuinely absent window is reported quickly rather than hanging the turn.
52
+ */
53
+ const WINDOW_WAIT_MS = 5000;
54
+ /** How often to re-list while waiting. Each list is a PowerShell round trip, so this is
55
+ * a compromise between noticing quickly and not spawning a process ten times a second. */
56
+ const WINDOW_POLL_MS = 400;
46
57
  /** How many titles to name when a match fails, so the model can retry precisely. */
47
58
  const MAX_LISTED = 12;
48
59
  /**
@@ -175,16 +186,37 @@ export const screenshot = {
175
186
  "in the main session, or verify another way.", "cannot ask to screenshot");
176
187
  }
177
188
  let windows;
189
+ let pick;
178
190
  try {
179
- windows = await listWindows(ctx.abortSignal);
191
+ // An app that was just launched has not drawn its window yet. Starting a browser
192
+ // and asking for it in the same breath is the ordinary case, not an edge case:
193
+ // the process returns immediately and the window appears a second or two later.
194
+ // Listing once and failing made that look like "the window does not exist", and
195
+ // the answer to it — capturing some OTHER window instead — is worse than waiting,
196
+ // because a picture of the wrong window can still be described as if it were the
197
+ // right one. So a named window is waited for.
198
+ //
199
+ // Only when a query was given. With no query the target is whatever has focus,
200
+ // which is true immediately and cannot be waited into existence.
201
+ const deadline = Date.now() + (query ? WINDOW_WAIT_MS : 0);
202
+ for (;;) {
203
+ windows = await listWindows(ctx.abortSignal);
204
+ pick = pickWindow(query, windows);
205
+ if (pick.kind !== "none" || Date.now() >= deadline)
206
+ break;
207
+ await new Promise((resolve) => setTimeout(resolve, WINDOW_POLL_MS));
208
+ }
180
209
  }
181
210
  catch (error) {
182
211
  return fail(`Could not list open windows: ${message(error)}`);
183
212
  }
184
- const pick = pickWindow(query, windows);
185
213
  if (pick.kind === "none") {
186
214
  return fail(query
187
- ? `No open window's title contains "${query}". ${listTitles(pick.candidates)}`
215
+ ? `No open window's title contains "${query}", after waiting ${Math.round(WINDOW_WAIT_MS / 1000)}s ` +
216
+ `for one to appear. ${listTitles(pick.candidates)}\n` +
217
+ `Do NOT capture a different window instead: a picture of something else cannot tell you ` +
218
+ `anything about "${query}", and reporting it as if it could is worse than not looking. ` +
219
+ `Either the app did not start, or its title differs from what you expected.`
188
220
  : `There is no window to capture. ${listTitles(pick.candidates)}`);
189
221
  }
190
222
  if (pick.kind === "ambiguous") {
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,oBAAoB,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;2FAC2F;AAC3F,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,oFAAoF;AACpF,MAAM,UAAU,GAAG,EAAE,CAAC;AAUtB;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,KAAyB,EAAE,OAAqB;IACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAElE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO,OAAO;YACZ,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE;YAChF,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG;QACZ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC7C,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC9E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,yEAAyE;YACzE,4DAA4D;YAC5D,EAAE;YACF,+EAA+E;YAC/E,gFAAgF;YAChF,+EAA+E;YAC/E,iFAAiF;YACjF,iCAAiC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjH,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,KAAyB,EAAE,IAAkB;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,gBAAgB,CAAC;IACrF,OAAO,CACL,IAAI,MAAM,SAAS,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,oBAAoB;QACxG,8FAA8F;QAC9F,8BAA8B,CAC/B,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,iCAAiC,CAAC;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7C,IAAI,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,OAAO,CAAC,CAAC;IACrD,OAAO,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,GAAiC;IAC7D,OAAO,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,IAAI;IACd,kFAAkF;IAClF,oFAAoF;IACpF,WAAW;IACX,QAAQ,EAAE,IAAI;IACd,WAAW,EACT,gFAAgF;QAChF,oFAAoF;QACpF,gEAAgE;QAChE,oFAAoF;QACpF,oCAAoC;QACpC,+EAA+E;QAC/E,wDAAwD;QACxD,+EAA+E;QAC/E,kCAAkC;IACpC,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,qEAAqE;oBACrE,6CAA6C;aAChD;SACF;KACF;IAED,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG;QACrB,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAErG,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,OAAO,OAAO,CACZ,qDAAqD,OAAO,CAAC,QAAQ,IAAI;gBACvE,uEAAuE,EACzE,yCAAyC,CAC1C,CAAC;QACJ,CAAC;QAED,gFAAgF;QAChF,gEAAgE;QAChE,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,OAAO,CACZ,8EAA8E;gBAC5E,8EAA8E;gBAC9E,6CAA6C,EAC/C,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QAED,IAAI,OAAqB,CAAC;QAC1B,IAAI,IAAgB,CAAC;QACrB,IAAI,CAAC;YACH,iFAAiF;YACjF,+EAA+E;YAC/E,gFAAgF;YAChF,gFAAgF;YAChF,kFAAkF;YAClF,iFAAiF;YACjF,8CAA8C;YAC9C,EAAE;YACF,+EAA+E;YAC/E,iEAAiE;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,SAAS,CAAC;gBACR,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC7C,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;oBAAE,MAAM;gBAC1D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,gCAAgC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO,IAAI,CACT,KAAK;gBACH,CAAC,CAAC,oCAAoC,KAAK,oBAAoB,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI;oBAChG,sBAAsB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI;oBACrD,yFAAyF;oBACzF,mBAAmB,KAAK,gEAAgE;oBACxF,4EAA4E;gBAChF,CAAC,CAAC,kCAAkC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CACpE,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO,IAAI,CACT,IAAI,KAAK,IAAI,kBAAkB,aAAa,IAAI,CAAC,UAAU,CAAC,MAAM,+BAA+B;gBAC/F,+CAA+C,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAC/E,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,oFAAoF;QACpF,0CAA0C;QAC1C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,CACtC,yBAAyB,MAAM,CAAC,KAAK,oCAAoC,EACzE,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAC1B,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,OAAO,CACZ,wCAAwC,MAAM,CAAC,KAAK,8BAA8B;oBAChF,4DAA4D,EAC9D,qBAAqB,CACtB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YACvE,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAEtC,4EAA4E;YAC5E,0EAA0E;YAC1E,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,WAAW,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC,aAAa,MAAM,CAAC,KAAK,+BAA+B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAExG,OAAO;gBACL,MAAM,EACJ,aAAa,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK;oBAC7D,kEAAkE;oBAClE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG;gBACvE,4EAA4E;gBAC5E,+EAA+E;gBAC/E,oEAAoE;gBACpE,MAAM,EAAE;oBACN,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,YAAY,WAAW,CAAC,KAAK,CAAC,EAAE;oBAC5D,aAAa,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;iBACrD,CAAC,IAAI,CAAC,IAAI,CAAC;gBACZ,MAAM,EAAE,CAAC,GAAG,CAAC;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,sBAAsB,MAAM,CAAC,KAAK,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF,CAAC;AAEF,sEAAsE;AACtE,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,OAAO,OAAO,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC;AAC3C,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,2EAA2E;AAC3E,SAAS,OAAO,CAAC,MAAc,EAAE,OAAe;IAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACjF,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * viewImage.ts — look at an image file on disk.
3
+ *
4
+ * Without this there was no way for the model to see a picture it had not just captured:
5
+ * `read_file` refuses binaries, and `screenshot` can only photograph a window that is
6
+ * already open. So the model did the only thing left to it — opened the file in whatever
7
+ * viewer or browser the OS handed it, screenshotted that window, and left the window
8
+ * open. On a long task that is a new window every time, none of them closed.
9
+ *
10
+ * This opens nothing. The file is read, validated, and handed to the model as an image,
11
+ * with no process started and nothing appearing on the user's screen.
12
+ *
13
+ * The same validation a dropped attachment goes through (`memory/images.ts`), so the caps
14
+ * and the accepted formats are stated in one place rather than per producer. What happens
15
+ * when the running model CANNOT see images is core's decision, made once in the engine
16
+ * from a manifest fact: the image is named instead of sent, and the model is told plainly
17
+ * that it is being told rather than shown. A tool never asks which provider is running.
18
+ */
19
+ import { promises as fs } from "node:fs";
20
+ import { basename } from "node:path";
21
+ import { describeImage, isImage, isRejection, IMAGE_EXTS } from "../memory/images.js";
22
+ import { protectedPathReason } from "./guard.js";
23
+ import { relativize, resolvePath, touch } from "./paths.js";
24
+ import { fail } from "./results.js";
25
+ export const viewImage = {
26
+ name: "view_image",
27
+ // Reads a file and changes nothing, so it is safe to run beside other reads.
28
+ readOnly: true,
29
+ description: "Look at an image file on disk — a screenshot, a mockup, a diagram, a photo the user " +
30
+ "pointed you at. Pass `path` and the picture is handed to you directly. " +
31
+ "This is the ONLY way to look at an image file: never open one in a viewer or a " +
32
+ "browser to photograph it, and never use `screenshot` for a file that is already on " +
33
+ "disk. `screenshot` is for a window of a RUNNING app; this is for a file. " +
34
+ "PNG, JPEG, GIF and WebP.",
35
+ parameters: {
36
+ type: "object",
37
+ additionalProperties: false,
38
+ required: ["path"],
39
+ properties: {
40
+ path: {
41
+ type: "string",
42
+ description: "Path to the image file, absolute or relative to the working directory.",
43
+ },
44
+ },
45
+ },
46
+ async execute(args, ctx) {
47
+ const raw = typeof args["path"] === "string" ? args["path"].trim() : "";
48
+ if (!raw)
49
+ return fail("view_image needs a `path`.");
50
+ const path = resolvePath(ctx, raw);
51
+ const blocked = protectedPathReason(path);
52
+ if (blocked)
53
+ return fail(`Refusing to open ${raw}: it is ${blocked}.`);
54
+ // Checked BEFORE the file is touched, so a wrong extension gets an answer about the
55
+ // format rather than a not-found about a file that is right there.
56
+ if (!isImage(path)) {
57
+ return fail(`${raw} is not an image this can open. Readable formats: ${[...IMAGE_EXTS].sort().join(", ")}. ` +
58
+ `For a text file use read_file.`);
59
+ }
60
+ let stat;
61
+ try {
62
+ stat = await fs.stat(path);
63
+ }
64
+ catch {
65
+ return fail(`Image not found: ${raw}`);
66
+ }
67
+ if (stat.isDirectory())
68
+ return fail(`${raw} is a directory, not an image.`);
69
+ // Caps, dimension limits and the sendable-format check, shared with attachments.
70
+ const ref = await describeImage(path, stat.size);
71
+ if (isRejection(ref))
72
+ return fail(`Cannot open ${raw}: ${ref.reason}`);
73
+ // Records that this path was looked at, the same as a read, so the working set knows
74
+ // the file is in play rather than treating it as never touched.
75
+ touch(ctx, path);
76
+ const shown = relativize(ctx, path);
77
+ const size = ref.width && ref.height ? `${ref.width}x${ref.height}` : "image";
78
+ return {
79
+ output: `Opened ${shown} (${size}). The image follows this result — look at it and say ` +
80
+ `what you see.`,
81
+ summary: `viewed ${basename(path)} (${size})`,
82
+ images: [ref],
83
+ // The picture is the slow part, and it happens AFTER this returns.
84
+ awaitsModel: true,
85
+ };
86
+ },
87
+ };
88
+ //# sourceMappingURL=viewImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewImage.js","sourceRoot":"","sources":["../../src/tools/viewImage.ts"],"names":[],"mappings":"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"}