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.
- package/README.md +119 -11
- package/dist/api.d.ts +47 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +248 -22
- package/dist/api.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -0
- package/dist/cli.js.map +1 -1
- package/dist/errors.d.ts +93 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +166 -7
- package/dist/errors.js.map +1 -1
- package/dist/format.d.ts +25 -0
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +31 -2
- package/dist/format.js.map +1 -1
- package/dist/http.d.ts +42 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +379 -3
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/paths.d.ts +10 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +15 -5
- package/dist/paths.js.map +1 -1
- package/dist/secret-errors.d.ts +59 -0
- package/dist/secret-errors.d.ts.map +1 -0
- package/dist/secret-errors.js +199 -0
- package/dist/secret-errors.js.map +1 -0
- package/dist/secret-store.d.ts +115 -0
- package/dist/secret-store.d.ts.map +1 -0
- package/dist/secret-store.js +105 -0
- package/dist/secret-store.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/session.d.ts +6 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +1 -1
- package/dist/session.js.map +1 -1
- package/dist/tool-filters.d.ts +1 -1
- package/dist/tool-filters.d.ts.map +1 -1
- package/dist/tool-filters.js +9 -1
- package/dist/tool-filters.js.map +1 -1
- package/dist/tools/computers.d.ts.map +1 -1
- package/dist/tools/computers.js +11 -10
- package/dist/tools/computers.js.map +1 -1
- package/dist/tools/guest.d.ts.map +1 -1
- package/dist/tools/guest.js +134 -20
- package/dist/tools/guest.js.map +1 -1
- package/dist/tools/input.d.ts +2 -0
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +31 -5
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/secrets.d.ts +33 -13
- package/dist/tools/secrets.d.ts.map +1 -1
- package/dist/tools/secrets.js +259 -15
- package/dist/tools/secrets.js.map +1 -1
- package/dist/tools/snapshots.d.ts.map +1 -1
- package/dist/tools/snapshots.js +9 -3
- package/dist/tools/snapshots.js.map +1 -1
- package/dist/tools/webhooks.js +1 -1
- package/dist/tools/webhooks.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/computers.js
CHANGED
|
@@ -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:
|
|
214
|
-
stop: 'Shut a computer down: the guest is asked, and given time to do it.
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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":"
|
|
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"}
|
package/dist/tools/guest.js
CHANGED
|
@@ -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')
|
|
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
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
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
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
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;
|