mandala-computer-mcp 0.3.0 → 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 (52) hide show
  1. package/README.md +12 -8
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +103 -28
  4. package/dist/api.js.map +1 -1
  5. package/dist/errors.d.ts +26 -3
  6. package/dist/errors.d.ts.map +1 -1
  7. package/dist/errors.js +54 -4
  8. package/dist/errors.js.map +1 -1
  9. package/dist/events.d.ts +11 -2
  10. package/dist/events.d.ts.map +1 -1
  11. package/dist/events.js +213 -95
  12. package/dist/events.js.map +1 -1
  13. package/dist/format.d.ts.map +1 -1
  14. package/dist/format.js +80 -3
  15. package/dist/format.js.map +1 -1
  16. package/dist/limits.d.ts +17 -0
  17. package/dist/limits.d.ts.map +1 -0
  18. package/dist/limits.js +17 -0
  19. package/dist/limits.js.map +1 -0
  20. package/dist/paths.d.ts +2 -2
  21. package/dist/paths.d.ts.map +1 -1
  22. package/dist/paths.js +4 -3
  23. package/dist/paths.js.map +1 -1
  24. package/dist/poll.d.ts +5 -1
  25. package/dist/poll.d.ts.map +1 -1
  26. package/dist/poll.js +120 -16
  27. package/dist/poll.js.map +1 -1
  28. package/dist/server.d.ts +1 -1
  29. package/dist/server.d.ts.map +1 -1
  30. package/dist/server.js +2 -1
  31. package/dist/server.js.map +1 -1
  32. package/dist/tools/agent.d.ts.map +1 -1
  33. package/dist/tools/agent.js +58 -3
  34. package/dist/tools/agent.js.map +1 -1
  35. package/dist/tools/computers.d.ts.map +1 -1
  36. package/dist/tools/computers.js +282 -240
  37. package/dist/tools/computers.js.map +1 -1
  38. package/dist/tools/events.d.ts.map +1 -1
  39. package/dist/tools/events.js +66 -22
  40. package/dist/tools/events.js.map +1 -1
  41. package/dist/tools/guest.js +7 -2
  42. package/dist/tools/guest.js.map +1 -1
  43. package/dist/tools/input.d.ts.map +1 -1
  44. package/dist/tools/input.js +63 -5
  45. package/dist/tools/input.js.map +1 -1
  46. package/dist/tools/snapshots.d.ts.map +1 -1
  47. package/dist/tools/snapshots.js +169 -159
  48. package/dist/tools/snapshots.js.map +1 -1
  49. package/dist/tools/templates.d.ts.map +1 -1
  50. package/dist/tools/templates.js +9 -13
  51. package/dist/tools/templates.js.map +1 -1
  52. package/package.json +1 -1
@@ -123,21 +123,17 @@ const snapshotTurn = async (api, sid, unfinished) => {
123
123
  }
124
124
  return { kind: 'row', row };
125
125
  };
126
- /**
127
- * The sentence in front of a retention window, for the reason every tool here
128
- * leads with one: the model reads the text, and three integers in a JSON blob
129
- * do not say what they select.
130
- *
131
- * Says what SURVIVES rather than restating the numbers. A tier at zero is left
132
- * out entirely rather than printed as "0 monthly", which reads like a promise
133
- * about monthlies; and an all-zero window — what an account with no active
134
- * subscription reads — is stated as the plan granting no retained history,
135
- * without claiming anything about what happens to snapshots already taken. The
136
- * platform's own reference stops in the same place and for the same reason.
137
- */
138
- const retentionLine = (r) => {
139
- const v = (r ?? {});
140
- const n = (x) => (typeof x === 'number' && Number.isFinite(x) && x > 0 ? x : 0);
126
+ const retentionOf = (r) => {
127
+ if (!isRow(r))
128
+ return undefined;
129
+ const fields = [r.daily, r.weekly, r.monthly];
130
+ if (!fields.every((value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0)) {
131
+ return undefined;
132
+ }
133
+ return { daily: r.daily, weekly: r.weekly, monthly: r.monthly };
134
+ };
135
+ const retentionLine = (v) => {
136
+ const n = (x) => (x > 0 ? x : 0);
141
137
  const parts = [
142
138
  n(v.daily) && `${n(v.daily)} daily`,
143
139
  n(v.weekly) && `${n(v.weekly)} weekly`,
@@ -419,93 +415,98 @@ export const registerSnapshots = (server, session, opts) => {
419
415
  // single short request and there is nothing to report until there is a
420
416
  // capture to report on.
421
417
  const beat = heartbeat(extra, server.server);
422
- await beat(`Capturing ${sid} of ${id} — the copy has started.`);
423
- let blocked;
424
- // `untilDeadline &&` rather than `!untilDeadline?.aborted`: the early
425
- // return above is what guarantees it is armed here, and the optional
426
- // form would turn a later edit that broke that guarantee into a loop
427
- // with no deadline at all rather than into a visible mistake.
428
- while (untilDeadline && !untilDeadline.aborted) {
429
- // The caller giving up ends the wait. The signal aborts the request in
430
- // flight, but nothing about an aborted request stops the next
431
- // iteration from starting one.
432
- if (extra.signal?.aborted) {
433
- return refused(`Cancelled while waiting for the capture of ${id}. THE CAPTURE IS STILL RUNNING — nothing ` +
434
- `was stopped, because a disk copy already under way cannot be called back. ${byHand}`, started);
435
- }
436
- const turn = await snapshotTurn(api, sid, false);
437
- if (extra.signal?.aborted)
438
- continue;
439
- // A body stream can fail without either signal firing, so the
440
- // deadline's own arrival is what tells a real timeout from an undici
441
- // idle abort. Same shape as the two loops in computers.ts.
442
- if (turn.kind === 'cancelled') {
443
- if (untilDeadline?.aborted)
444
- break;
445
- blocked = turn.why;
446
- await beat(`Capturing ${sid} of ${id} — the platform could not be asked: ${turn.why}`);
447
- await sleep(POLL_MS, signal);
448
- continue;
449
- }
450
- // A poll that failed for a reason worth riding out is weather; one
451
- // that failed for any other reason is a real failure with a capture
452
- // still running behind it, and a thrown error's handler has no way to
453
- // say so. So it is said here rather than rethrown.
454
- if (turn.kind === 'broken') {
455
- return refused(`${turn.why}\n\nTHE CAPTURE IS STILL RUNNING — this was the poll failing, not the ` +
456
- `capture. ${byHand}`, started);
457
- }
458
- if (turn.kind === 'blocked') {
459
- blocked = turn.why;
460
- await beat(`Capturing ${sid} of ${id} — the platform could not be asked: ${turn.why}`);
461
- await sleep(turn.after ?? POLL_MS, signal);
462
- continue;
463
- }
464
- // Absence is the ONLY signal a failed capture leaves, which is what
465
- // makes snapshotTurn's guards load-bearing rather than tidy: a body
466
- // that is not a list, and a listing the platform had to answer short,
467
- // both come back `blocked` there rather than as this, because read as
468
- // "the row is not there" they would announce that somebody's backup
469
- // failed while it was still being taken.
470
- if (turn.kind === 'absent') {
471
- return refused(`THE CAPTURE OF ${id} FAILED and nothing was saved. Snapshot ${sid} is no longer listed and ` +
472
- `nothing took its place, which is what a capture that starts and then fails leaves behind — ` +
473
- `this is a failure during the copy, not a wait that ran out. The computer itself is ` +
474
- `untouched and can be snapshotted again.`, started);
475
- }
476
- const row = turn.row;
477
- const state = typeof row.state === 'string' ? row.state : undefined;
478
- if (state === CAPTURING) {
479
- blocked = undefined;
480
- await beat(`Capturing ${sid} of ${id} — still copying.`);
481
- await sleep(POLL_MS, signal);
482
- continue;
483
- }
484
- // A row with no readable `state` is the platform failing to describe
485
- // it, and it must not be read as "not capturing, therefore landed" —
486
- // that sentence says a placeholder may be restored, which is the
487
- // defect this whole tool is here to stop. Only a state that SAYS it is
488
- // no longer capturing ends the wait; anything else rides out, and the
489
- // deadline reports that the platform could not be asked.
490
- if (state === undefined) {
491
- blocked = `the row for ${sid} carried no state, so nothing said whether the capture had landed`;
492
- await beat(`Capturing ${sid} of ${id} — its row carried no state to read.`);
493
- await sleep(POLL_MS, signal);
494
- continue;
418
+ try {
419
+ await beat(`Capturing ${sid} of ${id} — the copy has started.`);
420
+ let blocked;
421
+ // `untilDeadline &&` rather than `!untilDeadline?.aborted`: the early
422
+ // return above is what guarantees it is armed here, and the optional
423
+ // form would turn a later edit that broke that guarantee into a loop
424
+ // with no deadline at all rather than into a visible mistake.
425
+ while (untilDeadline && !untilDeadline.aborted) {
426
+ // The caller giving up ends the wait. The signal aborts the request in
427
+ // flight, but nothing about an aborted request stops the next
428
+ // iteration from starting one.
429
+ if (extra.signal?.aborted) {
430
+ return refused(`Cancelled while waiting for the capture of ${id}. THE CAPTURE IS STILL RUNNING — nothing ` +
431
+ `was stopped, because a disk copy already under way cannot be called back. ${byHand}`, started);
432
+ }
433
+ const turn = await snapshotTurn(api, sid, false);
434
+ if (extra.signal?.aborted)
435
+ continue;
436
+ // A body stream can fail without either signal firing, so the
437
+ // deadline's own arrival is what tells a real timeout from an undici
438
+ // idle abort. Same shape as the two loops in computers.ts.
439
+ if (turn.kind === 'cancelled') {
440
+ if (untilDeadline?.aborted)
441
+ break;
442
+ blocked = turn.why;
443
+ await beat(`Capturing ${sid} of ${id} — the platform could not be asked: ${turn.why}`);
444
+ await sleep(POLL_MS, signal);
445
+ continue;
446
+ }
447
+ // A poll that failed for a reason worth riding out is weather; one
448
+ // that failed for any other reason is a real failure with a capture
449
+ // still running behind it, and a thrown error's handler has no way to
450
+ // say so. So it is said here rather than rethrown.
451
+ if (turn.kind === 'broken') {
452
+ return refused(`${turn.why}\n\nTHE CAPTURE IS STILL RUNNING — this was the poll failing, not the ` +
453
+ `capture. ${byHand}`, started);
454
+ }
455
+ if (turn.kind === 'blocked') {
456
+ blocked = turn.why;
457
+ await beat(`Capturing ${sid} of ${id} — the platform could not be asked: ${turn.why}`);
458
+ await sleep(turn.after ?? POLL_MS, signal);
459
+ continue;
460
+ }
461
+ // Absence is the ONLY signal a failed capture leaves, which is what
462
+ // makes snapshotTurn's guards load-bearing rather than tidy: a body
463
+ // that is not a list, and a listing the platform had to answer short,
464
+ // both come back `blocked` there rather than as this, because read as
465
+ // "the row is not there" they would announce that somebody's backup
466
+ // failed while it was still being taken.
467
+ if (turn.kind === 'absent') {
468
+ return refused(`THE CAPTURE OF ${id} FAILED and nothing was saved. Snapshot ${sid} is no longer listed and ` +
469
+ `nothing took its place, which is what a capture that starts and then fails leaves behind — ` +
470
+ `this is a failure during the copy, not a wait that ran out. The computer itself is ` +
471
+ `untouched and can be snapshotted again.`, started);
472
+ }
473
+ const row = turn.row;
474
+ const state = typeof row.state === 'string' ? row.state : undefined;
475
+ if (state === CAPTURING) {
476
+ blocked = undefined;
477
+ await beat(`Capturing ${sid} of ${id} — still copying.`);
478
+ await sleep(POLL_MS, signal);
479
+ continue;
480
+ }
481
+ // A row with no readable `state` is the platform failing to describe
482
+ // it, and it must not be read as "not capturing, therefore landed" —
483
+ // that sentence says a placeholder may be restored, which is the
484
+ // defect this whole tool is here to stop. Only a state that SAYS it is
485
+ // no longer capturing ends the wait; anything else rides out, and the
486
+ // deadline reports that the platform could not be asked.
487
+ if (state === undefined) {
488
+ blocked = `the row for ${sid} carried no state, so nothing said whether the capture had landed`;
489
+ await beat(`Capturing ${sid} of ${id} — its row carried no state to read.`);
490
+ await sleep(POLL_MS, signal);
491
+ continue;
492
+ }
493
+ return said(`${took} The capture landed: snapshot ${sid} reads "${state}" and can now be restored, ` +
494
+ `cloned or deleted.`, row);
495
495
  }
496
- return said(`${took} The capture landed: snapshot ${sid} reads "${state}" and can now be restored, ` +
497
- `cloned or deleted.`, row);
496
+ // A refusal, for the reason move_computer's is: the wait never reached
497
+ // what it was told to wait for. What it must not do is read as a capture
498
+ // that failed — that is a different answer with a different id in it,
499
+ // and the difference between calling this again and going looking for a
500
+ // snapshot that is on its way.
501
+ return refused(blocked
502
+ ? `${startedLine} Gave up watching after ${timeout_s}s; the platform could not be asked — the ` +
503
+ `last attempt said: ${blocked}. THE CAPTURE IS STILL RUNNING. ${byHand}`
504
+ : `${startedLine} Still capturing after ${timeout_s}s, which a large disk takes. THE CAPTURE IS ` +
505
+ `STILL RUNNING and nothing was changed by giving up on the wait. ${byHand}`, started);
506
+ }
507
+ finally {
508
+ await beat.stop();
498
509
  }
499
- // A refusal, for the reason move_computer's is: the wait never reached
500
- // what it was told to wait for. What it must not do is read as a capture
501
- // that failed — that is a different answer with a different id in it,
502
- // and the difference between calling this again and going looking for a
503
- // snapshot that is on its way.
504
- return refused(blocked
505
- ? `${startedLine} Gave up watching after ${timeout_s}s; the platform could not be asked — the ` +
506
- `last attempt said: ${blocked}. THE CAPTURE IS STILL RUNNING. ${byHand}`
507
- : `${startedLine} Still capturing after ${timeout_s}s, which a large disk takes. THE CAPTURE IS ` +
508
- `STILL RUNNING and nothing was changed by giving up on the wait. ${byHand}`, started);
509
510
  }));
510
511
  server.registerTool('restore_snapshot', {
511
512
  title: 'Restore a snapshot',
@@ -580,7 +581,11 @@ export const registerSnapshots = (server, session, opts) => {
580
581
  annotations: { readOnlyHint: true },
581
582
  }, (_args, extra) => guarded(async () => {
582
583
  const body = await session.api.with(extra.signal).json('GET', P.RETENTION);
583
- return said(retentionLine(body), body);
584
+ const retention = retentionOf(body);
585
+ if (!retention) {
586
+ return refused('The retention policy could not be read: GET /retention must answer with nonnegative whole-number `daily`, `weekly`, and `monthly` fields. No retention window is inferred from this response.', body);
587
+ }
588
+ return said(retentionLine(retention), body);
584
589
  }));
585
590
  // clone_snapshot brings a billable machine into existence as surely as
586
591
  // create_computer does, and delete_snapshot destroys bytes as surely as
@@ -725,67 +730,72 @@ export const registerSnapshots = (server, session, opts) => {
725
730
  `wait to find out. ${byHand}`, accepted);
726
731
  }
727
732
  const beat = heartbeat(extra, server.server);
728
- await beat(`Deleting ${snapshot_id} — the platform has accepted it.`);
729
- let blocked;
730
- let seen;
731
- while (untilDeadline && !untilDeadline.aborted) {
732
- if (extra.signal?.aborted) {
733
- return refused(`Cancelled while waiting for ${snapshot_id} to be deleted. THE DELETION IS STILL RUNNING — ` +
734
- `nothing was called back, and objects it has already removed are already gone. ${byHand}`, accepted);
735
- }
736
- // `unfinished`, because the state a stalled deletion sits in is the
737
- // one a bare listing hides. Asking without it would read a snapshot
738
- // stuck half-deleted as a snapshot successfully deleted, which is the
739
- // one wrong answer this tool must not give.
740
- const turn = await snapshotTurn(api, snapshot_id, true);
741
- if (extra.signal?.aborted)
742
- continue;
743
- if (turn.kind === 'cancelled') {
744
- if (untilDeadline.aborted)
745
- break;
746
- blocked = turn.why;
747
- await beat(`Deleting ${snapshot_id} — the platform could not be asked: ${turn.why}`);
733
+ try {
734
+ await beat(`Deleting ${snapshot_id} — the platform has accepted it.`);
735
+ let blocked;
736
+ let seen;
737
+ while (untilDeadline && !untilDeadline.aborted) {
738
+ if (extra.signal?.aborted) {
739
+ return refused(`Cancelled while waiting for ${snapshot_id} to be deleted. THE DELETION IS STILL RUNNING — ` +
740
+ `nothing was called back, and objects it has already removed are already gone. ${byHand}`, accepted);
741
+ }
742
+ // `unfinished`, because the state a stalled deletion sits in is the
743
+ // one a bare listing hides. Asking without it would read a snapshot
744
+ // stuck half-deleted as a snapshot successfully deleted, which is the
745
+ // one wrong answer this tool must not give.
746
+ const turn = await snapshotTurn(api, snapshot_id, true);
747
+ if (extra.signal?.aborted)
748
+ continue;
749
+ if (turn.kind === 'cancelled') {
750
+ if (untilDeadline.aborted)
751
+ break;
752
+ blocked = turn.why;
753
+ await beat(`Deleting ${snapshot_id} — the platform could not be asked: ${turn.why}`);
754
+ await sleep(POLL_MS, signal);
755
+ continue;
756
+ }
757
+ if (turn.kind === 'broken') {
758
+ return refused(`${turn.why}\n\nTHE DELETION IS STILL RUNNING — this was the poll failing, not the ` +
759
+ `deletion. ${byHand}`, accepted);
760
+ }
761
+ if (turn.kind === 'blocked') {
762
+ blocked = turn.why;
763
+ await beat(`Deleting ${snapshot_id} — the platform could not be asked: ${turn.why}`);
764
+ await sleep(turn.after ?? POLL_MS, signal);
765
+ continue;
766
+ }
767
+ // The row is gone from a listing that was read whole and that ASKED
768
+ // for the unfinished ones. Both halves are what make this sentence
769
+ // true rather than merely likely.
770
+ if (turn.kind === 'absent')
771
+ return said(`Deleted snapshot ${snapshot_id}.`, accepted);
772
+ blocked = undefined;
773
+ seen = typeof turn.row.state === 'string' ? turn.row.state : undefined;
774
+ await beat(`Deleting ${snapshot_id} — still listed${seen ? `, reading "${seen}"` : ''}.`);
748
775
  await sleep(POLL_MS, signal);
749
- continue;
750
776
  }
751
- if (turn.kind === 'broken') {
752
- return refused(`${turn.why}\n\nTHE DELETION IS STILL RUNNING — this was the poll failing, not the ` +
753
- `deletion. ${byHand}`, accepted);
754
- }
755
- if (turn.kind === 'blocked') {
756
- blocked = turn.why;
757
- await beat(`Deleting ${snapshot_id} — the platform could not be asked: ${turn.why}`);
758
- await sleep(turn.after ?? POLL_MS, signal);
759
- continue;
760
- }
761
- // The row is gone from a listing that was read whole and that ASKED
762
- // for the unfinished ones. Both halves are what make this sentence
763
- // true rather than merely likely.
764
- if (turn.kind === 'absent')
765
- return said(`Deleted snapshot ${snapshot_id}.`, accepted);
766
- blocked = undefined;
767
- seen = typeof turn.row.state === 'string' ? turn.row.state : undefined;
768
- await beat(`Deleting ${snapshot_id} — still listed${seen ? `, reading "${seen}"` : ''}.`);
769
- await sleep(POLL_MS, signal);
777
+ // Still listed. Three different things that can mean, and they are not
778
+ // one sentence: the platform could not be asked, the deletion got part
779
+ // way and stalled, or it never got started on — which is the shape the
780
+ // one conflict that arrives AFTER the 202 leaves behind, a dependent
781
+ // that is itself being deleted and so cannot be detached.
782
+ return refused(blocked
783
+ ? `Gave up watching after ${timeout_s}s; the platform could not be asked whether ${snapshot_id} ` +
784
+ `is gone — the last attempt said: ${blocked}. THE DELETION IS STILL RUNNING. ${byHand}`
785
+ : seen === DELETING
786
+ ? `${snapshot_id} is still listed after ${timeout_s}s and reads "${DELETING}": the deletion ` +
787
+ `started and has not finished. Nothing was undone by giving up on the wait, and the ` +
788
+ `platform retries a stalled deletion itself every fifteen minutes — so this usually needs ` +
789
+ `watching rather than repeating. ${byHand}`
790
+ : `${snapshot_id} is still listed after ${timeout_s}s${seen ? `, reading "${seen}"` : ''} — ` +
791
+ `the deletion has not reached the point of marking it "${DELETING}". That is what a big ` +
792
+ `chain looks like early on, and it is also what the one conflict that arrives after the ` +
793
+ `deletion is accepted looks like: a dependent snapshot that is ITSELF being deleted cannot ` +
794
+ `be detached, so this one waits for that one. Nothing was destroyed either way. ${byHand}`, accepted);
795
+ }
796
+ finally {
797
+ await beat.stop();
770
798
  }
771
- // Still listed. Three different things that can mean, and they are not
772
- // one sentence: the platform could not be asked, the deletion got part
773
- // way and stalled, or it never got started on — which is the shape the
774
- // one conflict that arrives AFTER the 202 leaves behind, a dependent
775
- // that is itself being deleted and so cannot be detached.
776
- return refused(blocked
777
- ? `Gave up watching after ${timeout_s}s; the platform could not be asked whether ${snapshot_id} ` +
778
- `is gone — the last attempt said: ${blocked}. THE DELETION IS STILL RUNNING. ${byHand}`
779
- : seen === DELETING
780
- ? `${snapshot_id} is still listed after ${timeout_s}s and reads "${DELETING}": the deletion ` +
781
- `started and has not finished. Nothing was undone by giving up on the wait, and the ` +
782
- `platform retries a stalled deletion itself every fifteen minutes — so this usually needs ` +
783
- `watching rather than repeating. ${byHand}`
784
- : `${snapshot_id} is still listed after ${timeout_s}s${seen ? `, reading "${seen}"` : ''} — ` +
785
- `the deletion has not reached the point of marking it "${DELETING}". That is what a big ` +
786
- `chain looks like early on, and it is also what the one conflict that arrives after the ` +
787
- `deletion is accepted looks like: a dependent snapshot that is ITSELF being deleted cannot ` +
788
- `be detached, so this one waits for that one. Nothing was destroyed either way. ${byHand}`, accepted);
789
799
  }));
790
800
  };
791
801
  //# sourceMappingURL=snapshots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/tools/snapshots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/tools/snapshots.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/tools/templates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiC5C,eAAO,MAAM,iBAAiB,EAAE,SA0mB/B,CAAC"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/tools/templates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiC5C,eAAO,MAAM,iBAAiB,EAAE,SAqmB/B,CAAC"}
@@ -97,18 +97,14 @@ export const registerTemplates = (server, session, opts) => {
97
97
  if (typeof body.ref !== 'string' || !body.ref.trim()) {
98
98
  return refused('POST /templates answered without a `ref`, so this server cannot say what was stored. THE PUBLISH MAY HAVE SUCCEEDED — read the name with get_template before publishing again, because a ref is immutable and a second version claims a second ref.', body);
99
99
  }
100
- // What it takes to LAUNCH the thing, rather than the flat "Launch it
101
- // with create_computer" this used to end on. That sentence contradicted
102
- // build_template's own description two tools down: a document declaring
103
- // `spec.build` names a family the fleet does not advertise, so following
104
- // this line led straight into a refusal the server already knew about
105
- // (adversarial review, OPL-3835). Publishing and being launchable are
106
- // different questions and this says so, without claiming to know which
107
- // of the two this document is — the store answers the first, and only
108
- // the document says whether it declares build steps.
100
+ // Publishing stores the document; a custom image then has to finish its
101
+ // build before creation can use the ref. Creation remains the authority
102
+ // on preparation and capacity, so this names that next step without
103
+ // claiming the image is already present everywhere it might be used.
109
104
  return said(`Published ${body.ref}. A published template is named by its ref and by nothing else, so its short name still means one of ours. ` +
110
- `WHETHER IT LAUNCHES depends on the document: pass the ref to ${launcher} as ` +
111
- '`template` if it layers onto a family the fleet ships, but one declaring `spec.build` steps names a family that has to be built first — that is build_template — and the fleet does not yet advertise a family it built rather than shipped, so a create naming such a ref is still refused.', body);
105
+ `If the document has no \`spec.build\` steps, pass the ref to ${launcher} as \`template\`. ` +
106
+ `If it declares build steps, call build_template, follow the job with watch_build, and after it succeeds pass this same published ref to ${launcher}. ` +
107
+ `${launcher} may still return image preparation instructions or a capacity refusal; follow that result rather than assuming the successful build made every destination ready.`, body);
112
108
  }));
113
109
  server.registerTool('get_template', {
114
110
  title: 'Read a template document',
@@ -212,7 +208,7 @@ export const registerTemplates = (server, session, opts) => {
212
208
  }));
213
209
  server.registerTool('build_template', {
214
210
  title: 'Compile a template document into an image',
215
- description: 'Compile a document that declares `spec.build` steps into a golden image. Returns IMMEDIATELY with a job — a build takes minutes, an agent image roughly fifteen — and watch_build is how you follow it. THE NAMESPACE AND THE FAMILY BOTH HAVE TO BE YOURS: `spec.family` is what the image is called on a hypervisor, in a directory shared with every computer on that machine, so a build may only write into `golden-<your account id>` or that and a `-` and a name of your choosing. A refusal saying a host is busy is not a problem with your document — one build runs per hypervisor — and is worth retrying. What you build is NOT launchable yet: the fleet does not advertise a family it built rather than shipped, so a create naming such a ref is still refused.',
211
+ description: `Compile a document that declares \`spec.build\` steps into a golden image. Returns IMMEDIATELY with a job — a build takes minutes, an agent image roughly fifteen — and watch_build is how you follow it. THE NAMESPACE AND THE FAMILY BOTH HAVE TO BE YOURS: \`spec.family\` is what the image is called on a hypervisor, in a directory shared with every computer on that machine, so a build may only write into \`golden-<your account id>\` or that and a \`-\` and a name of your choosing. A refusal saying a host is busy is not a problem with your document — one build runs per hypervisor — and is worth retrying. After a successful build, pass the published ref to ${launcher} as \`template\`. ${launcher} may still return image preparation instructions or a capacity refusal; follow that result rather than assuming the successful build made every destination ready.`,
216
212
  inputSchema: {
217
213
  document: z
218
214
  .string()
@@ -517,7 +513,7 @@ export const registerTemplates = (server, session, opts) => {
517
513
  ? last.steps.find((s) => s?.status === 'failed')
518
514
  : undefined;
519
515
  return said(last.status === 'succeeded'
520
- ? `Build ${build_id} succeeded. The image exists, but the fleet does not yet advertise a family it built rather than shipped, so a create naming this ref is still refused.`
516
+ ? `Build ${build_id} succeeded. Pass the published ref for this build to ${launcher} as \`template\`. ${launcher} may still return image preparation instructions or a capacity refusal; follow that result rather than assuming the successful build made every destination ready.`
521
517
  : `Build ${build_id} ${last.status}.` +
522
518
  (failed
523
519
  ? ` Step ${failed.n} (${failed.kind}: ${failed.label}) is the one that failed.`