@cotal-ai/manager 0.42.0 → 0.44.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.js +5 -2
- package/dist/commands.js.map +1 -1
- package/dist/deregister-instance.d.ts +5 -1
- package/dist/deregister-instance.d.ts.map +1 -1
- package/dist/deregister-instance.js +15 -3
- package/dist/deregister-instance.js.map +1 -1
- package/dist/launch.d.ts +1 -0
- package/dist/launch.d.ts.map +1 -1
- package/dist/launch.js +2 -0
- package/dist/launch.js.map +1 -1
- package/dist/manager.d.ts +15 -1
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +78 -20
- package/dist/manager.js.map +1 -1
- package/dist/reconcile-gate.d.ts +10 -1
- package/dist/reconcile-gate.d.ts.map +1 -1
- package/dist/reconcile-gate.js +43 -13
- package/dist/reconcile-gate.js.map +1 -1
- package/package.json +8 -8
package/dist/reconcile-gate.d.ts
CHANGED
|
@@ -48,13 +48,20 @@ export interface GateReconcileReport {
|
|
|
48
48
|
holderPrincipal: string;
|
|
49
49
|
opId: string;
|
|
50
50
|
freezeToken: number;
|
|
51
|
-
/** The coordinate before the repair
|
|
51
|
+
/** The coordinate before the repair. */
|
|
52
52
|
before: {
|
|
53
53
|
generation: number;
|
|
54
54
|
processEpoch: number;
|
|
55
55
|
registrationRevision: number;
|
|
56
56
|
nameAuthorityRevision: number;
|
|
57
57
|
};
|
|
58
|
+
/** After reopen: generation always +1. A committed spec also adopts its revision and may advance processEpoch. */
|
|
59
|
+
after: {
|
|
60
|
+
generation: number;
|
|
61
|
+
processEpoch: number;
|
|
62
|
+
registrationRevision: number;
|
|
63
|
+
nameAuthorityRevision: number;
|
|
64
|
+
};
|
|
58
65
|
liveness: HolderLiveness;
|
|
59
66
|
familyRows: number;
|
|
60
67
|
revoked: string[];
|
|
@@ -88,5 +95,7 @@ export declare function reconcileEndpointGate(opts: {
|
|
|
88
95
|
probeHolder: (principal: string) => Promise<HolderLiveness>;
|
|
89
96
|
evict: (holderPrincipal: string) => Promise<boolean>;
|
|
90
97
|
log: (line: string) => void;
|
|
98
|
+
/** Records store: same-op Phase-3 completion reads the spec key. Required so a missing store cannot silently abort-reopen a committed write. */
|
|
99
|
+
recordsKv: KV;
|
|
91
100
|
}): Promise<GateReconcileReport>;
|
|
92
101
|
//# sourceMappingURL=reconcile-gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-gate.d.ts","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reconcile-gate.d.ts","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC;;mDAEmD;AACnD,MAAM,MAAM,sBAAsB;AAChC,2FAA2F;AACzF,SAAS;AACX,wEAAwE;GACtE,YAAY;AACd,qGAAqG;GACnG,eAAe;AACjB,2FAA2F;GACzF,cAAc;AAChB,qGAAqG;GACnG,gBAAgB;AAClB;wEACwE;GACtE,0BAA0B;AAC5B,sFAAsF;GACpF,qBAAqB;AACvB,wFAAwF;GACtF,OAAO,CAAC;AAEZ,2EAA2E;AAC3E,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,SAAS,EAAE,sBAAsB;gBAAjC,SAAS,EAAE,sBAAsB,EAC1C,OAAO,EAAE,MAAM;CAKlB;AAED;;4EAE4E;AAC5E,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,KAAK,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,0FAA0F;AAC1F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IAClH,kHAAkH;IAClH,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE,CAAC;IACjH,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,kDAAkD;IAClD,0BAA0B,EAAE,MAAM,EAAE,CAAC;IACrC,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iGAAiG;IACjG,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,EAAE,EAAE,EAAE,CAAC;IACP,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,gJAAgJ;IAChJ,SAAS,EAAE,EAAE,CAAC;CACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkL/B"}
|
package/dist/reconcile-gate.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* pass. There is deliberately NO force flag and no path that discards gate state — a recovery path
|
|
26
26
|
* whose failure mode is killing a live manager does not get an override.
|
|
27
27
|
*/
|
|
28
|
-
import { endpointRegistrationBarrier, parseEndpointGate, epgateKey, loadEndpointRepairCursor, saveEndpointRepairCursor, deleteEndpointRepairCursor, repairCursorMatches, } from "@cotal-ai/core";
|
|
28
|
+
import { endpointRegistrationBarrier, parseEndpointGate, epgateKey, loadEndpointRepairCursor, saveEndpointRepairCursor, deleteEndpointRepairCursor, repairCursorMatches, completeFrozenRegistrationFromSpec, } from "@cotal-ai/core";
|
|
29
29
|
/** A refusal, carrying the condition as DATA rather than only as prose. */
|
|
30
30
|
export class GateReconcileRefused extends Error {
|
|
31
31
|
condition;
|
|
@@ -45,7 +45,7 @@ export class GateReconcileRefused extends Error {
|
|
|
45
45
|
* refuse, THEN mutate) is structural: the barrier is not even constructed until the probe passed.
|
|
46
46
|
*/
|
|
47
47
|
export async function reconcileEndpointGate(opts) {
|
|
48
|
-
const { kv, space, endpoint, instanceId, log } = opts;
|
|
48
|
+
const { kv, space, endpoint, instanceId, log, recordsKv } = opts;
|
|
49
49
|
// ---- 1. Observe the gate RAW: the freeze token IS the row revision, and the dead op's opId is
|
|
50
50
|
// on the row. Both are needed to complete that op's obligation rather than start a new one.
|
|
51
51
|
const key = epgateKey(endpoint, instanceId);
|
|
@@ -128,17 +128,43 @@ export async function reconcileEndpointGate(opts) {
|
|
|
128
128
|
const holdersRemaining = boundHolders.filter((h) => !cursor.verified.includes(h));
|
|
129
129
|
if (holdersRemaining.length !== 0)
|
|
130
130
|
throw new GateReconcileRefused("eviction-unverified", `repair of ${key} still has ${holdersRemaining.length} unverified holder(s) — the gate stays frozen.`);
|
|
131
|
-
// ---- 4. Token-pinned
|
|
132
|
-
//
|
|
131
|
+
// ---- 4. Token-pinned reopen. If the dead op's spec write committed, finish THAT op
|
|
132
|
+
// (promote + reopen at the committed registrationRevision, advancing processEpoch for a
|
|
133
|
+
// re-registration). Only a definite no-commit abort-reopens at the unchanged coordinate.
|
|
133
134
|
const reopenedAtGeneration = row.generation + 1;
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
135
|
+
let processEpochAfter = row.processEpoch;
|
|
136
|
+
let registrationRevisionAfter = row.registrationRevision;
|
|
137
|
+
let finished;
|
|
138
|
+
try {
|
|
139
|
+
finished = await completeFrozenRegistrationFromSpec(recordsKv, {
|
|
140
|
+
endpoint, instanceId, barrier, freezeToken,
|
|
141
|
+
gate: {
|
|
142
|
+
generation: row.generation, processEpoch: row.processEpoch,
|
|
143
|
+
registrationRevision: row.registrationRevision, nameAuthorityRevision: row.nameAuthorityRevision,
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
const msg = e?.message ?? String(e);
|
|
149
|
+
if (/reopen did not complete|lost its freeze token/.test(msg))
|
|
150
|
+
throw new GateReconcileRefused("raced", `the token-pinned reopen of ${key} lost its CAS — a newer barrier moved the gate while this repair ran. Nothing was reopened; re-observe before retrying.`);
|
|
151
|
+
throw e;
|
|
152
|
+
}
|
|
153
|
+
if (finished.completed) {
|
|
154
|
+
processEpochAfter = finished.processEpoch;
|
|
155
|
+
registrationRevisionAfter = finished.registrationRevision;
|
|
156
|
+
log(`same-op spec recovery: committed registrationRevision=${registrationRevisionAfter} processEpoch=${processEpochAfter}`);
|
|
157
|
+
}
|
|
158
|
+
if (processEpochAfter === row.processEpoch && registrationRevisionAfter === row.registrationRevision) {
|
|
159
|
+
const ok = await barrier.reopen(freezeToken, {
|
|
160
|
+
generation: reopenedAtGeneration,
|
|
161
|
+
processEpoch: row.processEpoch,
|
|
162
|
+
registrationRevision: row.registrationRevision,
|
|
163
|
+
nameAuthorityRevision: row.nameAuthorityRevision,
|
|
164
|
+
});
|
|
165
|
+
if (!ok)
|
|
166
|
+
throw new GateReconcileRefused("raced", `the token-pinned reopen of ${key} lost its CAS — a newer barrier moved the gate while this repair ran. Nothing was reopened; re-observe before retrying.`);
|
|
167
|
+
}
|
|
142
168
|
// The gate is already open, so cleanup cannot be a correctness precondition. Delete with the
|
|
143
169
|
// cursor's own revision; if it fails, retain the row and rely on its exact freeze-token binding.
|
|
144
170
|
// A later freeze necessarily has a different gate revision and overwrites it with empty progress
|
|
@@ -152,13 +178,17 @@ export async function reconcileEndpointGate(opts) {
|
|
|
152
178
|
repairCursorCleanup = "retained";
|
|
153
179
|
log(`repair cursor: cleanup retained a safely freeze-bound cursor: ${e?.message ?? String(e)}`);
|
|
154
180
|
}
|
|
155
|
-
log(`✓ gate ${key} reopened at generation=${reopenedAtGeneration}, processEpoch
|
|
181
|
+
log(`✓ gate ${key} reopened at generation=${reopenedAtGeneration}, processEpoch=${processEpochAfter}, registrationRevision=${registrationRevisionAfter}; family revoked this attempt (${revoked.length}), verify-evicted this attempt (${evicted.length}), durable verified ${cursor.verified.length}/${boundHolders.length}, cursor cleanup ${repairCursorCleanup}`);
|
|
156
182
|
return {
|
|
157
183
|
endpoint, instanceId, holderPrincipal: row.principal, opId, freezeToken,
|
|
158
184
|
before: {
|
|
159
185
|
generation: row.generation, processEpoch: row.processEpoch,
|
|
160
186
|
registrationRevision: row.registrationRevision, nameAuthorityRevision: row.nameAuthorityRevision,
|
|
161
187
|
},
|
|
188
|
+
after: {
|
|
189
|
+
generation: reopenedAtGeneration, processEpoch: processEpochAfter,
|
|
190
|
+
registrationRevision: registrationRevisionAfter, nameAuthorityRevision: row.nameAuthorityRevision,
|
|
191
|
+
},
|
|
162
192
|
liveness, familyRows: rows.length, revoked, evicted,
|
|
163
193
|
holders: boundHolders,
|
|
164
194
|
holdersVerifiedBeforeAttempt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-gate.js","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EACL,2BAA2B,EAAE,iBAAiB,EAAE,SAAS,EACzD,wBAAwB,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"reconcile-gate.js","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cotal-ai/manager",
|
|
3
3
|
"description": "Cotal agent supervisor: spawns and manages mesh nodes via a pluggable runtime (pty/tmux/cmux/orca/herdr).",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.44.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -30,19 +30,19 @@
|
|
|
30
30
|
"ws": "^8.21.0",
|
|
31
31
|
"yaml": "^2.9.0",
|
|
32
32
|
"zod": "^4.4.3",
|
|
33
|
-
"@cotal-ai/
|
|
34
|
-
"@cotal-ai/
|
|
33
|
+
"@cotal-ai/core": "0.44.0",
|
|
34
|
+
"@cotal-ai/workspace": "0.44.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@nats-io/nats-core": "^3.4.0",
|
|
38
38
|
"@types/ws": "^8.18.1",
|
|
39
39
|
"esbuild": "^0.28.1",
|
|
40
|
-
"@cotal-ai/auth": "0.
|
|
41
|
-
"@cotal-ai/connector-
|
|
42
|
-
"@cotal-ai/connector-
|
|
40
|
+
"@cotal-ai/auth": "0.44.0",
|
|
41
|
+
"@cotal-ai/connector-codex": "0.44.0",
|
|
42
|
+
"@cotal-ai/connector-core": "0.44.0",
|
|
43
43
|
"@cotal-ai/smoke-kit": "0.0.0",
|
|
44
|
-
"@cotal-ai/connector-
|
|
45
|
-
"@cotal-ai/connector-opencode": "0.
|
|
44
|
+
"@cotal-ai/connector-claude-code": "0.44.0",
|
|
45
|
+
"@cotal-ai/connector-opencode": "0.44.0"
|
|
46
46
|
},
|
|
47
47
|
"files": [
|
|
48
48
|
"dist"
|