mandala-computer-mcp 0.1.1 → 0.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 (72) hide show
  1. package/README.md +139 -24
  2. package/dist/api.d.ts +19 -6
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +355 -76
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli.d.ts.map +1 -1
  7. package/dist/cli.js +113 -8
  8. package/dist/cli.js.map +1 -1
  9. package/dist/errors.d.ts +100 -12
  10. package/dist/errors.d.ts.map +1 -1
  11. package/dist/errors.js +169 -29
  12. package/dist/errors.js.map +1 -1
  13. package/dist/events.d.ts +45 -4
  14. package/dist/events.d.ts.map +1 -1
  15. package/dist/events.js +422 -114
  16. package/dist/events.js.map +1 -1
  17. package/dist/format.d.ts +48 -0
  18. package/dist/format.d.ts.map +1 -1
  19. package/dist/format.js +111 -4
  20. package/dist/format.js.map +1 -1
  21. package/dist/http-body.d.ts +17 -0
  22. package/dist/http-body.d.ts.map +1 -0
  23. package/dist/http-body.js +48 -0
  24. package/dist/http-body.js.map +1 -0
  25. package/dist/http.d.ts.map +1 -1
  26. package/dist/http.js +177 -51
  27. package/dist/http.js.map +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/limits.d.ts +17 -0
  33. package/dist/limits.d.ts.map +1 -0
  34. package/dist/limits.js +17 -0
  35. package/dist/limits.js.map +1 -0
  36. package/dist/paths.d.ts +30 -20
  37. package/dist/paths.d.ts.map +1 -1
  38. package/dist/paths.js +89 -25
  39. package/dist/paths.js.map +1 -1
  40. package/dist/poll.d.ts +107 -0
  41. package/dist/poll.d.ts.map +1 -0
  42. package/dist/poll.js +233 -0
  43. package/dist/poll.js.map +1 -0
  44. package/dist/server.d.ts +1 -1
  45. package/dist/server.d.ts.map +1 -1
  46. package/dist/server.js +2 -1
  47. package/dist/server.js.map +1 -1
  48. package/dist/tools/agent.d.ts.map +1 -1
  49. package/dist/tools/agent.js +72 -5
  50. package/dist/tools/agent.js.map +1 -1
  51. package/dist/tools/computers.d.ts.map +1 -1
  52. package/dist/tools/computers.js +559 -233
  53. package/dist/tools/computers.js.map +1 -1
  54. package/dist/tools/events.d.ts.map +1 -1
  55. package/dist/tools/events.js +359 -69
  56. package/dist/tools/events.js.map +1 -1
  57. package/dist/tools/guest.d.ts.map +1 -1
  58. package/dist/tools/guest.js +234 -33
  59. package/dist/tools/guest.js.map +1 -1
  60. package/dist/tools/input.d.ts.map +1 -1
  61. package/dist/tools/input.js +92 -8
  62. package/dist/tools/input.js.map +1 -1
  63. package/dist/tools/snapshots.d.ts.map +1 -1
  64. package/dist/tools/snapshots.js +501 -33
  65. package/dist/tools/snapshots.js.map +1 -1
  66. package/dist/tools/templates.d.ts.map +1 -1
  67. package/dist/tools/templates.js +61 -26
  68. package/dist/tools/templates.js.map +1 -1
  69. package/dist/tools/webhooks.d.ts.map +1 -1
  70. package/dist/tools/webhooks.js +116 -17
  71. package/dist/tools/webhooks.js.map +1 -1
  72. package/package.json +3 -2
package/dist/paths.d.ts CHANGED
@@ -8,12 +8,12 @@
8
8
  * rather than a failure here.
9
9
  */
10
10
  export declare const TEMPLATES = "templates";
11
- /** The JSON Schema for a `mandala/v1` document (platform OPL-3568). */
11
+ /** The JSON Schema for a `mandala/v1` document (OPL-3568). */
12
12
  export declare const TEMPLATE_SCHEMA = "templates/schema";
13
13
  /** Check a document without publishing it. Side-effect free, and claims no ref. */
14
14
  export declare const TEMPLATE_VALIDATE = "templates/validate";
15
15
  /**
16
- * Every build this account has started (platform OPL-3791).
16
+ * Every build this account has started (OPL-3791).
17
17
  *
18
18
  * A collection, like {@link MOVES} and for the same reason: a build is a job
19
19
  * rather than a property of a computer, and it outlives the request that
@@ -44,7 +44,7 @@ export declare const USAGE = "usage";
44
44
  */
45
45
  export declare const RETENTION = "retention";
46
46
  /**
47
- * The account's webhook subscriptions (platform OPL-4300; OPL-4306 here).
47
+ * The account's webhook subscriptions (OPL-4300; OPL-4306 here).
48
48
  *
49
49
  * Account-scoped like {@link USAGE}: a subscription receives events from many
50
50
  * computers, so it belongs to the account and not to any of them. Answered by
@@ -64,7 +64,7 @@ export declare const execHandle: (id: string, pid: number) => string;
64
64
  /** One window on the desktop (OPL-3583). The id is `0x2600003`-shaped. */
65
65
  export declare const window_: (id: string, windowId: string) => string;
66
66
  /**
67
- * One published template, by the two halves of its ref (platform OPL-3789).
67
+ * One published template, by the two halves of its ref (OPL-3789).
68
68
  *
69
69
  * Two segments and not one, because that is the shape of the route: the
70
70
  * platform reduces `templates/<a>/<b>` to `templates/:namespace/:name`, so a
@@ -103,11 +103,11 @@ export declare const buildAction: (id: string, action: string) => string;
103
103
  * `no_reuse`, sent only when it is asked for.
104
104
  *
105
105
  * Omitted rather than sent as `false`, and the reason is the documented schema
106
- * rather than a claim about the parser: lib/apidoc gives this parameter
106
+ * rather than a claim about the parser: the platform's reference gives this parameter
107
107
  * `enum: ['true']`, so `true` is the only value the reference admits.
108
108
  *
109
109
  * This said the platform reads the key's PRESENCE, which is false —
110
- * server/buildjob.go reads `Get("no_reuse") == "true"`. The request was right
110
+ * the platform reads `no_reuse == "true"`. The request was right
111
111
  * either way; the stated reason was not (/code-review, OPL-3835).
112
112
  */
113
113
  export declare const buildQuery: (noReuse?: boolean) => Record<string, string>;
@@ -126,6 +126,7 @@ export declare function createBody(args: {
126
126
  name?: string;
127
127
  size?: string;
128
128
  template?: string;
129
+ template_transfer?: string;
129
130
  cpu?: number;
130
131
  ram_mb?: number;
131
132
  disk_gb?: number;
@@ -157,7 +158,7 @@ export declare function execBody(args: {
157
158
  * The environment for one command, refused here rather than at the platform.
158
159
  *
159
160
  * An empty object is dropped rather than sent, for the reason `desktop` is
160
- * dropped: `execEnvList` returns nil for `len(env) == 0`, so an empty object and
161
+ * dropped: the platform drops an empty list of its own accord, so an empty object and
161
162
  * an absent one are already the same request, and the one that says so in fewer
162
163
  * fields is the one worth sending.
163
164
  *
@@ -168,13 +169,22 @@ export declare function execBody(args: {
168
169
  * to be told no. They are also the rules that will not drift: they are what an
169
170
  * entry IS in the list the guest agent takes, `NAME=value` strings separated by
170
171
  * NULs, rather than policy. The ceilings on how many entries and how long one
171
- * may be (64 and 4096 bytes, execbg.go) are policy, are the platform's to
172
- * change, and are deliberately not repeated here.
172
+ * may be are policy, are the platform's to change, and are deliberately not
173
+ * repeated here.
173
174
  *
174
175
  * The `=` case is the one a model actually gets wrong. `{'FOO=bar': ''}` is the
175
176
  * assignment written into the name, which is the same mistake as writing the
176
177
  * assignment into the command line — so the refusal says the shape rather than
177
178
  * just the rule.
179
+ *
180
+ * The UNPAIRED SURROGATE is not one of the platform's rules and is not being
181
+ * mirrored from it. It is this server's own refusal to send text that silently
182
+ * becomes something else, the one {@link clipboardBody}, {@link typeBody} and
183
+ * `write_file` already make: `JSON.stringify` escapes the lone code unit, Go's
184
+ * `encoding/json` decodes it to U+FFFD, and the guest gets an environment value
185
+ * that is not the one the caller asked for while the call reports success. A
186
+ * model emitting half of a truncated emoji is the ordinary way in, and env is
187
+ * the fourth path a caller's own characters take into the guest.
178
188
  */
179
189
  export declare function execEnv(env?: Record<string, string>): Json | undefined;
180
190
  export declare const MODIFIER_JOIN = "+";
@@ -185,7 +195,7 @@ export declare function pointerBody(action: string, x: number, y: number): Json;
185
195
  * No coordinate means "where the pointer already is", which is a real and
186
196
  * different request from clicking (0, 0) — the corner of the screen. So the
187
197
  * keys are omitted rather than sent as zeros; the platform carries that
188
- * distinction all the way down to `inputWire` in server/input.go.
198
+ * distinction all the way down to the platform's own input wire format.
189
199
  */
190
200
  export declare function clickBody(action: string, x: number | undefined, y: number | undefined, modifiers?: string[]): Json;
191
201
  /**
@@ -227,8 +237,8 @@ export declare function scrollBody(args: {
227
237
  *
228
238
  * What happens NEXT is this route's own, and it is worth stating precisely
229
239
  * rather than borrowing the clipboard's sentence. The platform's `type` handler
230
- * walks runes and looks each one up in `charKeys` — a printable-ASCII map — and
231
- * `continue`s past anything it does not find (server/input.go). So the
240
+ * walks runes and looks each one up in a printable-ASCII map — and
241
+ * `continue`s past anything it does not find. So the
232
242
  * replacement character is not typed onto the desktop; it is DROPPED, and the
233
243
  * tool goes on to report `Typed N character(s).` counting the character that
234
244
  * never arrived. Either way the screen does not hold what the caller asked for
@@ -275,10 +285,10 @@ export declare function windowBody(args: {
275
285
  *
276
286
  * Mirrored so a request that can only fail is not made. NOT machine-checked —
277
287
  * `scripts/check-surface.mjs` reads the platform's `web/lib`, and this number
278
- * lives in its `server/clipboard.go` as `clipboardWriteMax`. It is not
279
- * arbitrary: the platform puts the text inside one argument of one command,
280
- * Linux caps a single argv string at 128 KiB, and two layers of base64 stand
281
- * between the text and that ceiling, so each byte costs about 1.8 of it. Past
288
+ * is not part of the table it reads. It is not arbitrary: the platform puts
289
+ * the text inside one argument of one command, Linux caps a single argv
290
+ * string at 128 KiB, and two layers of base64 stand between the text and
291
+ * that ceiling, so each byte costs about 1.8 of it. Past
282
292
  * the cap `execve` fails with E2BIG rather than truncating.
283
293
  *
284
294
  * The READ cap is 128 KiB, a different bound on a different channel, and is
@@ -337,7 +347,7 @@ export declare function clipboardBody(text: string): Json;
337
347
  * A name that is only whitespace is dropped rather than sent, and that is the
338
348
  * one case worth spelling out. The daemon defaults an EMPTY name to
339
349
  * "<computer> <timestamp>" and stores anything else exactly as it arrives (see
340
- * `newSnapMeta` in the platform's server/snapshot.go), so " " is the single
350
+ * the platform's own snapshot metadata), so " " is the single
341
351
  * input that produces a snapshot nobody can pick out of a list — a blank row
342
352
  * where the generated name it displaced would have said something.
343
353
  */
@@ -361,9 +371,9 @@ export declare function agentBody(args: {
361
371
  export declare const webhook: (id: string) => string;
362
372
  /** rotate | test | deliveries */
363
373
  export declare const webhookAction: (id: string, action: string) => string;
364
- /** The platform's own caps (`DESCRIPTION_MAX`, `COMPUTERS_MAX` in its lib/webhooks). */
365
- export declare const WEBHOOK_DESCRIPTION_MAX = 200;
366
- export declare const WEBHOOK_COMPUTERS_MAX = 64;
374
+ /** The platform's own caps (`DESCRIPTION_MAX` and `COMPUTERS_MAX` on the platform side). */
375
+ export declare const WEBHOOK_DESCRIPTION_MAX: 200;
376
+ export declare const WEBHOOK_COMPUTERS_MAX: 64;
367
377
  /**
368
378
  * The body for a webhook create or update — the fields, checked before they
369
379
  * cost a round trip.
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
package/dist/paths.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { LIMITS } from './limits.js';
1
2
  /**
2
3
  * Every path this server can reach, and every body it can send.
3
4
  *
@@ -8,12 +9,12 @@
8
9
  * rather than a failure here.
9
10
  */
10
11
  export const TEMPLATES = 'templates';
11
- /** The JSON Schema for a `mandala/v1` document (platform OPL-3568). */
12
+ /** The JSON Schema for a `mandala/v1` document (OPL-3568). */
12
13
  export const TEMPLATE_SCHEMA = 'templates/schema';
13
14
  /** Check a document without publishing it. Side-effect free, and claims no ref. */
14
15
  export const TEMPLATE_VALIDATE = 'templates/validate';
15
16
  /**
16
- * Every build this account has started (platform OPL-3791).
17
+ * Every build this account has started (OPL-3791).
17
18
  *
18
19
  * A collection, like {@link MOVES} and for the same reason: a build is a job
19
20
  * rather than a property of a computer, and it outlives the request that
@@ -44,7 +45,7 @@ export const USAGE = 'usage';
44
45
  */
45
46
  export const RETENTION = 'retention';
46
47
  /**
47
- * The account's webhook subscriptions (platform OPL-4300; OPL-4306 here).
48
+ * The account's webhook subscriptions (OPL-4300; OPL-4306 here).
48
49
  *
49
50
  * Account-scoped like {@link USAGE}: a subscription receives events from many
50
51
  * computers, so it belongs to the account and not to any of them. Answered by
@@ -126,7 +127,7 @@ export const execHandle = (id, pid) => {
126
127
  /** One window on the desktop (OPL-3583). The id is `0x2600003`-shaped. */
127
128
  export const window_ = (id, windowId) => `${computer(id)}/windows/${segment('window_id', windowId)}`;
128
129
  /**
129
- * One published template, by the two halves of its ref (platform OPL-3789).
130
+ * One published template, by the two halves of its ref (OPL-3789).
130
131
  *
131
132
  * Two segments and not one, because that is the shape of the route: the
132
133
  * platform reduces `templates/<a>/<b>` to `templates/:namespace/:name`, so a
@@ -180,11 +181,11 @@ export const buildAction = (id, action) => `${build(id)}/${action}`;
180
181
  * `no_reuse`, sent only when it is asked for.
181
182
  *
182
183
  * Omitted rather than sent as `false`, and the reason is the documented schema
183
- * rather than a claim about the parser: lib/apidoc gives this parameter
184
+ * rather than a claim about the parser: the platform's reference gives this parameter
184
185
  * `enum: ['true']`, so `true` is the only value the reference admits.
185
186
  *
186
187
  * This said the platform reads the key's PRESENCE, which is false —
187
- * server/buildjob.go reads `Get("no_reuse") == "true"`. The request was right
188
+ * the platform reads `no_reuse == "true"`. The request was right
188
189
  * either way; the stated reason was not (/code-review, OPL-3835).
189
190
  */
190
191
  export const buildQuery = (noReuse) => noReuse ? { no_reuse: 'true' } : {};
@@ -201,6 +202,17 @@ export function omitUndefined(body) {
201
202
  return Object.fromEntries(Object.entries(body).filter(([, v]) => v !== undefined));
202
203
  }
203
204
  export function createBody(args) {
205
+ if (args.template_transfer !== undefined) {
206
+ if (typeof args.template_transfer !== 'string' || !args.template_transfer.trim()) {
207
+ throw new Error('template_transfer must be a nonblank string.');
208
+ }
209
+ if (typeof args.template !== 'string' || !args.template.trim()) {
210
+ throw new Error('template_transfer requires the original template argument.');
211
+ }
212
+ if (args.size !== undefined) {
213
+ throw new Error('template_transfer cannot be combined with size. Use the original template and explicit create arguments.');
214
+ }
215
+ }
204
216
  const { start = true, ...rest } = args;
205
217
  return { ...omitUndefined(rest), start };
206
218
  }
@@ -223,6 +235,16 @@ export function openUrlCommand(url) {
223
235
  // with one, so that is refused outright rather than quoted.
224
236
  if (trimmed.startsWith('-'))
225
237
  throw new Error(`url must not start with '-': ${trimmed}`);
238
+ // Refused here, where the caller can act on it. `execBody` refuses the same
239
+ // text a moment later, but `open_url` takes no `command` — a refusal naming
240
+ // one, and telling the caller to cut it on a character boundary, names a
241
+ // parameter they cannot see and never passed. `z.string().url()` accepts an
242
+ // unpaired surrogate, so this is the check, not a second opinion.
243
+ if (hasUnpairedSurrogate(trimmed)) {
244
+ throw new Error('url must not contain an unpaired surrogate — half of a character, usually from a string cut ' +
245
+ 'through the middle of an emoji. It is not valid UTF-8, so the browser would be asked for an ' +
246
+ 'address other than the one you sent.');
247
+ }
226
248
  return `nohup firefox ${shellQuote(trimmed)} >/dev/null 2>&1 &`;
227
249
  }
228
250
  /** POSIX single-quoting: the only characters that survive are the ones inside. */
@@ -233,8 +255,8 @@ export function execBody(args) {
233
255
  // A NUL ends a C string, and the command is the one field on this route that
234
256
  // reaches the guest without anything checking it. `execEnv` below refuses one
235
257
  // for this exact reason, and the platform refuses one in `cwd` and in every
236
- // file path — `validGuestPath` rejects the whole control range — but its only
237
- // test on `command` is that it is not empty (server/api.go). So a command
258
+ // file path — it rejects the whole control range there — but its only test
259
+ // on `command` is that it is not empty. So a command
238
260
  // carrying a NUL is truncated at the guest's argv boundary: a shorter command
239
261
  // than the caller wrote runs, and its exit code is reported as an ordinary
240
262
  // success. The same shape as the surrogate refusals — a call that works and
@@ -243,6 +265,23 @@ export function execBody(args) {
243
265
  throw new Error('command must not contain a NUL: a NUL ends a C string, so the guest would run only the part ' +
244
266
  'in front of it and report that as a success.');
245
267
  }
268
+ // The other half of that same shape. A command cut through the middle of an
269
+ // emoji reaches the guest as U+FFFD — `JSON.stringify` escapes the lone code
270
+ // unit and Go's `encoding/json` decodes it to the replacement character — so
271
+ // a command that is not the one asked for runs, and its exit code is reported
272
+ // as an ordinary success. `cwd` names a directory that then does not exist,
273
+ // which fails loudly, but it is the same corruption and the same refusal.
274
+ if (hasUnpairedSurrogate(args.command)) {
275
+ throw new Error('command must not contain an unpaired surrogate — half of a character, usually from a string ' +
276
+ 'cut through the middle of an emoji. It is not valid UTF-8: the guest would receive a ' +
277
+ 'replacement character in its place and run a command other than the one you sent, then ' +
278
+ 'report that as a success. Send the whole character, or cut the command on a character boundary.');
279
+ }
280
+ if (args.cwd !== undefined && hasUnpairedSurrogate(args.cwd)) {
281
+ throw new Error('cwd must not contain an unpaired surrogate — half of a character, usually from a string cut ' +
282
+ 'through the middle of an emoji. It is not valid UTF-8, so the guest would look for a ' +
283
+ 'directory whose name is not the one you sent.');
284
+ }
246
285
  const body = { command: args.command };
247
286
  if (args.timeout_s !== undefined)
248
287
  body.timeout_s = args.timeout_s;
@@ -263,7 +302,7 @@ export function execBody(args) {
263
302
  * The environment for one command, refused here rather than at the platform.
264
303
  *
265
304
  * An empty object is dropped rather than sent, for the reason `desktop` is
266
- * dropped: `execEnvList` returns nil for `len(env) == 0`, so an empty object and
305
+ * dropped: the platform drops an empty list of its own accord, so an empty object and
267
306
  * an absent one are already the same request, and the one that says so in fewer
268
307
  * fields is the one worth sending.
269
308
  *
@@ -274,13 +313,22 @@ export function execBody(args) {
274
313
  * to be told no. They are also the rules that will not drift: they are what an
275
314
  * entry IS in the list the guest agent takes, `NAME=value` strings separated by
276
315
  * NULs, rather than policy. The ceilings on how many entries and how long one
277
- * may be (64 and 4096 bytes, execbg.go) are policy, are the platform's to
278
- * change, and are deliberately not repeated here.
316
+ * may be are policy, are the platform's to change, and are deliberately not
317
+ * repeated here.
279
318
  *
280
319
  * The `=` case is the one a model actually gets wrong. `{'FOO=bar': ''}` is the
281
320
  * assignment written into the name, which is the same mistake as writing the
282
321
  * assignment into the command line — so the refusal says the shape rather than
283
322
  * just the rule.
323
+ *
324
+ * The UNPAIRED SURROGATE is not one of the platform's rules and is not being
325
+ * mirrored from it. It is this server's own refusal to send text that silently
326
+ * becomes something else, the one {@link clipboardBody}, {@link typeBody} and
327
+ * `write_file` already make: `JSON.stringify` escapes the lone code unit, Go's
328
+ * `encoding/json` decodes it to U+FFFD, and the guest gets an environment value
329
+ * that is not the one the caller asked for while the call reports success. A
330
+ * model emitting half of a truncated emoji is the ordinary way in, and env is
331
+ * the fourth path a caller's own characters take into the guest.
284
332
  */
285
333
  export function execEnv(env) {
286
334
  if (!env)
@@ -299,9 +347,17 @@ export function execEnv(env) {
299
347
  if (name.includes('\0') || value.includes('\0')) {
300
348
  throw new Error(`env entry ${name} must not contain a NUL`);
301
349
  }
350
+ if (hasUnpairedSurrogate(name) || hasUnpairedSurrogate(value)) {
351
+ throw new Error(`env entry ${name}: ${envSurrogateRefusal}`);
352
+ }
302
353
  }
303
354
  return Object.fromEntries(entries);
304
355
  }
356
+ const envSurrogateRefusal = 'that name or value has an unpaired surrogate in it — half of a character, usually from a ' +
357
+ 'string cut through the middle of an emoji. It is not valid UTF-8: it reaches the guest as a ' +
358
+ 'replacement character, so the command would run with an environment that is not the one you ' +
359
+ 'asked for and the call would report success. Nothing was run. Send the whole character, or ' +
360
+ 'cut the text on a character boundary.';
305
361
  // --- input ----------------------------------------------------------------
306
362
  //
307
363
  // The verb set is Anthropic's computer tool, in full, because the platform's
@@ -332,7 +388,7 @@ function wholePoint(x, y) {
332
388
  * No coordinate means "where the pointer already is", which is a real and
333
389
  * different request from clicking (0, 0) — the corner of the screen. So the
334
390
  * keys are omitted rather than sent as zeros; the platform carries that
335
- * distinction all the way down to `inputWire` in server/input.go.
391
+ * distinction all the way down to the platform's own input wire format.
336
392
  */
337
393
  export function clickBody(action, x, y, modifiers = []) {
338
394
  wholePoint(x, y);
@@ -406,8 +462,8 @@ export function scrollBody(args) {
406
462
  *
407
463
  * What happens NEXT is this route's own, and it is worth stating precisely
408
464
  * rather than borrowing the clipboard's sentence. The platform's `type` handler
409
- * walks runes and looks each one up in `charKeys` — a printable-ASCII map — and
410
- * `continue`s past anything it does not find (server/input.go). So the
465
+ * walks runes and looks each one up in a printable-ASCII map — and
466
+ * `continue`s past anything it does not find. So the
411
467
  * replacement character is not typed onto the desktop; it is DROPPED, and the
412
468
  * tool goes on to report `Typed N character(s).` counting the character that
413
469
  * never arrived. Either way the screen does not hold what the caller asked for
@@ -493,17 +549,17 @@ export function windowBody(args) {
493
549
  *
494
550
  * Mirrored so a request that can only fail is not made. NOT machine-checked —
495
551
  * `scripts/check-surface.mjs` reads the platform's `web/lib`, and this number
496
- * lives in its `server/clipboard.go` as `clipboardWriteMax`. It is not
497
- * arbitrary: the platform puts the text inside one argument of one command,
498
- * Linux caps a single argv string at 128 KiB, and two layers of base64 stand
499
- * between the text and that ceiling, so each byte costs about 1.8 of it. Past
552
+ * is not part of the table it reads. It is not arbitrary: the platform puts
553
+ * the text inside one argument of one command, Linux caps a single argv
554
+ * string at 128 KiB, and two layers of base64 stand between the text and
555
+ * that ceiling, so each byte costs about 1.8 of it. Past
500
556
  * the cap `execve` fails with E2BIG rather than truncating.
501
557
  *
502
558
  * The READ cap is 128 KiB, a different bound on a different channel, and is
503
559
  * deliberately not mirrored: nothing here can meet it, since that text comes
504
560
  * from the guest.
505
561
  */
506
- export const MAX_CLIPBOARD_BYTES = 64 * 1024;
562
+ export const MAX_CLIPBOARD_BYTES = LIMITS['clipboard.writeMaxBytes'];
507
563
  /**
508
564
  * Said in full, because the model reading it did not choose those bytes on
509
565
  * purpose and cannot see them: a lone surrogate arrives from a string that was
@@ -592,7 +648,7 @@ export function clipboardBody(text) {
592
648
  * A name that is only whitespace is dropped rather than sent, and that is the
593
649
  * one case worth spelling out. The daemon defaults an EMPTY name to
594
650
  * "<computer> <timestamp>" and stores anything else exactly as it arrives (see
595
- * `newSnapMeta` in the platform's server/snapshot.go), so " " is the single
651
+ * the platform's own snapshot metadata), so " " is the single
596
652
  * input that produces a snapshot nobody can pick out of a list — a blank row
597
653
  * where the generated name it displaced would have said something.
598
654
  */
@@ -615,9 +671,9 @@ export function agentBody(args) {
615
671
  export const webhook = (id) => `${WEBHOOKS}/${segment('webhook_id', id)}`;
616
672
  /** rotate | test | deliveries */
617
673
  export const webhookAction = (id, action) => `${webhook(id)}/${action}`;
618
- /** The platform's own caps (`DESCRIPTION_MAX`, `COMPUTERS_MAX` in its lib/webhooks). */
619
- export const WEBHOOK_DESCRIPTION_MAX = 200;
620
- export const WEBHOOK_COMPUTERS_MAX = 64;
674
+ /** The platform's own caps (`DESCRIPTION_MAX` and `COMPUTERS_MAX` on the platform side). */
675
+ export const WEBHOOK_DESCRIPTION_MAX = LIMITS['webhook.descriptionMaxChars'];
676
+ export const WEBHOOK_COMPUTERS_MAX = LIMITS['webhook.computersMax'];
621
677
  /**
622
678
  * The body for a webhook create or update — the fields, checked before they
623
679
  * cost a round trip.
@@ -659,8 +715,16 @@ export function webhookBody(args) {
659
715
  throw new Error(`description is ${args.description.length} characters; the platform keeps at most ${WEBHOOK_DESCRIPTION_MAX}`);
660
716
  }
661
717
  const events = args.events === undefined ? undefined : [...new Set(args.events)];
662
- const computers = args.computers === undefined ? undefined : [...new Set(args.computers)];
663
- if (computers?.some((c) => !c.trim())) {
718
+ // Trimmed BEFORE the de-duplication, and the trimmed ids are what is sent.
719
+ // The tool's schema is a bare array of strings, so whatever a model writes
720
+ // arrives verbatim: `['vm-1', ' vm-1']` deduped to two entries naming one
721
+ // machine, both counted against the platform's cap, and the second of them a
722
+ // filter that matches no computer — a subscription that silently delivers
723
+ // nothing for a machine the caller asked for. `segment()` normalises an id on
724
+ // every other route for the same reason, and `session.ts`'s `id()` lists what
725
+ // it costs not to.
726
+ const computers = args.computers === undefined ? undefined : [...new Set(args.computers.map((c) => c.trim()))];
727
+ if (computers?.some((c) => !c)) {
664
728
  throw new Error('computers must not contain an empty id');
665
729
  }
666
730
  if (computers && computers.length > WEBHOOK_COMPUTERS_MAX) {
package/dist/paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
package/dist/poll.d.ts ADDED
@@ -0,0 +1,107 @@
1
+ /**
2
+ * The machinery every wait loop in this server shares.
3
+ *
4
+ * Its own module rather than lines in computers.ts, because there are now poll
5
+ * loops in two tool files: `wait_for_computer` and `move_computer` watch a
6
+ * computer, and `create_snapshot` watches a capture the platform answers a 202
7
+ * for. A second copy of a two-second interval is not the problem — a second
8
+ * copy of the RULES around it is, and the one that matters is `pollDelay`:
9
+ * a loop that forgot it spends a rate limit discovering it is still rate
10
+ * limited, and nothing about the call site says so.
11
+ */
12
+ /**
13
+ * A pause that ends early when the caller gives up.
14
+ *
15
+ * The wait loops check the signal at the top of each turn, so a sleep that
16
+ * ignored it would still hold a cancelled call for its remaining seconds.
17
+ */
18
+ export declare const sleep: (ms: number, signal?: AbortSignal) => Promise<void>;
19
+ /** How long these loops leave between polls. */
20
+ export declare const POLL_MS = 2000;
21
+ /**
22
+ * The same interval, unless the platform asked for longer.
23
+ *
24
+ * A 429 is the one failure that says how long to wait, and
25
+ * {@link isTransientForPoll} now polls through it — so a loop that ignored
26
+ * `Retry-After` and asked again in two seconds would be spending a rate limit
27
+ * to discover it was still rate limited. The floor stays {@link POLL_MS}: the
28
+ * header can say zero, and a poll loop with no interval is a request storm.
29
+ *
30
+ * Only reached from a failed poll, which is why it takes the error rather than
31
+ * living in {@link sleep}: an ordinary turn has nothing to honour.
32
+ */
33
+ export declare const pollDelay: (err: unknown) => number;
34
+ /**
35
+ * How long a wait may go without saying anything.
36
+ *
37
+ * The loops here wake every {@link POLL_MS}, and a notification per turn would
38
+ * be 900 of them across a half-hour capture — the MCP spec asks implementations
39
+ * to rate-limit progress, and a client rendering every frame of "still
40
+ * capturing" is not better informed for it. So a turn that CHANGED something is
41
+ * always reported and an unchanged one is reported at this interval, which is
42
+ * well inside the 60s default that makes any of this necessary.
43
+ */
44
+ export declare const HEARTBEAT_MS = 10000;
45
+ /**
46
+ * What a tool needs from its MCP request in order to be heard while it waits.
47
+ *
48
+ * Structural rather than the SDK's own type: the two members below are all this
49
+ * uses, and naming them here keeps `src/poll.ts` from importing the server's
50
+ * request plumbing to describe a keepalive.
51
+ */
52
+ export type ProgressExtra = {
53
+ _meta?: {
54
+ progressToken?: string | number;
55
+ } | undefined;
56
+ sendNotification: (notification: {
57
+ method: 'notifications/progress';
58
+ params: {
59
+ progressToken: string | number;
60
+ progress: number;
61
+ total?: number;
62
+ message?: string;
63
+ };
64
+ }) => Promise<void>;
65
+ };
66
+ /** Somewhere to log a line for a person watching, without importing McpServer. */
67
+ export type Logger = {
68
+ sendLoggingMessage: (m: {
69
+ level: 'info';
70
+ data: string;
71
+ }) => Promise<void>;
72
+ };
73
+ /** A keepalive sender whose timer must be stopped when its wait ends. */
74
+ export type Heartbeat = ((line: string) => Promise<void>) & {
75
+ stop: () => Promise<void>;
76
+ };
77
+ /**
78
+ * The keepalive a wait longer than a minute owes the client it is keeping.
79
+ *
80
+ * WHY A TOOL THAT WAITS HAS TO SPEAK. `_onprogress` in the SDK's
81
+ * shared/protocol.js resets a pending request's timer; `notifications/message`
82
+ * — what `sendLoggingMessage` emits — never touches it. So a tool that only
83
+ * logs is, to the client's timer, a tool that has hung: the request is
84
+ * cancelled at the 60s default while the platform goes on copying a disk, and
85
+ * the model reads a transport error instead of the sentence the tool was
86
+ * written to give it. Observed, not theorised — a live capture took 107s and
87
+ * was cancelled at 60 (OPL-4579), and `run_agent` had the same defect before
88
+ * OPL-4419, where a twenty-step run was cancelled mid-way while still billing
89
+ * the caller's own Anthropic key.
90
+ *
91
+ * IT IS NOT SUFFICIENT ON ITS OWN and no description may claim it is.
92
+ * protocol.js reads `options?.resetTimeoutOnProgress ?? false`, so the reset
93
+ * happens only for a client that asked for it when it made the call. What this
94
+ * does is make the keepalive AVAILABLE — without it no client could hold the
95
+ * request open at all; with it, one that opts in can. The rest is the client's
96
+ * to set, and every tool using this has a `wait: false` or a second call for a
97
+ * client that cannot.
98
+ *
99
+ * Both channels on the same turns, because they answer different people. The
100
+ * progress notification is for the client's timer; the log line is what someone
101
+ * watching a terminal sees, and is the only channel when no token was sent.
102
+ *
103
+ * Failures are swallowed on purpose: a notification nobody could take delivery
104
+ * of must not end a wait that is otherwise going fine.
105
+ */
106
+ export declare function heartbeat(extra: ProgressExtra, log: Logger | undefined, everyMs?: number): Heartbeat;
107
+ //# sourceMappingURL=poll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../src/poll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,EAAE,SAAS,WAAW,kBAUlD,CAAC;AAEL,gDAAgD;AAChD,eAAO,MAAM,OAAO,OAAQ,CAAC;AAE7B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,KAAG,MAG5B,CAAC;AAEd;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,QAAS,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACxD,gBAAgB,EAAE,CAAC,YAAY,EAAE;QAC/B,MAAM,EAAE,wBAAwB,CAAC;QACjC,MAAM,EAAE;YACN,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,MAAM,GAAG;IAAE,kBAAkB,EAAE,CAAC,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAEnG,yEAAyE;AACzE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,OAAO,GAAE,MAAqB,GAC7B,SAAS,CA6IX"}