@cotal-ai/auth 0.73.0 → 0.77.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 (70) hide show
  1. package/dist/auth-service-contract.d.ts +4 -4
  2. package/dist/auth-service-contract.d.ts.map +1 -1
  3. package/dist/auth-service-contract.js +7 -38
  4. package/dist/auth-service-contract.js.map +1 -1
  5. package/dist/barrier-evict.d.ts.map +1 -1
  6. package/dist/barrier-evict.js +17 -75
  7. package/dist/barrier-evict.js.map +1 -1
  8. package/dist/commands.js +11 -25
  9. package/dist/commands.js.map +1 -1
  10. package/dist/delivery-admin.d.ts +20 -0
  11. package/dist/delivery-admin.d.ts.map +1 -0
  12. package/dist/delivery-admin.js +46 -0
  13. package/dist/delivery-admin.js.map +1 -0
  14. package/dist/idp.d.ts +0 -2
  15. package/dist/idp.d.ts.map +1 -1
  16. package/dist/idp.js +3 -4
  17. package/dist/idp.js.map +1 -1
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/ledger-scanner.d.ts +1 -1
  23. package/dist/ledger-scanner.d.ts.map +1 -1
  24. package/dist/ledger-scanner.js +7 -19
  25. package/dist/ledger-scanner.js.map +1 -1
  26. package/dist/ledger.d.ts.map +1 -1
  27. package/dist/ledger.js +7 -1
  28. package/dist/ledger.js.map +1 -1
  29. package/dist/manager-authority.d.ts +20 -1
  30. package/dist/manager-authority.d.ts.map +1 -1
  31. package/dist/manager-authority.js +62 -34
  32. package/dist/manager-authority.js.map +1 -1
  33. package/dist/manager-maintenance.d.ts.map +1 -1
  34. package/dist/manager-maintenance.js +6 -19
  35. package/dist/manager-maintenance.js.map +1 -1
  36. package/dist/permissions.d.ts +5 -3
  37. package/dist/permissions.d.ts.map +1 -1
  38. package/dist/permissions.js +5 -4
  39. package/dist/permissions.js.map +1 -1
  40. package/dist/plane-claim.d.ts +5 -0
  41. package/dist/plane-claim.d.ts.map +1 -1
  42. package/dist/plane-claim.js +40 -72
  43. package/dist/plane-claim.js.map +1 -1
  44. package/dist/platform-control.d.ts.map +1 -1
  45. package/dist/platform-control.js +2 -2
  46. package/dist/platform-control.js.map +1 -1
  47. package/dist/platform-supervisor.d.ts +51 -0
  48. package/dist/platform-supervisor.d.ts.map +1 -0
  49. package/dist/platform-supervisor.js +83 -0
  50. package/dist/platform-supervisor.js.map +1 -0
  51. package/dist/provider.d.ts.map +1 -1
  52. package/dist/provider.js +40 -19
  53. package/dist/provider.js.map +1 -1
  54. package/dist/records-scanner.d.ts +1 -1
  55. package/dist/records-scanner.d.ts.map +1 -1
  56. package/dist/records-scanner.js +3 -18
  57. package/dist/records-scanner.js.map +1 -1
  58. package/dist/service.d.ts +34 -9
  59. package/dist/service.d.ts.map +1 -1
  60. package/dist/service.js +207 -45
  61. package/dist/service.js.map +1 -1
  62. package/dist/store.d.ts +9 -0
  63. package/dist/store.d.ts.map +1 -1
  64. package/dist/store.js +32 -2
  65. package/dist/store.js.map +1 -1
  66. package/dist/token.d.ts +3 -2
  67. package/dist/token.d.ts.map +1 -1
  68. package/dist/token.js +6 -4
  69. package/dist/token.js.map +1 -1
  70. package/package.json +4 -4
@@ -46,10 +46,23 @@
46
46
  * refusal is not retryable: a successor may own the row.
47
47
  */
48
48
  import { Kvm } from "@nats-io/kv";
49
- import { CotalEndpoint, EpEnvelopeError, epAuthBucket, isCasLoss, isPlaneConnTuple, mintCreds, newIdentity, parsePlaneLivenessResult, parsePrincipalLivenessResult, } from "@cotal-ai/core";
49
+ import { EpEnvelopeError, epAuthBucket, isCasLoss, isPlaneConnTuple, newIdentity, parsePlaneLivenessResult, parsePrincipalLivenessResult, } from "@cotal-ai/core";
50
+ import { withDeliveryAdminEndpoint } from "./delivery-admin.js";
50
51
  /** The ONE exact claim key (`$KV.cotal_auth_<space>.plane`) — the bucket is already space-scoped;
51
52
  * the barrier grant carries exactly this key, never `plane.>`. */
52
53
  export const PLANE_CLAIM_KEY = "plane";
54
+ /** Run one sealed scan under the plane guard (SPEC 13.13), inside the caller's serialized critical
55
+ * section. The check after the scan discards the result because a claim lost mid-scan means a
56
+ * successor may already own the literal consumer name. The module chain serializes within a
57
+ * process; the guard is the cross-process authority. Only a smoke-built scanner has no guard. */
58
+ export async function guardedScan(guard, scan) {
59
+ if (guard === undefined)
60
+ return scan();
61
+ await guard.assertHeld("before");
62
+ const out = await scan();
63
+ await guard.assertHeld("after");
64
+ return out;
65
+ }
53
66
  /** `details[].kind` on every plane-claim refusal (SPEC 13.13). The copy is written for an
54
67
  * operator and the codes pair unlike cases, so a host that retries contention without masking
55
68
  * corruption keys on `reason`. */
@@ -265,9 +278,6 @@ export async function acquirePlaneClaim(opts) {
265
278
  },
266
279
  };
267
280
  }
268
- /** The per-liveness-call credential's TTL (the barrier-evict precedent): one delivery-admin call
269
- * runs in a 15s request budget; 60s bounds a copied credential to a minute. */
270
- const ORACLE_CRED_TTL_SECONDS = 60;
271
281
  /**
272
282
  * The PRODUCTION liveness oracle over the delivery daemon's `ctl.delivery-admin` rail (the
273
283
  * barrier-evict seam's twin: per-call connection, supervisor-profile credential minted with a
@@ -276,101 +286,59 @@ const ORACLE_CRED_TTL_SECONDS = 60;
276
286
  * `unknown` verdicts with an honest note — this seam never fabricates absence and never throws.
277
287
  */
278
288
  export function makeDeliveryAdminPlaneOracle(opts) {
279
- const auth = {
280
- space: opts.space,
281
- operator: { seed: "", jwt: "" },
282
- account: { pub: opts.dataAccount.pub, seed: "", jwt: "", signingSeed: opts.dataAccount.signingSeed, signingPub: "" },
283
- sys: { pub: "", jwt: "" },
284
- };
285
289
  const unknown = (query, note) => {
286
290
  opts.log(`plane-oracle: ${note}`);
287
291
  return { ledger: { tuple: query.ledger, state: "unknown" }, records: { tuple: query.records, state: "unknown" }, sweepComplete: false, note };
288
292
  };
289
293
  return async (query) => {
290
- const id = newIdentity();
291
- let ep;
292
294
  try {
293
- const creds = await mintCreds(auth, id, "supervisor", { expiresInSeconds: ORACLE_CRED_TTL_SECONDS });
294
- ep = new CotalEndpoint({
295
- onConnection: (nc) => opts.onConnection?.(nc, `cotal:auth-plane-oracle:${opts.space}`),
296
- space: opts.space,
297
- servers: opts.server,
298
- creds,
299
- card: { id: id.id, name: "auth-plane-oracle", kind: "endpoint" },
300
- channels: [],
301
- consume: false,
302
- watchChannels: false,
303
- watchPresence: false,
304
- registerPresence: false,
295
+ return await withDeliveryAdminEndpoint(opts, "supervisor", "auth-plane-oracle", async (ep) => {
296
+ const r = await ep.requestDeliveryAdmin("planeConnLiveness", { query }, 15_000);
297
+ if (!r.ok)
298
+ return unknown(query, `the delivery daemon refused the liveness query: ${r.error ?? "(no error copy)"}`);
299
+ // CLOSED parse of the wire-crossing result: exact keys at every level, enum states, closed
300
+ // tuples. Anything else is a garbled oracle and blocks takeover.
301
+ const d = parsePlaneLivenessResult(r.data);
302
+ if (d === undefined)
303
+ return unknown(query, `the delivery daemon returned a garbled liveness result (${JSON.stringify(r.data ?? null)})`);
304
+ if (!sameTuple(d.ledger.tuple, query.ledger) || !sameTuple(d.records.tuple, query.records))
305
+ return unknown(query, "the delivery daemon echoed a FOREIGN liveness query; a result that does not verifiably describe this claim never authorizes");
306
+ // An internally CONTRADICTORY answer never authorizes: `gone` is conclusive only under a
307
+ // complete sweep (the eviction seam's truthium rule, applied to the read-only twin).
308
+ if (!d.sweepComplete && (d.ledger.state === "gone" || d.records.state === "gone"))
309
+ return unknown(query, `the delivery daemon claimed gone under an INCOMPLETE sweep (ledger=${d.ledger.state}, records=${d.records.state}); contradictory - treated as unknown`);
310
+ return d;
305
311
  });
306
- ep.on("error", () => { });
307
- await ep.start();
308
- const r = await ep.requestDeliveryAdmin("planeConnLiveness", { query }, 15_000);
309
- if (!r.ok)
310
- return unknown(query, `the delivery daemon refused the liveness query: ${r.error ?? "(no error copy)"}`);
311
- // CLOSED parse of the wire-crossing result: exact keys at every level, enum states, closed
312
- // tuples. Anything else is a garbled oracle and blocks takeover.
313
- const d = parsePlaneLivenessResult(r.data);
314
- if (d === undefined)
315
- return unknown(query, `the delivery daemon returned a garbled liveness result (${JSON.stringify(r.data ?? null)})`);
316
- if (!sameTuple(d.ledger.tuple, query.ledger) || !sameTuple(d.records.tuple, query.records))
317
- return unknown(query, "the delivery daemon echoed a FOREIGN liveness query; a result that does not verifiably describe this claim never authorizes");
318
- // An internally CONTRADICTORY answer never authorizes: `gone` is conclusive only under a
319
- // complete sweep (the eviction seam's truthium rule, applied to the read-only twin).
320
- if (!d.sweepComplete && (d.ledger.state === "gone" || d.records.state === "gone"))
321
- return unknown(query, `the delivery daemon claimed gone under an INCOMPLETE sweep (ledger=${d.ledger.state}, records=${d.records.state}); contradictory - treated as unknown`);
322
- return d;
323
312
  }
324
313
  catch (e) {
325
314
  return unknown(query, `the delivery-admin rail is unreachable (${e instanceof Error ? e.message : String(e)}); liveness is UNKNOWN and the claim is not reclaimed`);
326
315
  }
327
- finally {
328
- await ep?.stop().catch(() => { });
329
- }
330
316
  };
331
317
  }
332
318
  /** Host-side principal liveness over the same delivery-admin rail. Only `gone` with a complete
333
319
  * sweep is conclusive; every refusal, transport fault, malformed echo, or contradiction is unknown. */
334
320
  export function makeDeliveryAdminPrincipalOracle(opts) {
335
- const auth = {
336
- space: opts.space,
337
- operator: { seed: "", jwt: "" },
338
- account: { pub: opts.dataAccount.pub, seed: "", jwt: "", signingSeed: opts.dataAccount.signingSeed, signingPub: "" },
339
- sys: { pub: "", jwt: "" },
340
- };
341
321
  const unknown = (principal, note) => {
342
322
  opts.log(`principal-oracle: ${principal}: ${note}`);
343
323
  return { principal, state: "unknown", sweepComplete: false, note };
344
324
  };
345
325
  return async (principal) => {
346
- const id = newIdentity();
347
- let ep;
348
326
  try {
349
- const creds = await mintCreds(auth, id, "endpoint-evictor", { expiresInSeconds: ORACLE_CRED_TTL_SECONDS });
350
- ep = new CotalEndpoint({
351
- onConnection: (nc) => opts.onConnection?.(nc, `cotal:auth-principal-oracle:${opts.space}`),
352
- space: opts.space, servers: opts.server, creds,
353
- card: { id: id.id, name: "auth-principal-oracle", kind: "endpoint" },
354
- channels: [], consume: false, watchChannels: false, watchPresence: false, registerPresence: false,
327
+ return await withDeliveryAdminEndpoint(opts, "endpoint-evictor", "auth-principal-oracle", async (ep) => {
328
+ const reply = await ep.requestDeliveryAdmin("principalLiveness", { principal }, 15_000);
329
+ if (!reply.ok)
330
+ return unknown(principal, `the delivery daemon refused the liveness query: ${reply.error ?? "(no error copy)"}`);
331
+ const parsed = parsePrincipalLivenessResult(reply.data, principal);
332
+ if (!parsed)
333
+ return unknown(principal, `the delivery daemon returned a garbled or foreign liveness result (${JSON.stringify(reply.data ?? null)})`);
334
+ if (parsed.state === "gone" && parsed.sweepComplete !== true)
335
+ return unknown(principal, "the delivery daemon claimed gone under an incomplete sweep");
336
+ return parsed;
355
337
  });
356
- ep.on("error", () => { });
357
- await ep.start();
358
- const reply = await ep.requestDeliveryAdmin("principalLiveness", { principal }, 15_000);
359
- if (!reply.ok)
360
- return unknown(principal, `the delivery daemon refused the liveness query: ${reply.error ?? "(no error copy)"}`);
361
- const parsed = parsePrincipalLivenessResult(reply.data, principal);
362
- if (!parsed)
363
- return unknown(principal, `the delivery daemon returned a garbled or foreign liveness result (${JSON.stringify(reply.data ?? null)})`);
364
- if (parsed.state === "gone" && parsed.sweepComplete !== true)
365
- return unknown(principal, "the delivery daemon claimed gone under an incomplete sweep");
366
- return parsed;
367
338
  }
368
339
  catch (e) {
369
340
  return unknown(principal, `the delivery-admin rail is unreachable (${e instanceof Error ? e.message : String(e)})`);
370
341
  }
371
- finally {
372
- await ep?.stop().catch(() => { });
373
- }
374
342
  };
375
343
  }
376
344
  //# sourceMappingURL=plane-claim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plane-claim.js","sourceRoot":"","sources":["../src/plane-claim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plane-claim.js","sourceRoot":"","sources":["../src/plane-claim.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform-control.d.ts","sourceRoot":"","sources":["../src/platform-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EACjC,MAAM,gBAAgB,CAAC;AAExB;yFACyF;AACzF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAEjF;;cAEc;AACd,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAQvH;AAwBD;;qEAEqE;AACrE,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,OAAO,GAAG,+BAA+B,CAuBlG;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IACtG,yGAAyG;IACzG,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACpI,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnI;AAED,KAAK,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAuB5D,mFAAmF;AACnF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,IACtD,CAAC,SAAS,2BAA2B,EAAE,KAAK,+BAA+B,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAuB1I;AAED;yFACyF;AACzF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG;IAAE,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAAE,IAClH,YAAY,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAO9D"}
1
+ {"version":3,"file":"platform-control.d.ts","sourceRoot":"","sources":["../src/platform-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,2BAA2B,EACjC,MAAM,gBAAgB,CAAC;AAExB;yFACyF;AACzF,MAAM,MAAM,sBAAsB,GAC9B;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAEjF;;cAEc;AACd,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAQvH;AAwBD;;qEAEqE;AACrE,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,OAAO,GAAG,+BAA+B,CAuBlG;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IACtG,yGAAyG;IACzG,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACpI,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnI;AAED,KAAK,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAuB5D,mFAAmF;AACnF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,mBAAmB,IACtD,CAAC,SAAS,2BAA2B,EAAE,KAAK,+BAA+B,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAuB1I;AAED;yFACyF;AACzF,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG;IAAE,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;CAAE,IAClH,YAAY,MAAM,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAO9D"}
@@ -5,7 +5,7 @@
5
5
  * no capability and no IdP input, and it adds no request kind: each inner request goes through the
6
6
  * same parser and plane function the human route uses, with the assignment in place of `supervise`.
7
7
  */
8
- import { EpEnvelopeError, assertPlatformOwnerToken, remoteManagerActors, } from "@cotal-ai/core";
8
+ import { EpEnvelopeError, assertPlatformOwnerToken, isAccountNkey, remoteManagerActors, } from "@cotal-ai/core";
9
9
  /** The one authorization step every manager-service function shares: `supervise` for a human (its
10
10
  * existing refusal sentence unchanged), the door's current assignment for the platform control
11
11
  * manager. */
@@ -53,7 +53,7 @@ export function parsePlatformControlAuthorityRequest(raw) {
53
53
  badRequest('must carry { v: 1, kind: "platform-control-authority" }');
54
54
  if (typeof o.space !== "string" || o.space.length === 0)
55
55
  badRequest("requires a space");
56
- if (typeof o.accountPublicKey !== "string" || !/^A[A-Z2-7]{55}$/.test(o.accountPublicKey))
56
+ if (!isAccountNkey(o.accountPublicKey))
57
57
  badRequest("requires an account public key");
58
58
  if (typeof o.assignmentRevision !== "number" || !Number.isSafeInteger(o.assignmentRevision) || o.assignmentRevision < 0)
59
59
  badRequest("requires a non-negative integer assignmentRevision");
@@ -1 +1 @@
1
- {"version":3,"file":"platform-control.js","sourceRoot":"","sources":["../src/platform-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-control.js","sourceRoot":"","sources":["../src/platform-control.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,aAAa,EACb,mBAAmB,GAOpB,MAAM,gBAAgB,CAAC;AAQxB;;cAEc;AACd,MAAM,UAAU,6BAA6B,CAAC,CAAyB,EAAE,UAAkB,EAAE,YAAoB;IAC/G,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC5B,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,KAAK,UAAU;YAC7E,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,6BAA6B,UAAU,2CAA2C,CAAC,CAAC;QACrI,OAAO;IACT,CAAC;IACD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,2BAA2B;IAC3B,6BAA6B;IAC7B,mCAAmC;IACnC,yBAAyB;IACzB,6BAA6B;IAC7B,uBAAuB;IACvB,qBAAqB;CACtB,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,kCAAkC;IAClC,0CAA0C;IAC1C,sCAAsC;IACtC,sCAAsC;CACvC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,iCAAiC,CAAC;AAEzD,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,4BAA4B,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;;qEAEqE;AACrE,MAAM,UAAU,oCAAoC,CAAC,GAAY;IAC/D,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;IACnG,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC;IACrG,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,UAAU,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC7I,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B;QAAE,UAAU,CAAC,yDAAyD,CAAC,CAAC;IAChI,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACxF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAAE,UAAU,CAAC,gCAAgC,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,CAAC,kBAAkB,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,kBAAkB,GAAG,CAAC;QACrH,UAAU,CAAC,oDAAoD,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;IACxB,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,UAAU,CAAC,kCAAkC,CAAC,CAAC;IACxH,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3D,MAAM,IAAI,eAAe,CAAC,eAAe,EAAE,oGAAoG,CAAC,CAAC;IACnJ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,UAAU,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzH,IAAK,KAA6B,CAAC,KAAK,KAAK,KAAK;QAAE,UAAU,CAAC,yDAAyD,CAAC,CAAC;IAC1H,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAU;QAC9D,IAAI,OAAQ,KAAiC,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,UAAU,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;IAC/G,MAAM,OAAO,GAAI,KAA+B,CAAC,OAAO,CAAC;IACzD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,cAAc,CAAC;QACxI,UAAU,CAAC,gGAAgG,CAAC,CAAC;IAC/G,OAAO,CAA+C,CAAC;AACzD,CAAC;AAcD,kEAAkE;AAClE,KAAK,UAAU,wBAAwB,CAAC,IAAoB;IAC1D,IAAI,UAA4C,CAAC;IACjD,IAAI,CAAC;QACH,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,aAAa,EAAE,8CAA+C,CAAW,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/H,CAAC;IACD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,UAAU;QAChD,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,6DAA6D,CAAC,CAAC;IAChH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;0DAC0D;AAC1D,KAAK,UAAU,kBAAkB,CAAC,IAAoB,EAAE,UAAkB;IACxE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE;QAC7F,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,6BAA6B,UAAU,qCAAqC,CAAC,CAAC;AACjI,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,4BAA4B,CAAC,IAAyB;IACpE,OAAO,KAAK,EAAyC,GAAuC,EAA8C,EAAE;QAC1I,MAAM,QAAQ,GAAG,oCAAoC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB;YACtF,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,qFAAqF,CAAC,CAAC;QACxI,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAA0J,CAAC;QAClL,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB;YAC9G,UAAU,CAAC,kBAAkB,KAAK,QAAQ,CAAC,kBAAkB;YAC/D,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,sFAAsF,CAAC,CAAC;QACzI,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC,mBAAmB,KAAK,UAAU,CAAC,YAAY;YACrG,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,yFAAyF,CAAC,CAAC;QAC5I,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB,CAAC;YAC1H,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,+DAA+D,CAAC,CAAC;QAClH,MAAM,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,IAAI,KAAK,2BAA2B,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC;YAC/G,UAAU,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;YACnD,6FAA6F;YAC7F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;YACxF,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ;gBAChE,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,gCAAgC,UAAU,CAAC,qBAAqB,yEAAyE,CAAC,CAAC;QAChM,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,CAAsC,CAAC;IAChI,CAAC,CAAC;AACJ,CAAC;AAED;yFACyF;AACzF,MAAM,UAAU,4BAA4B,CAAC,IAAqF;IAChI,OAAO,KAAK,EAAE,UAAkB,EAA8B,EAAE;QAC9D,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU;YACxJ,MAAM,IAAI,eAAe,CAAC,mBAAmB,EAAE,6BAA6B,UAAU,2CAA2C,CAAC,CAAC;QACrI,MAAM,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { EpEnvelopeError, type RemoteManagerAuthorityMaterial, type RemoteManagerAuthorityRequest } from "@cotal-ai/core";
2
+ /** Host-recorded authority for one owner's manager. No human row or bearer is created. */
3
+ export interface PlatformSupervisorAssignment {
4
+ v: 1;
5
+ kind: "platform-supervisor";
6
+ owner: string;
7
+ space: string;
8
+ accountPublicKey: string;
9
+ instanceId: string;
10
+ lifecycleUid: string;
11
+ revision: number;
12
+ state: "assigned" | "ended";
13
+ expiresAt: number;
14
+ scope: ["supervise"];
15
+ }
16
+ /** One owner-bound call over the platform's authenticated worker channel. */
17
+ export interface PlatformSupervisorAuthorityRequest {
18
+ v: 1;
19
+ kind: "platform-supervisor-authority";
20
+ owner: string;
21
+ assignmentRevision: number;
22
+ request: RemoteManagerAuthorityRequest;
23
+ }
24
+ /** Administrative authorization belongs to the trusted composition, never the worker body. */
25
+ export interface PlatformSupervisorInput {
26
+ authorizePlatformAdmin(owner: string): Promise<boolean>;
27
+ observeAssignment(owner: string): Promise<PlatformSupervisorAssignment | null>;
28
+ }
29
+ /** The refusal every door gives once the platform has ended an owner's assignment. */
30
+ export declare function platformSupervisorEnded(owner: string, cause?: string): EpEnvelopeError;
31
+ export declare function requirePlatformSupervisorAdmin(input: PlatformSupervisorInput, owner: string): Promise<void>;
32
+ /** The request is closed before any administrative callback or issuer is reached. */
33
+ export declare function parsePlatformSupervisorAuthorityRequest(raw: unknown): PlatformSupervisorAuthorityRequest;
34
+ /** Build a door scoped to a fresh assignment and the existing fixed registration profiles. */
35
+ export declare function makePlatformSupervisorAuthority(args: PlatformSupervisorInput & {
36
+ owner: string;
37
+ space: string;
38
+ accountPublicKey: string;
39
+ ready(): void;
40
+ observePrincipal(instanceId: string): Promise<string | undefined>;
41
+ issue(owner: string, expiresAt: number, request: RemoteManagerAuthorityRequest): Promise<RemoteManagerAuthorityMaterial>;
42
+ }): (raw: PlatformSupervisorAuthorityRequest) => Promise<RemoteManagerAuthorityMaterial>;
43
+ /** Record that the platform ended one owner's assignment. The host's own record must already read
44
+ * `ended`; the auth service never ends an assignment on a caller's claim. */
45
+ export declare function makePlatformSupervisorEnd(args: PlatformSupervisorInput & {
46
+ space: string;
47
+ accountPublicKey: string;
48
+ ready(): void;
49
+ end(owner: string, instanceId: string, lifecycleUid: string): Promise<void>;
50
+ }): (owner: string) => Promise<void>;
51
+ //# sourceMappingURL=platform-supervisor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-supervisor.d.ts","sourceRoot":"","sources":["../src/platform-supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGf,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EACnC,MAAM,gBAAgB,CAAC;AAGxB,0FAA0F;AAC1F,MAAM,WAAW,4BAA4B;IAC3C,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC;CACtB;AAED,6EAA6E;AAC7E,MAAM,WAAW,kCAAkC;IACjD,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,+BAA+B,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,6BAA6B,CAAC;CACxC;AAED,8FAA8F;AAC9F,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;CAChF;AAED,sFAAsF;AACtF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAEtF;AAQD,wBAAsB,8BAA8B,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjH;AAED,qFAAqF;AACrF,wBAAgB,uCAAuC,CAAC,GAAG,EAAE,OAAO,GAAG,kCAAkC,CAexG;AAED,8FAA8F;AAC9F,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,uBAAuB,GAAG;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAC1H,IACe,KAAK,kCAAkC,KAAG,OAAO,CAAC,8BAA8B,CAAC,CA6BhG;AAED;8EAC8E;AAC9E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E,IACe,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAa5C"}
@@ -0,0 +1,83 @@
1
+ import { EpEnvelopeError, assertDerivedOwnerToken, assertLifecycleToken, } from "@cotal-ai/core";
2
+ import { parseRemoteManagerAuthorityRequest } from "./manager-authority.js";
3
+ /** The refusal every door gives once the platform has ended an owner's assignment. */
4
+ export function platformSupervisorEnded(owner, cause) {
5
+ return new EpEnvelopeError("permission-denied", `platform supervisor assignment for owner ${owner} has ended; its lifecycle has ended and material issued under it authorizes nothing${cause === undefined ? "" : ` (${cause})`}`);
6
+ }
7
+ /** The recorded assignment matches this owner, space and account, at any revision. */
8
+ function namesAssignment(assignment, owner, space, accountPublicKey) {
9
+ return !!assignment && assignment.v === 1 && assignment.kind === "platform-supervisor" &&
10
+ assignment.owner === owner && assignment.space === space && assignment.accountPublicKey === accountPublicKey;
11
+ }
12
+ export async function requirePlatformSupervisorAdmin(input, owner) {
13
+ if (await input.authorizePlatformAdmin(owner) !== true)
14
+ throw new EpEnvelopeError("permission-denied", `platform-admin authority is required for supervisor owner ${owner}`);
15
+ }
16
+ /** The request is closed before any administrative callback or issuer is reached. */
17
+ export function parsePlatformSupervisorAuthorityRequest(raw) {
18
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw))
19
+ throw new EpEnvelopeError("bad-request", "platform supervisor request must be an object");
20
+ const o = raw;
21
+ for (const key of Object.keys(o))
22
+ if (!["v", "kind", "owner", "assignmentRevision", "request"].includes(key))
23
+ throw new EpEnvelopeError("bad-request", `platform supervisor request carries unknown field ${JSON.stringify(key)}`);
24
+ if (o.v !== 1 || o.kind !== "platform-supervisor-authority" || typeof o.owner !== "string" ||
25
+ !Number.isSafeInteger(o.assignmentRevision) || o.assignmentRevision < 0)
26
+ throw new EpEnvelopeError("bad-request", "platform supervisor request requires version, owner and assignmentRevision");
27
+ assertDerivedOwnerToken(o.owner);
28
+ const request = parseRemoteManagerAuthorityRequest(o.request);
29
+ if (request.actor !== "cli")
30
+ throw new EpEnvelopeError("bad-request", 'platform supervisor request actor must be "cli"');
31
+ return { v: 1, kind: "platform-supervisor-authority", owner: o.owner, assignmentRevision: o.assignmentRevision, request };
32
+ }
33
+ /** Build a door scoped to a fresh assignment and the existing fixed registration profiles. */
34
+ export function makePlatformSupervisorAuthority(args) {
35
+ return async (raw) => {
36
+ args.ready();
37
+ const envelope = parsePlatformSupervisorAuthorityRequest(raw);
38
+ if (envelope.owner !== args.owner)
39
+ throw new EpEnvelopeError("permission-denied", `platform supervisor for owner ${args.owner} refuses requested owner ${envelope.owner}`);
40
+ await requirePlatformSupervisorAdmin(args, envelope.owner);
41
+ const assignment = await args.observeAssignment(envelope.owner);
42
+ if (!namesAssignment(assignment, envelope.owner, args.space, args.accountPublicKey))
43
+ throw new EpEnvelopeError("permission-denied", `platform supervisor assignment does not name owner ${envelope.owner} in this account and revision`);
44
+ if (assignment.state === "ended")
45
+ throw platformSupervisorEnded(envelope.owner);
46
+ if (assignment.state !== "assigned" || assignment.revision !== envelope.assignmentRevision)
47
+ throw new EpEnvelopeError("permission-denied", `platform supervisor assignment does not name owner ${envelope.owner} in this account and revision`);
48
+ if (!Number.isSafeInteger(assignment.expiresAt) || assignment.expiresAt <= Math.floor(Date.now() / 1000))
49
+ throw new EpEnvelopeError("permission-denied", `platform supervisor lifecycle has ended for owner ${envelope.owner}`);
50
+ if (!Array.isArray(assignment.scope) || assignment.scope.length !== 1 || assignment.scope[0] !== "supervise")
51
+ throw new EpEnvelopeError("permission-denied", `platform supervisor scope must be only supervise for owner ${envelope.owner}`);
52
+ assertLifecycleToken(assignment.instanceId);
53
+ assertLifecycleToken(assignment.lifecycleUid);
54
+ const request = envelope.request;
55
+ if (request.space !== args.space || request.instanceId !== assignment.instanceId || request.managerLifecycleUid !== assignment.lifecycleUid)
56
+ throw new EpEnvelopeError("permission-denied", `platform supervisor request names another instance or lifecycle for owner ${envelope.owner}`);
57
+ // No enrollment, mint, exchange, arbitrary profile, or participant control request crosses here.
58
+ if (!["prepare", "activate", "renew", "renewStandingBundle"].includes(request.operation))
59
+ throw new EpEnvelopeError("permission-denied", `platform supervisor operation ${request.operation} is outside manager registration and renewal for owner ${envelope.owner}`);
60
+ const principal = await args.observePrincipal(request.instanceId);
61
+ if (principal !== undefined && !principal.startsWith(`${envelope.owner}.`))
62
+ throw new EpEnvelopeError("permission-denied", `platform supervisor instance belongs to another owner than ${envelope.owner}`);
63
+ return await args.issue(envelope.owner, assignment.expiresAt, request);
64
+ };
65
+ }
66
+ /** Record that the platform ended one owner's assignment. The host's own record must already read
67
+ * `ended`; the auth service never ends an assignment on a caller's claim. */
68
+ export function makePlatformSupervisorEnd(args) {
69
+ return async (owner) => {
70
+ args.ready();
71
+ assertDerivedOwnerToken(owner);
72
+ await requirePlatformSupervisorAdmin(args, owner);
73
+ const assignment = await args.observeAssignment(owner);
74
+ if (!namesAssignment(assignment, owner, args.space, args.accountPublicKey))
75
+ throw new EpEnvelopeError("permission-denied", `platform supervisor assignment does not name owner ${owner} in this account`);
76
+ if (assignment.state !== "ended")
77
+ throw new EpEnvelopeError("failed-precondition", `platform supervisor assignment for owner ${owner} is still ${String(assignment.state)}; record it ended before ending its issuance`);
78
+ assertLifecycleToken(assignment.instanceId);
79
+ assertLifecycleToken(assignment.lifecycleUid);
80
+ await args.end(owner, assignment.instanceId, assignment.lifecycleUid);
81
+ };
82
+ }
83
+ //# sourceMappingURL=platform-supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-supervisor.js","sourceRoot":"","sources":["../src/platform-supervisor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAyE,KAAK,YAAY,EAA6zB,MAAM,gBAAgB,CAAC;AA4Cr7B,eAAO,MAAM,iBAAiB,EAAE,YAkmB/B,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAyE,KAAK,YAAY,EAA6zB,MAAM,gBAAgB,CAAC;AA6Cr7B,eAAO,MAAM,iBAAiB,EAAE,YAmnB/B,CAAC"}
package/dist/provider.js CHANGED
@@ -16,10 +16,11 @@
16
16
  import { isLoopbackLiteral, registry } from "@cotal-ai/core";
17
17
  import { assertUserAuthInfo, findMesh, homeCotalDir, probeLiveness, spaceSegment } from "@cotal-ai/workspace";
18
18
  import { readFileSync } from "node:fs";
19
- import { resolve, sep } from "node:path";
19
+ import { join, resolve, sep } from "node:path";
20
+ import { acquireLock } from "@cotal-ai/core";
20
21
  import { deleteIdpSpaceCatalog, fetchIdpJwt, hasIdpSessions, hasIdpSpaceCatalog, loadIdpSession, prepareIdpSpaceCatalogs, probeIdpJwks, requireIdpSession } from "./login.js";
21
22
  import { deriveOwnerForIdpSubject } from "./derive.js";
22
- import { findActorUnified, findInteractiveActor, grantManagedActor, newActorToken, revokeManagedActor } from "./ledger.js";
23
+ import { findActorUnified, findInteractiveActor, grantManagedActor, hashActorToken, newActorToken, revokeManagedActor, revokeManagedActorAt } from "./ledger.js";
23
24
  import { userAuthTrustFingerprint, validateRetainedManagedAgent } from "./continuity.js";
24
25
  import { AUTH_PROVIDER_NAME, authCalloutKey, authIssuerKey, authOwnerSecretKey, authServiceKeysKey, ensureCalloutAuth, ensureIssuer, ensureOwnerSecret, ensurePinnedIdp, loadAuthServiceInfo, loadCalloutAuth, loadOwnerSecret, loadPinnedIdp, saveServiceKeys, } from "./store.js";
25
26
  const READY_TIMEOUT_MS = 15_000;
@@ -50,6 +51,10 @@ export const cotalAuthProvider = {
50
51
  const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "issuing hosted run credentials");
51
52
  return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager run issuance");
52
53
  },
54
+ async requestRemoteRunRevoke({ store, dir, request }) {
55
+ const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "revoking a hosted run");
56
+ return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager run revoke");
57
+ },
53
58
  async preloadAccounts({ store, space }) {
54
59
  const callout = await loadCalloutAuth(store, space);
55
60
  if (!callout)
@@ -584,27 +589,43 @@ export const cotalAuthProvider = {
584
589
  * IdP-exchangeable by construction) carrying the agent's ACLs + the hash of a fresh per-agent
585
590
  * secret. Upsert semantics rotate the secret on respawn — a captured old secret dies the moment
586
591
  * its agent is respawned. */
587
- async grantAgent({ store, dir, space, owner, actor, scope, allowSubscribe, allowPublish, role, parent, label, lifecycleUid }) {
592
+ async grantAgent({ store, dir, space, owner, actor, scope, allowSubscribe, allowPublish, role, parent, label, lifecycleUid, fresh }) {
588
593
  const callout = await loadCalloutAuth(store, space);
589
594
  if (!callout)
590
595
  throw new Error(`space "${space}" has no user-auth material under ${dir} - enable it with \`cotal up --user-auth --idp <url>\` before spawning user-mode agents`);
591
- const { actorToken, tokenHash } = newActorToken();
592
- grantManagedActor(dir, {
593
- owner,
594
- actor,
595
- scope,
596
- allowSubscribe,
597
- allowPublish,
598
- ...(role ? { role } : {}),
599
- ...(parent ? { parent } : {}),
600
- ...(label ? { label } : {}),
601
- tokenHash,
602
- lifecycleUid,
603
- });
604
- return { actorToken, sentinelCreds: callout.sentinelCreds };
596
+ const claim = acquireLock(join(dir, "managed-grant.lock"), { label: "managed grant mutation" });
597
+ try {
598
+ if (fresh && findActorUnified(dir, owner, actor) !== undefined)
599
+ throw new Error(`actor "${actor}" already has a grant; no grant was replaced`);
600
+ const { actorToken, tokenHash } = newActorToken();
601
+ grantManagedActor(dir, {
602
+ owner,
603
+ actor,
604
+ scope,
605
+ allowSubscribe,
606
+ allowPublish,
607
+ ...(role ? { role } : {}),
608
+ ...(parent ? { parent } : {}),
609
+ ...(label ? { label } : {}),
610
+ tokenHash,
611
+ lifecycleUid,
612
+ });
613
+ return { actorToken, sentinelCreds: callout.sentinelCreds };
614
+ }
615
+ finally {
616
+ claim.release();
617
+ }
605
618
  },
606
- async revokeAgent({ dir, owner, actor }) {
607
- return revokeManagedActor(dir, owner, actor);
619
+ async revokeAgent({ dir, owner, actor, lifecycleUid, actorToken }) {
620
+ const claim = acquireLock(join(dir, "managed-grant.lock"), { label: "managed grant mutation" });
621
+ try {
622
+ if (actorToken !== undefined && findActorUnified(dir, owner, actor)?.tokenHash !== hashActorToken(actorToken))
623
+ return false;
624
+ return lifecycleUid === undefined ? revokeManagedActor(dir, owner, actor) : revokeManagedActorAt(dir, owner, actor, lifecycleUid);
625
+ }
626
+ finally {
627
+ claim.release();
628
+ }
608
629
  },
609
630
  /** The delete half of the seam pair: drop the four secret kinds from the store, attempting all
610
631
  * four even when one fails (idempotent deletes — a failed pass re-runs as-is), then fail loud