@cotal-ai/auth 0.91.0 → 0.92.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 (54) hide show
  1. package/dist/authority-client.d.ts +70 -3
  2. package/dist/authority-client.d.ts.map +1 -1
  3. package/dist/authority-client.js +109 -8
  4. package/dist/authority-client.js.map +1 -1
  5. package/dist/commands.d.ts.map +1 -1
  6. package/dist/commands.js +37 -10
  7. package/dist/commands.js.map +1 -1
  8. package/dist/manager-authority.d.ts +59 -3
  9. package/dist/manager-authority.d.ts.map +1 -1
  10. package/dist/manager-authority.js +185 -4
  11. package/dist/manager-authority.js.map +1 -1
  12. package/dist/native-service-gate.d.ts +14 -3
  13. package/dist/native-service-gate.d.ts.map +1 -1
  14. package/dist/native-service-gate.js +34 -20
  15. package/dist/native-service-gate.js.map +1 -1
  16. package/dist/native-service-name.d.ts +7 -0
  17. package/dist/native-service-name.d.ts.map +1 -1
  18. package/dist/native-service-name.js +15 -6
  19. package/dist/native-service-name.js.map +1 -1
  20. package/dist/platform-control.d.ts.map +1 -1
  21. package/dist/platform-control.js +1 -0
  22. package/dist/platform-control.js.map +1 -1
  23. package/dist/provider.d.ts.map +1 -1
  24. package/dist/provider.js +8 -0
  25. package/dist/provider.js.map +1 -1
  26. package/dist/run-cancel-observation.d.ts +50 -0
  27. package/dist/run-cancel-observation.d.ts.map +1 -0
  28. package/dist/run-cancel-observation.js +146 -0
  29. package/dist/run-cancel-observation.js.map +1 -0
  30. package/dist/service-custody.d.ts +29 -20
  31. package/dist/service-custody.d.ts.map +1 -1
  32. package/dist/service-custody.js +37 -167
  33. package/dist/service-custody.js.map +1 -1
  34. package/dist/service-endpoint-authority.d.ts +70 -0
  35. package/dist/service-endpoint-authority.d.ts.map +1 -0
  36. package/dist/service-endpoint-authority.js +257 -0
  37. package/dist/service-endpoint-authority.js.map +1 -0
  38. package/dist/service-host-contract.d.ts +158 -16
  39. package/dist/service-host-contract.d.ts.map +1 -1
  40. package/dist/service-host-contract.js +330 -1
  41. package/dist/service-host-contract.js.map +1 -1
  42. package/dist/service-host-ops.d.ts +550 -0
  43. package/dist/service-host-ops.d.ts.map +1 -0
  44. package/dist/service-host-ops.js +2180 -0
  45. package/dist/service-host-ops.js.map +1 -0
  46. package/dist/service-write.d.ts +141 -0
  47. package/dist/service-write.d.ts.map +1 -0
  48. package/dist/service-write.js +179 -0
  49. package/dist/service-write.js.map +1 -0
  50. package/dist/service.d.ts +54 -1
  51. package/dist/service.d.ts.map +1 -1
  52. package/dist/service.js +313 -14
  53. package/dist/service.js.map +1 -1
  54. package/package.json +9 -4
@@ -1,8 +1,14 @@
1
- import { EpEnvelopeError, assertDerivedOwnerToken, assertLifecycleToken, assertBoundedOwner, endpointToken, isContractDigest, parseEndpointCapabilities, } from "@cotal-ai/core";
1
+ import { EpEnvelopeError, assertCommandToken, assertDerivedOwnerToken, assertLifecycleToken, assertBoundedOwner, endpointToken, isAccountNkey, isContractDigest, isEpAuthzMode, parseEndpointCapabilities, } from "@cotal-ai/core";
2
2
  export const SERVICE_HOST_REASONS = Object.freeze([
3
3
  "bad-request", "unauthenticated", "permission-denied", "conflict", "not-found", "expired",
4
4
  "resource-exhausted", "unsupported", "unavailable", "admission-held", "name-bound",
5
5
  "name-claim-required", "registration-active", "stale-witness",
6
+ "admission-closed", "selector-pending", "selector-bound", "name-owned", "approval-in-progress",
7
+ ]);
8
+ /** Why a bound operation ended without its effect. A closed proposal's reason is carried through. */
9
+ export const SERVICE_OPERATION_REFUSALS = Object.freeze([
10
+ "conflict", "expired", "revoked", "superseded", "custody-refused", "admission-closed",
11
+ "resource-exhausted", "selector-pending", "selector-bound", "name-owned", "restore", "owner", "operator",
6
12
  ]);
7
13
  function bad(detail) { throw new EpEnvelopeError("bad-request", `service host request: ${detail}`); }
8
14
  function object(raw, fields) {
@@ -173,4 +179,327 @@ export function parseServiceHostRequest(raw) {
173
179
  }
174
180
  return structuredClone(o);
175
181
  }
182
+ function badResult(detail) { throw new EpEnvelopeError("bad-request", `service host result: ${detail}`); }
183
+ /** A plain object with exactly `required` plus any of `optional`. */
184
+ function closed(raw, required, optional = []) {
185
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
186
+ badResult("expected an object");
187
+ const proto = Object.getPrototypeOf(raw);
188
+ if (proto !== Object.prototype && proto !== null)
189
+ badResult("expected a plain object");
190
+ const o = raw;
191
+ if (required.some((k) => !Object.hasOwn(o, k)) || Reflect.ownKeys(o).some((k) => typeof k !== "string" || (!required.includes(k) && !optional.includes(k))))
192
+ badResult("missing or unsupported fields");
193
+ return o;
194
+ }
195
+ const hex = (raw, n, what) => { if (typeof raw !== "string" || !new RegExp(`^[0-9a-f]{${n}}$`).test(raw))
196
+ badResult(`${what} must be ${n} lowercase hex characters`); };
197
+ const dig = (raw, what) => { if (typeof raw !== "string" || !isContractDigest(raw))
198
+ badResult(`${what} must be a canonical digest`); };
199
+ const nat = (raw, what) => { if (typeof raw !== "number" || !Number.isSafeInteger(raw) || raw < 0)
200
+ badResult(`${what} must be an unsigned safe integer`); };
201
+ const text = (raw, what, max = 256) => { if (typeof raw !== "string" || !raw || raw.length > max || /[\u0000-\u001f]/.test(raw))
202
+ badResult(`${what} must be bounded text`); };
203
+ const oneOf = (raw, values, what) => { if (typeof raw !== "string" || !values.includes(raw))
204
+ badResult(`unknown ${what}`); };
205
+ const nullable = (raw, check) => { if (raw !== null)
206
+ check(raw); };
207
+ function grammar(check, what) { try {
208
+ check();
209
+ }
210
+ catch {
211
+ badResult(`invalid ${what}`);
212
+ } }
213
+ const ownerTok = (raw) => { if (typeof raw !== "string")
214
+ badResult("invalid owner"); grammar(() => assertDerivedOwnerToken(raw), "owner"); };
215
+ const endpointName = (raw) => { if (typeof raw !== "string")
216
+ badResult("invalid endpoint"); grammar(() => endpointToken(raw), "endpoint"); };
217
+ const lifecycleTok = (raw, what) => { if (typeof raw !== "string")
218
+ badResult(`invalid ${what}`); grammar(() => assertLifecycleToken(raw, what), what); };
219
+ const capabilities = (raw) => grammar(() => parseEndpointCapabilities(raw), "capability list");
220
+ const DENY_NEW = ["landed", "not-landed", "unknown"];
221
+ const OUTCOMES = ["applied", "recorded"];
222
+ const CLOSE_REASONS = ["owner", "operator", "revoked", "expired", "selector-bound", "restore", "custody-refused"];
223
+ function debtList(raw) {
224
+ if (!Array.isArray(raw) || raw.length > 2)
225
+ badResult("invalid debt");
226
+ for (const d of raw) {
227
+ const o = closed(d, ["kind", "proposalId"]);
228
+ oneOf(o.kind, ["capacity-release", "proposal-close"], "debt kind");
229
+ hex(o.proposalId, 64, "proposalId");
230
+ }
231
+ }
232
+ function projection(raw) {
233
+ const o = closed(raw, ["subjectOwner", "endpoint", "instanceId", "proposalId"]);
234
+ ownerTok(o.subjectOwner);
235
+ endpointName(o.endpoint);
236
+ lifecycleTok(o.instanceId, "instanceId");
237
+ nullable(o.proposalId, (v) => hex(v, 64, "proposalId"));
238
+ }
239
+ function finalOutcome(raw) {
240
+ const o = raw;
241
+ if (o?.state === "complete") {
242
+ closed(raw, ["state", "resultDigest"]);
243
+ dig(o.resultDigest, "resultDigest");
244
+ }
245
+ else if (o?.state === "refused") {
246
+ closed(raw, ["state", "reason"]);
247
+ oneOf(o.reason, SERVICE_OPERATION_REFUSALS, "refusal");
248
+ }
249
+ else if (o?.state === "superseded") {
250
+ closed(raw, ["state", "boundOperationId"]);
251
+ hex(o.boundOperationId, 32, "boundOperationId");
252
+ }
253
+ else
254
+ badResult("unknown outcome");
255
+ }
256
+ function nameView(raw) {
257
+ const o = closed(raw, ["endpoint", "owner", "claimReference", "requestId", "requestDigest", "revision"]);
258
+ endpointName(o.endpoint);
259
+ ownerTok(o.owner);
260
+ text(o.claimReference, "claimReference", 512);
261
+ hex(o.requestId, 32, "requestId");
262
+ dig(o.requestDigest, "requestDigest");
263
+ nat(o.revision, "revision");
264
+ }
265
+ function command(raw) {
266
+ const o = closed(raw, ["name", "clusterDigest", "class", "targeted", "modes", "capability", "inputDigest", "outputDigest", "traits"]);
267
+ if (typeof o.name !== "string")
268
+ badResult("invalid command name");
269
+ grammar(() => assertCommandToken(o.name), "command name");
270
+ dig(o.clusterDigest, "clusterDigest");
271
+ oneOf(o.class, ["ephemeral", "journal"], "command class");
272
+ if (typeof o.targeted !== "boolean" || !Array.isArray(o.modes) || !o.modes.every((m) => typeof m === "string" && isEpAuthzMode(m))
273
+ || new Set(o.modes).size !== o.modes.length || (o.modes.length === 0) === o.targeted)
274
+ badResult("invalid command authorization modes");
275
+ text(o.capability, "capability");
276
+ dig(o.inputDigest, "inputDigest");
277
+ dig(o.outputDigest, "outputDigest");
278
+ if (!Array.isArray(o.traits) || o.traits.length > 32)
279
+ badResult("invalid traits");
280
+ for (const t of o.traits)
281
+ text(t, "trait");
282
+ }
283
+ /** Commands of one proposal: well formed, at most 128, unique and sorted by name. */
284
+ export function parseServiceProposalCommands(raw) {
285
+ if (!Array.isArray(raw) || raw.length === 0 || raw.length > 128)
286
+ badResult("a proposal carries 1 to 128 commands");
287
+ raw.forEach(command);
288
+ const names = raw.map((c) => c.name);
289
+ if (names.some((n, i) => i > 0 && !(names[i - 1] < n)))
290
+ badResult("commands must be unique and sorted by name");
291
+ return structuredClone(raw);
292
+ }
293
+ /** Cluster digests of one proposal: canonical, at most 32, unique, in submitted order. */
294
+ export function parseServiceProposalClusters(raw) {
295
+ if (!Array.isArray(raw) || raw.length === 0 || raw.length > 32)
296
+ badResult("a proposal carries 1 to 32 cluster digests");
297
+ raw.forEach((d) => dig(d, "clusterDigest"));
298
+ if (new Set(raw).size !== raw.length)
299
+ badResult("cluster digests must be unique");
300
+ return [...raw];
301
+ }
302
+ export function parseServiceProposalView(raw) {
303
+ const o = closed(raw, ["proposalId", "proposalDigest", "owner", "endpoint", "instanceId", "state", "createdAt", "expiresAt", "clusterDigests", "commands", "nameBinding", "decision"]);
304
+ hex(o.proposalId, 64, "proposalId");
305
+ dig(o.proposalDigest, "proposalDigest");
306
+ ownerTok(o.owner);
307
+ endpointName(o.endpoint);
308
+ lifecycleTok(o.instanceId, "instanceId");
309
+ oneOf(o.state, ["proposed", "approving"], "live proposal state");
310
+ nat(o.createdAt, "createdAt");
311
+ nat(o.expiresAt, "expiresAt");
312
+ parseServiceProposalClusters(o.clusterDigests);
313
+ parseServiceProposalCommands(o.commands);
314
+ nullable(o.nameBinding, nameView);
315
+ nullable(o.decision, (v) => { const d = closed(v, ["operationId", "assignmentDigest"]); hex(d.operationId, 32, "operationId"); dig(d.assignmentDigest, "assignmentDigest"); });
316
+ if ((o.state === "approving") !== (o.decision !== null))
317
+ badResult("an approving proposal names its decision, and only then");
318
+ return structuredClone(o);
319
+ }
320
+ export function parseServiceProposalTombstoneView(raw) {
321
+ const o = closed(raw, ["proposalId", "proposalDigest", "owner", "endpoint", "instanceId", "register", "state", "operationId", "approvalDigest", "reason", "at"]);
322
+ hex(o.proposalId, 64, "proposalId");
323
+ dig(o.proposalDigest, "proposalDigest");
324
+ ownerTok(o.owner);
325
+ endpointName(o.endpoint);
326
+ lifecycleTok(o.instanceId, "instanceId");
327
+ const r = closed(o.register, ["requestId", "requestDigest", "operationId"]);
328
+ hex(r.requestId, 32, "requestId");
329
+ dig(r.requestDigest, "requestDigest");
330
+ hex(r.operationId, 32, "operationId");
331
+ oneOf(o.state, ["approved", "refused", "expired"], "terminal proposal state");
332
+ nullable(o.operationId, (v) => hex(v, 32, "operationId"));
333
+ nullable(o.approvalDigest, (v) => dig(v, "approvalDigest"));
334
+ nullable(o.reason, (v) => oneOf(v, CLOSE_REASONS, "close reason"));
335
+ nat(o.at, "at");
336
+ if ((o.state === "approved") !== (o.approvalDigest !== null) || (o.state === "approved" && (o.operationId === null || o.reason !== null))
337
+ || (o.state !== "approved" && o.reason === null))
338
+ badResult("terminal proposal fields do not match its state");
339
+ return structuredClone(o);
340
+ }
341
+ function operationTarget(raw) {
342
+ const o = raw;
343
+ if (o?.kind !== "service")
344
+ badResult("unsupported operation target");
345
+ closed(raw, ["kind", "endpoint", "instanceId", "assignmentDigest"]);
346
+ endpointName(o.endpoint);
347
+ lifecycleTok(o.instanceId, "instanceId");
348
+ nullable(o.assignmentDigest, (v) => dig(v, "assignmentDigest"));
349
+ }
350
+ export function parseServiceOperationView(raw) {
351
+ const o = closed(raw, ["operationId", "requestDigest", "operation", "target", "projection", "progress", "debt"]);
352
+ hex(o.operationId, 32, "operationId");
353
+ dig(o.requestDigest, "requestDigest");
354
+ oneOf(o.operation, ["register", "decide", "revoke"], "operation");
355
+ operationTarget(o.target);
356
+ projection(o.projection);
357
+ debtList(o.debt);
358
+ const p = o.progress;
359
+ if (p?.state === "pending") {
360
+ closed(p, ["state", "phase"], ["notBefore"]);
361
+ text(p.phase, "phase", 64);
362
+ if (Object.hasOwn(p, "notBefore"))
363
+ nat(p.notBefore, "notBefore");
364
+ }
365
+ else if (p?.state === "held") {
366
+ closed(p, ["state", "reason", "phase"]);
367
+ text(p.reason, "reason", 64);
368
+ text(p.phase, "phase", 64);
369
+ }
370
+ else
371
+ finalOutcome(p);
372
+ return structuredClone(o);
373
+ }
374
+ export function parseServiceOperationTerminalView(raw) {
375
+ const o = closed(raw, ["operationId", "requestDigest", "operation", "projection", "outcome"]);
376
+ hex(o.operationId, 32, "operationId");
377
+ dig(o.requestDigest, "requestDigest");
378
+ oneOf(o.operation, ["register", "decide", "revoke"], "operation");
379
+ projection(o.projection);
380
+ finalOutcome(o.outcome);
381
+ return structuredClone(o);
382
+ }
383
+ export function parseServiceApprovalResult(raw) {
384
+ const o = closed(raw, ["proposalId", "proposalDigest", "operationId", "assignment", "approvalDigest", "approvalExpiresAt", "callerCeiling",
385
+ "nameAuthorityRevision", "rootCredentialId", "rootExpiresAt", "approvedGateRevision"]);
386
+ hex(o.proposalId, 64, "proposalId");
387
+ dig(o.proposalDigest, "proposalDigest");
388
+ hex(o.operationId, 32, "operationId");
389
+ const a = closed(o.assignment, ["endpoint", "instanceId", "assignmentDigest", "lifecycleUid"]);
390
+ endpointName(a.endpoint);
391
+ lifecycleTok(a.instanceId, "instanceId");
392
+ dig(a.assignmentDigest, "assignmentDigest");
393
+ lifecycleTok(a.lifecycleUid, "lifecycleUid");
394
+ dig(o.approvalDigest, "approvalDigest");
395
+ nullable(o.approvalExpiresAt, (v) => nat(v, "approvalExpiresAt"));
396
+ capabilities(o.callerCeiling);
397
+ nat(o.nameAuthorityRevision, "nameAuthorityRevision");
398
+ lifecycleTok(o.rootCredentialId, "rootCredentialId");
399
+ nat(o.rootExpiresAt, "rootExpiresAt");
400
+ nullable(o.approvedGateRevision, (v) => nat(v, "approvedGateRevision"));
401
+ return structuredClone(o);
402
+ }
403
+ const SUPPORTED_RESULTS = new Set(["decide", "revoke", "name-bind", "operation-read", "proposal-read"]);
404
+ /** Closed parser for the results of the operations this slice serves (decide, revoke, name-bind,
405
+ * operation-read, proposal-read) and for the shared arms of every operation. */
406
+ export function parseServiceHostResult(raw) {
407
+ const env = ["v", "kind", "operation", "requestId", "space", "accountPublicKey", "state"];
408
+ const o = raw, state = o?.state;
409
+ let keys;
410
+ if (state === "denied") {
411
+ keys = closed(raw, [...env, "reason"], ["boundOperationId"]);
412
+ oneOf(o.reason, SERVICE_HOST_REASONS, "reason");
413
+ if (Object.hasOwn(o, "boundOperationId"))
414
+ hex(o.boundOperationId, 32, "boundOperationId");
415
+ }
416
+ else if (state === "pending") {
417
+ keys = closed(raw, [...env, "operationId", "phase"], ["notBefore", "assignmentDigest", "denyNew", "root", "debt"]);
418
+ hex(o.operationId, 32, "operationId");
419
+ text(o.phase, "phase", 64);
420
+ if (Object.hasOwn(o, "notBefore"))
421
+ nat(o.notBefore, "notBefore");
422
+ if (Object.hasOwn(o, "assignmentDigest"))
423
+ dig(o.assignmentDigest, "assignmentDigest");
424
+ if (Object.hasOwn(o, "denyNew"))
425
+ oneOf(o.denyNew, DENY_NEW, "denyNew");
426
+ if (Object.hasOwn(o, "root"))
427
+ oneOf(o.root, ["none", "revoked", "retained-stamped"], "root");
428
+ if (Object.hasOwn(o, "debt"))
429
+ debtList(o.debt);
430
+ }
431
+ else if (state === "held") {
432
+ keys = closed(raw, [...env, "operationId", "reason", "phase"], ["assignmentDigest", "denyNew", "debt"]);
433
+ hex(o.operationId, 32, "operationId");
434
+ text(o.reason, "reason", 64);
435
+ text(o.phase, "phase", 64);
436
+ if (Object.hasOwn(o, "assignmentDigest"))
437
+ dig(o.assignmentDigest, "assignmentDigest");
438
+ if (Object.hasOwn(o, "denyNew"))
439
+ oneOf(o.denyNew, DENY_NEW, "denyNew");
440
+ if (Object.hasOwn(o, "debt"))
441
+ debtList(o.debt);
442
+ }
443
+ else if (state === "refused" && Object.hasOwn(o, "operationId")) {
444
+ keys = closed(raw, [...env, "operationId", "reason"], ["boundOperationId", "debt"]);
445
+ hex(o.operationId, 32, "operationId");
446
+ oneOf(o.reason, SERVICE_OPERATION_REFUSALS, "refusal");
447
+ if (Object.hasOwn(o, "boundOperationId"))
448
+ hex(o.boundOperationId, 32, "boundOperationId");
449
+ if (Object.hasOwn(o, "debt"))
450
+ debtList(o.debt);
451
+ }
452
+ else {
453
+ if (!SUPPORTED_RESULTS.has(o?.operation))
454
+ badResult("unsupported operation result");
455
+ if (o.operation === "decide" && state === "approved") {
456
+ keys = closed(raw, [...env, "outcome", "approval"], ["debt"]);
457
+ oneOf(o.outcome, OUTCOMES, "outcome");
458
+ parseServiceApprovalResult(o.approval);
459
+ if (Object.hasOwn(o, "debt"))
460
+ debtList(o.debt);
461
+ }
462
+ else if (o.operation === "decide" && state === "refused") {
463
+ keys = closed(raw, [...env, "outcome", "proposal", "revision"], ["debt"]);
464
+ oneOf(o.outcome, OUTCOMES, "outcome");
465
+ parseServiceProposalTombstoneView(o.proposal);
466
+ nat(o.revision, "revision");
467
+ if (Object.hasOwn(o, "debt"))
468
+ debtList(o.debt);
469
+ }
470
+ else if (o.operation === "name-bind" && state === "bound") {
471
+ keys = closed(raw, [...env, "binding"]);
472
+ nameView(o.binding);
473
+ }
474
+ else if (o.operation === "revoke" && state === "retired") {
475
+ keys = closed(raw, [...env, "assignmentDigest", "operationId"]);
476
+ dig(o.assignmentDigest, "assignmentDigest");
477
+ hex(o.operationId, 32, "operationId");
478
+ }
479
+ else if ((o.operation === "operation-read" || o.operation === "proposal-read") && state === "absent")
480
+ keys = closed(raw, env);
481
+ else if ((o.operation === "operation-read" || o.operation === "proposal-read") && state === "present") {
482
+ keys = closed(raw, [...env, "record"]);
483
+ const r = closed(o.record, ["value", "revision"]);
484
+ nat(r.revision, "revision");
485
+ const v = r.value;
486
+ if (o.operation === "operation-read")
487
+ (v && Object.hasOwn(v, "outcome") ? parseServiceOperationTerminalView : parseServiceOperationView)(v);
488
+ else
489
+ (v && Object.hasOwn(v, "register") ? parseServiceProposalTombstoneView : parseServiceProposalView)(v);
490
+ }
491
+ else
492
+ badResult("unknown result state");
493
+ }
494
+ if (keys.v !== 1 || keys.kind !== "service-endpoint-host")
495
+ badResult("unknown version or kind");
496
+ hex(keys.requestId, 32, "requestId");
497
+ text(keys.space, "space");
498
+ if (typeof keys.accountPublicKey !== "string" || !isAccountNkey(keys.accountPublicKey))
499
+ badResult("invalid account public key");
500
+ if (!["proposal-read", "proposal-list", "instance-read", "instance-list", "operation-read", "name-read", "decide", "name-bind", "revoke",
501
+ "caller-policy-read", "caller-policy-list", "caller-grant", "caller-revoke", "quarantine-restored", "admission-open"].includes(keys.operation))
502
+ badResult("unknown operation");
503
+ return structuredClone(raw);
504
+ }
176
505
  //# sourceMappingURL=service-host-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-host-contract.js","sourceRoot":"","sources":["../src/service-host-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-host-contract.js","sourceRoot":"","sources":["../src/service-host-contract.ts"],"names":[],"mappings":"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"}