@apart-tech/intelligence-core 1.11.4 → 1.11.6

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 (152) hide show
  1. package/dist/auth/ability.d.ts +148 -0
  2. package/dist/auth/ability.d.ts.map +1 -0
  3. package/dist/auth/ability.js +291 -0
  4. package/dist/auth/ability.js.map +1 -0
  5. package/dist/auth/ability.test.d.ts +2 -0
  6. package/dist/auth/ability.test.d.ts.map +1 -0
  7. package/dist/auth/ability.test.js +693 -0
  8. package/dist/auth/ability.test.js.map +1 -0
  9. package/dist/auth/delegation-jwt.d.ts +167 -0
  10. package/dist/auth/delegation-jwt.d.ts.map +1 -0
  11. package/dist/auth/delegation-jwt.js +237 -0
  12. package/dist/auth/delegation-jwt.js.map +1 -0
  13. package/dist/auth/delegation-jwt.test.d.ts +2 -0
  14. package/dist/auth/delegation-jwt.test.d.ts.map +1 -0
  15. package/dist/auth/delegation-jwt.test.js +283 -0
  16. package/dist/auth/delegation-jwt.test.js.map +1 -0
  17. package/dist/auth/principal.d.ts +94 -0
  18. package/dist/auth/principal.d.ts.map +1 -0
  19. package/dist/auth/principal.js +33 -0
  20. package/dist/auth/principal.js.map +1 -0
  21. package/dist/config/config.test.d.ts +2 -0
  22. package/dist/config/config.test.d.ts.map +1 -0
  23. package/dist/config/config.test.js +57 -0
  24. package/dist/config/config.test.js.map +1 -0
  25. package/dist/config/index.d.ts.map +1 -1
  26. package/dist/config/index.js +22 -1
  27. package/dist/config/index.js.map +1 -1
  28. package/dist/db/tenant.d.ts.map +1 -1
  29. package/dist/db/tenant.js +8 -0
  30. package/dist/db/tenant.js.map +1 -1
  31. package/dist/index.d.ts +19 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +10 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/lib/__tests__/jwt.test.d.ts +2 -0
  36. package/dist/lib/__tests__/jwt.test.d.ts.map +1 -0
  37. package/dist/lib/__tests__/jwt.test.js +97 -0
  38. package/dist/lib/__tests__/jwt.test.js.map +1 -0
  39. package/dist/lib/jwt.d.ts +20 -0
  40. package/dist/lib/jwt.d.ts.map +1 -1
  41. package/dist/lib/jwt.js +56 -3
  42. package/dist/lib/jwt.js.map +1 -1
  43. package/dist/services/__tests__/chunk-service.test.d.ts +2 -0
  44. package/dist/services/__tests__/chunk-service.test.d.ts.map +1 -0
  45. package/dist/services/__tests__/chunk-service.test.js +111 -0
  46. package/dist/services/__tests__/chunk-service.test.js.map +1 -0
  47. package/dist/services/__tests__/chunker.test.d.ts +2 -0
  48. package/dist/services/__tests__/chunker.test.d.ts.map +1 -0
  49. package/dist/services/__tests__/chunker.test.js +113 -0
  50. package/dist/services/__tests__/chunker.test.js.map +1 -0
  51. package/dist/services/__tests__/delegation-cleanup-service.test.d.ts +2 -0
  52. package/dist/services/__tests__/delegation-cleanup-service.test.d.ts.map +1 -0
  53. package/dist/services/__tests__/delegation-cleanup-service.test.js +211 -0
  54. package/dist/services/__tests__/delegation-cleanup-service.test.js.map +1 -0
  55. package/dist/services/__tests__/node-service.test.d.ts +2 -0
  56. package/dist/services/__tests__/node-service.test.d.ts.map +1 -0
  57. package/dist/services/__tests__/node-service.test.js +207 -0
  58. package/dist/services/__tests__/node-service.test.js.map +1 -0
  59. package/dist/services/__tests__/pii-detector-service.test.js +51 -0
  60. package/dist/services/__tests__/pii-detector-service.test.js.map +1 -1
  61. package/dist/services/__tests__/pii-encryption-service.test.js +37 -0
  62. package/dist/services/__tests__/pii-encryption-service.test.js.map +1 -1
  63. package/dist/services/__tests__/search-service.test.d.ts +2 -0
  64. package/dist/services/__tests__/search-service.test.d.ts.map +1 -0
  65. package/dist/services/__tests__/search-service.test.js +163 -0
  66. package/dist/services/__tests__/search-service.test.js.map +1 -0
  67. package/dist/services/agent-run-service.d.ts +44 -7
  68. package/dist/services/agent-run-service.d.ts.map +1 -1
  69. package/dist/services/agent-run-service.js +14 -0
  70. package/dist/services/agent-run-service.js.map +1 -1
  71. package/dist/services/agent-schedule-service.d.ts +21 -0
  72. package/dist/services/agent-schedule-service.d.ts.map +1 -1
  73. package/dist/services/agent-schedule-service.js +12 -0
  74. package/dist/services/agent-schedule-service.js.map +1 -1
  75. package/dist/services/audit-event-service.d.ts +76 -0
  76. package/dist/services/audit-event-service.d.ts.map +1 -0
  77. package/dist/services/audit-event-service.js +48 -0
  78. package/dist/services/audit-event-service.js.map +1 -0
  79. package/dist/services/backfill-chunks.d.ts +30 -0
  80. package/dist/services/backfill-chunks.d.ts.map +1 -0
  81. package/dist/services/backfill-chunks.js +55 -0
  82. package/dist/services/backfill-chunks.js.map +1 -0
  83. package/dist/services/chunk-service.d.ts +45 -0
  84. package/dist/services/chunk-service.d.ts.map +1 -0
  85. package/dist/services/chunk-service.js +111 -0
  86. package/dist/services/chunk-service.js.map +1 -0
  87. package/dist/services/chunker.d.ts +32 -0
  88. package/dist/services/chunker.d.ts.map +1 -0
  89. package/dist/services/chunker.js +289 -0
  90. package/dist/services/chunker.js.map +1 -0
  91. package/dist/services/context-service.d.ts +3 -1
  92. package/dist/services/context-service.d.ts.map +1 -1
  93. package/dist/services/context-service.js +17 -1
  94. package/dist/services/context-service.js.map +1 -1
  95. package/dist/services/delegation-cleanup-service.d.ts +133 -0
  96. package/dist/services/delegation-cleanup-service.d.ts.map +1 -0
  97. package/dist/services/delegation-cleanup-service.js +111 -0
  98. package/dist/services/delegation-cleanup-service.js.map +1 -0
  99. package/dist/services/edge-service.d.ts.map +1 -1
  100. package/dist/services/edge-service.js +3 -0
  101. package/dist/services/edge-service.js.map +1 -1
  102. package/dist/services/node-service.d.ts +12 -1
  103. package/dist/services/node-service.d.ts.map +1 -1
  104. package/dist/services/node-service.js +54 -11
  105. package/dist/services/node-service.js.map +1 -1
  106. package/dist/services/org-agent-type-service.d.ts +15 -0
  107. package/dist/services/org-agent-type-service.d.ts.map +1 -1
  108. package/dist/services/org-agent-type-service.js +2 -0
  109. package/dist/services/org-agent-type-service.js.map +1 -1
  110. package/dist/services/pii-detector-service.d.ts +1 -0
  111. package/dist/services/pii-detector-service.d.ts.map +1 -1
  112. package/dist/services/pii-detector-service.js +95 -2
  113. package/dist/services/pii-detector-service.js.map +1 -1
  114. package/dist/services/pii-encryption-service.d.ts +10 -0
  115. package/dist/services/pii-encryption-service.d.ts.map +1 -1
  116. package/dist/services/pii-encryption-service.js +32 -0
  117. package/dist/services/pii-encryption-service.js.map +1 -1
  118. package/dist/services/search-service.d.ts +30 -1
  119. package/dist/services/search-service.d.ts.map +1 -1
  120. package/dist/services/search-service.js +262 -45
  121. package/dist/services/search-service.js.map +1 -1
  122. package/dist/services/tag-service.d.ts +78 -0
  123. package/dist/services/tag-service.d.ts.map +1 -0
  124. package/dist/services/tag-service.js +639 -0
  125. package/dist/services/tag-service.js.map +1 -0
  126. package/dist/services/tag-service.test.d.ts +2 -0
  127. package/dist/services/tag-service.test.d.ts.map +1 -0
  128. package/dist/services/tag-service.test.js +448 -0
  129. package/dist/services/tag-service.test.js.map +1 -0
  130. package/dist/services/usage-service.d.ts +48 -0
  131. package/dist/services/usage-service.d.ts.map +1 -0
  132. package/dist/services/usage-service.js +116 -0
  133. package/dist/services/usage-service.js.map +1 -0
  134. package/dist/services/user-service.d.ts.map +1 -1
  135. package/dist/services/user-service.js +24 -6
  136. package/dist/services/user-service.js.map +1 -1
  137. package/dist/services/user-service.test.d.ts +2 -0
  138. package/dist/services/user-service.test.d.ts.map +1 -0
  139. package/dist/services/user-service.test.js +86 -0
  140. package/dist/services/user-service.test.js.map +1 -0
  141. package/dist/services/workspace-service.d.ts +2 -0
  142. package/dist/services/workspace-service.d.ts.map +1 -1
  143. package/dist/services/workspace-service.js +7 -1
  144. package/dist/services/workspace-service.js.map +1 -1
  145. package/dist/types/index.d.ts +80 -2
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/package.json +3 -2
  148. package/prisma/schema.prisma +335 -82
  149. package/dist/db/schema.d.ts +0 -507
  150. package/dist/db/schema.d.ts.map +0 -1
  151. package/dist/db/schema.js +0 -77
  152. package/dist/db/schema.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ability.test.js","sourceRoot":"","sources":["../../src/auth/ability.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * In-process delegation JWT helpers (Phase 1d).
3
+ *
4
+ * Phase 1d replaces the original RFC 8693 Token Exchange plan with
5
+ * in-process delegation tokens — decision `e2f847e2`. When a user spawns
6
+ * an agent run, the API mints a short-lived JWT whose payload names the
7
+ * `AgentRun`, the user it runs on behalf of, and the organization; the
8
+ * sandbox receives this token instead of the user's Apart access token
9
+ * and presents it on every callback. The middleware verifies the token,
10
+ * looks up the `AgentRun`, and reconstructs a `DelegatedAgentPrincipal`
11
+ * whose ability is the captured snapshot from `AgentRun.captured_ability`
12
+ * (the Phase 1c column).
13
+ *
14
+ * Design notes
15
+ * ------------
16
+ * - **HS256 HMAC**, not RSA. The signer and the verifier are the same
17
+ * process (the intelligence-api backend). There are no third-party
18
+ * verifiers, so a symmetric key is the simplest correct shape and
19
+ * avoids any public-key distribution story.
20
+ * - **Key material** is a 32-byte random value, base64-encoded, stored
21
+ * in GCP Secret Manager as `intelligence-api-{env}-delegation-jwt-key`.
22
+ * See `docs/runbooks/auth0-tenant-provisioning.md` for the rotation
23
+ * procedure. The helpers here take the decoded key as a `Uint8Array`
24
+ * argument; `loadDelegationKeyFromEnv` handles the env-var boundary.
25
+ * - **Issuer claim** distinguishes delegation tokens from Auth0 tokens
26
+ * in the middleware. Auth0 issuers are `https://apart-next-*.eu.auth0.com/`
27
+ * (URL-shaped); the delegation issuer is the bare string
28
+ * `apart-intelligence` — the middleware can decode the JWT header/
29
+ * payload without verifying to route a request to the right verifier.
30
+ * - **TTL is 15 minutes**, matching the spec's "short-lived" guidance.
31
+ * A sandbox callback that arrives more than 15 minutes after spawn
32
+ * gets a fresh token via the refresh-on-callback flow (see the Phase
33
+ * 1d user story `ed8fcc68`).
34
+ * - **No condition on `aud`.** A delegation token is only ever sent to
35
+ * the intelligence-api and only ever verified by the intelligence-api;
36
+ * an audience claim adds nothing a process-local HMAC key does not
37
+ * already give us. `iss` is the one claim the middleware inspects to
38
+ * route between Auth0 and delegation.
39
+ */
40
+ /** The fixed issuer claim for delegation tokens. Checked on verify. */
41
+ export declare const DELEGATION_ISSUER = "apart-intelligence";
42
+ /** The fixed signing algorithm. HS256 matches the HMAC key material. */
43
+ export declare const DELEGATION_ALGORITHM = "HS256";
44
+ /** Delegation token lifetime in seconds. 15 minutes. */
45
+ export declare const DELEGATION_TTL_SECONDS: number;
46
+ /** The minimum acceptable key length, in bytes, after base64 decode. */
47
+ export declare const DELEGATION_KEY_MIN_BYTES = 32;
48
+ /**
49
+ * The fully-decoded payload of a delegation token. This is what the
50
+ * verifier returns and what the middleware threads into the
51
+ * `DelegatedAgentPrincipal` before calling `buildAbility`.
52
+ *
53
+ * - `sub` is the `AgentRun.id` the token was minted for.
54
+ * - `behalfOf` is the `User.id` who spawned the run.
55
+ * - `organizationId` is the org the run is scoped to.
56
+ * - `iat` and `exp` are JWT-standard, seconds-since-epoch.
57
+ */
58
+ export interface DelegationTokenPayload {
59
+ sub: string;
60
+ behalfOf: string;
61
+ organizationId: string;
62
+ iat: number;
63
+ exp: number;
64
+ }
65
+ /** Arguments accepted by `mintDelegationToken`. */
66
+ export interface MintDelegationTokenArgs {
67
+ agentRunId: string;
68
+ userId: string;
69
+ organizationId: string;
70
+ /**
71
+ * Optional override for TTL in seconds. Defaults to
72
+ * {@link DELEGATION_TTL_SECONDS}. Tests use short TTLs to exercise
73
+ * expiry paths without real-time sleeps.
74
+ */
75
+ ttlSeconds?: number;
76
+ /**
77
+ * Optional override for the "now" timestamp in seconds since epoch.
78
+ * Tests inject a fixed value so expiry and iat claims are
79
+ * deterministic.
80
+ */
81
+ nowSeconds?: number;
82
+ }
83
+ /** Discriminant for the typed reasons `verifyDelegationToken` can fail. */
84
+ export type DelegationTokenErrorReason = "malformed" | "bad_signature" | "expired" | "wrong_issuer" | "missing_claim";
85
+ /**
86
+ * Thrown by `verifyDelegationToken` on any verification failure. The
87
+ * `reason` discriminant lets the middleware map failures to the right
88
+ * HTTP status (401 for signature/expiry/issuer, 400 for malformed) and
89
+ * the right audit-event classification without having to parse error
90
+ * messages.
91
+ */
92
+ export declare class DelegationTokenError extends Error {
93
+ readonly reason: DelegationTokenErrorReason;
94
+ readonly detail: string;
95
+ constructor(reason: DelegationTokenErrorReason, detail: string);
96
+ }
97
+ /**
98
+ * Mint a signed delegation token. Pure function: takes the claims and
99
+ * the key, returns the compact-serialization JWT string. Never touches
100
+ * the filesystem, the network, or the database.
101
+ *
102
+ * The caller is responsible for persisting the `AgentRun` row and its
103
+ * `captured_ability` before minting — if the token lands in the
104
+ * sandbox before the `AgentRun` row is visible to a concurrent
105
+ * middleware verification, the verifier will see a token whose `sub`
106
+ * is not in the DB and must reject with the appropriate error. That
107
+ * ordering belongs to the spawn path, not here.
108
+ */
109
+ export declare function mintDelegationToken(args: MintDelegationTokenArgs, key: Uint8Array): Promise<string>;
110
+ /**
111
+ * Verify a delegation token string against the given key. Returns the
112
+ * decoded payload or throws a `DelegationTokenError` with a typed
113
+ * reason. Never touches the filesystem, the network, or the database.
114
+ *
115
+ * Verification checks, in order:
116
+ * 1. The token is a syntactically valid JWS compact serialization.
117
+ * 2. The signature verifies against the given HMAC key.
118
+ * 3. The `iss` claim equals {@link DELEGATION_ISSUER}. Any other
119
+ * issuer — including Auth0 issuers — is rejected as `wrong_issuer`
120
+ * so that a leaked Auth0 token presented here cannot accidentally
121
+ * authenticate against the delegation path.
122
+ * 4. The `exp` claim is in the future. jose checks this automatically
123
+ * as part of `jwtVerify`; we re-map its error class to our typed
124
+ * reason.
125
+ * 5. `sub`, `behalfOf`, and `organizationId` claims are all present
126
+ * and non-empty strings. A token missing any of these cannot
127
+ * successfully attach a `DelegatedAgentPrincipal` downstream, so
128
+ * the verifier fails fast.
129
+ */
130
+ export declare function verifyDelegationToken(token: string, key: Uint8Array): Promise<DelegationTokenPayload>;
131
+ /**
132
+ * Peek at a JWT's `iss` claim without verifying the signature. Used by
133
+ * the auth middleware to route a bearer token to the right verifier
134
+ * (Auth0 vs delegation) before it knows which key to use. Returns
135
+ * `null` if the token is syntactically broken or the `iss` claim is
136
+ * absent — the caller should then fall through to its default path
137
+ * (currently Auth0) and let that verifier produce the real error.
138
+ *
139
+ * This is NOT authentication. Do not use the returned issuer for any
140
+ * authorization decision — it is entirely attacker-controlled. The
141
+ * only correct use is "pick which verifier to hand the token to."
142
+ */
143
+ export declare function peekIssuer(token: string): string | null;
144
+ /** Discriminant for `loadDelegationKeyFromEnv` failures. */
145
+ export type DelegationKeyLoadErrorReason = "missing" | "malformed" | "too_short";
146
+ /**
147
+ * Thrown by `loadDelegationKeyFromEnv` if the env var is missing,
148
+ * not valid base64, or yields a key shorter than
149
+ * {@link DELEGATION_KEY_MIN_BYTES}. Separate from
150
+ * `DelegationTokenError` because key-loading failures happen at
151
+ * service startup, not on the hot path — they should crash the
152
+ * process, not return a 4xx.
153
+ */
154
+ export declare class DelegationKeyLoadError extends Error {
155
+ readonly reason: DelegationKeyLoadErrorReason;
156
+ constructor(reason: DelegationKeyLoadErrorReason, detail: string);
157
+ }
158
+ /**
159
+ * Read the HMAC key from `INTELLIGENCE_DELEGATION_JWT_KEY`, base64-
160
+ * decode it, and return the decoded bytes. Call this once at service
161
+ * startup; cache the result and pass it into every mint/verify call.
162
+ *
163
+ * Takes an optional `env` record to make tests hermetic — production
164
+ * callers pass nothing and get `process.env`.
165
+ */
166
+ export declare function loadDelegationKeyFromEnv(env?: NodeJS.ProcessEnv): Uint8Array;
167
+ //# sourceMappingURL=delegation-jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-jwt.d.ts","sourceRoot":"","sources":["../../src/auth/delegation-jwt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAE5C,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,QAAU,CAAC;AAE9C,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,MAAM,0BAA0B,GAClC,WAAW,GACX,eAAe,GACf,SAAS,GACT,cAAc,GACd,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM;CAM/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,uBAAuB,EAC7B,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,sBAAsB,CAAC,CA6DjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYvD;AAED,4DAA4D;AAC5D,MAAM,MAAM,4BAA4B,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjF;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;gBAElC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,MAAM;CAKjE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,UAAU,CA+BZ"}
@@ -0,0 +1,237 @@
1
+ import { SignJWT, jwtVerify, errors as joseErrors } from "jose";
2
+ /**
3
+ * In-process delegation JWT helpers (Phase 1d).
4
+ *
5
+ * Phase 1d replaces the original RFC 8693 Token Exchange plan with
6
+ * in-process delegation tokens — decision `e2f847e2`. When a user spawns
7
+ * an agent run, the API mints a short-lived JWT whose payload names the
8
+ * `AgentRun`, the user it runs on behalf of, and the organization; the
9
+ * sandbox receives this token instead of the user's Apart access token
10
+ * and presents it on every callback. The middleware verifies the token,
11
+ * looks up the `AgentRun`, and reconstructs a `DelegatedAgentPrincipal`
12
+ * whose ability is the captured snapshot from `AgentRun.captured_ability`
13
+ * (the Phase 1c column).
14
+ *
15
+ * Design notes
16
+ * ------------
17
+ * - **HS256 HMAC**, not RSA. The signer and the verifier are the same
18
+ * process (the intelligence-api backend). There are no third-party
19
+ * verifiers, so a symmetric key is the simplest correct shape and
20
+ * avoids any public-key distribution story.
21
+ * - **Key material** is a 32-byte random value, base64-encoded, stored
22
+ * in GCP Secret Manager as `intelligence-api-{env}-delegation-jwt-key`.
23
+ * See `docs/runbooks/auth0-tenant-provisioning.md` for the rotation
24
+ * procedure. The helpers here take the decoded key as a `Uint8Array`
25
+ * argument; `loadDelegationKeyFromEnv` handles the env-var boundary.
26
+ * - **Issuer claim** distinguishes delegation tokens from Auth0 tokens
27
+ * in the middleware. Auth0 issuers are `https://apart-next-*.eu.auth0.com/`
28
+ * (URL-shaped); the delegation issuer is the bare string
29
+ * `apart-intelligence` — the middleware can decode the JWT header/
30
+ * payload without verifying to route a request to the right verifier.
31
+ * - **TTL is 15 minutes**, matching the spec's "short-lived" guidance.
32
+ * A sandbox callback that arrives more than 15 minutes after spawn
33
+ * gets a fresh token via the refresh-on-callback flow (see the Phase
34
+ * 1d user story `ed8fcc68`).
35
+ * - **No condition on `aud`.** A delegation token is only ever sent to
36
+ * the intelligence-api and only ever verified by the intelligence-api;
37
+ * an audience claim adds nothing a process-local HMAC key does not
38
+ * already give us. `iss` is the one claim the middleware inspects to
39
+ * route between Auth0 and delegation.
40
+ */
41
+ /** The fixed issuer claim for delegation tokens. Checked on verify. */
42
+ export const DELEGATION_ISSUER = "apart-intelligence";
43
+ /** The fixed signing algorithm. HS256 matches the HMAC key material. */
44
+ export const DELEGATION_ALGORITHM = "HS256";
45
+ /** Delegation token lifetime in seconds. 15 minutes. */
46
+ export const DELEGATION_TTL_SECONDS = 15 * 60;
47
+ /** The minimum acceptable key length, in bytes, after base64 decode. */
48
+ export const DELEGATION_KEY_MIN_BYTES = 32;
49
+ /**
50
+ * Thrown by `verifyDelegationToken` on any verification failure. The
51
+ * `reason` discriminant lets the middleware map failures to the right
52
+ * HTTP status (401 for signature/expiry/issuer, 400 for malformed) and
53
+ * the right audit-event classification without having to parse error
54
+ * messages.
55
+ */
56
+ export class DelegationTokenError extends Error {
57
+ reason;
58
+ detail;
59
+ constructor(reason, detail) {
60
+ super(`delegation token ${reason}: ${detail}`);
61
+ this.name = "DelegationTokenError";
62
+ this.reason = reason;
63
+ this.detail = detail;
64
+ }
65
+ }
66
+ /**
67
+ * Mint a signed delegation token. Pure function: takes the claims and
68
+ * the key, returns the compact-serialization JWT string. Never touches
69
+ * the filesystem, the network, or the database.
70
+ *
71
+ * The caller is responsible for persisting the `AgentRun` row and its
72
+ * `captured_ability` before minting — if the token lands in the
73
+ * sandbox before the `AgentRun` row is visible to a concurrent
74
+ * middleware verification, the verifier will see a token whose `sub`
75
+ * is not in the DB and must reject with the appropriate error. That
76
+ * ordering belongs to the spawn path, not here.
77
+ */
78
+ export async function mintDelegationToken(args, key) {
79
+ const ttl = args.ttlSeconds ?? DELEGATION_TTL_SECONDS;
80
+ const now = args.nowSeconds ?? Math.floor(Date.now() / 1000);
81
+ return await new SignJWT({
82
+ behalfOf: args.userId,
83
+ organizationId: args.organizationId,
84
+ })
85
+ .setProtectedHeader({ alg: DELEGATION_ALGORITHM, typ: "JWT" })
86
+ .setIssuer(DELEGATION_ISSUER)
87
+ .setSubject(args.agentRunId)
88
+ .setIssuedAt(now)
89
+ .setExpirationTime(now + ttl)
90
+ .sign(key);
91
+ }
92
+ /**
93
+ * Verify a delegation token string against the given key. Returns the
94
+ * decoded payload or throws a `DelegationTokenError` with a typed
95
+ * reason. Never touches the filesystem, the network, or the database.
96
+ *
97
+ * Verification checks, in order:
98
+ * 1. The token is a syntactically valid JWS compact serialization.
99
+ * 2. The signature verifies against the given HMAC key.
100
+ * 3. The `iss` claim equals {@link DELEGATION_ISSUER}. Any other
101
+ * issuer — including Auth0 issuers — is rejected as `wrong_issuer`
102
+ * so that a leaked Auth0 token presented here cannot accidentally
103
+ * authenticate against the delegation path.
104
+ * 4. The `exp` claim is in the future. jose checks this automatically
105
+ * as part of `jwtVerify`; we re-map its error class to our typed
106
+ * reason.
107
+ * 5. `sub`, `behalfOf`, and `organizationId` claims are all present
108
+ * and non-empty strings. A token missing any of these cannot
109
+ * successfully attach a `DelegatedAgentPrincipal` downstream, so
110
+ * the verifier fails fast.
111
+ */
112
+ export async function verifyDelegationToken(token, key) {
113
+ let payload;
114
+ try {
115
+ const result = await jwtVerify(token, key, {
116
+ issuer: DELEGATION_ISSUER,
117
+ algorithms: [DELEGATION_ALGORITHM],
118
+ });
119
+ payload = result.payload;
120
+ }
121
+ catch (err) {
122
+ if (err instanceof joseErrors.JWTExpired) {
123
+ throw new DelegationTokenError("expired", err.message);
124
+ }
125
+ if (err instanceof joseErrors.JWTClaimValidationFailed) {
126
+ // jose throws this for issuer mismatch. Map to wrong_issuer so
127
+ // the caller gets the useful signal even though the library
128
+ // class is generic.
129
+ if (err.claim === "iss") {
130
+ throw new DelegationTokenError("wrong_issuer", err.message);
131
+ }
132
+ throw new DelegationTokenError("missing_claim", err.message);
133
+ }
134
+ if (err instanceof joseErrors.JWSSignatureVerificationFailed) {
135
+ throw new DelegationTokenError("bad_signature", err.message);
136
+ }
137
+ if (err instanceof joseErrors.JWSInvalid || err instanceof joseErrors.JWTInvalid) {
138
+ throw new DelegationTokenError("malformed", err.message);
139
+ }
140
+ // Unknown jose error — treat as malformed. Downstream sees a 4xx
141
+ // rather than a 5xx for anything we didn't explicitly classify.
142
+ throw new DelegationTokenError("malformed", err instanceof Error ? err.message : String(err));
143
+ }
144
+ const sub = payload.sub;
145
+ const behalfOf = payload.behalfOf;
146
+ const organizationId = payload.organizationId;
147
+ const iat = payload.iat;
148
+ const exp = payload.exp;
149
+ if (typeof sub !== "string" || sub.length === 0) {
150
+ throw new DelegationTokenError("missing_claim", "sub is missing or empty");
151
+ }
152
+ if (typeof behalfOf !== "string" || behalfOf.length === 0) {
153
+ throw new DelegationTokenError("missing_claim", "behalfOf is missing or empty");
154
+ }
155
+ if (typeof organizationId !== "string" || organizationId.length === 0) {
156
+ throw new DelegationTokenError("missing_claim", "organizationId is missing or empty");
157
+ }
158
+ if (typeof iat !== "number") {
159
+ throw new DelegationTokenError("missing_claim", "iat is missing");
160
+ }
161
+ if (typeof exp !== "number") {
162
+ throw new DelegationTokenError("missing_claim", "exp is missing");
163
+ }
164
+ return { sub, behalfOf, organizationId, iat, exp };
165
+ }
166
+ /**
167
+ * Peek at a JWT's `iss` claim without verifying the signature. Used by
168
+ * the auth middleware to route a bearer token to the right verifier
169
+ * (Auth0 vs delegation) before it knows which key to use. Returns
170
+ * `null` if the token is syntactically broken or the `iss` claim is
171
+ * absent — the caller should then fall through to its default path
172
+ * (currently Auth0) and let that verifier produce the real error.
173
+ *
174
+ * This is NOT authentication. Do not use the returned issuer for any
175
+ * authorization decision — it is entirely attacker-controlled. The
176
+ * only correct use is "pick which verifier to hand the token to."
177
+ */
178
+ export function peekIssuer(token) {
179
+ const parts = token.split(".");
180
+ if (parts.length !== 3) {
181
+ return null;
182
+ }
183
+ try {
184
+ const payloadJson = Buffer.from(parts[1], "base64url").toString("utf8");
185
+ const payload = JSON.parse(payloadJson);
186
+ return typeof payload.iss === "string" ? payload.iss : null;
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ }
192
+ /**
193
+ * Thrown by `loadDelegationKeyFromEnv` if the env var is missing,
194
+ * not valid base64, or yields a key shorter than
195
+ * {@link DELEGATION_KEY_MIN_BYTES}. Separate from
196
+ * `DelegationTokenError` because key-loading failures happen at
197
+ * service startup, not on the hot path — they should crash the
198
+ * process, not return a 4xx.
199
+ */
200
+ export class DelegationKeyLoadError extends Error {
201
+ reason;
202
+ constructor(reason, detail) {
203
+ super(`delegation key ${reason}: ${detail}`);
204
+ this.name = "DelegationKeyLoadError";
205
+ this.reason = reason;
206
+ }
207
+ }
208
+ /**
209
+ * Read the HMAC key from `INTELLIGENCE_DELEGATION_JWT_KEY`, base64-
210
+ * decode it, and return the decoded bytes. Call this once at service
211
+ * startup; cache the result and pass it into every mint/verify call.
212
+ *
213
+ * Takes an optional `env` record to make tests hermetic — production
214
+ * callers pass nothing and get `process.env`.
215
+ */
216
+ export function loadDelegationKeyFromEnv(env = process.env) {
217
+ const raw = env["INTELLIGENCE_DELEGATION_JWT_KEY"];
218
+ if (typeof raw !== "string" || raw.length === 0) {
219
+ throw new DelegationKeyLoadError("missing", "INTELLIGENCE_DELEGATION_JWT_KEY is not set");
220
+ }
221
+ let decoded;
222
+ try {
223
+ decoded = Buffer.from(raw, "base64");
224
+ }
225
+ catch (err) {
226
+ throw new DelegationKeyLoadError("malformed", `INTELLIGENCE_DELEGATION_JWT_KEY is not valid base64: ${err instanceof Error ? err.message : String(err)}`);
227
+ }
228
+ // Buffer.from(..., "base64") never throws on invalid input — it silently
229
+ // drops unrecognized characters. The length check below catches the
230
+ // case where the env var was, e.g., an empty string, whitespace, or
231
+ // a few stray characters.
232
+ if (decoded.length < DELEGATION_KEY_MIN_BYTES) {
233
+ throw new DelegationKeyLoadError("too_short", `decoded key is ${decoded.length} bytes; need at least ${DELEGATION_KEY_MIN_BYTES}`);
234
+ }
235
+ return new Uint8Array(decoded);
236
+ }
237
+ //# sourceMappingURL=delegation-jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-jwt.js","sourceRoot":"","sources":["../../src/auth/delegation-jwt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=delegation-jwt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation-jwt.test.d.ts","sourceRoot":"","sources":["../../src/auth/delegation-jwt.test.ts"],"names":[],"mappings":""}