@cotal-ai/manager 0.36.0 → 0.37.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/README.md +3 -1
- package/dist/commands.d.ts +19 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +13 -6
- package/dist/commands.js.map +1 -1
- package/dist/endpoint-evict.d.ts +5 -3
- package/dist/endpoint-evict.d.ts.map +1 -1
- package/dist/endpoint-evict.js +10 -5
- package/dist/endpoint-evict.js.map +1 -1
- package/dist/manager-service-contract.d.ts +24 -2
- package/dist/manager-service-contract.d.ts.map +1 -1
- package/dist/manager-service-contract.js +81 -7
- package/dist/manager-service-contract.js.map +1 -1
- package/dist/manager.d.ts +29 -2
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +231 -29
- package/dist/manager.js.map +1 -1
- package/dist/reconcile-gate.d.ts +10 -0
- package/dist/reconcile-gate.d.ts.map +1 -1
- package/dist/reconcile-gate.js +60 -7
- package/dist/reconcile-gate.js.map +1 -1
- package/dist/static-lifecycle.d.ts +28 -7
- package/dist/static-lifecycle.d.ts.map +1 -1
- package/dist/static-lifecycle.js +114 -15
- package/dist/static-lifecycle.js.map +1 -1
- package/package.json +9 -5
package/dist/reconcile-gate.d.ts
CHANGED
|
@@ -59,6 +59,16 @@ export interface GateReconcileReport {
|
|
|
59
59
|
familyRows: number;
|
|
60
60
|
revoked: string[];
|
|
61
61
|
evicted: string[];
|
|
62
|
+
/** Distinct holders this freeze must verify-evict (sorted). */
|
|
63
|
+
holders: string[];
|
|
64
|
+
/** Durable verified set at the start of this attempt (skipped). */
|
|
65
|
+
holdersVerifiedBeforeAttempt: string[];
|
|
66
|
+
/** Holders verify-evicted during this attempt. */
|
|
67
|
+
holdersVerifiedThisAttempt: string[];
|
|
68
|
+
/** Holders still required after this attempt (empty on success). */
|
|
69
|
+
holdersRemaining: string[];
|
|
70
|
+
/** Cleanup is best-effort after reopen. A retained cursor cannot match a later gate revision. */
|
|
71
|
+
repairCursorCleanup: "deleted" | "retained";
|
|
62
72
|
reopenedAtGeneration: number;
|
|
63
73
|
}
|
|
64
74
|
/**
|
|
@@ -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":"AAgCA,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,kGAAkG;IAClG,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,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;CAC7B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqJ/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, } from "@cotal-ai/core";
|
|
28
|
+
import { endpointRegistrationBarrier, parseEndpointGate, epgateKey, loadEndpointRepairCursor, saveEndpointRepairCursor, deleteEndpointRepairCursor, repairCursorMatches, } 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;
|
|
@@ -87,13 +87,47 @@ export async function reconcileEndpointGate(opts) {
|
|
|
87
87
|
// the probe proved it gone, and the barrier's verify is what makes that durable rather than a
|
|
88
88
|
// snapshot. An unverified eviction aborts and LEAVES THE GATE FROZEN (unchanged §13.1 posture).
|
|
89
89
|
const holders = [...new Set([row.principal, ...rows.map((r) => r.holderPrincipal)])];
|
|
90
|
+
const boundHolders = [...holders].sort();
|
|
91
|
+
const binding = { opId, freezeToken, holders: boundHolders };
|
|
92
|
+
const stored = await loadEndpointRepairCursor(kv, endpoint, instanceId);
|
|
93
|
+
let cursor;
|
|
94
|
+
let cursorRevision;
|
|
95
|
+
if (stored && repairCursorMatches(stored.cursor, binding)) {
|
|
96
|
+
cursor = stored.cursor;
|
|
97
|
+
cursorRevision = stored.revision;
|
|
98
|
+
log(`repair cursor: resume op=${opId} freezeToken=${freezeToken} verified=${cursor.verified.length}/${boundHolders.length}`);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
cursor = { v: 1, opId, freezeToken, holders: boundHolders, verified: [] };
|
|
102
|
+
cursorRevision = stored ? stored.revision : null;
|
|
103
|
+
cursorRevision = await saveEndpointRepairCursor(kv, endpoint, instanceId, cursor, cursorRevision);
|
|
104
|
+
log(`repair cursor: restart op=${opId} freezeToken=${freezeToken} holders=${boundHolders.length} (prior cursor discarded)`);
|
|
105
|
+
}
|
|
106
|
+
const skipped = new Set(cursor.verified);
|
|
107
|
+
const holdersVerifiedBeforeAttempt = [...cursor.verified];
|
|
90
108
|
const evicted = [];
|
|
91
|
-
for (const h of
|
|
92
|
-
if (
|
|
93
|
-
|
|
109
|
+
for (const h of boundHolders) {
|
|
110
|
+
if (skipped.has(h)) {
|
|
111
|
+
log(` already verified (durable): ${h}`);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
let verified;
|
|
115
|
+
try {
|
|
116
|
+
verified = await barrier.evict(h);
|
|
117
|
+
}
|
|
118
|
+
catch (e) {
|
|
119
|
+
throw new GateReconcileRefused("eviction-unverified", `eviction verification for "${h}" was interrupted — the gate stays frozen (fail-closed, SPEC 13.1). Durable progress: ${cursor.verified.length} completed, ${boundHolders.length - cursor.verified.length} remaining. Cause: ${e?.message ?? String(e)}`);
|
|
120
|
+
}
|
|
121
|
+
if (!verified)
|
|
122
|
+
throw new GateReconcileRefused("eviction-unverified", `eviction of "${h}" was NOT verified gone — the gate stays frozen (fail-closed, SPEC 13.1). Nothing was reopened; the revocations above are deny-new and safe to leave. Durable progress: ${cursor.verified.length} completed, ${boundHolders.length - cursor.verified.length} remaining.`);
|
|
94
123
|
evicted.push(h);
|
|
95
|
-
|
|
124
|
+
cursor = { ...cursor, verified: [...new Set([...cursor.verified, h])].sort() };
|
|
125
|
+
cursorRevision = await saveEndpointRepairCursor(kv, endpoint, instanceId, cursor, cursorRevision);
|
|
126
|
+
log(` verified evicted: ${h} (${cursor.verified.length}/${boundHolders.length})`);
|
|
96
127
|
}
|
|
128
|
+
const holdersRemaining = boundHolders.filter((h) => !cursor.verified.includes(h));
|
|
129
|
+
if (holdersRemaining.length !== 0)
|
|
130
|
+
throw new GateReconcileRefused("eviction-unverified", `repair of ${key} still has ${holdersRemaining.length} unverified holder(s) — the gate stays frozen.`);
|
|
97
131
|
// ---- 4. Token-pinned abort-reopen at the UNCHANGED coordinate. The dead op wrote nothing
|
|
98
132
|
// forward, so only `generation` advances; the successor's normal takeover then runs end-to-end.
|
|
99
133
|
const reopenedAtGeneration = row.generation + 1;
|
|
@@ -105,14 +139,33 @@ export async function reconcileEndpointGate(opts) {
|
|
|
105
139
|
});
|
|
106
140
|
if (!ok)
|
|
107
141
|
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.`);
|
|
108
|
-
|
|
142
|
+
// The gate is already open, so cleanup cannot be a correctness precondition. Delete with the
|
|
143
|
+
// cursor's own revision; if it fails, retain the row and rely on its exact freeze-token binding.
|
|
144
|
+
// A later freeze necessarily has a different gate revision and overwrites it with empty progress
|
|
145
|
+
// before any holder can be skipped.
|
|
146
|
+
let repairCursorCleanup = "deleted";
|
|
147
|
+
try {
|
|
148
|
+
await deleteEndpointRepairCursor(kv, endpoint, instanceId, cursorRevision);
|
|
149
|
+
log(`repair cursor: deleted after reopen`);
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
repairCursorCleanup = "retained";
|
|
153
|
+
log(`repair cursor: cleanup retained a safely freeze-bound cursor: ${e?.message ?? String(e)}`);
|
|
154
|
+
}
|
|
155
|
+
log(`✓ gate ${key} reopened at generation=${reopenedAtGeneration}, processEpoch unchanged (${row.processEpoch}); family revoked this attempt (${revoked.length}), verify-evicted this attempt (${evicted.length}), durable verified ${cursor.verified.length}/${boundHolders.length}, cursor cleanup ${repairCursorCleanup}`);
|
|
109
156
|
return {
|
|
110
157
|
endpoint, instanceId, holderPrincipal: row.principal, opId, freezeToken,
|
|
111
158
|
before: {
|
|
112
159
|
generation: row.generation, processEpoch: row.processEpoch,
|
|
113
160
|
registrationRevision: row.registrationRevision, nameAuthorityRevision: row.nameAuthorityRevision,
|
|
114
161
|
},
|
|
115
|
-
liveness, familyRows: rows.length, revoked, evicted,
|
|
162
|
+
liveness, familyRows: rows.length, revoked, evicted,
|
|
163
|
+
holders: boundHolders,
|
|
164
|
+
holdersVerifiedBeforeAttempt,
|
|
165
|
+
holdersVerifiedThisAttempt: evicted,
|
|
166
|
+
holdersRemaining,
|
|
167
|
+
repairCursorCleanup,
|
|
168
|
+
reopenedAtGeneration,
|
|
116
169
|
};
|
|
117
170
|
}
|
|
118
171
|
//# sourceMappingURL=reconcile-gate.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"reconcile-gate.js","sourceRoot":"","sources":["../src/reconcile-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,28 @@
|
|
|
8
8
|
* Three-way split (the Unit B design note, panel-locked): the key/value GRAMMAR lives in core
|
|
9
9
|
* `lifecycle-state.ts`; the CAS SEQUENCING is the shared core saga this module DELEGATES to
|
|
10
10
|
* (never a hand-ordered local copy); the barrier ORCHESTRATION here is the static executor's
|
|
11
|
-
* own (revoke from the slot's recorded credentialIds,
|
|
12
|
-
*
|
|
11
|
+
* own (revoke from the slot's recorded credentialIds, fail-closed broker connection eviction of the
|
|
12
|
+
* holder principals THOSE ROWS name — SPEC 13.1's own target set — that holds the lifecycle
|
|
13
|
+
* terminalizing until a complete scan verifies each gone, then footprint cleanup via the manager's
|
|
14
|
+
* deprovision hooks).
|
|
13
15
|
*
|
|
14
16
|
* F5-bind (the F4 restatement): the wire AUTHORITY coordinate is the incarnation-unique nkey
|
|
15
17
|
* (`actor`); the ALIAS is routing only, protected by the name-keyed slot row + uid reservation +
|
|
16
18
|
* the manager's freeSlot hold — never by the head CAS alone (the head is principal-keyed).
|
|
17
19
|
*/
|
|
18
|
-
import { type LifecycleStateTransport, type StaticManagedSlotRow } from "@cotal-ai/core";
|
|
20
|
+
import { type LifecycleStateTransport, type StaticManagedSlotRow, type EvictionResult } from "@cotal-ai/core";
|
|
19
21
|
import type { KV } from "@nats-io/kv";
|
|
22
|
+
export interface StaticLifecycleAuditSpec {
|
|
23
|
+
v: 1;
|
|
24
|
+
principal: string;
|
|
25
|
+
alias: string;
|
|
26
|
+
lifecycleUid: string;
|
|
27
|
+
managerInstance: string;
|
|
28
|
+
managerProcessUid: string;
|
|
29
|
+
retirementOpId: string;
|
|
30
|
+
broker: Pick<EvictionResult, "kicked" | "remaining" | "scanComplete" | "verifiedGone">;
|
|
31
|
+
timestamp: string;
|
|
32
|
+
}
|
|
20
33
|
/** The direct-KV transport over the two authority stores, bound per lifecycle OPERATION on an
|
|
21
34
|
* ephemeral, key-pinned `lifecycle-executor` connection (the manager mints it; see
|
|
22
35
|
* `withLifecycleExecutor`). Mirrors the auth implementation's sealed `transportOf` — a
|
|
@@ -54,8 +67,13 @@ export declare function appendStaticCredentialRow(t: LifecycleStateTransport, ar
|
|
|
54
67
|
/** The static terminal's B1 revoke: CAS every recorded row `active -> revoked`. Enumeration is
|
|
55
68
|
* the SLOT's recorded credentialIds (recorded before every mint), never a store listing. An
|
|
56
69
|
* ABSENT row is the legitimate crash window (id recorded, mint never reached) — no credential
|
|
57
|
-
* exists for it, logged and skipped; a revoked row is idempotence.
|
|
58
|
-
|
|
70
|
+
* exists for it, logged and skipped; a revoked row is idempotence.
|
|
71
|
+
*
|
|
72
|
+
* RETURNS the barrier's eviction TARGET SET: the distinct `holderPrincipal` of every ledger row
|
|
73
|
+
* this revoke COVERED — the rows it just CASed AND the already-`revoked` rows a resume walked
|
|
74
|
+
* over, because a crash between revoke and eviction must never leave a revoked credential's
|
|
75
|
+
* connection live. An absent row contributes nothing: no credential exists for it. */
|
|
76
|
+
export declare function revokeStaticCredentialRows(t: LifecycleStateTransport, lifecycleUid: string, credentialIds: readonly string[], log: (line: string) => void): Promise<string[]>;
|
|
59
77
|
/** The static ACTIVATION: F3 intent FIRST (durable outer spawn intent, phase `provisioning`),
|
|
60
78
|
* then the SHARED core activation saga at the spawn's uid (reserve -> gate frozen -> head CAS
|
|
61
79
|
* -> reopen LAST). Returns the slot revision the spawn path later CASes to `active` once the
|
|
@@ -71,8 +89,8 @@ export declare function activateStaticLifecycle(t: LifecycleStateTransport, args
|
|
|
71
89
|
slotRevision: number;
|
|
72
90
|
}>;
|
|
73
91
|
/** The static TERMINAL (F1, the (b2) order): freeze-under-the-retirement-op -> head
|
|
74
|
-
* `active -> retiring` -> B1 ledger revoke -> cleanup (the injected
|
|
75
|
-
*
|
|
92
|
+
* `active -> retiring` -> B1 ledger revoke -> broker connection eviction -> cleanup (the injected
|
|
93
|
+
* footprint teardown; on a normal stop the manager separately proves runtime exit) -> gate
|
|
76
94
|
* `frozen -> retired` -> head `retiring -> retired` LAST -> slot `retired` (the alias frees).
|
|
77
95
|
* Every gate/head step DELEGATES to the shared core saga; recovery recognizes a SAME-OP
|
|
78
96
|
* terminal gate and finishes the head (the lost-ack alias wedge the panel closed).
|
|
@@ -87,8 +105,11 @@ export declare function runStaticTerminal(t: LifecycleStateTransport, args: {
|
|
|
87
105
|
actor: string;
|
|
88
106
|
lifecycleUid: string;
|
|
89
107
|
opId: string;
|
|
108
|
+
managerInstance: string;
|
|
109
|
+
managerProcessUid: string;
|
|
90
110
|
}, hooks: {
|
|
91
111
|
cleanup: () => Promise<void>;
|
|
112
|
+
evict: (holderPrincipal: string) => Promise<EvictionResult>;
|
|
92
113
|
log: (line: string) => void;
|
|
93
114
|
}): Promise<"retired">;
|
|
94
115
|
/** The boot-sweep resume decision, TOTAL over the phase enum (F3): what the manager must do
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-lifecycle.d.ts","sourceRoot":"","sources":["../src/static-lifecycle.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"static-lifecycle.d.ts","sourceRoot":"","sources":["../src/static-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAGL,KAAK,uBAAuB,EAE5B,KAAK,oBAAoB,EAoBzB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAItC,MAAM,WAAW,wBAAwB;IACvC,CAAC,EAAE,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAC7D,eAAe,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAC3E,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC;IACvF,SAAS,EAAE,MAAM,CAAC;CACnB;AAkED;;;4DAG4D;AAC5D,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,uBAAuB,CAU3F;AAED;kCACkC;AAClC,wBAAsB,cAAc,CAClC,CAAC,EAAE,uBAAuB,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,GAAG,EAAE,oBAAoB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAOtE;AAED;;;;iGAIiG;AACjG,wBAAsB,qBAAqB,CACzC,CAAC,EAAE,uBAAuB,EAC1B,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,eAAe,CAAC,GACzD,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAW/B;AAED,sEAAsE;AACtE,wBAAsB,aAAa,CACjC,CAAC,EAAE,uBAAuB,EAC1B,GAAG,EAAE,oBAAoB,EACzB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;kEAEkE;AAClE,wBAAsB,oBAAoB,CACxC,CAAC,EAAE,uBAAuB,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;+EAE+E;AAC/E,wBAAsB,yBAAyB,CAC7C,CAAC,EAAE,uBAAuB,EAC1B,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACzF,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;;;;;;uFAQuF;AACvF,wBAAsB,0BAA0B,CAC9C,CAAC,EAAE,uBAAuB,EAC1B,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAED;;;iCAGiC;AACjC,wBAAsB,uBAAuB,CAC3C,CAAC,EAAE,uBAAuB,EAC1B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAC5H,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAWnC;AAED;;;;;;;;;;8BAU8B;AAC9B,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,uBAAuB,EAC1B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,EAC7I,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAChI,OAAO,CAAC,SAAS,CAAC,CA0GpB;AAED;kEACkE;AAClE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,gBAAgB,CAsB3G"}
|
package/dist/static-lifecycle.js
CHANGED
|
@@ -8,15 +8,82 @@
|
|
|
8
8
|
* Three-way split (the Unit B design note, panel-locked): the key/value GRAMMAR lives in core
|
|
9
9
|
* `lifecycle-state.ts`; the CAS SEQUENCING is the shared core saga this module DELEGATES to
|
|
10
10
|
* (never a hand-ordered local copy); the barrier ORCHESTRATION here is the static executor's
|
|
11
|
-
* own (revoke from the slot's recorded credentialIds,
|
|
12
|
-
*
|
|
11
|
+
* own (revoke from the slot's recorded credentialIds, fail-closed broker connection eviction of the
|
|
12
|
+
* holder principals THOSE ROWS name — SPEC 13.1's own target set — that holds the lifecycle
|
|
13
|
+
* terminalizing until a complete scan verifies each gone, then footprint cleanup via the manager's
|
|
14
|
+
* deprovision hooks).
|
|
13
15
|
*
|
|
14
16
|
* F5-bind (the F4 restatement): the wire AUTHORITY coordinate is the incarnation-unique nkey
|
|
15
17
|
* (`actor`); the ALIAS is routing only, protected by the name-keyed slot row + uid reservation +
|
|
16
18
|
* the manager's freeSlot hold — never by the head CAS alone (the head is principal-keyed).
|
|
17
19
|
*/
|
|
18
|
-
import { EpEnvelopeError, staticSlotKey, parseStaticSlotRow, credRowKey, parseLedgerRow, SOURCE_ROOT, createRecordEntry, updateRecordEntry, runActivationSagaAtUid, resumeActivationSaga, gateObserve, gateFreeze, gateRetire, headCandidate, headBeginRetirement, headCompleteRetirement, } from "@cotal-ai/core";
|
|
20
|
+
import { EpEnvelopeError, lifecycleBlocked, staticSlotKey, parseStaticSlotRow, credRowKey, parseLedgerRow, SOURCE_ROOT, RECORD_KINDS, recordSpecKey, createRecordEntry, updateRecordEntry, runActivationSagaAtUid, resumeActivationSaga, gateObserve, gateFreeze, gateRetire, headCandidate, headBeginRetirement, headCompleteRetirement, } from "@cotal-ai/core";
|
|
19
21
|
const enc = new TextEncoder();
|
|
22
|
+
function sameAudit(a, b) {
|
|
23
|
+
return a.v === b.v && a.principal === b.principal && a.alias === b.alias && a.lifecycleUid === b.lifecycleUid &&
|
|
24
|
+
a.managerInstance === b.managerInstance && a.managerProcessUid === b.managerProcessUid && a.retirementOpId === b.retirementOpId &&
|
|
25
|
+
a.broker.kicked === b.broker.kicked && a.broker.remaining === b.broker.remaining &&
|
|
26
|
+
a.broker.scanComplete === b.broker.scanComplete && a.broker.verifiedGone === b.broker.verifiedGone;
|
|
27
|
+
}
|
|
28
|
+
/** The terminal barrier's verified-eviction step, over the SPEC'S TARGET SET.
|
|
29
|
+
*
|
|
30
|
+
* SPEC 13.1 scopes it exactly: "cluster-verified eviction of every revoked credential's live
|
|
31
|
+
* connections", by the `holderPrincipal` "(from its ledger row)". `holders` is that set, returned
|
|
32
|
+
* by the B1 revoke above.
|
|
33
|
+
*
|
|
34
|
+
* An EMPTY set is not a skipped eviction — it is the required eviction of nothing. A lifecycle
|
|
35
|
+
* whose ledger released no credential (a durable slot row whose spawn never reached its mint: a
|
|
36
|
+
* crashed provision, a pre-3b-2 legacy row, an orphan reconciled at boot) has no `holderPrincipal`
|
|
37
|
+
* anywhere, and its incarnation-unique actor nkey (F5-bind) never authenticated to the broker at
|
|
38
|
+
* all, so no connection can exist under it for an oracle to find. Demanding the liveness oracle
|
|
39
|
+
* there asks it to prove the absence of a principal that was never issued.
|
|
40
|
+
*
|
|
41
|
+
* Where the set is NON-empty the barrier is unchanged and fail-closed: every holder is
|
|
42
|
+
* verify-evicted or the lifecycle stays `terminalizing` and the alias stays held. No fallback arm,
|
|
43
|
+
* no degraded mode, no skip. */
|
|
44
|
+
async function evictAndAudit(t, args, holders, evict, log) {
|
|
45
|
+
if (holders.length === 0) {
|
|
46
|
+
log(`no credential-ledger row was ever released under uid ${args.lifecycleUid}; the barrier's eviction set is empty (SPEC 13.1)`);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// Every static ledger row of one lifecycle carries that incarnation's own principal (the mint
|
|
50
|
+
// sites record exactly `principalKey(DEV_OWNER, actor)`), so the set is a singleton and the audit
|
|
51
|
+
// record below is one row per lifecycle. A second holder means the ledger disagrees with the
|
|
52
|
+
// incarnation it is keyed under: refuse rather than evict some of a set we cannot audit.
|
|
53
|
+
if (holders.length > 1)
|
|
54
|
+
throw new EpEnvelopeError("internal", `the ledger rows of uid ${args.lifecycleUid} name ${holders.length} holder principals (${holders.join(", ")}); a static lifecycle has exactly one (SPEC 13.1)`);
|
|
55
|
+
const principal = holders[0];
|
|
56
|
+
const result = await evict(principal);
|
|
57
|
+
if (!result.verifiedGone || !result.scanComplete || result.remaining !== 0)
|
|
58
|
+
throw new EpEnvelopeError("unavailable", `static retirement could not verify-evict ${principal}; the lifecycle remains terminalizing and the alias stays held (SPEC 13.1)`);
|
|
59
|
+
const key = recordSpecKey(RECORD_KINDS.lifecycle, [args.owner, args.actor, args.lifecycleUid]);
|
|
60
|
+
const spec = {
|
|
61
|
+
v: 1, principal, alias: args.alias, lifecycleUid: args.lifecycleUid, managerInstance: args.managerInstance,
|
|
62
|
+
managerProcessUid: args.managerProcessUid, retirementOpId: args.opId,
|
|
63
|
+
broker: { kicked: result.kicked, remaining: result.remaining, scanComplete: result.scanComplete, verifiedGone: result.verifiedGone },
|
|
64
|
+
timestamp: new Date().toISOString(),
|
|
65
|
+
};
|
|
66
|
+
try {
|
|
67
|
+
await t.createRecord(key, spec);
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
if (!(e instanceof EpEnvelopeError) || e.code !== "conflict")
|
|
71
|
+
throw e;
|
|
72
|
+
const existing = await t.getRecord(key);
|
|
73
|
+
if (!existing || existing.operation !== "PUT")
|
|
74
|
+
throw new EpEnvelopeError("failed-precondition", `lifecycle audit ${key} conflict is unreadable`);
|
|
75
|
+
let value;
|
|
76
|
+
try {
|
|
77
|
+
value = JSON.parse(new TextDecoder().decode(existing.value));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
throw new EpEnvelopeError("failed-precondition", `lifecycle audit ${key} conflict is malformed`);
|
|
81
|
+
}
|
|
82
|
+
if (!sameAudit(value, spec))
|
|
83
|
+
throw new EpEnvelopeError("already-exists", `lifecycle audit ${key} records different evidence`);
|
|
84
|
+
// Timestamp may differ only after the stable manager identities and retirement op prove the same retry.
|
|
85
|
+
}
|
|
86
|
+
}
|
|
20
87
|
/** The direct-KV transport over the two authority stores, bound per lifecycle OPERATION on an
|
|
21
88
|
* ephemeral, key-pinned `lifecycle-executor` connection (the manager mints it; see
|
|
22
89
|
* `withLifecycleExecutor`). Mirrors the auth implementation's sealed `transportOf` — a
|
|
@@ -101,8 +168,14 @@ export async function appendStaticCredentialRow(t, args) {
|
|
|
101
168
|
/** The static terminal's B1 revoke: CAS every recorded row `active -> revoked`. Enumeration is
|
|
102
169
|
* the SLOT's recorded credentialIds (recorded before every mint), never a store listing. An
|
|
103
170
|
* ABSENT row is the legitimate crash window (id recorded, mint never reached) — no credential
|
|
104
|
-
* exists for it, logged and skipped; a revoked row is idempotence.
|
|
171
|
+
* exists for it, logged and skipped; a revoked row is idempotence.
|
|
172
|
+
*
|
|
173
|
+
* RETURNS the barrier's eviction TARGET SET: the distinct `holderPrincipal` of every ledger row
|
|
174
|
+
* this revoke COVERED — the rows it just CASed AND the already-`revoked` rows a resume walked
|
|
175
|
+
* over, because a crash between revoke and eviction must never leave a revoked credential's
|
|
176
|
+
* connection live. An absent row contributes nothing: no credential exists for it. */
|
|
105
177
|
export async function revokeStaticCredentialRows(t, lifecycleUid, credentialIds, log) {
|
|
178
|
+
const holders = new Set();
|
|
106
179
|
for (const id of credentialIds) {
|
|
107
180
|
const key = credRowKey(lifecycleUid, id);
|
|
108
181
|
const entry = await t.getAuth(key);
|
|
@@ -113,10 +186,12 @@ export async function revokeStaticCredentialRows(t, lifecycleUid, credentialIds,
|
|
|
113
186
|
if (entry.operation !== "PUT")
|
|
114
187
|
throw new EpEnvelopeError("failed-precondition", `the ledger row ${key} carries a ${entry.operation} marker; a ledger row is never deleted (SPEC 13.12)`);
|
|
115
188
|
const row = parseLedgerRow(entry.value, key);
|
|
189
|
+
holders.add(row.holderPrincipal);
|
|
116
190
|
if (row.state === "revoked")
|
|
117
191
|
continue;
|
|
118
192
|
await t.putAuth(key, enc.encode(JSON.stringify({ ...row, state: "revoked" })), entry.revision);
|
|
119
193
|
}
|
|
194
|
+
return [...holders].sort();
|
|
120
195
|
}
|
|
121
196
|
/** The static ACTIVATION: F3 intent FIRST (durable outer spawn intent, phase `provisioning`),
|
|
122
197
|
* then the SHARED core activation saga at the spawn's uid (reserve -> gate frozen -> head CAS
|
|
@@ -135,8 +210,8 @@ export async function activateStaticLifecycle(t, args) {
|
|
|
135
210
|
return { slotRevision: revision };
|
|
136
211
|
}
|
|
137
212
|
/** The static TERMINAL (F1, the (b2) order): freeze-under-the-retirement-op -> head
|
|
138
|
-
* `active -> retiring` -> B1 ledger revoke -> cleanup (the injected
|
|
139
|
-
*
|
|
213
|
+
* `active -> retiring` -> B1 ledger revoke -> broker connection eviction -> cleanup (the injected
|
|
214
|
+
* footprint teardown; on a normal stop the manager separately proves runtime exit) -> gate
|
|
140
215
|
* `frozen -> retired` -> head `retiring -> retired` LAST -> slot `retired` (the alias frees).
|
|
141
216
|
* Every gate/head step DELEGATES to the shared core saga; recovery recognizes a SAME-OP
|
|
142
217
|
* terminal gate and finishes the head (the lost-ack alias wedge the panel closed).
|
|
@@ -165,7 +240,8 @@ export async function runStaticTerminal(t, args, hooks) {
|
|
|
165
240
|
const head = await headCandidate(t, args.owner, args.actor);
|
|
166
241
|
if (head !== undefined && head.mapping.lifecycleUid === args.lifecycleUid)
|
|
167
242
|
throw new EpEnvelopeError("internal", `the head for "${args.owner}/${args.actor}" names uid ${args.lifecycleUid} but its gate does not exist; an active head without a gate is corruption (SPEC 13.1)`);
|
|
168
|
-
await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
|
|
243
|
+
const preGateHolders = await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
|
|
244
|
+
await evictAndAudit(t, args, preGateHolders, hooks.evict, hooks.log);
|
|
169
245
|
await hooks.cleanup();
|
|
170
246
|
await casStaticSlot(t, { ...slot.row, phase: "retired" }, slotRevision);
|
|
171
247
|
return "retired";
|
|
@@ -183,7 +259,8 @@ export async function runStaticTerminal(t, args, hooks) {
|
|
|
183
259
|
// The head never won: burn the uid THROUGH the activation's own op (op-pinned exact-op
|
|
184
260
|
// static retirement), then settle the slot — there is no head to retire.
|
|
185
261
|
await gateRetire(t, { lifecycleUid: args.lifecycleUid, revision: gate.revision, opId: gate.row.op.opId });
|
|
186
|
-
await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
|
|
262
|
+
const lostHeadHolders = await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
|
|
263
|
+
await evictAndAudit(t, args, lostHeadHolders, hooks.evict, hooks.log);
|
|
187
264
|
await hooks.cleanup();
|
|
188
265
|
const cur = await readStaticSlot(t, args.owner, args.alias);
|
|
189
266
|
if (cur !== undefined && cur.row.lifecycleUid === args.lifecycleUid && cur.row.phase !== "retired")
|
|
@@ -192,10 +269,20 @@ export async function runStaticTerminal(t, args, hooks) {
|
|
|
192
269
|
}
|
|
193
270
|
}
|
|
194
271
|
else if (gate.row.state === "frozen" && gate.row.op?.kind !== "retirement") {
|
|
195
|
-
throw
|
|
272
|
+
throw lifecycleBlocked("failed-precondition", `the issuance gate for ${args.lifecycleUid} is frozen by a ${gate.row.op?.kind ?? "<unknown>"} (op ${gate.row.op?.opId ?? "<none>"}); a foreign barrier is in flight - refuse (SPEC 13.1)`, {
|
|
273
|
+
blockedOp: (gate.row.op?.kind === "takeover" || gate.row.op?.kind === "registration" || gate.row.op?.kind === "activation") ? gate.row.op.kind : "registration",
|
|
274
|
+
headState: "retiring",
|
|
275
|
+
...(gate.row.op?.opId !== undefined ? { opId: gate.row.op.opId } : {}),
|
|
276
|
+
remedy: gate.row.op?.kind === "registration" ? "cotal reconcile-gate" : "retry",
|
|
277
|
+
});
|
|
196
278
|
}
|
|
197
279
|
else if (gate.row.state === "frozen" && gate.row.op?.opId !== args.opId) {
|
|
198
|
-
throw
|
|
280
|
+
throw lifecycleBlocked("failed-precondition", `the issuance gate for ${args.lifecycleUid} is frozen by retirement op ${gate.row.op?.opId ?? "<none>"}, not ${args.opId}; one retirement at a time (SPEC 13.1)`, {
|
|
281
|
+
blockedOp: "retirement",
|
|
282
|
+
headState: "retiring",
|
|
283
|
+
...(gate.row.op?.opId !== undefined ? { opId: gate.row.op.opId } : {}),
|
|
284
|
+
remedy: "retry",
|
|
285
|
+
});
|
|
199
286
|
}
|
|
200
287
|
// Freeze under OUR retirement op if the gate is open (fresh terminal, or the just-finished
|
|
201
288
|
// activation resume). A gate frozen by our op (crash-resume) or already terminal (same-op
|
|
@@ -214,7 +301,19 @@ export async function runStaticTerminal(t, args, hooks) {
|
|
|
214
301
|
throw new EpEnvelopeError("failed-precondition", `the head for "${args.owner}/${args.actor}" names uid ${headNow.mapping.lifecycleUid}, not ${args.lifecycleUid}; foreign movement - refuse (SPEC 13.1)`);
|
|
215
302
|
if (headNow.mapping.state !== "retired")
|
|
216
303
|
await headBeginRetirement(t, { owner: args.owner, actor: args.actor, lifecycleUid: args.lifecycleUid, opId: args.opId });
|
|
217
|
-
await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
|
|
304
|
+
const holders = await revokeStaticCredentialRows(t, args.lifecycleUid, slot.row.credentialIds, hooks.log);
|
|
305
|
+
// A crash may leave the prior seat process alive after its manager disappeared. Deny-new is
|
|
306
|
+
// durable above; verify the predecessor principal has no live broker connections before cleanup,
|
|
307
|
+
// then before retiring the gate/head and freeing the alias. This does not reap the OS process.
|
|
308
|
+
// Failure leaves the lifecycle terminalizing, so a successor never gains simultaneous broker rails.
|
|
309
|
+
// The set is the ledger's, not a synthesized alias principal (`evictAndAudit`): a lifecycle that
|
|
310
|
+
// released no credential has no seat to contain, and this narration would be a claim about a
|
|
311
|
+
// principal that never existed.
|
|
312
|
+
for (const principal of holders)
|
|
313
|
+
hooks.log(`verify-evicting orphan seat principal ${principal} before lifecycle cleanup`);
|
|
314
|
+
await evictAndAudit(t, args, holders, hooks.evict, hooks.log);
|
|
315
|
+
for (const principal of holders)
|
|
316
|
+
hooks.log(`verified orphan seat principal gone: ${principal}`);
|
|
218
317
|
await hooks.cleanup();
|
|
219
318
|
// The terminal tail, in the (b2) order: gate frozen->retired FIRST (retains the opId, the
|
|
220
319
|
// recovery coordinate), head retiring->retired LAST (drops the op; the alias frees only now).
|
|
@@ -242,14 +341,14 @@ export function planStaticSlotResume(row, adopted) {
|
|
|
242
341
|
return "none";
|
|
243
342
|
case "provisioning":
|
|
244
343
|
case "terminalizing":
|
|
245
|
-
// A crashed spawn (
|
|
344
|
+
// A crashed spawn (it never reached managed ownership) or a crashed terminal: both re-drive the
|
|
246
345
|
// exact-op terminal (runStaticTerminal is total over the partial durable states).
|
|
247
346
|
return "drive-terminal";
|
|
248
347
|
case "active":
|
|
249
348
|
// `adopted` is genuine live membership (the manager holds this incarnation as a managed
|
|
250
|
-
// agent). Adopted -> the live
|
|
251
|
-
// (a non-preserving restart, or an orphan the resume did
|
|
252
|
-
//
|
|
349
|
+
// agent). Adopted -> this manager owns the live incarnation, leave it. NOT adopted -> no live
|
|
350
|
+
// managed owner claimed the incarnation (a non-preserving restart, or an orphan the resume did
|
|
351
|
+
// not claim): contain its broker authority and terminalize. The CALLER supplies `adopted` correctly per sweep: a boot sweep with a
|
|
253
352
|
// resume pending DEFERS active slots (adoption has not run yet) rather than passing a false
|
|
254
353
|
// adopted; the post-adoption sweep passes true membership.
|
|
255
354
|
return adopted ? "none" : "drive-terminal";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-lifecycle.js","sourceRoot":"","sources":["../src/static-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"static-lifecycle.js","sourceRoot":"","sources":["../src/static-lifecycle.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.37.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -30,15 +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/workspace": "0.37.0",
|
|
34
|
+
"@cotal-ai/core": "0.37.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.37.0",
|
|
41
|
+
"@cotal-ai/connector-claude-code": "0.37.0",
|
|
42
|
+
"@cotal-ai/connector-codex": "0.37.0",
|
|
40
43
|
"@cotal-ai/smoke-kit": "0.0.0",
|
|
41
|
-
"@cotal-ai/connector-core": "0.
|
|
44
|
+
"@cotal-ai/connector-core": "0.37.0",
|
|
45
|
+
"@cotal-ai/connector-opencode": "0.37.0"
|
|
42
46
|
},
|
|
43
47
|
"files": [
|
|
44
48
|
"dist"
|
|
@@ -48,7 +52,7 @@
|
|
|
48
52
|
},
|
|
49
53
|
"scripts": {
|
|
50
54
|
"test": "tsx smoke/start-model-preflight.smoke.ts && tsx smoke/start-overrides.smoke.ts && tsx smoke/preserve-state.smoke.ts && tsx smoke/pi-session-recovery.smoke.ts",
|
|
51
|
-
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
55
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.smoke.json",
|
|
52
56
|
"build": "tsc -p tsconfig.json && node -e \"const fs=require('node:fs'); fs.rmSync('dist/console', { recursive: true, force: true }); fs.cpSync('src/console', 'dist/console', { recursive: true })\" && pnpm run build:console-bundle",
|
|
53
57
|
"build:console-bundle": "esbuild src/console-session-entry.ts --bundle --format=iife --platform=browser --target=es2020 --alias:node:crypto=./src/console-crypto-shim.ts --outfile=dist/console/session-bundle.js && node scripts/console-bundle-loadtest.mjs"
|
|
54
58
|
}
|