@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.
Files changed (50) hide show
  1. package/README.md +4 -2
  2. package/dist/commands.d.ts +1 -0
  3. package/dist/commands.d.ts.map +1 -1
  4. package/dist/commands.js +136 -41
  5. package/dist/commands.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/manager-service-contract.d.ts.map +1 -1
  10. package/dist/manager-service-contract.js +17 -2
  11. package/dist/manager-service-contract.js.map +1 -1
  12. package/dist/manager.d.ts +158 -26
  13. package/dist/manager.d.ts.map +1 -1
  14. package/dist/manager.js +623 -198
  15. package/dist/manager.js.map +1 -1
  16. package/dist/remote-authority.d.ts +22 -2
  17. package/dist/remote-authority.d.ts.map +1 -1
  18. package/dist/remote-authority.js +124 -2
  19. package/dist/remote-authority.js.map +1 -1
  20. package/dist/remote-register.d.ts.map +1 -1
  21. package/dist/remote-register.js +5 -1
  22. package/dist/remote-register.js.map +1 -1
  23. package/dist/resume.d.ts +5 -0
  24. package/dist/resume.d.ts.map +1 -1
  25. package/dist/resume.js +14 -2
  26. package/dist/resume.js.map +1 -1
  27. package/dist/run-hosting.d.ts +24 -3
  28. package/dist/run-hosting.d.ts.map +1 -1
  29. package/dist/run-hosting.js +97 -8
  30. package/dist/run-hosting.js.map +1 -1
  31. package/dist/runtime/custodial-pty.d.ts +10 -3
  32. package/dist/runtime/custodial-pty.d.ts.map +1 -1
  33. package/dist/runtime/custodial-pty.js +27 -5
  34. package/dist/runtime/custodial-pty.js.map +1 -1
  35. package/dist/runtime/index.d.ts +37 -0
  36. package/dist/runtime/index.d.ts.map +1 -1
  37. package/dist/runtime/index.js +15 -0
  38. package/dist/runtime/index.js.map +1 -1
  39. package/dist/runtime/pty.d.ts.map +1 -1
  40. package/dist/runtime/pty.js +28 -26
  41. package/dist/runtime/pty.js.map +1 -1
  42. package/dist/session/plane.d.ts +2 -1
  43. package/dist/session/plane.d.ts.map +1 -1
  44. package/dist/session/plane.js +3 -2
  45. package/dist/session/plane.js.map +1 -1
  46. package/dist/static-lifecycle.d.ts +1 -0
  47. package/dist/static-lifecycle.d.ts.map +1 -1
  48. package/dist/static-lifecycle.js +5 -0
  49. package/dist/static-lifecycle.js.map +1 -1
  50. 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,EACnC,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;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,GACjD,6BAA6B,CAsB/B;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,8BAA8B,EACxC,IAAI,EAAE,MAAM,8BAA8B,CAAC,aAAa,CAAC,EACzD,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAUR;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,0BAA0B,gDAE5E"}
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"}
@@ -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
- if (claims.exp !== credential.exp || credential.exp * 1000 > material.expiresAt + 1)
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,EAepB,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,CA4D/H"}
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"}
@@ -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;
@@ -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;AAmG5C,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"}
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
- const MAX_AGENTS = 50;
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({ mode: z.literal("static"), id: token, lifecycleUid, credential: fileRef }),
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,
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../src/resume.ts"],"names":[],"mappings":"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"}
@@ -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, launch the drive, answer. The drive continues off-handler. */
34
- start(args: {
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,EAwBL,KAAK,UAAU,EAGf,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAExB,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;wEACoE;IACpE,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAwBD,qBAAa,UAAU;IAMT,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IACrD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEI,GAAG,EAAE,iBAAiB;IAEnD;wFACoF;IACpF,OAAO,CAAC,IAAI;IAIZ;wCACoC;IACpC,OAAO,CAAC,gBAAgB;IAKxB,qGAAqG;IAC/F,KAAK,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IA8BlG;;;yEAGqE;IAC/D,MAAM,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAkCnF;;;;4EAIwE;IAClE,MAAM,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB3I,sDAAsD;IAChD,MAAM,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAShF,wEAAwE;IAClE,IAAI,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM9D;;;;;gGAK4F;IACtF,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQlB,QAAQ;IAoCtB;;yDAEqD;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B;;;;gEAI4D;IACtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,2EAA2E;IAC3E,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;sCAEkC;IAClC,OAAO,CAAC,KAAK;IAQb;8DAC0D;IAC1D,OAAO,CAAC,IAAI;IAIZ;;iGAE6F;YAC/E,MAAM;YAwBN,KAAK;IAyGnB;;4FAEwF;YAC1E,SAAS;IAoBvB;;;0DAGsD;YACxC,YAAY;CA0B3B"}
1
+ {"version":3,"file":"run-hosting.d.ts","sourceRoot":"","sources":["../src/run-hosting.ts"],"names":[],"mappings":"AA+CA,OAAO,EAmBL,KAAK,cAAc,EAenB,KAAK,UAAU,EAGf,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAExB,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;wEACoE;IACpE,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAwBD,qBAAa,UAAU;IAMT,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IACrD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEI,GAAG,EAAE,iBAAiB;IAEnD;wFACoF;IACpF,OAAO,CAAC,IAAI;IAIZ;wCACoC;IACpC,OAAO,CAAC,gBAAgB;IAKxB;;;;;;;mDAO+C;IACzC,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAgCvH;;4EAEwE;YAC1D,KAAK;IA6BnB,gGAAgG;YAClF,YAAY;IAkB1B;;yFAEqF;YACvE,QAAQ;IAItB;;mDAE+C;IACzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE;;;yEAGqE;IAC/D,MAAM,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAwCnF;;;;4EAIwE;IAClE,MAAM,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB3I,sDAAsD;IAChD,MAAM,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAShF,wEAAwE;IAClE,IAAI,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAM9D;;;;;gGAK4F;IACtF,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAQlB,QAAQ;IAiDtB;;yDAEqD;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B;;;;gEAI4D;IACtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,2EAA2E;IAC3E,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;sCAEkC;IAClC,OAAO,CAAC,KAAK;IAQb;8DAC0D;IAC1D,OAAO,CAAC,IAAI;IAIZ;;iGAE6F;YAC/E,MAAM;YAwBN,KAAK;IA0GnB;;4FAEwF;YAC1E,SAAS;IAoBvB;;;0DAGsD;YACxC,YAAY;CA0B3B"}