@cotal-ai/auth 0.90.0 → 0.91.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 (80) hide show
  1. package/dist/authority-client.d.ts.map +1 -1
  2. package/dist/authority-client.js +4 -1
  3. package/dist/authority-client.js.map +1 -1
  4. package/dist/chat-parent-pin.d.ts +43 -0
  5. package/dist/chat-parent-pin.d.ts.map +1 -0
  6. package/dist/chat-parent-pin.js +115 -0
  7. package/dist/chat-parent-pin.js.map +1 -0
  8. package/dist/chat-session-authority.d.ts +120 -0
  9. package/dist/chat-session-authority.d.ts.map +1 -0
  10. package/dist/chat-session-authority.js +924 -0
  11. package/dist/chat-session-authority.js.map +1 -0
  12. package/dist/chat-session-row.d.ts +117 -0
  13. package/dist/chat-session-row.d.ts.map +1 -0
  14. package/dist/chat-session-row.js +358 -0
  15. package/dist/chat-session-row.js.map +1 -0
  16. package/dist/chat-session-store.d.ts +126 -0
  17. package/dist/chat-session-store.d.ts.map +1 -0
  18. package/dist/chat-session-store.js +392 -0
  19. package/dist/chat-session-store.js.map +1 -0
  20. package/dist/commands.d.ts +3 -1
  21. package/dist/commands.d.ts.map +1 -1
  22. package/dist/commands.js +497 -122
  23. package/dist/commands.js.map +1 -1
  24. package/dist/continuity.js +1 -1
  25. package/dist/continuity.js.map +1 -1
  26. package/dist/daemon-flags.d.ts +42 -0
  27. package/dist/daemon-flags.d.ts.map +1 -0
  28. package/dist/daemon-flags.js +12 -0
  29. package/dist/daemon-flags.js.map +1 -0
  30. package/dist/handle-inspect.d.ts +101 -0
  31. package/dist/handle-inspect.d.ts.map +1 -0
  32. package/dist/handle-inspect.js +50 -0
  33. package/dist/handle-inspect.js.map +1 -0
  34. package/dist/handle-verification.d.ts +75 -0
  35. package/dist/handle-verification.d.ts.map +1 -0
  36. package/dist/handle-verification.js +135 -0
  37. package/dist/handle-verification.js.map +1 -0
  38. package/dist/idp.d.ts +23 -1
  39. package/dist/idp.d.ts.map +1 -1
  40. package/dist/idp.js +54 -8
  41. package/dist/idp.js.map +1 -1
  42. package/dist/index.d.ts +3 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -2
  45. package/dist/index.js.map +1 -1
  46. package/dist/ledger.d.ts +58 -5
  47. package/dist/ledger.d.ts.map +1 -1
  48. package/dist/ledger.js +126 -6
  49. package/dist/ledger.js.map +1 -1
  50. package/dist/lifecycle-registry.d.ts +1 -70
  51. package/dist/lifecycle-registry.d.ts.map +1 -1
  52. package/dist/lifecycle-registry.js +4 -35
  53. package/dist/lifecycle-registry.js.map +1 -1
  54. package/dist/login.d.ts +9 -0
  55. package/dist/login.d.ts.map +1 -1
  56. package/dist/login.js +53 -8
  57. package/dist/login.js.map +1 -1
  58. package/dist/permissions.js +4 -0
  59. package/dist/permissions.js.map +1 -1
  60. package/dist/provider.d.ts +23 -0
  61. package/dist/provider.d.ts.map +1 -1
  62. package/dist/provider.js +244 -44
  63. package/dist/provider.js.map +1 -1
  64. package/dist/service-adapter.d.ts +6 -0
  65. package/dist/service-adapter.d.ts.map +1 -0
  66. package/dist/service-adapter.js +120 -0
  67. package/dist/service-adapter.js.map +1 -0
  68. package/dist/service.d.ts +61 -2
  69. package/dist/service.d.ts.map +1 -1
  70. package/dist/service.js +399 -84
  71. package/dist/service.js.map +1 -1
  72. package/dist/store.d.ts +10 -0
  73. package/dist/store.d.ts.map +1 -1
  74. package/dist/store.js +25 -8
  75. package/dist/store.js.map +1 -1
  76. package/dist/token.d.ts +1 -1
  77. package/dist/token.d.ts.map +1 -1
  78. package/dist/token.js +4 -1
  79. package/dist/token.js.map +1 -1
  80. package/package.json +11 -7
package/dist/provider.js CHANGED
@@ -14,17 +14,61 @@
14
14
  * discovery file the daemon writes only after BOTH planes are bound, then confirm /health).
15
15
  */
16
16
  import { isLoopbackLiteral, registry } from "@cotal-ai/core";
17
- import { assertUserAuthInfo, findMesh, homeCotalDir, probeLiveness, spaceSegment } from "@cotal-ai/workspace";
17
+ import { assertUserAuthInfo, credentialFailure, findMesh, homeCotalDir, probeLiveness, spaceSegment } from "@cotal-ai/workspace";
18
18
  import { readFileSync } from "node:fs";
19
- import { join, resolve, sep } from "node:path";
20
- import { acquireLock, AgentGrantConflictError } from "@cotal-ai/core";
19
+ import { resolve, sep } from "node:path";
20
+ import { AgentGrantConflictError, EP_ERROR_CODES, EpEnvelopeError } from "@cotal-ai/core";
21
21
  import { parseServiceAuthorityEnvelope, parseServiceAuthorityRequest } from "@cotal-ai/core";
22
22
  import { readRemoteServiceAuthorityInfo, postRemoteServiceAuthority, serviceAuthorityUrl, withServiceAuthorityBudget, assertServiceViewFreshness } from "./service-authority-client.js";
23
- import { deleteIdpSpaceCatalog, fetchIdpJwt, hasIdpSessions, hasIdpSpaceCatalog, loadIdpSession, prepareIdpSpaceCatalogs, probeIdpJwks, requireIdpSession } from "./login.js";
23
+ import { deleteIdpSpaceCatalog, fetchIdpJwt, hasIdpSessions, hasIdpSpaceCatalog, loadIdpSession, normalizeIdpUrl, prepareIdpSpaceCatalogs, probeIdpJwks, requireIdpSession } from "./login.js";
24
24
  import { deriveOwnerForIdpSubject } from "./derive.js";
25
- import { findActorUnified, findInteractiveActor, grantManagedActor, hashActorToken, newActorToken, revokeManagedActor, revokeManagedActorAt } from "./ledger.js";
25
+ import { findActorUnified, findInteractiveActor, hashActorToken, newActorToken, withManagedGrantTransaction } from "./ledger.js";
26
26
  import { userAuthTrustFingerprint, validateRetainedManagedAgent } from "./continuity.js";
27
- import { AUTH_PROVIDER_NAME, authCalloutKey, authClientSentinelKey, authIssuerKey, authOwnerSecretKey, authServiceKeysKey, ensureCalloutAuth, ensureIssuer, ensureOwnerSecret, ensurePinnedIdp, loadAuthServiceInfo, loadCalloutAuth, loadOwnerSecret, loadPinnedIdp, saveServiceKeys, } from "./store.js";
27
+ import { AUTH_PROVIDER_NAME, authCalloutKey, authClientSentinelKey, authIssuerKey, authOwnerSecretKey, authServiceKeysKey, checkPinnedIdp, ensureCalloutAuth, ensureIssuer, ensureOwnerSecret, ensurePinnedIdp, loadAuthServiceInfo, loadCalloutAuth, loadOwnerSecret, loadPinnedIdp, saveServiceKeys, } from "./store.js";
28
+ /** The pre-effect half of {@link cotalAuthProvider.prepareServer}: the space segment, the IdP pin
29
+ * requirement and match, and on a first enable the JWKS probe. Reads only: no directory, pin, key
30
+ * or daemon is created. `prepareServer` runs this same function first and throws its message, so
31
+ * the checks and their sentences cannot drift. The reason is set by which check refused, never by
32
+ * matching message text. */
33
+ async function preflightServerInput({ space, dir, idpUrl }) {
34
+ const refuse = (reason, error) => ({ ok: false, reason, message: error instanceof Error ? error.message : String(error) });
35
+ // Fail BEFORE mutation: a degenerate space (`.`/`..`/empty) must be refused before the IdP
36
+ // probe/pin below can touch anything at a caller-provided dir.
37
+ try {
38
+ spaceSegment(space);
39
+ }
40
+ catch (error) {
41
+ return refuse("invalid", error);
42
+ }
43
+ // An existing pin is read first. An unreadable pin, or one the given `--idp` does not match, is
44
+ // a conflict with persisted state; neither is replaced here.
45
+ let existing;
46
+ try {
47
+ existing = loadPinnedIdp(dir);
48
+ }
49
+ catch (error) {
50
+ return refuse("conflict", error);
51
+ }
52
+ let checked;
53
+ try {
54
+ checked = checkPinnedIdp(dir, idpUrl);
55
+ }
56
+ catch (error) {
57
+ return refuse(existing ? "conflict" : idpUrl === undefined ? "required" : "invalid", error);
58
+ }
59
+ // On a FRESH enable, prove the IdP actually serves a JWKS before a space is provisioned around
60
+ // it. Skip on re-up: an already-pinned IdP was validated at first enable, and re-probing every
61
+ // boot would couple mesh liveness to IdP liveness.
62
+ if (checked.fresh) {
63
+ try {
64
+ await probeIdpJwks(idpUrl ?? checked.pin.url);
65
+ }
66
+ catch (error) {
67
+ return refuse("unavailable", error);
68
+ }
69
+ }
70
+ return { ok: true };
71
+ }
28
72
  const READY_TIMEOUT_MS = 15_000;
29
73
  /** The pid-bound extension of the readiness wait (#1931): while the daemon the caller LAUNCHED
30
74
  * (or found live) is provably alive, the wait continues past READY_TIMEOUT_MS up to this bound.
@@ -42,6 +86,7 @@ const READY_MAX_WAIT_MS = 60_000;
42
86
  function pidAlive(pid) {
43
87
  return probeLiveness(pid) === "alive";
44
88
  }
89
+ const deprovisionSecretKeys = (space) => [authCalloutKey(space), authIssuerKey(space), authOwnerSecretKey(space), authServiceKeysKey(space), authClientSentinelKey(space)];
45
90
  export const cotalAuthProvider = {
46
91
  kind: "auth-provider",
47
92
  name: AUTH_PROVIDER_NAME,
@@ -73,18 +118,15 @@ export const cotalAuthProvider = {
73
118
  },
74
119
  hasSpaceCatalog: ({ dir, idpUrl, sub }) => hasIdpSpaceCatalog(dir, idpUrl, sub),
75
120
  removeSpaceCatalog: ({ dir, idpUrl, sub }) => deleteIdpSpaceCatalog(dir, idpUrl, sub),
121
+ preflightServer: preflightServerInput,
76
122
  async prepareServer(input) {
77
123
  const { space, store, dir, idpUrl } = input;
78
- // Fail BEFORE mutation: a degenerate space (`.`/`..`/empty) must be refused before the IdP
79
- // probe/pin below can touch anything at a caller-provided dir — not first at the key builders
80
- // further down, which would leave a pin written at an aliased path behind the thrown error.
81
- spaceSegment(space);
82
- // On a FRESH enable, prove the IdP actually serves a JWKS before we pin + provision a space
83
- // around it — a dead or typo'd `--idp` must fail loud here, not silently boot a broken space
84
- // that only errors at the first user connect. Skip on re-up (an already-pinned IdP was validated
85
- // at first enable; re-probing every boot would couple mesh liveness to IdP liveness).
86
- if (idpUrl && !loadPinnedIdp(dir))
87
- await probeIdpJwks(idpUrl);
124
+ // The same read-only checks a caller may already have run through `preflightServer`. They run
125
+ // again here because this call is authoritative: a pin written by another process between the
126
+ // two calls is honored by `ensurePinnedIdp` below exactly as before.
127
+ const verdict = await preflightServerInput({ space, dir, idpUrl });
128
+ if (!verdict.ok)
129
+ throw new Error(verdict.message);
88
130
  // Pin the IdP FIRST, so a fresh `up --user-auth` without --idp fails on the config error before
89
131
  // any key material is generated.
90
132
  const idp = ensurePinnedIdp(dir, idpUrl);
@@ -103,7 +145,8 @@ export const cotalAuthProvider = {
103
145
  extraAccounts: [{ pub: callout.account.pub, jwt: callout.account.jwt }],
104
146
  publicAuth: publicAuth,
105
147
  service: {
106
- command: "auth-service",
148
+ // The hidden twin of `auth-service`, so `up` does not print the deprecation warning.
149
+ command: "__daemon-auth-service",
107
150
  // Readiness = the daemon wrote its discovery file (which it does only after the callout SUB
108
151
  // is flushed AND the HTTP listener is bound) and /health answers. Poll until timeoutMs,
109
152
  // then THROW with the reason — the caller (`up`) surfaces it loudly (U5), never records a
@@ -191,7 +234,7 @@ export const cotalAuthProvider = {
191
234
  throw new Error(`the user-auth service for space "${space}" records pid ${info.pid}, whose liveness cannot be determined - the kernel answered neither "running" nor "no such process" (a seccomp filter or LSM policy does this inside some sandboxes).\n` +
192
235
  `Refusing rather than claiming it is down: verify with \`ps -p ${info.pid}\` before restarting anything.`);
193
236
  if (!info || !pidAlive(info.pid))
194
- throw new Error(`the user-auth service for space "${space}" is not running - restart it with \`cotal up\` (or \`cotal auth-service --space ${space} --server <broker>\`)`);
237
+ throw credentialFailure("unavailable", `the user-auth service for space "${space}" is not running - restart it with \`cotal up\` (or \`cotal auth-service --space ${space} --server <broker>\`)`);
195
238
  // Fresh short-lived IdP proof per connect — IdP-side revocation bites HERE, at the next fetch.
196
239
  const idpJwt = await fetchIdpJwt(idp.url, session.token);
197
240
  let res;
@@ -204,13 +247,13 @@ export const cotalAuthProvider = {
204
247
  });
205
248
  }
206
249
  catch (e) {
207
- throw new Error(`the user-auth service for space "${space}" did not answer at ${info.url} (${e instanceof Error ? e.message : String(e)}) - restart it with \`cotal up\``);
250
+ throw credentialFailure("unavailable", `the user-auth service for space "${space}" did not answer at ${info.url} (${e instanceof Error ? e.message : String(e)}) - restart it with \`cotal up\``);
208
251
  }
209
252
  if (!res.ok) {
210
253
  const body = (await res.json().catch(() => ({})));
211
254
  // A refused exchange is an authenticated denial with the reason (an ungranted actor names
212
255
  // the grant command); surface it verbatim — the service's copy is already operator-exact.
213
- throw new Error(`signed in, but the exchange for actor "${actor}"${view ? ` (view "${view}")` : ""} was refused: ${body.error ?? `HTTP ${res.status}`}`);
256
+ throw credentialFailure("refused", `signed in, but the exchange for actor "${actor}"${view ? ` (view "${view}")` : ""} was refused: ${body.error ?? `HTTP ${res.status}`}`);
214
257
  }
215
258
  const out = (await res.json().catch(() => ({})));
216
259
  if (typeof out.token !== "string" || !out.token)
@@ -243,6 +286,39 @@ export const cotalAuthProvider = {
243
286
  return { result, sentinelCreds };
244
287
  }, startedAt);
245
288
  },
289
+ /** Client side of chat admission: a fresh IdP proof plus the holder HASH. The holder secret
290
+ * itself stays with the caller. The route this open resolved is kept, in this process only, for
291
+ * the session's later bearer exchanges and its retirement. */
292
+ async openChatSession({ store, dir, space, holderHash, label, read, post, ttlSec, expect }) {
293
+ const route = await resolveChatSessionRoute(store, dir, space);
294
+ if (expect !== undefined)
295
+ assertChatRouteExpected(route, space, expect);
296
+ const r = (await postChatSession(route, space, "open", { holderHash, ...(label !== undefined ? { label } : {}), read, post, ttlSec }));
297
+ if (typeof r.actor !== "string" || typeof r.lifecycleUid !== "string" || typeof r.expiresAt !== "number")
298
+ throw new EpEnvelopeError("unavailable", `the chat-session open for space "${space}" answered without a session; a reservation it made is reclaimed by the service's sweep`, undefined, "unknown");
299
+ CHAT_SESSION_ROUTES.set(chatRouteKey(dir, space, r.actor), route);
300
+ return { actor: r.actor, lifecycleUid: r.lifecycleUid, expiresAt: r.expiresAt };
301
+ },
302
+ /** A fresh IdP proof plus the holder proof for one short bearer of the ACTIVE session, sent to
303
+ * the route its open resolved. */
304
+ async chatSessionBearer({ dir, space, actor, holderProof }) {
305
+ const route = pinnedChatSessionRoute(dir, space, actor);
306
+ const r = (await postChatSession(route, space, "bearer", { actor, holderProof }));
307
+ if (typeof r.token !== "string" || r.token === "" || typeof r.exp !== "number")
308
+ throw new EpEnvelopeError("unavailable", `the chat-session bearer exchange for space "${space}" returned no bearer - the auth service build may be stale`, undefined, "not-executed");
309
+ return { bearer: r.token, sentinelCreds: route.sentinelCreds, exp: r.exp };
310
+ },
311
+ /** Retire the session at the route its open resolved. `failed` comes back with its pending
312
+ * reason and is never success; the kept route goes once the retirement is terminal. */
313
+ async retireChatSession({ dir, space, actor, lifecycleUid, holderProof }) {
314
+ const route = pinnedChatSessionRoute(dir, space, actor);
315
+ const r = (await postChatSession(route, space, "retire", { actor, lifecycleUid, holderProof }));
316
+ if (r.outcome !== "retired" && r.outcome !== "alreadyRetired" && r.outcome !== "notStarted" && r.outcome !== "failed")
317
+ throw new EpEnvelopeError("unavailable", `the chat-session retirement for space "${space}" answered without an outcome`, undefined, "unknown");
318
+ if (r.outcome !== "failed")
319
+ CHAT_SESSION_ROUTES.delete(chatRouteKey(dir, space, actor));
320
+ return { outcome: r.outcome, ...(typeof r.pending === "string" ? { pending: r.pending } : {}) };
321
+ },
246
322
  async managerServiceAuthority({ store, dir, request }) {
247
323
  const { endpoint, idpUrl, authorization } = await managerAuthorityEndpoint(store, dir, request.space, "requesting manager-service authority");
248
324
  return postManagerAuthority(endpoint, idpUrl, authorization, request, "manager-service authority");
@@ -439,16 +515,21 @@ export const cotalAuthProvider = {
439
515
  * IdP-exchangeable by construction) carrying the agent's ACLs + the hash of a fresh per-agent
440
516
  * secret. Upsert semantics rotate the secret on respawn — a captured old secret dies the moment
441
517
  * its agent is respawned. */
442
- async grantAgent({ store, dir, space, owner, actor, scope, allowSubscribe, allowPublish, role, parent, label, lifecycleUid, fresh }) {
518
+ async grantAgent({ store, dir, space, owner, actor, scope, allowSubscribe, allowPublish, role, parent, label, lifecycleUid, fresh, custody }) {
519
+ // Async work first: the callout material is loaded before the transaction, never inside it.
443
520
  const callout = await loadCalloutAuth(store, space);
444
521
  if (!callout)
445
522
  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`);
446
- const claim = acquireLock(join(dir, "managed-grant.lock"), { label: "managed grant mutation" });
447
- try {
448
- if (fresh && findActorUnified(dir, owner, actor) !== undefined)
523
+ if (custody?.kind !== "local-manager" && custody?.kind !== "foreground")
524
+ throw new Error("grantAgent: custody is required and is local-manager or foreground; a remote-manager row is written only by the auth service's enrollment");
525
+ // ONE synchronous transaction: the `fresh` occupancy read, the token mint and the write are
526
+ // decided under the same lock, so no other writer can land between the read and the upsert.
527
+ // An earlier occupancy read by the caller authorizes nothing here; this one is authoritative.
528
+ const actorToken = withManagedGrantTransaction(dir, (tx) => {
529
+ if (fresh && tx.read(owner, actor) !== undefined)
449
530
  throw new AgentGrantConflictError(actor);
450
- const { actorToken, tokenHash } = newActorToken();
451
- grantManagedActor(dir, {
531
+ const minted = newActorToken();
532
+ tx.grantManaged({
452
533
  owner,
453
534
  actor,
454
535
  scope,
@@ -457,31 +538,32 @@ export const cotalAuthProvider = {
457
538
  ...(role ? { role } : {}),
458
539
  ...(parent ? { parent } : {}),
459
540
  ...(label ? { label } : {}),
460
- tokenHash,
541
+ tokenHash: minted.tokenHash,
461
542
  lifecycleUid,
543
+ custody,
462
544
  });
463
- return { actorToken, sentinelCreds: callout.sentinelCreds };
464
- }
465
- finally {
466
- claim.release();
467
- }
545
+ return minted.actorToken;
546
+ });
547
+ return { actorToken, sentinelCreds: callout.sentinelCreds };
468
548
  },
469
- async revokeAgent({ dir, owner, actor, lifecycleUid, actorToken }) {
470
- const claim = acquireLock(join(dir, "managed-grant.lock"), { label: "managed grant mutation" });
471
- try {
472
- if (actorToken !== undefined && findActorUnified(dir, owner, actor)?.tokenHash !== hashActorToken(actorToken))
549
+ async revokeAgent({ dir, owner, actor, lifecycleUid, actorToken, expectCustody }) {
550
+ if (expectCustody !== undefined && lifecycleUid === undefined)
551
+ throw new Error("revokeAgent: expectCustody pins an exact lifecycle, so lifecycleUid is required with it");
552
+ // The token check and the removal are one transaction: the row compared is the row removed.
553
+ return withManagedGrantTransaction(dir, (tx) => {
554
+ if (actorToken !== undefined && tx.read(owner, actor)?.tokenHash !== hashActorToken(actorToken))
473
555
  return false;
474
- return lifecycleUid === undefined ? revokeManagedActor(dir, owner, actor) : revokeManagedActorAt(dir, owner, actor, lifecycleUid);
475
- }
476
- finally {
477
- claim.release();
478
- }
556
+ if (expectCustody !== undefined)
557
+ return tx.revokeManagedIf(owner, actor, { lifecycleUid: lifecycleUid, custody: expectCustody }) === "revoked";
558
+ return lifecycleUid === undefined ? tx.revokeManaged(owner, actor) : tx.revokeManagedAt(owner, actor, lifecycleUid);
559
+ });
479
560
  },
561
+ deprovisionSecretKeys,
480
562
  /** The delete half of the seam pair: drop secrets and the client sentinel projection, attempting
481
563
  * every key even when one fails (idempotent deletes — a failed pass re-runs as-is), then fail loud
482
564
  * with everything that failed. The caller sweeps its non-seam local state only after this. */
483
565
  async deprovisionSecrets({ store, space }) {
484
- const keys = [authCalloutKey(space), authIssuerKey(space), authOwnerSecretKey(space), authServiceKeysKey(space), authClientSentinelKey(space)];
566
+ const keys = deprovisionSecretKeys(space);
485
567
  const failures = [];
486
568
  for (const key of keys) {
487
569
  try {
@@ -666,7 +748,7 @@ async function remoteUserCredentials(request) {
666
748
  });
667
749
  }
668
750
  catch (e) {
669
- throw new Error(`the exchange for space "${space}" did not answer at ${exchangeUrl} (${e instanceof Error ? e.message : String(e)}) - check the network, or re-register with \`cotal meshes add ${space} --from <url>\` if the mesh moved`);
751
+ throw credentialFailure("unavailable", `the exchange for space "${space}" did not answer at ${exchangeUrl} (${e instanceof Error ? e.message : String(e)}) - check the network, or re-register with \`cotal meshes add ${space} --from <url>\` if the mesh moved`);
670
752
  }
671
753
  if (!res.ok) {
672
754
  const body = (await res.json().catch(() => ({})));
@@ -677,7 +759,7 @@ async function remoteUserCredentials(request) {
677
759
  // none, say so rather than presenting the bare HTTP status as if it were the reason - this
678
760
  // client cannot tell a real service sentence from a status code dressed up as one.
679
761
  const actorLabel = `actor "${actor}"${view ? ` (view "${view}")` : ""}`;
680
- throw new Error(body.error
762
+ throw credentialFailure("refused", body.error
681
763
  ? `signed in, but the exchange for ${actorLabel} was refused: ${body.error}`
682
764
  : `signed in, but the exchange for ${actorLabel} was refused, and the exchange face withheld the reason (HTTP ${res.status})`);
683
765
  }
@@ -686,4 +768,122 @@ async function remoteUserCredentials(request) {
686
768
  throw new Error(`the exchange at ${exchangeUrl} returned no token - the mesh's auth service build may be stale`);
687
769
  return { bearer: out.token, sentinelCreds };
688
770
  }
771
+ /** Each open session's route, by `(state dir, space, actor)`, in this process's memory only. The
772
+ * holder secret lives in the same process, so no other process can use the session anyway. */
773
+ const CHAT_SESSION_ROUTES = new Map();
774
+ const chatRouteKey = (dir, space, actor) => `${resolve(dir)}\0${space}\0${actor}`;
775
+ /** The route a later request of an open session must use. A session this process did not open
776
+ * has none, and the request refuses before anything is sent. */
777
+ function pinnedChatSessionRoute(dir, space, actor) {
778
+ const route = CHAT_SESSION_ROUTES.get(chatRouteKey(dir, space, actor));
779
+ if (route === undefined)
780
+ throw new EpEnvelopeError("failed-precondition", `chat session "${actor}" in space "${space}" was not opened by this process; its holder secret and route exist only there - open a new session`, undefined, "not-executed");
781
+ return route;
782
+ }
783
+ /** Resolve a space's chat-session route once, at open: the local service when this machine hosts
784
+ * the space's user-auth material, else the registry entry's pinned exchange origin. */
785
+ async function resolveChatSessionRoute(store, dir, space) {
786
+ const idp = loadPinnedIdp(dir);
787
+ const callout = await loadCalloutAuth(store, space);
788
+ if (idp && callout)
789
+ return { kind: "local", dir, idpUrl: idp.url, sentinelCreds: callout.sentinelCreds };
790
+ const remote = remoteUserAuthEntry(dir, space);
791
+ if (!remote)
792
+ throw new EpEnvelopeError("unimplemented", `space "${space}" has no user-auth material on this machine - run \`cotal up --user-auth\` where the mesh runs, or register a remote user mesh with \`cotal meshes add ${space} --from <url>\``, undefined, "not-executed");
793
+ const u = new URL(pinnedExchangeUrl(remote.endpoints.url, space));
794
+ u.pathname = u.pathname.slice(0, -"/exchange".length);
795
+ let sentinelCreds;
796
+ try {
797
+ sentinelCreds = readFileSync(remote.sentinelCredsPath, "utf8");
798
+ }
799
+ catch (e) {
800
+ throw new EpEnvelopeError("unavailable", `space "${space}" is registered as a remote user mesh but its sentinel credential at ${remote.sentinelCredsPath} cannot be read (${e instanceof Error ? e.message : String(e)}) - re-register with \`cotal meshes add ${space} --from <url>\``, undefined, "not-executed");
801
+ }
802
+ return { kind: "remote", base: u.toString().replace(/\/$/, ""), idpUrl: remote.idp.url, sentinelCreds };
803
+ }
804
+ /** The open's narrowing check: the route resolved here must be the position the caller resolved.
805
+ * A remote route needs the same exchange origin, a local route needs no `exchangeUrl`, and both need
806
+ * the same IdP, each compared after the normalization that pinned it. Refuses before any request. */
807
+ export function assertChatRouteExpected(route, space, expect) {
808
+ const differs = (what) => {
809
+ throw new EpEnvelopeError("failed-precondition", `the user-auth position for space "${space}" is not the one this command resolved (${what}); nothing was sent - run the command again`, undefined, "not-executed");
810
+ };
811
+ let sameIdp;
812
+ try {
813
+ sameIdp = normalizeIdpUrl(route.idpUrl) === normalizeIdpUrl(expect.idpUrl);
814
+ }
815
+ catch {
816
+ return differs("an IdP URL does not normalize");
817
+ }
818
+ if (!sameIdp)
819
+ differs("its IdP changed");
820
+ if (route.kind === "local") {
821
+ if (expect.exchangeUrl !== undefined)
822
+ differs("it resolved a remote mesh, and this machine hosts the space");
823
+ return;
824
+ }
825
+ if (expect.exchangeUrl === undefined)
826
+ differs("it resolved a local mesh, and the registry names a remote one");
827
+ let expected;
828
+ try {
829
+ const u = new URL(pinnedExchangeUrl(expect.exchangeUrl, space));
830
+ u.pathname = u.pathname.slice(0, -"/exchange".length);
831
+ expected = u.toString().replace(/\/$/, "");
832
+ }
833
+ catch {
834
+ return differs("its exchange URL does not normalize");
835
+ }
836
+ if (expected !== route.base)
837
+ differs("its exchange origin changed");
838
+ }
839
+ /** The URL and authorization for one request on a route. A local route re-reads the service record
840
+ * from its own state dir and refuses when that dir's pinned IdP is no longer the one the open used. */
841
+ function chatSessionTarget(route, space, op) {
842
+ if (route.kind === "remote")
843
+ return { url: `${route.base}/chat-session/${op}` };
844
+ if (loadPinnedIdp(route.dir)?.url !== route.idpUrl)
845
+ throw new EpEnvelopeError("failed-precondition", `the user-auth IdP recorded for space "${space}" changed after this chat session opened; open a new session`, undefined, "not-executed");
846
+ const info = loadAuthServiceInfo(route.dir);
847
+ if (info && probeLiveness(info.pid) === "unknown")
848
+ throw new EpEnvelopeError("unavailable", `the user-auth service for space "${space}" records pid ${info.pid}, whose liveness cannot be determined; verify with \`ps -p ${info.pid}\` before restarting anything`, undefined, "not-executed");
849
+ if (!info || !pidAlive(info.pid))
850
+ throw new EpEnvelopeError("unavailable", `the user-auth service for space "${space}" is not running - restart it with \`cotal up\``, undefined, "not-executed");
851
+ return { url: `${info.url}/chat-session/${op}`, authorization: `Bearer ${info.cap}` };
852
+ }
853
+ /** POST one chat-session request with this machine's fresh IdP proof for the route's IdP. Redirects
854
+ * are refused and their outcome is unknown, because whatever answered may have acted first. A
855
+ * refusal keeps the service's own code and its `executed`, `not-executed` or `unknown` outcome; an
856
+ * answer that states no outcome, a transport failure or an unreadable body is unknown. The holder
857
+ * proof rides only the request body, never an error string. */
858
+ async function postChatSession(route, space, op, fields) {
859
+ const target = chatSessionTarget(route, space, op);
860
+ const session = requireIdpSession(homeCotalDir(), route.idpUrl);
861
+ const idpToken = await fetchIdpJwt(route.idpUrl, session.token);
862
+ let res;
863
+ try {
864
+ res = await fetch(target.url, {
865
+ method: "POST",
866
+ redirect: "manual",
867
+ headers: { "content-type": "application/json", ...(target.authorization ? { authorization: target.authorization } : {}) },
868
+ body: JSON.stringify({ idpToken, ...fields }),
869
+ signal: AbortSignal.timeout(60_000),
870
+ });
871
+ }
872
+ catch (e) {
873
+ throw new EpEnvelopeError("unavailable", `the chat-session ${op} for space "${space}" did not answer at ${target.url} (${e instanceof Error ? e.message : String(e)}); its outcome is unknown`, undefined, "unknown");
874
+ }
875
+ if (res.status >= 300 && res.status < 400)
876
+ throw new EpEnvelopeError("unavailable", `the chat-session ${op} endpoint answered ${res.status} with a redirect; redirects are refused and the request's outcome is unknown`, undefined, "unknown");
877
+ const body = (await res.json().catch(() => undefined));
878
+ if (!res.ok) {
879
+ const b = (body ?? {});
880
+ const code = typeof b.code === "string" && EP_ERROR_CODES.includes(b.code) ? b.code : "unavailable";
881
+ const outcome = b.outcome === "executed" || b.outcome === "not-executed" ? b.outcome : "unknown";
882
+ const why = typeof b.error === "string" && b.error !== "" ? b.error : `HTTP ${res.status}`;
883
+ throw new EpEnvelopeError(code, `signed in, but the chat-session ${op} for space "${space}" was refused: ${why}`, undefined, outcome);
884
+ }
885
+ if (body === undefined || body === null || typeof body !== "object")
886
+ throw new EpEnvelopeError("unavailable", `the chat-session ${op} for space "${space}" answered HTTP ${res.status} with a body that could not be read; its outcome is unknown`, undefined, "unknown");
887
+ return body;
888
+ }
689
889
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type Command } from "@cotal-ai/core";
2
+ import { type LocalProcess, type ServicePreset } from "@cotal-ai/workspace";
3
+ export declare const authServicePreset: ServicePreset;
4
+ export declare const authServiceProcess: LocalProcess;
5
+ export declare const nativeAuthServiceCommand: Command;
6
+ //# sourceMappingURL=service-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-adapter.d.ts","sourceRoot":"","sources":["../src/service-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,OAAO,EAAmB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAIuB,KAAK,YAAY,EAAE,KAAK,aAAa,EAClE,MAAM,qBAAqB,CAAC;AAmC7B,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAyBhC,CAAC;AAQF,eAAO,MAAM,wBAAwB,EAAE,OAsBtC,CAAC"}