mandala-computer-mcp 0.5.0 → 0.6.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 (66) hide show
  1. package/README.md +119 -11
  2. package/dist/api.d.ts +47 -1
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +248 -22
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +17 -0
  8. package/dist/cli.js.map +1 -1
  9. package/dist/errors.d.ts +93 -2
  10. package/dist/errors.d.ts.map +1 -1
  11. package/dist/errors.js +166 -7
  12. package/dist/errors.js.map +1 -1
  13. package/dist/format.d.ts +25 -0
  14. package/dist/format.d.ts.map +1 -1
  15. package/dist/format.js +31 -2
  16. package/dist/format.js.map +1 -1
  17. package/dist/http.d.ts +42 -0
  18. package/dist/http.d.ts.map +1 -1
  19. package/dist/http.js +379 -3
  20. package/dist/http.js.map +1 -1
  21. package/dist/index.d.ts +4 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/paths.d.ts +10 -2
  26. package/dist/paths.d.ts.map +1 -1
  27. package/dist/paths.js +15 -5
  28. package/dist/paths.js.map +1 -1
  29. package/dist/secret-errors.d.ts +59 -0
  30. package/dist/secret-errors.d.ts.map +1 -0
  31. package/dist/secret-errors.js +199 -0
  32. package/dist/secret-errors.js.map +1 -0
  33. package/dist/secret-store.d.ts +115 -0
  34. package/dist/secret-store.d.ts.map +1 -0
  35. package/dist/secret-store.js +105 -0
  36. package/dist/secret-store.js.map +1 -0
  37. package/dist/server.d.ts +1 -1
  38. package/dist/server.js +1 -1
  39. package/dist/session.d.ts +6 -1
  40. package/dist/session.d.ts.map +1 -1
  41. package/dist/session.js +1 -1
  42. package/dist/session.js.map +1 -1
  43. package/dist/tool-filters.d.ts +1 -1
  44. package/dist/tool-filters.d.ts.map +1 -1
  45. package/dist/tool-filters.js +9 -1
  46. package/dist/tool-filters.js.map +1 -1
  47. package/dist/tools/computers.d.ts.map +1 -1
  48. package/dist/tools/computers.js +11 -10
  49. package/dist/tools/computers.js.map +1 -1
  50. package/dist/tools/guest.d.ts.map +1 -1
  51. package/dist/tools/guest.js +134 -20
  52. package/dist/tools/guest.js.map +1 -1
  53. package/dist/tools/input.d.ts +2 -0
  54. package/dist/tools/input.d.ts.map +1 -1
  55. package/dist/tools/input.js +31 -5
  56. package/dist/tools/input.js.map +1 -1
  57. package/dist/tools/secrets.d.ts +33 -13
  58. package/dist/tools/secrets.d.ts.map +1 -1
  59. package/dist/tools/secrets.js +259 -15
  60. package/dist/tools/secrets.js.map +1 -1
  61. package/dist/tools/snapshots.d.ts.map +1 -1
  62. package/dist/tools/snapshots.js +9 -3
  63. package/dist/tools/snapshots.js.map +1 -1
  64. package/dist/tools/webhooks.js +1 -1
  65. package/dist/tools/webhooks.js.map +1 -1
  66. package/package.json +1 -1
@@ -210,15 +210,15 @@ const POWER_NEXT = {
210
210
  restart: ' wait_for_computer with until="guest" is what says when the desktop is back.',
211
211
  };
212
212
  const POWER_DESCRIPTIONS = {
213
- start: 'Boot a computer, or resume a suspended one — a resume restores the saved session, same processes and windows, in about a second.',
214
- stop: 'Shut a computer down: the guest is asked, and given time to do it. Discards a saved session if there is one. The disk is kept. `force` pulls the power instead, for a guest that will not come down on its own.',
215
- suspend: "Write the guest's RAM to disk and give the host its memory back. A pause, not a stop: start_computer resumes the same session.",
216
- restart: 'Reset the computer. Refused while a session is suspended, since it would have to guess whether you meant to resume or discard it.',
213
+ start: "Boot a computer, or resume a suspended one — a resume restores the saved session, same processes and windows, in about a second. A resumed guest's clock is set to the current time within a few seconds, best effort through its guest agent (one whose agent does not answer keeps the old time until NTP corrects it), and the desktop panel's clock can show the old time for up to a minute after that.",
214
+ stop: 'Shut a computer down: the guest is asked, and given time to do it. On a suspended computer this discards the saved session, and the next start is a fresh boot. The disk is kept. `force` pulls the power instead, for a guest that will not come down on its own.',
215
+ suspend: "Write the guest's RAM to disk and give the host its memory back. A pause, not a stop: start_computer resumes the same session. A computer that holds secrets suspends only on a host that seals saved sessions (its memory is encrypted on the way to disk); elsewhere, and while its secrets are still being delivered, it is refused with 409. After a change to its secret bindings that dropped a secret or moved one to another revision while it ran, it cannot be suspended until it restarts, since its memory may still hold the old value.",
216
+ restart: 'Reset the computer, like the reset button — not a fresh boot, so a change that needs a new machine shape (a resize) needs a stop and a start instead. A suspended computer is refused with 409: start it to resume, or stop it to discard the session. A stopped computer with no secrets bound is started instead; one with secrets bound is refused with 409 while stopped (start it, which delivers them) or while its secrets are being delivered, and otherwise gets its secrets again as it comes back up. A restart issues new desktop credentials and closes open desktop connections, so a get_desktop_url link from before it stops working.',
217
217
  };
218
218
  export const registerComputers = (server, session, opts) => {
219
219
  server.registerTool('list_templates', {
220
220
  title: 'List templates',
221
- description: 'The base images a computer can be created from — name, OS, and the default CPU, RAM and disk each one implies.',
221
+ description: 'The base images a computer can be created from — name, OS, and the default CPU, RAM and disk each one implies. For the templates the platform publishes, `name` is what a create takes as `template`; for one you published yourself, pass its `ref` (namespace/name@version) — a short name is not resolved to your own templates and falls back to the default.',
222
222
  inputSchema: {},
223
223
  annotations: { readOnlyHint: true },
224
224
  }, (_args, extra) => guarded(async () => {
@@ -502,9 +502,10 @@ export const registerComputers = (server, session, opts) => {
502
502
  .number()
503
503
  .int()
504
504
  .min(0)
505
+ .max(10080)
505
506
  .nullable()
506
507
  .optional()
507
- .describe("Minutes untouched before the host suspends it. null follows the host's own window; send this on its own."),
508
+ .describe("Minutes untouched before the host suspends it, at most 10080 (a week). 0 disables idle suspend and pressure eviction, up to the plan's limit on computers that never suspend (a 402 beyond it). null returns it to the host's own window. Send this on its own."),
508
509
  },
509
510
  }, ({ computer_id, ...fields }, extra) => guarded(async () => {
510
511
  const id = session.resolve(computer_id);
@@ -1141,7 +1142,7 @@ export const registerComputers = (server, session, opts) => {
1141
1142
  template: z
1142
1143
  .string()
1143
1144
  .optional()
1144
- .describe('From list_templates, e.g. "base" for Linux/Xfce. Defaults to the platform default.'),
1145
+ .describe('From list_templates: the short name of a template the platform publishes, e.g. "base" for Linux/Xfce, or a pinned ref (namespace/name@version) — which a template you published must be named by. A short name the host lacks falls back to the default template; a ref that names nothing is refused. Defaults to base.'),
1145
1146
  template_transfer: z
1146
1147
  .string()
1147
1148
  .refine((value) => value.trim().length > 0, 'template_transfer must not be blank')
@@ -1158,11 +1159,11 @@ export const registerComputers = (server, session, opts) => {
1158
1159
  resolution: z
1159
1160
  .string()
1160
1161
  .optional()
1161
- .describe('WIDTHxHEIGHT or WIDTHxHEIGHTxDEPTH, 640x480 to 3840x2160, even numbers. Create-time only — the display is a QEMU property and there is no route that changes it later. Defaults to 1280x800x24.'),
1162
+ .describe('WIDTHxHEIGHT or WIDTHxHEIGHTxDEPTH, 640x480 to 3840x2160, even numbers, depth 16, 24 or 32 (24 when left out); anything else is refused. Create-time only — the display is a QEMU property and there is no route that changes it later. Defaults to 1280x800x24.'),
1162
1163
  start: z.boolean().optional().describe('Boot it immediately. True by default.'),
1163
1164
  secrets: secretBindingsSchema(false)
1164
1165
  .optional()
1165
- .describe(`Secrets from the account to deliver into the desktop session each time the computer starts, each as an environment variable (\`env\`) or as a file under ${FILES_DIR} (\`file\`). Only ids and names are sent — never a value. Linux only, and only on a template whose image can receive them. get_computer_secrets and set_computer_secrets read and change them later.`),
1166
+ .describe(`Secrets from the account to deliver into the desktop session each time the computer starts, each as an environment variable (\`env\`) or as a file under ${FILES_DIR} (\`file\`). Only ids and names are sent — never a value. Secret ids come from list_secrets (create_secret stores a new one). Linux only, and only on a template whose image can receive them. A value replaced later reaches the running computer live when bound as a file, and as a variable on an image that supports it reaches new shells and exec with desktop: true. get_computer_secrets and set_computer_secrets read and change the bindings later.`),
1166
1167
  },
1167
1168
  annotations: { destructiveHint: false, openWorldHint: true },
1168
1169
  }, (args, extra) => guarded(async () => {
@@ -1237,7 +1238,7 @@ export const registerComputers = (server, session, opts) => {
1237
1238
  }));
1238
1239
  server.registerTool('clone_computer', {
1239
1240
  title: 'Clone a computer',
1240
- description: 'Copy a computer to a new one — the fork half of snapshot-and-fork. The copy inherits the resolution, because its disk carries a desktop laid out at that size.',
1241
+ description: 'Copy a computer\'s current disk to a new computer — the fork half of snapshot-and-fork. The source is untouched and must be stopped or suspended: a running source is refused with 409. The answer arrives as soon as the copy exists, reading status "building" while its disk is copied — wait for that to finish before starting it. The copy keeps the source\'s size and resolution (its disk carries a desktop laid out at that size), lands stopped, and has no secrets bound.',
1241
1242
  inputSchema: {
1242
1243
  ...idArg,
1243
1244
  name: z.string().optional().describe('A name for the copy.'),
@@ -1 +1 @@
1
- {"version":3,"file":"computers.js","sourceRoot":"","sources":["../../src/tools/computers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computers.js","sourceRoot":"","sources":["../../src/tools/computers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"guest.d.ts","sourceRoot":"","sources":["../../src/tools/guest.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA+K5C,eAAO,MAAM,aAAa,EAAE,SAulB3B,CAAC"}
1
+ {"version":3,"file":"guest.d.ts","sourceRoot":"","sources":["../../src/tools/guest.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgN5C,eAAO,MAAM,aAAa,EAAE,SAyrB3B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { ConflictError, GatewayTimeoutError, platformSaid, RangeNotSatisfiableError, } from '../errors.js';
2
+ import { ConflictError, CreateOnlyConflictError, FileExistsError, GatewayTimeoutError, platformSaid, RangeNotSatisfiableError, } from '../errors.js';
3
3
  import { apiErrorMessage, guarded, image, isInlineImage, json, MAX_INLINE_IMAGE_BYTES, refused, said, text, withErrorMetadata, } from '../format.js';
4
4
  import * as P from '../paths.js';
5
5
  import { retainIntent, synchronousResultId } from '../results.js';
@@ -36,6 +36,33 @@ const MAX_INLINE_BYTES = 256 * 1024;
36
36
  * body is cancelled rather than read.
37
37
  */
38
38
  const MAX_WINDOW_BYTES = MAX_INLINE_IMAGE_BYTES;
39
+ /**
40
+ * `no_wake` on a file transfer (OPL-5026): refuse rather than resume a
41
+ * computer that is not running. Sent as the one value the platform takes.
42
+ */
43
+ const noWakeArg = z
44
+ .boolean()
45
+ .default(false)
46
+ .describe('true: do not resume a computer that is not running — refuse instead (409), so nothing is resumed and nothing is charged for a resume. Use it to look at a suspended computer’s files only if it is already awake. false (the default) resumes a suspended computer to answer, which is charged.');
47
+ /**
48
+ * A 409 on a transfer sent with `no_wake`, read as the refusal it most likely is.
49
+ *
50
+ * The platform refuses a computer that is not running with a 409 that has, so
51
+ * far, carried no `reason` — a change under way gives it `unavailable`. Either
52
+ * way it means the same thing here, so both are answered alike; any other word
53
+ * is left to the ordinary refusal, which says what it means.
54
+ */
55
+ function noWakeRefusal(err, id, what) {
56
+ if (!(err instanceof ConflictError))
57
+ return undefined;
58
+ if (err instanceof FileExistsError)
59
+ return undefined;
60
+ if (err.reason !== undefined && err.reason !== 'unavailable')
61
+ return undefined;
62
+ return withErrorMetadata(refused(`${apiErrorMessage(err)} (HTTP ${err.status})\n\n${id} was not resumed, because no_wake was set: ` +
63
+ `most likely it is not running, and ${what}. start_computer wakes it (a resume is charged), ` +
64
+ 'or call again without no_wake to let this resume it.'), err);
65
+ }
39
66
  const absolutePath = (what) => z
40
67
  .string()
41
68
  .startsWith('/', `${what} must be an absolute path starting with /`)
@@ -175,12 +202,14 @@ export const registerGuest = (server, session) => {
175
202
  desktop: z
176
203
  .boolean()
177
204
  .default(false)
178
- .describe('Run inside the logged-in desktop session instead of as root with no display. Required for anything with a window: the guest agent has no DISPLAY, so a GUI app started without this cannot draw. Linux only.'),
205
+ .describe('Run inside the logged-in desktop session instead of as root with no display. Required for anything with a window: the guest agent has no DISPLAY, so a GUI app started without this cannot draw. Also the way to reach secrets bound to this computer as environment variables (set_computer_secrets): they live in the desktop session, and on an image that supports it a value replaced while the computer runs is seen by new desktop-session commands within seconds. Whether a plain root exec sees bound secrets depends on the platform version, so a command that needs one should use this. Linux only.'),
179
206
  background: z
180
207
  .boolean()
181
208
  .default(false)
182
209
  .describe('Return a handle immediately instead of waiting. Use for builds, installs, test suites and servers, then read output with exec_poll. To learn that it finished, wait_for_event with types ["process.exited"] and the pid this returns — the computer reports the exit, so waiting for it costs one call rather than an exec_poll loop. Strictly better than backgrounding with "&", which throws away the exit code and the output. A computer runs at most sixteen of these at once, and past that this is refused with a 409 saying how many are already running rather than queued. A slot is held until its command exits, which for a server is never, so the way out of that refusal is exec_kill on a pid an earlier exec returned — not another attempt.'),
183
- cwd: absolutePath('cwd').optional(),
210
+ cwd: absolutePath('cwd')
211
+ .optional()
212
+ .describe('Absolute path to run in. If it does not exist the command does not run, and exit_code is 127.'),
184
213
  env: z
185
214
  .record(z.string(), z.string())
186
215
  .optional()
@@ -353,15 +382,39 @@ export const registerGuest = (server, session) => {
353
382
  }));
354
383
  server.registerTool('window_action', {
355
384
  title: 'Act on a window',
356
- description: 'Focus, raise, minimize, maximize, unmaximize, close, move or resize one window. The reply is the window afterwards, not an acknowledgement — the window manager places the frame and applications snap to their own grid, so a move to 300,200 routinely lands at 305,229. Believe the response, not the request. Prefer focus over raise: raising without focusing gives a window that is visibly in front and silently not receiving keystrokes. A 504 is neither a refusal nor a report that nothing happened unless its structured response explicitly says the request was not dispatched: an absent or ambiguous explanation leaves the action possibly already applied. An uncertain outcome is not permission to repeat it — the next call is list_windows, which says what the desktop is now, not this one again. Least of all for close, which cannot be undone.',
385
+ description: 'Focus, raise, minimize, maximize, unmaximize, close, move or resize one window. The reply is the window afterwards, not an acknowledgement — the window manager places the frame and applications snap to their own grid, so a move to 300,200 routinely lands at 305,229. Believe the response, not the request. On a Wayland desktop a tiled window cannot be moved or resized — float it first — and an action the compositor refuses is a 400. Prefer focus over raise: raising without focusing gives a window that is visibly in front and silently not receiving keystrokes. A 504 is neither a refusal nor a report that nothing happened unless its structured response explicitly says the request was not dispatched: an absent or ambiguous explanation leaves the action possibly already applied. An uncertain outcome is not permission to repeat it — the next call is list_windows, which says what the desktop is now, not this one again. Least of all for close, which cannot be undone.',
357
386
  inputSchema: {
358
387
  ...idArg,
359
388
  window_id: z.string().describe('From list_windows, e.g. "0x2600003".'),
360
389
  action: z.enum(P.WINDOW_ACTIONS),
361
- x: z.number().int().optional().describe('For move.'),
362
- y: z.number().int().optional().describe('For move.'),
363
- width: z.number().int().optional().describe('For resize.'),
364
- height: z.number().int().optional().describe('For resize.'),
390
+ x: z
391
+ .number()
392
+ .int()
393
+ .min(-32768)
394
+ .max(32767)
395
+ .optional()
396
+ .describe('Required for move, with y: -32768 to 32767.'),
397
+ y: z
398
+ .number()
399
+ .int()
400
+ .min(-32768)
401
+ .max(32767)
402
+ .optional()
403
+ .describe('Required for move, with x: -32768 to 32767.'),
404
+ width: z
405
+ .number()
406
+ .int()
407
+ .min(1)
408
+ .max(32767)
409
+ .optional()
410
+ .describe('Required for resize, with height: 1 to 32767.'),
411
+ height: z
412
+ .number()
413
+ .int()
414
+ .min(1)
415
+ .max(32767)
416
+ .optional()
417
+ .describe('Required for resize, with width: 1 to 32767.'),
365
418
  },
366
419
  }, ({ computer_id, window_id, action, x, y, width, height }, extra) => guarded(async () => {
367
420
  const id = session.resolve(computer_id);
@@ -421,7 +474,7 @@ export const registerGuest = (server, session) => {
421
474
  }));
422
475
  server.registerTool('write_file', {
423
476
  title: 'Put a file into the guest',
424
- description: 'Write a file inside the computer. Paths must be absolute — the guest agent inherits whatever working directory it was started in, so a relative path resolves somewhere you did not name.',
477
+ description: 'Write a file inside the computer. Paths must be absolute — the guest agent inherits whatever working directory it was started in, so a relative path resolves somewhere you did not name. By default a file already at the path is replaced. Pass overwrite: false to create the file only if nothing is there: a path that is taken is refused and that attempt writes nothing — retrying does not change that. Incomplete contents are never published at the path, but a failure while publishing or answering can leave the COMPLETE file there: after any error, read the path before retrying or overwriting, since what is there may be your own upload. A refusal saying this computer\u2019s host cannot do a create-only write, and a 503 on one, mean nothing was sent — but neither means the path is free. overwrite: false is for Linux computers; a Windows computer refuses it. A suspended computer is resumed to take the write, which is charged, unless no_wake is set.',
425
478
  inputSchema: {
426
479
  ...idArg,
427
480
  path: absolutePath('path').describe('Absolute path inside the guest, e.g. /home/user/Desktop/notes.txt.'),
@@ -430,8 +483,13 @@ export const registerGuest = (server, session) => {
430
483
  .enum(['utf8', 'base64'])
431
484
  .default('utf8')
432
485
  .describe('base64 for anything that is not text.'),
486
+ overwrite: z
487
+ .boolean()
488
+ .default(true)
489
+ .describe('true (the default) replaces a file already at the path. false creates the file only if nothing is there, and refuses without writing anything when the path is taken.'),
490
+ no_wake: noWakeArg,
433
491
  },
434
- }, ({ computer_id, path, content, encoding }, extra) => guarded(async () => {
492
+ }, ({ computer_id, path, content, encoding, overwrite, no_wake }, extra) => guarded(async () => {
435
493
  const id = session.resolve(computer_id);
436
494
  // Node's base64 decoder is lenient: it drops characters outside the
437
495
  // alphabet and stops early on bad padding, without ever throwing. A
@@ -454,18 +512,68 @@ export const registerGuest = (server, session) => {
454
512
  return refused(`That content has an unpaired surrogate in it — half of a character, usually from a string cut through the middle of an emoji. It is not valid UTF-8, so ${path} would have been written with a replacement character where your text was, and reported as a success. Nothing was written. Send the whole character, cut the text on a character boundary, or send the exact bytes with encoding: "base64".`);
455
513
  }
456
514
  const bytes = new Uint8Array(Buffer.from(content, encoding === 'base64' ? 'base64' : 'utf8'));
457
- const res = await session.api.with(extra.signal).json('PUT', P.computerAction(id, 'files'),
458
- // The path is a query parameter, and the URL builder encodes it. Doing
459
- // that matters more than it looks: `+` decodes to a space and `&`
460
- // ends the parameter, so an unencoded path with punctuation in it
461
- // writes a DIFFERENT file and nothing reports that, because the
462
- // platform never sees what was meant.
463
- { query: { path }, raw: bytes });
515
+ let res;
516
+ try {
517
+ res = await session.api.with(extra.signal).json('PUT', P.computerAction(id, 'files'),
518
+ // The path is a query parameter, and the URL builder encodes it. Doing
519
+ // that matters more than it looks: `+` decodes to a space and `&`
520
+ // ends the parameter, so an unencoded path with punctuation in it
521
+ // writes a DIFFERENT file and nothing reports that, because the
522
+ // platform never sees what was meant.
523
+ //
524
+ // `overwrite` is sent only to ask for create-only (OPL-4994). Absent
525
+ // means replace on every platform version, so the default request
526
+ // is the one this tool always sent.
527
+ {
528
+ query: {
529
+ path,
530
+ ...(overwrite ? {} : { overwrite: 'false' }),
531
+ ...(no_wake ? { no_wake: '1' } : {}),
532
+ },
533
+ raw: bytes,
534
+ });
535
+ }
536
+ catch (err) {
537
+ // A create-only upload's reasonless 409 is CreateOnlyConflictError
538
+ // whether or not no_wake was sent, and claims nothing about the path
539
+ // or the computer's state — the same answer the Python SDK gives.
540
+ if (no_wake && !(err instanceof CreateOnlyConflictError)) {
541
+ const asleep = noWakeRefusal(err, id, `nothing was written to ${path}`);
542
+ if (asleep)
543
+ return asleep;
544
+ }
545
+ // Only THIS attempt is known to have written nothing. A create-only
546
+ // write whose earlier attempt lost its answer may have written the
547
+ // file itself, and the retry then meets its own file here — so the
548
+ // sentence must not tell a model to go elsewhere or overwrite blind.
549
+ if (err instanceof FileExistsError) {
550
+ return withErrorMetadata(refused(`${apiErrorMessage(err)}\n\nSomething is already at ${path}, and this attempt wrote ` +
551
+ 'nothing: the file there is untouched by it. This does not clear by waiting, so do not ' +
552
+ 'send the same call again. If an earlier attempt\u2019s outcome was unknown, the file may ' +
553
+ 'be yours: read it and compare before choosing another path or overwriting. To replace ' +
554
+ 'it on purpose, call write_file again with overwrite: true (or without overwrite).'), err);
555
+ }
556
+ // A create-only 409 with no usable reason — the body lost, empty, not
557
+ // the platform's JSON, or JSON without a string `reason`. The Api
558
+ // raises it as CreateOnlyConflictError so no caller resends it; the
559
+ // words here claim nothing about the path, nor that this attempt
560
+ // wrote nothing \u2014 without the platform's word, the 409 may come from
561
+ // a hop that had already forwarded the write. Not apiErrorMessage:
562
+ // the body's own text could say "already exists" without the
563
+ // platform's `exists` reason.
564
+ if (err instanceof CreateOnlyConflictError) {
565
+ return withErrorMetadata(refused(`${err.message} (HTTP ${err.status})\n\nThis create-only write to ${path} was refused ` +
566
+ 'as a conflict, reason unknown, and whether this attempt wrote anything is ' +
567
+ 'unconfirmed. Do not send the same call again: it was not said to clear by waiting. ' +
568
+ 'Read the path to see what is there before choosing another path or overwriting.'), err);
569
+ }
570
+ throw err;
571
+ }
464
572
  return said(`Wrote ${res.bytes ?? bytes.length} bytes to ${res.path ?? path}.`, res);
465
573
  }));
466
574
  server.registerTool('read_file', {
467
575
  title: 'Get a file out of the guest',
468
- description: 'Read a file from inside the computer. Text comes back as text and images come back as images; anything else comes back base64. A large file comes back a window at a time rather than filling the conversation: `offset` says where the window starts, and the note under a truncated read gives the exact offset to pass next. There is no size a file can be that makes it unreadable this way — a 2 GB log is pages, not a refusal — but a file you want whole is still better pushed out of the guest than carried through a conversation, and the note says how. This reaches the guest agent to do it, so a suspended computer is resumed to answer and that resume is charged — it can even come back 402. read_clipboard, by contrast, refuses a suspended computer rather than starting it.',
576
+ description: 'Read a file from inside the computer. Text comes back as text and images come back as images; anything else comes back base64. A large file comes back a window at a time rather than filling the conversation: `offset` says where the window starts, and the note under a truncated read gives the exact offset to pass next. There is no size a file can be that makes it unreadable this way — a 2 GB log is pages, not a refusal — but a file you want whole is still better pushed out of the guest than carried through a conversation, and the note says how. This reaches the guest agent to do it, so a suspended computer is resumed to answer and that resume is charged — it can even come back 402 — unless no_wake is set, which refuses instead. read_clipboard, by contrast, refuses a suspended computer rather than starting it.',
469
577
  inputSchema: {
470
578
  ...idArg,
471
579
  path: absolutePath('path'),
@@ -476,6 +584,7 @@ export const registerGuest = (server, session) => {
476
584
  .max(Number.MAX_SAFE_INTEGER)
477
585
  .default(0)
478
586
  .describe('Byte offset to start at. 0 is the beginning of the file. Each call returns a window from here, and the truncation note names the offset of the byte after the last one it returned — pass that to read on. Never assume a window covers what you asked for: read the offset out of the note rather than adding a fixed number.'),
587
+ no_wake: noWakeArg,
479
588
  },
480
589
  // Not readOnlyHint, for the reason cursor_position is not: the platform
481
590
  // marks `GET computers/:id/files` as spending, because reaching the guest
@@ -488,12 +597,12 @@ export const registerGuest = (server, session) => {
488
597
  // reading it twice — a host that gates retry-of-a-timed-out-call on
489
598
  // idempotentHint would refuse to retry a plain file read.
490
599
  annotations: { destructiveHint: false, idempotentHint: true },
491
- }, ({ computer_id, path, offset }, extra) => guarded(async () => {
600
+ }, ({ computer_id, path, offset, no_wake }, extra) => guarded(async () => {
492
601
  const id = session.resolve(computer_id);
493
602
  let file;
494
603
  try {
495
604
  file = await session.api.with(extra.signal).bytes('GET', P.computerAction(id, 'files'), {
496
- query: { path },
605
+ query: { path, ...(no_wake ? { no_wake: '1' } : {}) },
497
606
  // The window this tool asks the platform for, which is not the
498
607
  // same as the window it will return. It is the larger of the two
499
608
  // caps below — the most this tool could ever hand back — because
@@ -514,6 +623,11 @@ export const registerGuest = (server, session) => {
514
623
  catch (err) {
515
624
  if (err instanceof RangeNotSatisfiableError)
516
625
  return withErrorMetadata(pastEnd(path, offset, err.size), err);
626
+ if (no_wake) {
627
+ const asleep = noWakeRefusal(err, id, `nothing was read from ${path}`);
628
+ if (asleep)
629
+ return asleep;
630
+ }
517
631
  throw err;
518
632
  }
519
633
  const served = file.window;