@cotal-ai/manager 0.48.2 → 0.49.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 +4 -2
- package/dist/commands.d.ts +1 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +136 -41
- package/dist/commands.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manager-service-contract.d.ts.map +1 -1
- package/dist/manager-service-contract.js +17 -2
- package/dist/manager-service-contract.js.map +1 -1
- package/dist/manager.d.ts +158 -26
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +623 -198
- package/dist/manager.js.map +1 -1
- package/dist/remote-authority.d.ts +22 -2
- package/dist/remote-authority.d.ts.map +1 -1
- package/dist/remote-authority.js +124 -2
- package/dist/remote-authority.js.map +1 -1
- package/dist/remote-register.d.ts.map +1 -1
- package/dist/remote-register.js +5 -1
- package/dist/remote-register.js.map +1 -1
- package/dist/resume.d.ts +5 -0
- package/dist/resume.d.ts.map +1 -1
- package/dist/resume.js +14 -2
- package/dist/resume.js.map +1 -1
- package/dist/run-hosting.d.ts +24 -3
- package/dist/run-hosting.d.ts.map +1 -1
- package/dist/run-hosting.js +97 -8
- package/dist/run-hosting.js.map +1 -1
- package/dist/runtime/custodial-pty.d.ts +10 -3
- package/dist/runtime/custodial-pty.d.ts.map +1 -1
- package/dist/runtime/custodial-pty.js +27 -5
- package/dist/runtime/custodial-pty.js.map +1 -1
- package/dist/runtime/index.d.ts +37 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +15 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/pty.d.ts.map +1 -1
- package/dist/runtime/pty.js +28 -26
- package/dist/runtime/pty.js.map +1 -1
- package/dist/session/plane.d.ts +2 -1
- package/dist/session/plane.d.ts.map +1 -1
- package/dist/session/plane.js +3 -2
- package/dist/session/plane.js.map +1 -1
- package/dist/static-lifecycle.d.ts +1 -0
- package/dist/static-lifecycle.d.ts.map +1 -1
- package/dist/static-lifecycle.js +5 -0
- package/dist/static-lifecycle.js.map +1 -1
- package/package.json +11 -10
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Identity, type RemoteManagerAuthorityMaterial, type RemoteManagerAuthorityRequest } from "@cotal-ai/core";
|
|
1
|
+
import { type Identity, type RemoteManagerAdminAuthorizationRequest, type RemoteManagerAdminAuthorizationResult, type RemoteManagerAuthorityMaterial, type RemoteManagerAuthorityRequest, type RemoteManagerGoalIndexScanRequest, type RemoteManagerGoalIndexScanResult, type RemoteRetainedAgentValidationRequest, type RemoteRetainedAgentValidationResult, type RetainedAgentAuthority } from "@cotal-ai/core";
|
|
2
2
|
interface RemoteManagerIdentityState {
|
|
3
3
|
v: 1;
|
|
4
4
|
space: string;
|
|
@@ -12,9 +12,29 @@ interface RemoteManagerIdentityState {
|
|
|
12
12
|
sessionLedger: Identity;
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
+
export declare function remoteManagerAdminAuthorizationRequest(state: RemoteManagerIdentityState, actor: string, registrationProof: string, serveEpoch: number, caller: {
|
|
16
|
+
owner: string;
|
|
17
|
+
actor: string;
|
|
18
|
+
lifecycleUid: string;
|
|
19
|
+
}): RemoteManagerAdminAuthorizationRequest;
|
|
20
|
+
/** Validate the untrusted host result before the boolean can gate a manager operation. */
|
|
21
|
+
export declare function remoteManagerAdminAuthorized(result: RemoteManagerAdminAuthorizationResult, request: RemoteManagerAdminAuthorizationRequest, expectedOwner: string): boolean;
|
|
15
22
|
/** Load or create one participant-owned manager lifecycle identity. Private seeds never leave it. */
|
|
16
23
|
export declare function loadOrCreateRemoteManagerIdentity(root: string, space: string): RemoteManagerIdentityState;
|
|
17
|
-
export declare function remoteManagerAuthorityRequest(state: RemoteManagerIdentityState, actor: string, operation: RemoteManagerAuthorityRequest["operation"], registrationProof?: string, contractArtifacts?: unknown[], session?: RemoteManagerAuthorityRequest["session"]): RemoteManagerAuthorityRequest;
|
|
24
|
+
export declare function remoteManagerAuthorityRequest(state: RemoteManagerIdentityState, actor: string, operation: RemoteManagerAuthorityRequest["operation"], registrationProof?: string, contractArtifacts?: unknown[], session?: RemoteManagerAuthorityRequest["session"], retirement?: RemoteManagerAuthorityRequest["retirement"]): RemoteManagerAuthorityRequest;
|
|
25
|
+
export declare function remoteRetainedAgentValidationRequest(state: RemoteManagerIdentityState, actor: string, registrationProof: string, serveEpoch: number, target: {
|
|
26
|
+
owner: string;
|
|
27
|
+
actor: string;
|
|
28
|
+
lifecycleUid: string;
|
|
29
|
+
}, actorToken: string, sentinelCreds: string): RemoteRetainedAgentValidationRequest;
|
|
30
|
+
/** Activation returns the only proof valid for later retained validation. The caller-computable
|
|
31
|
+
* activation proof is deliberately not accepted as a fallback. */
|
|
32
|
+
export declare function currentRegistrationProof(material: RemoteManagerAuthorityMaterial): string;
|
|
33
|
+
/** Bind a host result back to every request coordinate before Manager consumes its authority row. */
|
|
34
|
+
export declare function retainedAgentAuthority(result: RemoteRetainedAgentValidationResult, request: RemoteRetainedAgentValidationRequest): RetainedAgentAuthority;
|
|
35
|
+
/** Bind a host-owned goal-index scan back to its request and validate every returned row before the
|
|
36
|
+
* manager acts on it. The HTTP result is untrusted input even though the host authenticated it. */
|
|
37
|
+
export declare function remoteManagerGoalIndexEntries(result: RemoteManagerGoalIndexScanResult, request: RemoteManagerGoalIndexScanRequest, expectedOwner: string): import("@cotal-ai/core").GoalIndexEntry[];
|
|
18
38
|
/** Combine a host-signed JWT with the participant's private seed, after exact identity checks. */
|
|
19
39
|
export declare function materialCredential(material: RemoteManagerAuthorityMaterial, name: keyof RemoteManagerAuthorityMaterial["credentials"], identity: Identity): string;
|
|
20
40
|
export declare function expectedRemoteManagerActors(state: RemoteManagerIdentityState): import("@cotal-ai/core").RemoteManagerActors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-authority.d.ts","sourceRoot":"","sources":["../src/remote-authority.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,QAAQ,EACb,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,
|
|
1
|
+
{"version":3,"file":"remote-authority.d.ts","sourceRoot":"","sources":["../src/remote-authority.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,QAAQ,EACb,KAAK,sCAAsC,EAC3C,KAAK,qCAAqC,EAC1C,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,sBAAsB,EAC5B,MAAM,gBAAgB,CAAC;AAExB,UAAU,0BAA0B;IAClC,CAAC,EAAE,CAAC,CAAC;IACL,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QACV,UAAU,EAAE,QAAQ,CAAC;QACrB,QAAQ,EAAE,QAAQ,CAAC;QACnB,KAAK,EAAE,QAAQ,CAAC;QAChB,UAAU,EAAE,QAAQ,CAAC;QACrB,aAAa,EAAE,QAAQ,CAAC;KACzB,CAAC;CACH;AAED,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7D,sCAAsC,CAcxC;AAED,0FAA0F;AAC1F,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,qCAAqC,EAC7C,OAAO,EAAE,sCAAsC,EAC/C,aAAa,EAAE,MAAM,GACpB,OAAO,CAYT;AAgBD,qGAAqG;AACrG,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,0BAA0B,CAoCzG;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,6BAA6B,CAAC,WAAW,CAAC,EACrD,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAC7B,OAAO,CAAC,EAAE,6BAA6B,CAAC,SAAS,CAAC,EAClD,UAAU,CAAC,EAAE,6BAA6B,CAAC,YAAY,CAAC,GACvD,6BAA6B,CAuB/B;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAC9D,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,oCAAoC,CAsBtC;AAED;kEACkE;AAClE,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,8BAA8B,GAAG,MAAM,CAOzF;AAED,qGAAqG;AACrG,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mCAAmC,EAC3C,OAAO,EAAE,oCAAoC,GAC5C,sBAAsB,CAyBxB;AAED;mGACmG;AACnG,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,gCAAgC,EACxC,OAAO,EAAE,iCAAiC,EAC1C,aAAa,EAAE,MAAM,GACpB,OAAO,gBAAgB,EAAE,cAAc,EAAE,CAuB3C;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,8BAA8B,EACxC,IAAI,EAAE,MAAM,8BAA8B,CAAC,aAAa,CAAC,EACzD,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAgBR;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,gDAE5E"}
|
package/dist/remote-authority.js
CHANGED
|
@@ -1,6 +1,35 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { credsFromJwt, mintLifecycleUid, newIdentity, remoteManagerActors, writeSecretFileAtomic, } from "@cotal-ai/core";
|
|
4
|
+
export function remoteManagerAdminAuthorizationRequest(state, actor, registrationProof, serveEpoch, caller) {
|
|
5
|
+
return {
|
|
6
|
+
v: 1,
|
|
7
|
+
kind: "manager-admin-authorization",
|
|
8
|
+
space: state.space,
|
|
9
|
+
actor,
|
|
10
|
+
instanceId: state.instanceId,
|
|
11
|
+
managerLifecycleUid: state.lifecycleUid,
|
|
12
|
+
requestId: `admin${mintLifecycleUid()}`,
|
|
13
|
+
registrationProof,
|
|
14
|
+
serveEpoch,
|
|
15
|
+
identities: Object.fromEntries(Object.entries(state.identities).map(([name, identity]) => [name, { id: identity.id }])),
|
|
16
|
+
caller,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** Validate the untrusted host result before the boolean can gate a manager operation. */
|
|
20
|
+
export function remoteManagerAdminAuthorized(result, request, expectedOwner) {
|
|
21
|
+
const fields = ["v", "kind", "space", "owner", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof", "serveEpoch", "identities", "caller", "authorized"];
|
|
22
|
+
if (result === null || typeof result !== "object" || Array.isArray(result) || Object.keys(result).sort().join(",") !== fields.sort().join(","))
|
|
23
|
+
throw new Error("manager admin authorization returned a non-closed result");
|
|
24
|
+
if (result.v !== 1 || result.kind !== "manager-admin-authorization" || result.space !== request.space ||
|
|
25
|
+
result.owner !== expectedOwner || result.actor !== request.actor || result.instanceId !== request.instanceId ||
|
|
26
|
+
result.managerLifecycleUid !== request.managerLifecycleUid || result.requestId !== request.requestId ||
|
|
27
|
+
result.registrationProof !== request.registrationProof || result.serveEpoch !== request.serveEpoch ||
|
|
28
|
+
JSON.stringify(result.identities) !== JSON.stringify(request.identities) || JSON.stringify(result.caller) !== JSON.stringify(request.caller) ||
|
|
29
|
+
typeof result.authorized !== "boolean")
|
|
30
|
+
throw new Error("manager admin authorization returned different lifecycle, identity, caller, owner, or boolean coordinates");
|
|
31
|
+
return result.authorized;
|
|
32
|
+
}
|
|
4
33
|
function stateFile(root, space) {
|
|
5
34
|
return join(root, ".cotal", `remote-manager.${Buffer.from(space, "utf8").toString("hex")}.json`);
|
|
6
35
|
}
|
|
@@ -55,7 +84,7 @@ export function loadOrCreateRemoteManagerIdentity(root, space) {
|
|
|
55
84
|
writeSecretFileAtomic(path, JSON.stringify(state, null, 2));
|
|
56
85
|
return state;
|
|
57
86
|
}
|
|
58
|
-
export function remoteManagerAuthorityRequest(state, actor, operation, registrationProof, contractArtifacts, session) {
|
|
87
|
+
export function remoteManagerAuthorityRequest(state, actor, operation, registrationProof, contractArtifacts, session, retirement) {
|
|
59
88
|
const requestId = `${operation}${mintLifecycleUid()}`;
|
|
60
89
|
return {
|
|
61
90
|
v: 1,
|
|
@@ -69,6 +98,7 @@ export function remoteManagerAuthorityRequest(state, actor, operation, registrat
|
|
|
69
98
|
...(registrationProof ? { registrationProof } : {}),
|
|
70
99
|
...(contractArtifacts ? { contractArtifacts } : {}),
|
|
71
100
|
...(session ? { session } : {}),
|
|
101
|
+
...(retirement ? { retirement } : {}),
|
|
72
102
|
identities: {
|
|
73
103
|
supervisor: { id: state.identities.supervisor.id },
|
|
74
104
|
executor: { id: state.identities.executor.id },
|
|
@@ -78,6 +108,92 @@ export function remoteManagerAuthorityRequest(state, actor, operation, registrat
|
|
|
78
108
|
},
|
|
79
109
|
};
|
|
80
110
|
}
|
|
111
|
+
export function remoteRetainedAgentValidationRequest(state, actor, registrationProof, serveEpoch, target, actorToken, sentinelCreds) {
|
|
112
|
+
return {
|
|
113
|
+
v: 1,
|
|
114
|
+
kind: "manager-retained-agent-validation",
|
|
115
|
+
space: state.space,
|
|
116
|
+
actor,
|
|
117
|
+
instanceId: state.instanceId,
|
|
118
|
+
managerLifecycleUid: state.lifecycleUid,
|
|
119
|
+
requestId: `validate${mintLifecycleUid()}`,
|
|
120
|
+
registrationProof,
|
|
121
|
+
serveEpoch,
|
|
122
|
+
identities: {
|
|
123
|
+
supervisor: { id: state.identities.supervisor.id },
|
|
124
|
+
executor: { id: state.identities.executor.id },
|
|
125
|
+
serve: { id: state.identities.serve.id },
|
|
126
|
+
goalWriter: { id: state.identities.goalWriter.id },
|
|
127
|
+
sessionLedger: { id: state.identities.sessionLedger.id },
|
|
128
|
+
},
|
|
129
|
+
target,
|
|
130
|
+
actorToken,
|
|
131
|
+
sentinelCreds,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/** Activation returns the only proof valid for later retained validation. The caller-computable
|
|
135
|
+
* activation proof is deliberately not accepted as a fallback. */
|
|
136
|
+
export function currentRegistrationProof(material) {
|
|
137
|
+
const proof = material.nextRegistrationProof;
|
|
138
|
+
if (typeof proof !== "string" || !/^sha256:[0-9a-f]{64}$/.test(proof))
|
|
139
|
+
throw new Error("manager-service activation returned no host-authenticated current registration proof");
|
|
140
|
+
if (proof === material.registrationProof)
|
|
141
|
+
throw new Error("manager-service activation substituted the caller-computable activation proof for the host-authenticated current registration proof");
|
|
142
|
+
return proof;
|
|
143
|
+
}
|
|
144
|
+
/** Bind a host result back to every request coordinate before Manager consumes its authority row. */
|
|
145
|
+
export function retainedAgentAuthority(result, request) {
|
|
146
|
+
if (result === null || typeof result !== "object" || Array.isArray(result) ||
|
|
147
|
+
Object.keys(result).sort().join(",") !== [
|
|
148
|
+
"actor", "authority", "instanceId", "kind", "managerLifecycleUid", "owner",
|
|
149
|
+
"registrationProof", "requestId", "serveEpoch", "space", "target", "v",
|
|
150
|
+
].sort().join(","))
|
|
151
|
+
throw new Error("manager retained-agent validation returned a non-closed result");
|
|
152
|
+
if (result.v !== 1 || result.kind !== "manager-retained-agent-validation" ||
|
|
153
|
+
result.space !== request.space || result.actor !== request.actor || result.instanceId !== request.instanceId ||
|
|
154
|
+
result.managerLifecycleUid !== request.managerLifecycleUid || result.requestId !== request.requestId ||
|
|
155
|
+
result.registrationProof !== request.registrationProof || result.serveEpoch !== request.serveEpoch ||
|
|
156
|
+
JSON.stringify(result.target) !== JSON.stringify(request.target) || result.owner !== request.target.owner)
|
|
157
|
+
throw new Error("manager retained-agent validation returned different lifecycle or target coordinates");
|
|
158
|
+
const authority = result.authority;
|
|
159
|
+
if (!authority || typeof authority !== "object" || Array.isArray(authority) ||
|
|
160
|
+
Object.keys(authority).some((key) => !["owner", "actor", "lifecycleUid", "scope", "allowSubscribe", "allowPublish", "role", "parent"].includes(key)) ||
|
|
161
|
+
authority.owner !== request.target.owner || authority.actor !== request.target.actor ||
|
|
162
|
+
authority.lifecycleUid !== request.target.lifecycleUid || !Array.isArray(authority.scope) ||
|
|
163
|
+
!authority.scope.every((value) => typeof value === "string") ||
|
|
164
|
+
!Array.isArray(authority.allowSubscribe) || !authority.allowSubscribe.every((value) => typeof value === "string") ||
|
|
165
|
+
!Array.isArray(authority.allowPublish) || !authority.allowPublish.every((value) => typeof value === "string") ||
|
|
166
|
+
(authority.role !== undefined && typeof authority.role !== "string") ||
|
|
167
|
+
(authority.parent !== undefined && typeof authority.parent !== "string"))
|
|
168
|
+
throw new Error("manager retained-agent validation returned an invalid or replacement authority");
|
|
169
|
+
return authority;
|
|
170
|
+
}
|
|
171
|
+
/** Bind a host-owned goal-index scan back to its request and validate every returned row before the
|
|
172
|
+
* manager acts on it. The HTTP result is untrusted input even though the host authenticated it. */
|
|
173
|
+
export function remoteManagerGoalIndexEntries(result, request, expectedOwner) {
|
|
174
|
+
const envelopeKeys = ["v", "kind", "space", "owner", "actor", "instanceId", "managerLifecycleUid", "requestId", "registrationProof", "serveEpoch", "entries"];
|
|
175
|
+
if (result === null || typeof result !== "object" || Array.isArray(result) || Object.keys(result).sort().join(",") !== envelopeKeys.sort().join(","))
|
|
176
|
+
throw new Error("manager goal-index scan returned a non-closed result");
|
|
177
|
+
if (result.v !== 1 || result.kind !== "manager-goal-index-scan" || result.space !== request.space ||
|
|
178
|
+
result.owner !== expectedOwner || result.actor !== request.actor || result.instanceId !== request.instanceId ||
|
|
179
|
+
result.managerLifecycleUid !== request.managerLifecycleUid || result.requestId !== request.requestId ||
|
|
180
|
+
result.registrationProof !== request.registrationProof || result.serveEpoch !== request.serveEpoch || !Array.isArray(result.entries))
|
|
181
|
+
throw new Error("manager goal-index scan returned different lifecycle coordinates");
|
|
182
|
+
return result.entries.map((entry, index) => {
|
|
183
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry) ||
|
|
184
|
+
Object.keys(entry).some((key) => !["v", "endpoint", "owner", "actor", "uid", "goalId", "iid", "allocated", "note"].includes(key)) ||
|
|
185
|
+
entry.v !== 1 || entry.endpoint !== "manager" || entry.owner !== expectedOwner ||
|
|
186
|
+
![entry.actor, entry.uid, entry.goalId, entry.iid].every((value) => typeof value === "string" && value.length > 0) ||
|
|
187
|
+
(entry.note !== undefined && (typeof entry.note !== "string" || entry.note.length === 0 || entry.note.length > 65_536)))
|
|
188
|
+
throw new Error(`manager goal-index scan returned invalid entry ${index}`);
|
|
189
|
+
if (entry.allocated !== undefined && (!entry.allocated || typeof entry.allocated !== "object" || Array.isArray(entry.allocated) ||
|
|
190
|
+
Object.keys(entry.allocated).some((key) => !["name", "actor", "uid", "readinessDeadlineMs"].includes(key)) ||
|
|
191
|
+
![entry.allocated.name, entry.allocated.actor, entry.allocated.uid].every((value) => typeof value === "string" && value.length > 0) ||
|
|
192
|
+
(entry.allocated.readinessDeadlineMs !== undefined && (!Number.isSafeInteger(entry.allocated.readinessDeadlineMs) || entry.allocated.readinessDeadlineMs <= 0))))
|
|
193
|
+
throw new Error(`manager goal-index scan returned invalid allocation in entry ${index}`);
|
|
194
|
+
return entry;
|
|
195
|
+
});
|
|
196
|
+
}
|
|
81
197
|
/** Combine a host-signed JWT with the participant's private seed, after exact identity checks. */
|
|
82
198
|
export function materialCredential(material, name, identity) {
|
|
83
199
|
const credential = material.credentials[name];
|
|
@@ -92,7 +208,13 @@ export function materialCredential(material, name, identity) {
|
|
|
92
208
|
}
|
|
93
209
|
if (claims.sub !== identity.id)
|
|
94
210
|
throw new Error(`manager-service ${name} JWT is for ${String(claims.sub)}, not the requested identity ${identity.id}`);
|
|
95
|
-
|
|
211
|
+
const envelopeExpiry = Math.min(...Object.values(material.credentials).map((item) => item.exp * 1000));
|
|
212
|
+
// `expiresAt` is the envelope's earliest member expiry, not a ceiling on every member. Prepare
|
|
213
|
+
// deliberately returns a short registration executor beside a longer-lived supervisor, so
|
|
214
|
+
// requiring each credential to expire no later than the minimum makes the legitimate supervisor
|
|
215
|
+
// impossible to materialize. Recompute the envelope minimum and then bind this JWT to its own
|
|
216
|
+
// advertised expiry. A forged later envelope or a JWT/entry disagreement still fails closed.
|
|
217
|
+
if (claims.exp !== credential.exp || !Number.isFinite(envelopeExpiry) || material.expiresAt !== envelopeExpiry || credential.exp * 1000 < material.expiresAt)
|
|
96
218
|
throw new Error(`manager-service ${name} expiry does not match the material envelope`);
|
|
97
219
|
return credsFromJwt(credential.jwt, identity);
|
|
98
220
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-authority.js","sourceRoot":"","sources":["../src/remote-authority.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remote-authority.js","sourceRoot":"","sources":["../src/remote-authority.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-register.d.ts","sourceRoot":"","sources":["../src/remote-register.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,
|
|
1
|
+
{"version":3,"file":"remote-register.d.ts","sourceRoot":"","sources":["../src/remote-register.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EAgBpB,MAAM,gBAAgB,CAAC;AAGxB;;;;GAIG;AACH,wBAAsB,8BAA8B,CAAC,IAAI,EAAE;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB;;kGAE8F;IAC9F,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;CAAE,CAAC,CAiE/H"}
|
package/dist/remote-register.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jetstreamManager } from "@nats-io/jetstream";
|
|
2
2
|
import { Kvm } from "@nats-io/kv";
|
|
3
|
-
import { authorizeServeGrant, contractArtifactCanonicalBytes, contractRefToHex, contractStoreContext, dialerFor, endpointRegistrationBarrier, epAuthBucket, fetchContractArtifact, provisionEndpointGateOpen, publishContractArtifact, recordsBucket, registerServiceInstance, serveIssuanceGateKv, standaloneConnectOpts, } from "@cotal-ai/core";
|
|
3
|
+
import { authorizeServeGrant, contractArtifactCanonicalBytes, contractRefToHex, contractStoreContext, dialerFor, endpointRegistrationBarrier, epAuthBucket, fetchContractArtifact, provisionEndpointGateOpen, publishContractArtifact, readEndpointGateGeneration, recordsBucket, registerServiceInstance, serveIssuanceGateKv, standaloneConnectOpts, } from "@cotal-ai/core";
|
|
4
4
|
import { MANAGER_ENDPOINT, managerAuthorityContractSource, managerClusterArtifacts } from "./manager-service-contract.js";
|
|
5
5
|
/**
|
|
6
6
|
* Run the registration half with the host-issued prepare credential. The credential is pinned to
|
|
@@ -47,6 +47,10 @@ export async function registerRemoteManagerAuthority(args) {
|
|
|
47
47
|
authority,
|
|
48
48
|
barrier,
|
|
49
49
|
readClusterArtifact,
|
|
50
|
+
// #1393: same seam the local registration wires — a foreign slot is reclaimed only when that
|
|
51
|
+
// holder's own gate has provably reopened past the slot's stamp, over this connection's
|
|
52
|
+
// existing auth-bucket read grant.
|
|
53
|
+
observeHolderGeneration: (holderInstanceId) => readEndpointGateGeneration(authKv, { endpoint: MANAGER_ENDPOINT, instanceId: holderInstanceId }),
|
|
50
54
|
});
|
|
51
55
|
const observed = await fence.observe();
|
|
52
56
|
if (observed === null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-register.js","sourceRoot":"","sources":["../src/remote-register.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"remote-register.js","sourceRoot":"","sources":["../src/remote-register.ts"],"names":[],"mappings":"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"}
|
package/dist/resume.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { ManagerResumeInventory } from "./manager.js";
|
|
2
2
|
export declare const MAX_RESUME_CONTROL_BYTES: number;
|
|
3
3
|
export declare const MAX_RESUME_COMMIT_BYTES = 1024;
|
|
4
|
+
/** Concurrency ceiling — the manager refuses to hold more than this many live + in-flight +
|
|
5
|
+
* cooling slots at once (P4a). Bounds a fork-bomb: spawn is a full agent process per call.
|
|
6
|
+
* Declared here (not in manager.ts) so the resume inventory schema and the spawn/resume
|
|
7
|
+
* capacity checks share one value; manager.ts imports it. */
|
|
8
|
+
export declare const MAX_AGENTS = 50;
|
|
4
9
|
export interface ResumeControlArgs {
|
|
5
10
|
attemptId: string;
|
|
6
11
|
inventory: ManagerResumeInventory;
|
package/dist/resume.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,uBAAuB,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C;;;8DAG8D;AAC9D,eAAO,MAAM,UAAU,KAAK,CAAC;AA0G7B,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,sBAAsB,CAAC;CACnC;AAED,yGAAyG;AACzG,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAcxE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAc3E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAczG"}
|
package/dist/resume.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export const MAX_RESUME_CONTROL_BYTES = 512 * 1024;
|
|
3
3
|
export const MAX_RESUME_COMMIT_BYTES = 1024;
|
|
4
|
-
|
|
4
|
+
/** Concurrency ceiling — the manager refuses to hold more than this many live + in-flight +
|
|
5
|
+
* cooling slots at once (P4a). Bounds a fork-bomb: spawn is a full agent process per call.
|
|
6
|
+
* Declared here (not in manager.ts) so the resume inventory schema and the spawn/resume
|
|
7
|
+
* capacity checks share one value; manager.ts imports it. */
|
|
8
|
+
export const MAX_AGENTS = 50;
|
|
5
9
|
const TOKEN = /^[A-Za-z0-9_]+$/;
|
|
6
10
|
const SHA256 = /^[a-f0-9]{64}$/;
|
|
7
11
|
const token = z.string().min(1).max(128).regex(TOKEN, "must be a safe identity token");
|
|
@@ -16,7 +20,15 @@ const fileRef = z.strictObject({ kind: z.literal("file"), path, sha256: digest }
|
|
|
16
20
|
const lifecycleUid = z.string().regex(/^[a-z0-9]{26,32}$/, "must be a lifecycle uid token");
|
|
17
21
|
const identity = z.discriminatedUnion("mode", [
|
|
18
22
|
z.strictObject({ mode: z.literal("open"), id: token, lifecycleUid }),
|
|
19
|
-
z.strictObject({
|
|
23
|
+
z.strictObject({
|
|
24
|
+
mode: z.literal("static"),
|
|
25
|
+
id: token,
|
|
26
|
+
lifecycleUid,
|
|
27
|
+
credential: fileRef,
|
|
28
|
+
// The SPEC 13.15 issuance the credential was minted under; a resumed static agent renews
|
|
29
|
+
// under this generation, and a pre-issuance inventory carries none (its renewal refuses).
|
|
30
|
+
issued: z.strictObject({ generation: z.string().regex(/^[a-f0-9]{32}$/), acceptedToken: z.string().regex(/^[a-f0-9]{32}$/) }).optional(),
|
|
31
|
+
}),
|
|
20
32
|
z.strictObject({
|
|
21
33
|
mode: z.literal("user"),
|
|
22
34
|
owner: token,
|
package/dist/resume.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,GAAG,IAAI,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,MAAM,UAAU,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
|
package/dist/run-hosting.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type RunListRow, type RunStatusView, type SpaceAuth } from "@cotal-ai/core";
|
|
1
|
+
import { type EpServeContext, type RunListRow, type RunStatusView, type SpaceAuth } from "@cotal-ai/core";
|
|
2
2
|
/** What the host needs from the manager: its coordinates and its trust material. */
|
|
3
3
|
export interface RunHostingContext {
|
|
4
4
|
readonly space: string;
|
|
@@ -30,14 +30,35 @@ export declare class RunHosting {
|
|
|
30
30
|
/** The boot gate: no launch is served until the reconcile has taken back what a predecessor
|
|
31
31
|
* was driving (see the header). */
|
|
32
32
|
private assertReconciled;
|
|
33
|
-
/** `run-start`: validate, mint the id,
|
|
34
|
-
|
|
33
|
+
/** `run-start`: validate, mint the id, ADMIT the run under the caller's issued authority
|
|
34
|
+
* (SPEC 14.8), launch the drive, answer. The drive continues off-handler.
|
|
35
|
+
*
|
|
36
|
+
* Admission is what confines the run: the caller's request rode the versioned rail, so the
|
|
37
|
+
* broker pinned its generation; the evidence the issuer recorded for that generation is
|
|
38
|
+
* resolved (active, source live, linearized by a second read) and its ceiling becomes the
|
|
39
|
+
* run's channel ceiling. A legacy arrival carries no binding and is refused by name, never
|
|
40
|
+
* routed through the host's own authority. */
|
|
41
|
+
start(ctx: EpServeContext, args: {
|
|
35
42
|
source: string;
|
|
36
43
|
file?: string;
|
|
37
44
|
timeout?: string;
|
|
38
45
|
}): Promise<{
|
|
39
46
|
runId: string;
|
|
40
47
|
}>;
|
|
48
|
+
/** Resolve the caller's issued authority and write the run's admission record, create-only,
|
|
49
|
+
* BEFORE the driver is launched and before the start reply. The ceiling is the evidence's,
|
|
50
|
+
* verbatim; nothing is read from a mutable ledger or an agent file. */
|
|
51
|
+
private admit;
|
|
52
|
+
/** One admission-store write over an ephemeral `run-admitter` credential pinned to this run. */
|
|
53
|
+
private withAdmitter;
|
|
54
|
+
/** The admission a resume, takeover or reconcile continues under: the ORIGINAL record, with
|
|
55
|
+
* its current revocation state. A new requester cannot widen it; a run with none was admitted
|
|
56
|
+
* before SPEC 14.8 or by a host that never admitted it, and is not resumed here. */
|
|
57
|
+
private admitted;
|
|
58
|
+
/** Revoke a hosted run (SPEC 14.8): the marker is create-only and independent of the immutable
|
|
59
|
+
* admission; every later channel effect of the run refuses on reading it, and a drive parked in
|
|
60
|
+
* a wait ends within one poll. Idempotent. */
|
|
61
|
+
revoke(runId: string, by: string, reason: string): Promise<void>;
|
|
41
62
|
/** `run-resume`: take a recorded run over under a fresh takeover and continue it from its journal.
|
|
42
63
|
* The source is the recorded program; a run started before programs were recorded has no
|
|
43
64
|
* hosted resume, and says so. The slot is claimed before the record read, so a second resume
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-hosting.d.ts","sourceRoot":"","sources":["../src/run-hosting.ts"],"names":[],"mappings":"AA+CA,OAAO,
|
|
1
|
+
{"version":3,"file":"run-hosting.d.ts","sourceRoot":"","sources":["../src/run-hosting.ts"],"names":[],"mappings":"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"}
|