@cotal-ai/manager 0.58.0 → 0.60.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 (51) hide show
  1. package/dist/commands.d.ts.map +1 -1
  2. package/dist/commands.js +41 -12
  3. package/dist/commands.js.map +1 -1
  4. package/dist/endpoint-evict.d.ts +9 -4
  5. package/dist/endpoint-evict.d.ts.map +1 -1
  6. package/dist/endpoint-evict.js +82 -26
  7. package/dist/endpoint-evict.js.map +1 -1
  8. package/dist/holder-liveness.d.ts +4 -0
  9. package/dist/holder-liveness.d.ts.map +1 -1
  10. package/dist/holder-liveness.js +95 -3
  11. package/dist/holder-liveness.js.map +1 -1
  12. package/dist/launch.d.ts +16 -0
  13. package/dist/launch.d.ts.map +1 -1
  14. package/dist/launch.js +49 -0
  15. package/dist/launch.js.map +1 -1
  16. package/dist/manager-service-contract.d.ts +15 -6
  17. package/dist/manager-service-contract.d.ts.map +1 -1
  18. package/dist/manager-service-contract.js +84 -13
  19. package/dist/manager-service-contract.js.map +1 -1
  20. package/dist/manager.d.ts +123 -51
  21. package/dist/manager.d.ts.map +1 -1
  22. package/dist/manager.js +441 -117
  23. package/dist/manager.js.map +1 -1
  24. package/dist/remote-authority.d.ts +12 -1
  25. package/dist/remote-authority.d.ts.map +1 -1
  26. package/dist/remote-authority.js +29 -2
  27. package/dist/remote-authority.js.map +1 -1
  28. package/dist/resume.d.ts.map +1 -1
  29. package/dist/resume.js +3 -0
  30. package/dist/resume.js.map +1 -1
  31. package/dist/run-hosting.d.ts +12 -1
  32. package/dist/run-hosting.d.ts.map +1 -1
  33. package/dist/run-hosting.js +28 -0
  34. package/dist/run-hosting.js.map +1 -1
  35. package/dist/runtime/custodial-pty.d.ts +8 -5
  36. package/dist/runtime/custodial-pty.d.ts.map +1 -1
  37. package/dist/runtime/custodial-pty.js +23 -12
  38. package/dist/runtime/custodial-pty.js.map +1 -1
  39. package/dist/runtime/index.d.ts +2 -0
  40. package/dist/runtime/index.d.ts.map +1 -1
  41. package/dist/runtime/index.js +148 -5
  42. package/dist/runtime/index.js.map +1 -1
  43. package/dist/runtime/pty.d.ts +3 -4
  44. package/dist/runtime/pty.d.ts.map +1 -1
  45. package/dist/runtime/pty.js +9 -6
  46. package/dist/runtime/pty.js.map +1 -1
  47. package/package.json +12 -12
  48. package/dist/ui.d.ts +0 -10
  49. package/dist/ui.d.ts.map +0 -1
  50. package/dist/ui.js +0 -10
  51. package/dist/ui.js.map +0 -1
@@ -19,6 +19,10 @@
19
19
  * command exists to avoid;
20
20
  * - a garbled reply, or one that does not ECHO the principal asked about, is `unestablishable` —
21
21
  * a result that does not verifiably describe THIS principal never authorizes.
22
+ *
23
+ * Each query also reads the delivery lease (`lease.0`) before it is sent, and a refusal or an
24
+ * unreachable rail reads it again, so the refusal names what is blocking the rail instead of always
25
+ * advising a restart (#1062). Those reads are diagnostic only: they change the copy, never the verdict.
22
26
  */
23
27
  import { CotalEndpoint, mintCreds, newIdentity, parsePrincipalLivenessResult } from "@cotal-ai/core";
24
28
  /**
@@ -48,10 +52,97 @@ export function holderLivenessFromReply(data, principal) {
48
52
  detail: `delivery-daemon CONNZ sweep, sweepComplete=${String(parsed.sweepComplete)}${parsed.note ? `: ${parsed.note}` : ""}`,
49
53
  };
50
54
  }
55
+ /** A lease time the diagnosis can print. Finite is not enough: `Date` stops at ±8.64e15 ms, and
56
+ * `toISOString()` throws past it. */
57
+ function isLeaseTime(t) {
58
+ return typeof t === "number" && !Number.isNaN(new Date(t).getTime());
59
+ }
60
+ function leaseTime(t, now) {
61
+ return `${new Date(t).toISOString()} (${Math.max(0, Math.round((now - t) / 1000))}s ago)`;
62
+ }
63
+ /** The lease row as facts. The row records no account, so the account named is the space account
64
+ * whose lease bucket holds it, the only account its writer can have authenticated in. */
65
+ function deliveryLeaseFacts(reading, account, now = Date.now()) {
66
+ if (reading.state === "absent")
67
+ return "lease.0 is absent: no delivery daemon holds the shard";
68
+ if (reading.state === "unreadable")
69
+ return `lease.0 is unreadable (${reading.error})`;
70
+ const { holder, acquiredAt, since, ready } = reading.lease;
71
+ const acquired = acquiredAt === undefined ? "acquired at an unknown time (the row predates that field)" : `acquired ${leaseTime(acquiredAt, now)}`;
72
+ return `lease.0 is held by "${holder}" (account ${account}), ${ready ? "ready" : "NOT ready"}, ${acquired}, row written ${leaseTime(since, now)}`;
73
+ }
74
+ /** Did one run of one daemon hold `lease.0` both before the query and after it failed? Only then can
75
+ * the holder read afterwards be the daemon that left the query unanswered. A row with no incarnation
76
+ * predates the field, and two of them cannot be proven the same run. */
77
+ function sameLeaseHolder(before, after) {
78
+ return (before.state === "held" &&
79
+ after.state === "held" &&
80
+ before.lease.holder === after.lease.holder &&
81
+ before.lease.incarnation !== undefined &&
82
+ before.lease.incarnation === after.lease.incarnation);
83
+ }
84
+ /** Who to act on when the rail did not answer at all. Only an absent lease means no daemon is
85
+ * running; every other reading names something that starting another daemon would not fix. A
86
+ * holder that took the shard while the query was outstanding was never asked, so it is not named
87
+ * as the blocker. Even the same ready holder on both reads is not proof it was asked: the rail is
88
+ * queue-grouped, and a stopped daemon whose lease lapsed can stay subscribed and take the query. */
89
+ function unansweredRailBlocker(before, after) {
90
+ if (after.state === "absent")
91
+ return "Start the delivery daemon (`cotal up` runs it) and re-run";
92
+ if (after.state === "unreadable")
93
+ return "The daemon that should answer cannot be named, so do not assume none is running: fix the lease read, then re-run";
94
+ const { holder, ready } = after.lease;
95
+ if (!sameLeaseHolder(before, after)) {
96
+ const was = before.state === "held" ? `held by "${before.lease.holder}" (incarnation ${before.lease.incarnation ?? "unknown"})` : before.state;
97
+ return `lease.0 was ${was} when the query was sent, so "${holder}" may not be the daemon that left it unanswered. Re-run before stopping anything`;
98
+ }
99
+ return ready
100
+ ? `"${holder}" held the shard as ready before and after the query, but the rail is queue-grouped, so the query may have gone to another daemon still subscribed to it, such as a stopped one whose lease lapsed. Re-run before stopping anything. If no run gets an answer, stop any other delivery daemon still running for this space, then stop or restart "${holder}"; another daemon cannot take the lease while it is held`
101
+ : `The blocker is "${holder}": it claimed the shard and has not bound its rails. Wait for it to become ready, or stop it so its lease lapses, then re-run`;
102
+ }
103
+ /** Read `lease.0` under a per-call read-only `observer` credential, the profile `cotal status` reads
104
+ * it with; the evictor credential holds no lease read by design. Never throws: a failed read is
105
+ * itself a reading. */
106
+ async function readDeliveryLeaseForDiagnosis(opts) {
107
+ const id = newIdentity();
108
+ let ep;
109
+ try {
110
+ ep = new CotalEndpoint({
111
+ space: opts.space,
112
+ servers: opts.servers,
113
+ creds: await mintCreds(opts.auth, id, "observer", { expiresInSeconds: 60 }),
114
+ card: { id: id.id, name: "manager-lease-diagnosis", kind: "endpoint" },
115
+ channels: [],
116
+ consume: false,
117
+ watchChannels: false,
118
+ watchPresence: false,
119
+ registerPresence: false,
120
+ });
121
+ ep.on("error", () => { });
122
+ await ep.start();
123
+ const entry = await ep.readDeliveryLeaseEntry(0);
124
+ if (!entry)
125
+ return { state: "absent" };
126
+ const { holder, acquiredAt, since, ready } = entry.info;
127
+ if (typeof holder !== "string" || typeof ready !== "boolean" || !isLeaseTime(since) || (acquiredAt !== undefined && !isLeaseTime(acquiredAt)))
128
+ return { state: "unreadable", error: `row is not a lease record: ${JSON.stringify(entry.info)}` };
129
+ return { state: "held", lease: entry.info };
130
+ }
131
+ catch (e) {
132
+ const error = e instanceof Error ? e.message : String(e);
133
+ // No lease bucket means no daemon can hold the shard, the reading `cotal status --components` gives it.
134
+ return /stream not found/i.test(error) ? { state: "absent" } : { state: "unreadable", error };
135
+ }
136
+ finally {
137
+ await ep?.stop().catch(() => { });
138
+ }
139
+ }
51
140
  /** Build the reconciler's `probeHolder(principal) → verdict`. Per-call connection, exactly as the
52
141
  * evictor does: a standing privileged connection would be a wider surface holding nothing. */
53
142
  export function makeManagerHolderLivenessProbe(opts) {
54
143
  return async (principal) => {
144
+ // Read before the query so a failed query can be pinned to the holder it could have reached.
145
+ const leaseBefore = await readDeliveryLeaseForDiagnosis(opts);
55
146
  const id = newIdentity();
56
147
  let ep;
57
148
  try {
@@ -73,7 +164,7 @@ export function makeManagerHolderLivenessProbe(opts) {
73
164
  if (!r.ok)
74
165
  return {
75
166
  state: "unestablishable",
76
- detail: `the delivery daemon refused the liveness query: ${r.error ?? "(no error copy)"}`,
167
+ detail: `the delivery daemon refused the liveness query: ${r.error ?? "(no error copy)"}; ${deliveryLeaseFacts(await readDeliveryLeaseForDiagnosis(opts), opts.auth.account.pub)}`,
77
168
  };
78
169
  const verdict = holderLivenessFromReply(r.data, principal);
79
170
  opts.log(`manager-holder-liveness: ${principal}: ${verdict.state} (${verdict.detail})`);
@@ -83,11 +174,12 @@ export function makeManagerHolderLivenessProbe(opts) {
83
174
  // The rail is unreachable, or the request TIMED OUT. Both are UNKNOWABILITY, and neither is
84
175
  // death: this is the branch a mutation would have to corrupt to turn verify-dead into
85
176
  // assume-dead-on-timeout, and it is the reason the reconciler refuses instead of proceeding.
177
+ const lease = await readDeliveryLeaseForDiagnosis(opts);
86
178
  return {
87
179
  state: "unestablishable",
88
180
  detail: `the delivery daemon is not reachable on the ctl.delivery-admin rail (${e instanceof Error ? e.message : String(e)}); ` +
89
- `without the liveness oracle the freeze-holder "${principal}" cannot be proven gone. ` +
90
- "Start the delivery daemon (`cotal up` runs it) and re-run — this repair never infers death from silence",
181
+ `${deliveryLeaseFacts(lease, opts.auth.account.pub)}. ${unansweredRailBlocker(leaseBefore, lease)}. ` +
182
+ `Without the liveness oracle the freeze-holder "${principal}" cannot be proven gone, and this repair never infers death from silence`,
91
183
  };
92
184
  }
93
185
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"holder-liveness.js","sourceRoot":"","sources":["../src/holder-liveness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"holder-liveness.js","sourceRoot":"","sources":["../src/holder-liveness.ts"],"names":[],"mappings":"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"}
package/dist/launch.d.ts CHANGED
@@ -42,4 +42,20 @@ export declare function launchAgentToStartOpts(a: MeshLaunchAgent, configPath: s
42
42
  hash: string;
43
43
  };
44
44
  };
45
+ /** The host session the manager last bound to a `continuity: exact` manifest agent, keyed by its
46
+ * declared name. Only the manager writes it, after the connector proved the session it runs. */
47
+ export interface ContinuityAssignment {
48
+ version: 1;
49
+ space: string;
50
+ name: string;
51
+ connector: string;
52
+ cwd: string;
53
+ sessionId: string;
54
+ }
55
+ /** The session to reopen for `continuity: exact`, or undefined when none was recorded yet (the first
56
+ * launch starts a new session). An assignment recorded for another space, connector or directory is
57
+ * refused rather than reopened: attaching it would restore a different seat's history. */
58
+ export declare function readContinuityAssignment(root: string, want: Omit<ContinuityAssignment, "version" | "sessionId">): string | undefined;
59
+ /** Record (or replace) a `continuity: exact` agent's session, atomically and 0600. */
60
+ export declare function writeContinuityAssignment(root: string, assignment: Omit<ContinuityAssignment, "version">): void;
45
61
  //# sourceMappingURL=launch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyH,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAsDlM;;2BAE2B;AAC3B,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAS5E;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAQ3D;AAED;;;;;6DAK6D;AAC7D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAO5E;AAED;;;;;kFAKkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAe5E;AA+BD;;wGAEwG;AACxG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAuB1F;AAED;uEACuE;AACvE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG;IAC9G,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,CAcA"}
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyH,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAuDlM;;2BAE2B;AAC3B,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAS5E;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAQ3D;AAED;;;;;6DAK6D;AAC7D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAO5E;AAED;;;;;kFAKkF;AAClF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAe5E;AA+BD;;wGAEwG;AACxG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAuB1F;AAED;uEACuE;AACvE,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG;IAC9G,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE,CAcA;AAED;iGACiG;AACjG,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD;;2FAE2F;AAC3F,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,WAAW,CAAC,GAAG,MAAM,GAAG,SAAS,CAyBpI;AAED,sFAAsF;AACtF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,GAAG,IAAI,CAM/G"}
package/dist/launch.js CHANGED
@@ -22,6 +22,7 @@ const LaunchAgentSchema = z.strictObject({
22
22
  agent: z.string().regex(TOKEN, "agent must be a connector token ([A-Za-z0-9_-])"),
23
23
  role: z.string().regex(TOKEN, "role must be a route-safe token ([A-Za-z0-9_-])").optional(),
24
24
  cwd: z.string().min(1).refine((s) => !s.includes("\0"), "cwd must not contain a NUL byte").optional(),
25
+ continuity: z.literal("exact").optional(),
25
26
  model: z.string().optional(),
26
27
  variant: z.string().min(1).optional(),
27
28
  launchOptions: z.record(z.string(), z.unknown()).optional(),
@@ -198,6 +199,54 @@ export function launchAgentToStartOpts(a, configPath, owner, runId) {
198
199
  launchRef: runId ? { runId, requested: a.name, hash: a.hash } : undefined,
199
200
  };
200
201
  }
202
+ const ContinuityAssignmentSchema = z.strictObject({
203
+ version: z.literal(1),
204
+ space: z.string().min(1),
205
+ name: z.string().min(1),
206
+ connector: z.string().min(1),
207
+ cwd: z.string().min(1),
208
+ sessionId: z.string().trim().min(1).max(4096),
209
+ });
210
+ /** The session to reopen for `continuity: exact`, or undefined when none was recorded yet (the first
211
+ * launch starts a new session). An assignment recorded for another space, connector or directory is
212
+ * refused rather than reopened: attaching it would restore a different seat's history. */
213
+ export function readContinuityAssignment(root, want) {
214
+ const dir = realDirNoSymlink(root, ".cotal", "continuity");
215
+ if (!dir)
216
+ return undefined;
217
+ const path = join(dir, `${want.name}.json`);
218
+ let st;
219
+ try {
220
+ st = lstatSync(path);
221
+ }
222
+ catch (e) {
223
+ if (e.code === "ENOENT")
224
+ return undefined;
225
+ throw new Error(`continuity assignment ${path}: ${e.message}`);
226
+ }
227
+ if (!st.isFile())
228
+ throw new Error(`refusing continuity assignment ${path}: it is not a regular file`);
229
+ let parsed;
230
+ try {
231
+ parsed = ContinuityAssignmentSchema.parse(JSON.parse(readFileSync(path, "utf8")));
232
+ }
233
+ catch (e) {
234
+ throw new Error(`continuity assignment ${path} is malformed (${e.message})`);
235
+ }
236
+ for (const key of ["space", "name", "connector", "cwd"])
237
+ if (parsed[key] !== want[key])
238
+ throw new Error(`continuity: exact for "${want.name}": its recorded session belongs to ${key} ${JSON.stringify(parsed[key])}, ` +
239
+ `not ${JSON.stringify(want[key])}; refusing to reopen it. Remove ${path} to start a new session.`);
240
+ return parsed.sessionId;
241
+ }
242
+ /** Record (or replace) a `continuity: exact` agent's session, atomically and 0600. */
243
+ export function writeContinuityAssignment(root, assignment) {
244
+ const dir = ensureDirNoSymlink(root, ".cotal", "continuity");
245
+ const path = join(dir, `${assignment.name}.json`);
246
+ const tmp = join(dir, `.${assignment.name}.${randomBytes(4).toString("hex")}.tmp`);
247
+ writeFileSync(tmp, JSON.stringify({ version: 1, ...assignment }, null, 2) + "\n", { mode: 0o600, flag: "wx" });
248
+ renameSync(tmp, path);
249
+ }
201
250
  /** Quote a frontmatter scalar so the agent-file parser reads it back unchanged (it strips a matching
202
251
  * outer quote pair). Plain tokens pass through; anything with structural chars is double-quoted. */
203
252
  function scalar(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"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"}
@@ -163,7 +163,16 @@ export declare const MANAGER_STATUS_CONTRACT: {
163
163
  * directory before a placed workflow spawn launches there.
164
164
  *
165
165
  * 18 = `goal-result` mediates a caller's own canonical terminal through the manager's trusted
166
- * goal-writer, so a result remains observable after the caller's connection is replaced. */
166
+ * goal-writer, so a result remains observable after the caller's connection is replaced.
167
+ *
168
+ * 19 = `run-answer` input grows `amend` (file a later answer beside a settled pause's accepted
169
+ * one), its output names `supersedes` for that form, and `run-status` journal rows carry
170
+ * `amendments`. Changed input and output contracts are a changed described surface even though
171
+ * the command names are unchanged.
172
+ *
173
+ * 20 = the `ps`/`inspect` row adds `resume`: the session a `--resume` seat forked, its title and
174
+ * its transcript hash. A changed output contract is a changed described surface even though the
175
+ * command names are unchanged. */
167
176
  export declare function managerClusterDocument(): {
168
177
  urn: string;
169
178
  revision: number;
@@ -185,17 +194,17 @@ export declare function managerShippedSurface(): {
185
194
  commandCount: number;
186
195
  names: string[];
187
196
  };
188
- /** The two-digest §13.7 content addressing for the manager document: the registered CLOSURE digest
189
- * names a `{v:1, root:<artifactDigest>, members:[]}` manifest whose root names the DOCUMENT. Both
190
- * artifacts are published to the `epc` store at their own digest; `clusterDigests` in the service
191
- * spec carries the closure digest. Returned together so the manager publishes both then registers
192
- * under the closure digest. */
193
197
  /** Public, immutable source artifacts used by both local registration and the remote
194
198
  * host-registration protocol. Exporting the same values avoids a second manager contract dialect. */
195
199
  export declare function managerAuthorityContractSource(): {
196
200
  document: ReturnType<typeof managerClusterDocument>;
197
201
  artifacts: unknown[];
198
202
  };
203
+ /** The two-digest §13.7 content addressing for the manager document: the registered CLOSURE digest
204
+ * names a `{v:1, root:<artifactDigest>, members:[]}` manifest whose root names the DOCUMENT. Both
205
+ * artifacts are published to the `epc` store at their own digest; `clusterDigests` in the service
206
+ * spec carries the closure digest. Returned together so the manager publishes both then registers
207
+ * under the closure digest. */
199
208
  export declare function managerClusterArtifacts(): {
200
209
  document: ReturnType<typeof managerClusterDocument>;
201
210
  rootDigest: string;
@@ -1 +1 @@
1
- {"version":3,"file":"manager-service-contract.d.ts","sourceRoot":"","sources":["../src/manager-service-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager-service-contract.d.ts","sourceRoot":"","sources":["../src/manager-service-contract.ts"],"names":[],"mappings":"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"}
@@ -140,11 +140,31 @@ const AGENT_ROW_SCHEMA = {
140
140
  status: { type: "string" },
141
141
  uptimeMs: { type: "integer", minimum: 0 },
142
142
  mesh: { type: "string" },
143
+ // The roster's harness-reported condition beside `mesh` (SPEC §6), its four fields projected. Optional:
144
+ // absent when the connector reported none, and on rows from managers that predate it.
145
+ condition: {
146
+ type: "object",
147
+ additionalProperties: false,
148
+ required: ["code"],
149
+ properties: {
150
+ code: { type: "string" },
151
+ source: { type: "string" },
152
+ message: { type: "string" },
153
+ since: { type: "number" },
154
+ },
155
+ },
156
+ // The roster's `activeAt` (SPEC §6): epoch ms of the seat's last harness-reported work progress.
157
+ // Optional: absent when the connector reports none, and on rows from managers that predate it.
158
+ activeAt: { type: "number" },
143
159
  // The observing manager's presence-view state at the time of the read: `current` (the mesh
144
160
  // column is a verdict), `stale` (its watch has been silent past TTL; `mesh` is last-known),
145
161
  // or `unpopulated` (its watch has not replayed the bucket yet; `absent` means nothing).
146
162
  // Optional so a v0.47 manager's rows still validate; a reader treats absence as `current`.
147
163
  meshView: { type: "string", enum: ["current", "stale", "unpopulated"] },
164
+ // Epoch ms of the seat's last presence heartbeat, present only when `mesh` is `offline` and
165
+ // `meshView` is `current`: when the offline verdict began (#1208). Optional so an older
166
+ // manager's rows still validate.
167
+ offlineSince: { type: "integer", minimum: 0 },
148
168
  lifecycleUid: { type: "string" },
149
169
  authHealth: { type: "string" },
150
170
  authReason: { type: "string" },
@@ -165,6 +185,15 @@ const AGENT_ROW_SCHEMA = {
165
185
  spawner: { type: "string" },
166
186
  instanceId: { type: "string" },
167
187
  host: { type: "string" },
188
+ // #1500: present only on a `--resume` seat. `source` is the session it forked; `title` and
189
+ // `transcriptSha256` appear once the seat has recorded its fork, and `title` only when the source
190
+ // has one.
191
+ resume: {
192
+ type: "object",
193
+ additionalProperties: false,
194
+ required: ["source"],
195
+ properties: { source: { type: "string" }, title: { type: "string" }, transcriptSha256: { type: "string" } },
196
+ },
168
197
  },
169
198
  };
170
199
  const PS_OUTPUT_SCHEMA = { type: "array", items: AGENT_ROW_SCHEMA };
@@ -326,9 +355,6 @@ const INPUT_OUTPUT_SCHEMA = {
326
355
  type: "object", additionalProperties: false, required: ["name", "bytes"],
327
356
  properties: { name: { type: "string" }, bytes: { type: "integer", minimum: 0 } },
328
357
  };
329
- /** `models` output, NORMALIZED: always the full catalog list ({@link ManagerServiceHandlers}
330
- * wraps the ctl op's single-or-array reply). Catalog rows stay OPEN — a connector's catalog may
331
- * carry host-specific fields beyond the core `ConnectorModelCatalog` shape. */
332
358
  /** `turn` (workflow runs, cotal-lang §5.3): wake the TARGET seat for one turn on behalf of a
333
359
  * workflow run. The manager relays and stays run-ignorant: `payload` is an opaque bounded string
334
360
  * the seat pulls back verbatim through `turn-pending` — its shape is the runtime↔connector
@@ -413,6 +439,9 @@ const MODELS_INPUT_SCHEMA = {
413
439
  type: "object", additionalProperties: false,
414
440
  properties: { agent: { type: "string" }, refresh: { type: "boolean" } },
415
441
  };
442
+ /** `models` output, NORMALIZED: always the full catalog list ({@link ManagerServiceHandlers}
443
+ * wraps the ctl op's single-or-array reply). Catalog rows stay OPEN — a connector's catalog may
444
+ * carry host-specific fields beyond the core `ConnectorModelCatalog` shape. */
416
445
  const MODELS_OUTPUT_SCHEMA = {
417
446
  type: "object", additionalProperties: false, required: ["catalogs"],
418
447
  properties: {
@@ -586,10 +615,17 @@ const RUN_ROW_SCHEMA = {
586
615
  holder: { type: "string" },
587
616
  epoch: { type: "integer", minimum: 0 },
588
617
  journalHigh: { type: "integer", minimum: -1 },
618
+ startedAt: { type: "number" },
619
+ programHash: { type: "string" },
589
620
  forkedFrom: {
590
621
  type: "object", additionalProperties: false, required: ["run", "step"],
591
622
  properties: { run: { type: "string" }, step: { type: "string" } },
592
623
  },
624
+ revoked: {
625
+ type: "object", additionalProperties: false, required: ["by", "reason"],
626
+ properties: { by: { type: "string" }, reason: { type: "string" } },
627
+ },
628
+ revocationUnreadable: { type: "string" },
593
629
  },
594
630
  };
595
631
  const RUN_PS_OUTPUT_SCHEMA = { type: "array", items: RUN_ROW_SCHEMA };
@@ -612,10 +648,18 @@ const RUN_STATUS_OUTPUT_SCHEMA = {
612
648
  epoch: { type: "integer", minimum: 0 },
613
649
  replayedTo: { type: "integer", minimum: 0 },
614
650
  step: { type: "string" },
651
+ effect: { type: "string" },
652
+ name: { type: "string" },
615
653
  state: { type: "string", enum: ["pending", "settled"] },
616
654
  outcome: { type: "string" },
655
+ status: { type: "string" },
656
+ errorCode: { type: "string" },
657
+ startedAt: { type: "number" },
658
+ endedAt: { type: "number" },
617
659
  asks: { type: "string" },
618
660
  addressee: { type: "string" },
661
+ deadlineAt: { type: "number" },
662
+ onExpiry: { type: "string" },
619
663
  answer: {
620
664
  type: "object", additionalProperties: false, required: ["answerId"],
621
665
  properties: {
@@ -626,13 +670,28 @@ const RUN_STATUS_OUTPUT_SCHEMA = {
626
670
  at: { type: "number" },
627
671
  },
628
672
  },
673
+ amendments: {
674
+ type: "array",
675
+ items: {
676
+ type: "object", additionalProperties: false, required: ["answerId", "supersedes", "by", "at"],
677
+ properties: {
678
+ answerId: { type: "string" },
679
+ supersedes: { type: "string" },
680
+ value: {},
681
+ by: { type: "string" },
682
+ artifact: { type: "string" },
683
+ at: { type: "number" },
684
+ },
685
+ },
686
+ },
629
687
  },
630
688
  },
631
689
  },
632
690
  },
633
691
  };
634
692
  /** No `by`: the answerer is the caller as the manager knows them, decided from the authenticated
635
- * principal at the serve layer (SPEC 14.5), so a request cannot name someone else. */
693
+ * principal at the serve layer (SPEC 14.5), so a request cannot name someone else. `amend` files a
694
+ * later answer beside a SETTLED pause's accepted one instead of answering an open pause. */
636
695
  const RUN_ANSWER_INPUT_SCHEMA = {
637
696
  type: "object", additionalProperties: false, required: ["runId", "stepKey"],
638
697
  properties: {
@@ -641,11 +700,14 @@ const RUN_ANSWER_INPUT_SCHEMA = {
641
700
  stepKey: { type: "string", minLength: 1 },
642
701
  value: {},
643
702
  artifact: { type: "string", minLength: 1 },
703
+ amend: { type: "boolean" },
644
704
  },
645
705
  };
706
+ /** An answer names its `settle`; an amendment names the accepted answer it `supersedes` and
707
+ * presents nothing. */
646
708
  const RUN_ANSWER_OUTPUT_SCHEMA = {
647
- type: "object", additionalProperties: false, required: ["token", "answerId", "settle"],
648
- properties: { token: { type: "string" }, answerId: { type: "string" }, settle: { type: "object" } },
709
+ type: "object", additionalProperties: false, required: ["token", "answerId"],
710
+ properties: { token: { type: "string" }, answerId: { type: "string" }, settle: { type: "object" }, supersedes: { type: "string" } },
649
711
  };
650
712
  const ROWS = [
651
713
  { name: "status", capability: "manager.read", input: VOID_SCHEMA, output: STATUS_OUTPUT_SCHEMA, targeted: false, handler: "status" },
@@ -804,11 +866,20 @@ export const MANAGER_STATUS_CONTRACT = new Proxy({}, {
804
866
  * directory before a placed workflow spawn launches there.
805
867
  *
806
868
  * 18 = `goal-result` mediates a caller's own canonical terminal through the manager's trusted
807
- * goal-writer, so a result remains observable after the caller's connection is replaced. */
869
+ * goal-writer, so a result remains observable after the caller's connection is replaced.
870
+ *
871
+ * 19 = `run-answer` input grows `amend` (file a later answer beside a settled pause's accepted
872
+ * one), its output names `supersedes` for that form, and `run-status` journal rows carry
873
+ * `amendments`. Changed input and output contracts are a changed described surface even though
874
+ * the command names are unchanged.
875
+ *
876
+ * 20 = the `ps`/`inspect` row adds `resume`: the session a `--resume` seat forked, its title and
877
+ * its transcript hash. A changed output contract is a changed described surface even though the
878
+ * command names are unchanged. */
808
879
  export function managerClusterDocument() {
809
880
  return {
810
881
  urn: MANAGER_CLUSTER_URN,
811
- revision: 18,
882
+ revision: 20,
812
883
  attributes: [],
813
884
  events: [],
814
885
  commands: ROWS.map((r) => ({
@@ -832,16 +903,16 @@ export function managerShippedSurface() {
832
903
  }
833
904
  return { revision: document.revision, commandCount: names.length, names };
834
905
  }
835
- /** The two-digest §13.7 content addressing for the manager document: the registered CLOSURE digest
836
- * names a `{v:1, root:<artifactDigest>, members:[]}` manifest whose root names the DOCUMENT. Both
837
- * artifacts are published to the `epc` store at their own digest; `clusterDigests` in the service
838
- * spec carries the closure digest. Returned together so the manager publishes both then registers
839
- * under the closure digest. */
840
906
  /** Public, immutable source artifacts used by both local registration and the remote
841
907
  * host-registration protocol. Exporting the same values avoids a second manager contract dialect. */
842
908
  export function managerAuthorityContractSource() {
843
909
  return { document: managerClusterDocument(), artifacts: managerContractArtifactValues() };
844
910
  }
911
+ /** The two-digest §13.7 content addressing for the manager document: the registered CLOSURE digest
912
+ * names a `{v:1, root:<artifactDigest>, members:[]}` manifest whose root names the DOCUMENT. Both
913
+ * artifacts are published to the `epc` store at their own digest; `clusterDigests` in the service
914
+ * spec carries the closure digest. Returned together so the manager publishes both then registers
915
+ * under the closure digest. */
845
916
  export function managerClusterArtifacts() {
846
917
  const document = managerClusterDocument();
847
918
  const rootDigest = contractDigest(document);