@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.
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +41 -12
- package/dist/commands.js.map +1 -1
- package/dist/endpoint-evict.d.ts +9 -4
- package/dist/endpoint-evict.d.ts.map +1 -1
- package/dist/endpoint-evict.js +82 -26
- package/dist/endpoint-evict.js.map +1 -1
- package/dist/holder-liveness.d.ts +4 -0
- package/dist/holder-liveness.d.ts.map +1 -1
- package/dist/holder-liveness.js +95 -3
- package/dist/holder-liveness.js.map +1 -1
- package/dist/launch.d.ts +16 -0
- package/dist/launch.d.ts.map +1 -1
- package/dist/launch.js +49 -0
- package/dist/launch.js.map +1 -1
- package/dist/manager-service-contract.d.ts +15 -6
- package/dist/manager-service-contract.d.ts.map +1 -1
- package/dist/manager-service-contract.js +84 -13
- package/dist/manager-service-contract.js.map +1 -1
- package/dist/manager.d.ts +123 -51
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +441 -117
- package/dist/manager.js.map +1 -1
- package/dist/remote-authority.d.ts +12 -1
- package/dist/remote-authority.d.ts.map +1 -1
- package/dist/remote-authority.js +29 -2
- package/dist/remote-authority.js.map +1 -1
- package/dist/resume.d.ts.map +1 -1
- package/dist/resume.js +3 -0
- package/dist/resume.js.map +1 -1
- package/dist/run-hosting.d.ts +12 -1
- package/dist/run-hosting.d.ts.map +1 -1
- package/dist/run-hosting.js +28 -0
- package/dist/run-hosting.js.map +1 -1
- package/dist/runtime/custodial-pty.d.ts +8 -5
- package/dist/runtime/custodial-pty.d.ts.map +1 -1
- package/dist/runtime/custodial-pty.js +23 -12
- package/dist/runtime/custodial-pty.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +148 -5
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/pty.d.ts +3 -4
- package/dist/runtime/pty.d.ts.map +1 -1
- package/dist/runtime/pty.js +9 -6
- package/dist/runtime/pty.js.map +1 -1
- package/package.json +12 -12
- package/dist/ui.d.ts +0 -10
- package/dist/ui.d.ts.map +0 -1
- package/dist/ui.js +0 -10
- package/dist/ui.js.map +0 -1
package/dist/holder-liveness.js
CHANGED
|
@@ -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
|
-
|
|
90
|
-
|
|
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":"AAAA
|
|
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
|
package/dist/launch.d.ts.map
CHANGED
|
@@ -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;
|
|
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) {
|
package/dist/launch.js.map
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AAExB;sFACsF;AACtF,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAqFtD,iGAAiG;AACjG,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,QAAQ,GAAG,WAAW,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,sBAAsB,EAAE,CAAC;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,iCAAiC,CAAC;CACzD;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kCAAkC;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;IAC9G,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC/E,SAAS,CAAC,EAAE,gCAAgC,CAAC;IAC7C,QAAQ,EAAE,kCAAkC,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,GAAG,aAAa,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;
|
|
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"
|
|
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:
|
|
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);
|