@tokensrc/codex 1.14.16 → 1.14.18

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 (66) hide show
  1. package/README.md +73 -71
  2. package/dist/client.d.ts +21 -16
  3. package/dist/client.js +198 -116
  4. package/dist/client.js.map +1 -1
  5. package/dist/command-directory.js +3 -2
  6. package/dist/command-directory.js.map +1 -1
  7. package/dist/commands.d.ts +0 -1
  8. package/dist/commands.js +479 -273
  9. package/dist/commands.js.map +1 -1
  10. package/dist/credentials.d.ts +3 -75
  11. package/dist/credentials.js +2 -338
  12. package/dist/credentials.js.map +1 -1
  13. package/dist/index.d.ts +2 -8
  14. package/dist/index.js +2 -8
  15. package/dist/index.js.map +1 -1
  16. package/dist/managed-credential-v3-envelope.d.ts +38 -14
  17. package/dist/managed-credential-v3-envelope.js +116 -25
  18. package/dist/managed-credential-v3-envelope.js.map +1 -1
  19. package/dist/managed-credential-v3-flow.d.ts +0 -17
  20. package/dist/managed-credential-v3-flow.js +107 -110
  21. package/dist/managed-credential-v3-flow.js.map +1 -1
  22. package/dist/managed-credential-v3.d.ts +0 -8
  23. package/dist/managed-credential-v3.js +0 -23
  24. package/dist/managed-credential-v3.js.map +1 -1
  25. package/dist/profile.d.ts +2 -6
  26. package/dist/profile.js +26 -23
  27. package/dist/profile.js.map +1 -1
  28. package/dist/protocol.d.ts +1284 -799
  29. package/dist/protocol.js +494 -277
  30. package/dist/protocol.js.map +1 -1
  31. package/dist/request-bound-device-v6-flow.d.ts +42 -0
  32. package/dist/request-bound-device-v6-flow.js +403 -0
  33. package/dist/request-bound-device-v6-flow.js.map +1 -0
  34. package/dist/request-bound-device-v6-state.d.ts +397 -0
  35. package/dist/request-bound-device-v6-state.js +221 -0
  36. package/dist/request-bound-device-v6-state.js.map +1 -0
  37. package/dist/selection.d.ts +5 -0
  38. package/dist/selection.js +20 -2
  39. package/dist/selection.js.map +1 -1
  40. package/dist/token-pool-v4-upload-flow.js +5 -1
  41. package/dist/token-pool-v4-upload-flow.js.map +1 -1
  42. package/package.json +2 -2
  43. package/dist/credential-supervisor.d.ts +0 -17
  44. package/dist/credential-supervisor.js +0 -84
  45. package/dist/credential-supervisor.js.map +0 -1
  46. package/dist/enrollment-envelope.d.ts +0 -18
  47. package/dist/enrollment-envelope.js +0 -112
  48. package/dist/enrollment-envelope.js.map +0 -1
  49. package/dist/enrollment-flow.d.ts +0 -27
  50. package/dist/enrollment-flow.js +0 -224
  51. package/dist/enrollment-flow.js.map +0 -1
  52. package/dist/migration-login-batch.d.ts +0 -66
  53. package/dist/migration-login-batch.js +0 -202
  54. package/dist/migration-login-batch.js.map +0 -1
  55. package/dist/retirement-flow.d.ts +0 -38
  56. package/dist/retirement-flow.js +0 -78
  57. package/dist/retirement-flow.js.map +0 -1
  58. package/dist/short-lived-delivery-flow.d.ts +0 -41
  59. package/dist/short-lived-delivery-flow.js +0 -141
  60. package/dist/short-lived-delivery-flow.js.map +0 -1
  61. package/dist/short-lived-delivery-journal.d.ts +0 -34
  62. package/dist/short-lived-delivery-journal.js +0 -137
  63. package/dist/short-lived-delivery-journal.js.map +0 -1
  64. package/dist/short-lived-delivery.d.ts +0 -26
  65. package/dist/short-lived-delivery.js +0 -139
  66. package/dist/short-lived-delivery.js.map +0 -1
@@ -1,22 +1,11 @@
1
1
  import { createCipheriv, createDecipheriv, createPublicKey, diffieHellman, generateKeyPairSync, hkdfSync, randomBytes } from "node:crypto";
2
2
  import { CodexServiceError } from "./errors.js";
3
- import { CodexV3FullCredentialBundleSchema, CodexV5DeviceSessionBundleSchema, CodexTokenPoolV4AssignmentTargetSchema } from "./protocol.js";
3
+ import { CodexV3FullCredentialBundleSchema, CodexV5DeviceSessionBundleSchema, CodexV6FullCredentialBundleSchema, CodexTokenPoolV4AssignmentTargetSchema } from "./protocol.js";
4
4
  const ALGORITHM = "X25519-HKDF-SHA256-AES-256-GCM";
5
5
  const ENROLLMENT_KDF = "active-code-inbox/codex-enrollment-candidate/key/v1\0";
6
6
  const DELIVERY_KDF = "active-code-inbox/codex-short-lived-delivery/key/v1\0";
7
7
  const BASE64URL = /^[A-Za-z0-9_-]+$/u;
8
8
  const MAX_TOKEN_BYTES = 65_536;
9
- export function codexV3EnrollmentAad(input) {
10
- return Buffer.from(JSON.stringify({
11
- schemaVersion: 3,
12
- purpose: "ENROLLMENT",
13
- tenant: required(input.tenantId, "tenantId"),
14
- subject: required(input.subject, "subject"),
15
- clientRequestId: required(input.clientRequestId, "clientRequestId"),
16
- idempotencyKey: required(input.idempotencyKey, "idempotencyKey"),
17
- keyId: required(input.keyId, "keyId")
18
- }), "utf8");
19
- }
20
9
  export function codexV3GenerationReportAad(input) {
21
10
  return Buffer.from(JSON.stringify({
22
11
  schemaVersion: 4,
@@ -48,27 +37,32 @@ export function codexV5GenerationReportAad(input) {
48
37
  keyId: required(input.keyId, "keyId")
49
38
  }), "utf8");
50
39
  }
51
- export function sealCodexV3Enrollment(input) {
40
+ export function sealCodexV3GenerationReport(input) {
52
41
  return sealToServer({
53
42
  ingress: input.ingress,
54
- aad: codexV3EnrollmentAad({ ...input, keyId: input.ingress.keyId }),
43
+ aad: codexV3GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
55
44
  plaintext: {
56
- schemaVersion: 3,
45
+ schemaVersion: 4,
57
46
  refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
58
47
  accessToken: secret(input.credentials.accessToken, "accessToken"),
59
48
  idToken: secret(input.credentials.idToken, "idToken"),
60
49
  providerAccountId: required(input.credentials.providerAccountId, "providerAccountId"),
61
50
  expiresAt: instant(input.credentials.expiresAt, "expiresAt")
62
51
  },
63
- request: (envelope) => ({ clientRequestId: input.clientRequestId, envelope })
52
+ request: (envelope) => ({
53
+ clientRequestId: input.clientRequestId,
54
+ expectedGenerationVersion: input.expectedGenerationVersion,
55
+ rotationMode: input.rotationMode,
56
+ envelope
57
+ })
64
58
  });
65
59
  }
66
- export function sealCodexV3GenerationReport(input) {
60
+ export function sealCodexV5GenerationReport(input) {
67
61
  return sealToServer({
68
62
  ingress: input.ingress,
69
- aad: codexV3GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
63
+ aad: codexV5GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
70
64
  plaintext: {
71
- schemaVersion: 4,
65
+ schemaVersion: 5,
72
66
  refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
73
67
  accessToken: secret(input.credentials.accessToken, "accessToken"),
74
68
  idToken: secret(input.credentials.idToken, "idToken"),
@@ -76,19 +70,40 @@ export function sealCodexV3GenerationReport(input) {
76
70
  expiresAt: instant(input.credentials.expiresAt, "expiresAt")
77
71
  },
78
72
  request: (envelope) => ({
73
+ schemaVersion: 5,
79
74
  clientRequestId: input.clientRequestId,
75
+ installationId: input.installationId,
76
+ sessionId: input.sessionId,
77
+ authorityEpoch: input.authorityEpoch,
80
78
  expectedGenerationVersion: input.expectedGenerationVersion,
81
79
  rotationMode: input.rotationMode,
82
80
  envelope
83
81
  })
84
82
  });
85
83
  }
86
- export function sealCodexV5GenerationReport(input) {
84
+ export function codexV6GenerationReportAad(input) {
85
+ return Buffer.from(JSON.stringify({
86
+ schemaVersion: 6,
87
+ purpose: "REQUEST_DEVICE_GENERATION_REPORT",
88
+ tenant: required(input.tenantId, "tenantId"),
89
+ subject: required(input.subject, "subject"),
90
+ requestId: required(input.requestId, "requestId"),
91
+ bindingId: required(input.bindingId, "bindingId"),
92
+ installationId: required(input.installationId, "installationId"),
93
+ credentialLineageId: required(input.credentialLineageId, "credentialLineageId"),
94
+ clientRequestId: required(input.clientRequestId, "clientRequestId"),
95
+ idempotencyKey: required(input.idempotencyKey, "idempotencyKey"),
96
+ expectedGenerationVersion: positive(input.expectedGenerationVersion, "expectedGenerationVersion"),
97
+ rotationMode: input.rotationMode,
98
+ keyId: required(input.keyId, "keyId")
99
+ }), "utf8");
100
+ }
101
+ export function sealCodexV6GenerationReport(input) {
87
102
  return sealToServer({
88
103
  ingress: input.ingress,
89
- aad: codexV5GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
104
+ aad: codexV6GenerationReportAad({ ...input, keyId: input.ingress.keyId }),
90
105
  plaintext: {
91
- schemaVersion: 5,
106
+ schemaVersion: 6,
92
107
  refreshToken: secret(input.credentials.refreshToken, "refreshToken"),
93
108
  accessToken: secret(input.credentials.accessToken, "accessToken"),
94
109
  idToken: secret(input.credentials.idToken, "idToken"),
@@ -96,11 +111,10 @@ export function sealCodexV5GenerationReport(input) {
96
111
  expiresAt: instant(input.credentials.expiresAt, "expiresAt")
97
112
  },
98
113
  request: (envelope) => ({
99
- schemaVersion: 5,
114
+ schemaVersion: 6,
100
115
  clientRequestId: input.clientRequestId,
116
+ bindingId: input.bindingId,
101
117
  installationId: input.installationId,
102
- sessionId: input.sessionId,
103
- authorityEpoch: input.authorityEpoch,
104
118
  expectedGenerationVersion: input.expectedGenerationVersion,
105
119
  rotationMode: input.rotationMode,
106
120
  envelope
@@ -342,6 +356,83 @@ export function openCodexV5DeviceSession(input) {
342
356
  key.fill(0);
343
357
  }
344
358
  }
359
+ export function codexV6FullCredentialDeliveryAad(input) {
360
+ const delivery = input.delivery;
361
+ return Buffer.from(JSON.stringify({
362
+ schemaVersion: 6,
363
+ purpose: "REQUEST_DEVICE_FULL_DELIVERY",
364
+ tenant: required(input.tenantId, "tenantId"),
365
+ subject: required(input.subject, "subject"),
366
+ requestId: required(delivery.requestId, "requestId"),
367
+ bindingId: required(delivery.bindingId, "bindingId"),
368
+ installationId: required(delivery.installationId, "installationId"),
369
+ managedAccountId: required(delivery.managedAccountId, "managedAccountId"),
370
+ providerAccountId: required(delivery.providerAccountId, "providerAccountId"),
371
+ credentialLineageId: required(delivery.credentialLineageId, "credentialLineageId"),
372
+ generationVersion: positive(delivery.generationVersion, "generationVersion"),
373
+ deliveryId: required(delivery.id, "deliveryId"),
374
+ clientRequestId: required(delivery.clientRequestId, "clientRequestId"),
375
+ issuedAt: instant(delivery.issuedAt, "issuedAt"),
376
+ credentialExpiresAt: instant(delivery.credentialExpiresAt, "credentialExpiresAt"),
377
+ ackExpiresAt: instant(delivery.ackExpiresAt, "ackExpiresAt")
378
+ }), "utf8");
379
+ }
380
+ export function openCodexV6FullCredentialDelivery(input) {
381
+ const delivery = input.response.delivery;
382
+ if (input.privateKey.asymmetricKeyType !== "x25519" || delivery.envelope.version !== 1
383
+ || delivery.envelope.algorithm !== ALGORITHM) {
384
+ throw invalidEnvelope("The account service returned an unsupported v6 delivery envelope.");
385
+ }
386
+ const ephemeral = decodeBase64url(delivery.envelope.ephemeralPublicKey, 32, "Invalid v6 delivery public key.");
387
+ const salt = decodeBase64url(delivery.envelope.salt, 32, "Invalid v6 delivery salt.");
388
+ const nonce = decodeBase64url(delivery.envelope.nonce, 12, "Invalid v6 delivery nonce.");
389
+ const tag = decodeBase64url(delivery.envelope.authenticationTag, 16, "Invalid v6 delivery tag.");
390
+ const ciphertext = decodeBase64url(delivery.envelope.ciphertext, undefined, "Invalid v6 delivery ciphertext.");
391
+ const remote = createPublicKey({
392
+ key: { kty: "OKP", crv: "X25519", x: ephemeral.toString("base64url") }, format: "jwk"
393
+ });
394
+ const sharedSecret = diffieHellman({ privateKey: input.privateKey, publicKey: remote });
395
+ const key = Buffer.from(hkdfSync("sha256", sharedSecret, salt, Buffer.from(`${DELIVERY_KDF}${delivery.id}`, "utf8"), 32));
396
+ let plaintext;
397
+ const aad = codexV6FullCredentialDeliveryAad({
398
+ tenantId: input.tenantId, subject: input.subject, delivery
399
+ });
400
+ try {
401
+ const decipher = createDecipheriv("aes-256-gcm", key, nonce, { authTagLength: 16 });
402
+ decipher.setAAD(aad);
403
+ decipher.setAuthTag(tag);
404
+ plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
405
+ const parsed = CodexV6FullCredentialBundleSchema.safeParse(JSON.parse(plaintext.toString("utf8")));
406
+ if (!parsed.success)
407
+ throw invalidEnvelope("The account service returned an invalid v6 credential bundle.");
408
+ const bundle = parsed.data;
409
+ if (bundle.deliveryId !== delivery.id || bundle.requestId !== delivery.requestId
410
+ || bundle.bindingId !== delivery.bindingId || bundle.installationId !== delivery.installationId
411
+ || bundle.managedAccountId !== delivery.managedAccountId
412
+ || bundle.providerAccountId !== delivery.providerAccountId
413
+ || bundle.credentialLineageId !== delivery.credentialLineageId
414
+ || bundle.generationVersion !== delivery.generationVersion
415
+ || bundle.expiresAt !== delivery.credentialExpiresAt) {
416
+ throw invalidEnvelope("The v6 credential bundle does not match its device binding.");
417
+ }
418
+ if (Date.parse(bundle.expiresAt) <= (input.now ?? Date.now())
419
+ || Date.parse(delivery.ackExpiresAt) <= (input.now ?? Date.now())) {
420
+ throw new CodexServiceError("The v6 credential delivery has expired.", "request_device_delivery_expired");
421
+ }
422
+ return bundle;
423
+ }
424
+ catch (error) {
425
+ if (error instanceof CodexServiceError)
426
+ throw error;
427
+ throw invalidEnvelope("Unable to authenticate the v6 credential delivery.");
428
+ }
429
+ finally {
430
+ aad.fill(0);
431
+ plaintext?.fill(0);
432
+ sharedSecret.fill(0);
433
+ key.fill(0);
434
+ }
435
+ }
345
436
  function decodeBase64url(value, length, message) {
346
437
  if (!value || !BASE64URL.test(value))
347
438
  throw invalidEnvelope(message);
@@ -1 +1 @@
1
- {"version":3,"file":"managed-credential-v3-envelope.js","sourceRoot":"","sources":["../src/managed-credential-v3-envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-credential-v3-envelope.js","sourceRoot":"","sources":["../src/managed-credential-v3-envelope.ts"],"names":[],"mappings":"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"}
@@ -23,23 +23,6 @@ export declare function executeCodexTokenPoolV4Delivery(input: {
23
23
  newId?: () => string;
24
24
  now?: () => number;
25
25
  }): Promise<ManagedCodexV3EnrollmentResult>;
26
- export declare function executeManagedCodexV3Login(input: {
27
- client: V3Client;
28
- tenantId: string;
29
- env?: NodeJS.ProcessEnv;
30
- deviceAuth?: boolean;
31
- newId?: () => string;
32
- now?: () => number;
33
- wait?: (milliseconds: number) => Promise<void>;
34
- }): Promise<ManagedCodexV3EnrollmentResult>;
35
- export declare function executeManagedCodexV3Upload(input: {
36
- client: V3Client;
37
- tenantId: string;
38
- env?: NodeJS.ProcessEnv;
39
- newId?: () => string;
40
- now?: () => number;
41
- wait?: (milliseconds: number) => Promise<void>;
42
- }): Promise<ManagedCodexV3EnrollmentResult>;
43
26
  export declare function reconcilePendingManagedCodexV3Operation(input: {
44
27
  client: V3Client;
45
28
  tenantId: string;
@@ -1,16 +1,34 @@
1
1
  import { randomUUID } from "node:crypto";
2
- import { withOneShotCodexLogin } from "./enrollment-login.js";
3
2
  import { CodexServiceError } from "./errors.js";
4
- import { codexV3CredentialDigests, commitManagedCodexV3GenerationReport, installManagedCodexV3Credentials, markManagedCodexV3DeliveryAcknowledged, readManagedCodexV3State, withCurrentCodexFullCredentials, withManagedCodexV3CredentialObservation } from "./managed-credential-v3.js";
5
- import { createCodexV3DeliveryKeyPair, openCodexV3FullCredentialDelivery, sealCodexV3Enrollment, sealCodexV3GenerationReport } from "./managed-credential-v3-envelope.js";
6
- import { clearManagedCodexV3OperationJournal, clearManagedCodexV3ReportJournal, openManagedCodexV3DeliveryJournalKey, quarantineManagedCodexV3ReportJournal, readManagedCodexV3OperationJournal, readManagedCodexV3ReportJournal, replaceExpiredManagedCodexV3Delivery, replaceManagedCodexV3OperationWithDelivery, writeManagedCodexV3OperationJournal, writeManagedCodexV3ReportJournal, writeManagedCodexV4DeliveryJournal } from "./managed-credential-v3-journal.js";
3
+ import { codexV3CredentialDigests, commitManagedCodexV3GenerationReport, installManagedCodexV3Credentials, markManagedCodexV3DeliveryAcknowledged, readManagedCodexV3State, withManagedCodexV3CredentialObservation } from "./managed-credential-v3.js";
4
+ import { createCodexV3DeliveryKeyPair, openCodexV3FullCredentialDelivery, sealCodexV3GenerationReport } from "./managed-credential-v3-envelope.js";
5
+ import { clearManagedCodexV3OperationJournal, clearManagedCodexV3ReportJournal, openManagedCodexV3DeliveryJournalKey, quarantineManagedCodexV3ReportJournal, readManagedCodexV3OperationJournal, readManagedCodexV3ReportJournal, replaceExpiredManagedCodexV3Delivery, replaceManagedCodexV3OperationWithDelivery, writeManagedCodexV3ReportJournal, writeManagedCodexV4DeliveryJournal } from "./managed-credential-v3-journal.js";
7
6
  export async function executeCodexTokenPoolV4Delivery(input) {
8
7
  const newId = input.newId ?? randomUUID;
9
8
  const now = input.now ?? Date.now;
10
9
  const subject = await input.client.getCurrentActorSubject();
11
- const pending = await readManagedCodexV3OperationJournal(input.env);
10
+ let pending = await readManagedCodexV3OperationJournal(input.env);
12
11
  if (pending) {
13
- if (pending.kind !== "DELIVERY" || pending.tenantId !== input.tenantId
12
+ const replaced = pendingDeliveryWasReplaced(pending, {
13
+ tenantId: input.tenantId,
14
+ subject,
15
+ assignmentId: input.assignment.assignmentId,
16
+ managedAccountId: input.assignment.managedAccountId,
17
+ providerAccountId: input.assignment.providerAccountId,
18
+ lineageId: input.assignment.lineageId,
19
+ generationVersion: input.assignment.currentGenerationVersion
20
+ });
21
+ const alreadyInstalled = replaced && pending.kind === "DELIVERY"
22
+ ? deliveryJournalHasLocalInstall(pending, await readManagedCodexV3State(input.env))
23
+ : false;
24
+ if (replaced && !alreadyInstalled) {
25
+ // The assignment directory is authoritative and no credential from this
26
+ // journal has been installed. Retire only this exact pre-install request
27
+ // so the replacement lineage receives a fresh client key and ACK chain.
28
+ await clearManagedCodexV3OperationJournal(pending, input.env);
29
+ pending = undefined;
30
+ }
31
+ else if (pending.kind !== "DELIVERY" || pending.tenantId !== input.tenantId
14
32
  || pending.subject !== subject || pending.assignmentId !== input.assignment.assignmentId
15
33
  || pending.managedAccountId !== input.assignment.managedAccountId
16
34
  || pending.providerAccountId !== input.assignment.providerAccountId
@@ -18,14 +36,16 @@ export async function executeCodexTokenPoolV4Delivery(input) {
18
36
  || pending.generationVersion !== input.assignment.currentGenerationVersion) {
19
37
  throw new CodexServiceError("A different v4 credential delivery is already pending.", "managed_codex_v4_state_conflict", 409);
20
38
  }
21
- return completeDeliveryJournal({
22
- client: input.client,
23
- journal: pending,
24
- env: input.env,
25
- newId,
26
- now,
27
- enrollmentReplayed: true
28
- });
39
+ else {
40
+ return completeDeliveryJournal({
41
+ client: input.client,
42
+ journal: pending,
43
+ env: input.env,
44
+ newId,
45
+ now,
46
+ enrollmentReplayed: true
47
+ });
48
+ }
29
49
  }
30
50
  if (!input.assignment.deliveryEligible || input.assignment.authorityMode !== "SERVER_VALIDATING") {
31
51
  throw new CodexServiceError("The selected v4 token-pool assignment is not ready for first delivery.", "client_credential_lineage_not_ready", 409);
@@ -56,80 +76,6 @@ export async function executeCodexTokenPoolV4Delivery(input) {
56
76
  enrollmentReplayed: false
57
77
  });
58
78
  }
59
- export async function executeManagedCodexV3Login(input) {
60
- const resumed = await reconcilePendingManagedCodexV3Operation(input);
61
- if (resumed)
62
- return resumed;
63
- const configuration = await input.client.getV3EnrollmentConfiguration();
64
- const subject = await input.client.getCurrentActorSubject();
65
- return withOneShotCodexLogin({
66
- mode: input.deviceAuth ? "device" : "browser",
67
- env: input.env
68
- }, async (credentials) => {
69
- if (!credentials.providerAccountId) {
70
- throw new CodexServiceError("Official Codex login did not expose a provider account id.", "invalid_managed_codex_v3_credentials");
71
- }
72
- const accessPayload = credentials.accessToken.split(".")[1];
73
- const exp = accessPayload ? tokenExpiry(credentials.accessToken) : undefined;
74
- if (!exp)
75
- throw new CodexServiceError("Official Codex login did not expose a usable access-token expiry.", "invalid_managed_codex_v3_credentials");
76
- return executeManagedCodexV3Enrollment({
77
- ...input,
78
- configuration: configuration.ingress,
79
- subject,
80
- credentials: {
81
- refreshToken: credentials.refreshToken,
82
- accessToken: credentials.accessToken,
83
- idToken: credentials.idToken,
84
- providerAccountId: credentials.providerAccountId,
85
- expiresAt: new Date(exp).toISOString()
86
- }
87
- });
88
- });
89
- }
90
- export async function executeManagedCodexV3Upload(input) {
91
- const resumed = await reconcilePendingManagedCodexV3Operation(input);
92
- if (resumed)
93
- return resumed;
94
- const configuration = await input.client.getV3EnrollmentConfiguration();
95
- const subject = await input.client.getCurrentActorSubject();
96
- return withCurrentCodexFullCredentials(input.env ?? process.env, async (credentials) => executeManagedCodexV3Enrollment({
97
- ...input,
98
- configuration: configuration.ingress,
99
- subject,
100
- credentials
101
- }));
102
- }
103
- async function executeManagedCodexV3Enrollment(input) {
104
- const newId = input.newId ?? randomUUID;
105
- const now = input.now ?? Date.now;
106
- const clientRequestId = newId();
107
- const enrollmentKey = newId();
108
- const envelope = sealCodexV3Enrollment({
109
- tenantId: input.tenantId,
110
- subject: input.subject,
111
- clientRequestId,
112
- idempotencyKey: enrollmentKey,
113
- ingress: input.configuration,
114
- credentials: input.credentials
115
- });
116
- const timestamp = new Date(now()).toISOString();
117
- const journal = await writeManagedCodexV3OperationJournal({
118
- schemaVersion: 3,
119
- kind: "ENROLLMENT",
120
- tenantId: input.tenantId,
121
- subject: input.subject,
122
- clientRequestId,
123
- idempotencyKey: enrollmentKey,
124
- providerAccountId: input.credentials.providerAccountId,
125
- envelope,
126
- createdAt: timestamp,
127
- updatedAt: timestamp
128
- }, input.env);
129
- if (journal.kind !== "ENROLLMENT")
130
- throw new Error("Unexpected v3 operation journal.");
131
- return completeEnrollmentJournal({ ...input, journal });
132
- }
133
79
  async function completeEnrollmentJournal(input) {
134
80
  const newId = input.newId ?? randomUUID;
135
81
  const now = input.now ?? Date.now;
@@ -186,14 +132,27 @@ async function completeEnrollmentJournal(input) {
186
132
  async function completeDeliveryJournal(input) {
187
133
  const newId = input.newId ?? randomUUID;
188
134
  const now = input.now ?? Date.now;
189
- const delivery = await postResolveReplay({
190
- post: () => input.client.createV3FullCredentialDelivery(input.journal.assignmentId, {
191
- schemaVersion: 4,
192
- clientRequestId: input.journal.clientRequestId,
193
- clientKey: input.journal.clientKey
194
- }, input.journal.idempotencyKey),
195
- resolve: () => input.client.resolveV3FullCredentialDelivery(input.journal.assignmentId, input.journal.clientRequestId)
196
- });
135
+ const delivery = await (async () => {
136
+ try {
137
+ return await postResolveReplay({
138
+ post: () => input.client.createV3FullCredentialDelivery(input.journal.assignmentId, {
139
+ schemaVersion: 4,
140
+ clientRequestId: input.journal.clientRequestId,
141
+ clientKey: input.journal.clientKey
142
+ }, input.journal.idempotencyKey),
143
+ resolve: () => input.client.resolveV3FullCredentialDelivery(input.journal.assignmentId, input.journal.clientRequestId)
144
+ });
145
+ }
146
+ catch (error) {
147
+ if (credentialReauthenticationRequired(error)) {
148
+ // The Server made a deterministic decision that no credential was
149
+ // delivered. Retaining this request would replay the permanently
150
+ // rejected lineage after an administrator installs a replacement.
151
+ await clearManagedCodexV3OperationJournal(input.journal, input.env);
152
+ }
153
+ throw error;
154
+ }
155
+ })();
197
156
  let bundle;
198
157
  try {
199
158
  bundle = openCodexV3FullCredentialDelivery({
@@ -229,6 +188,15 @@ async function completeDeliveryJournal(input) {
229
188
  renewExpiredDelivery: false
230
189
  });
231
190
  }
191
+ if (deliveredLineageReplacedJournal(input.journal, delivery, bundle)
192
+ && !deliveryJournalHasLocalInstall(input.journal, await readManagedCodexV3State(input.env))) {
193
+ // Decryption authenticates the Server response, and the assignment/account
194
+ // tuple still matches. A changed lineage tuple therefore represents an
195
+ // administrator replacement, not an unknown mutation outcome. Nothing has
196
+ // been installed yet, so only the exact stale recovery journal is removed.
197
+ await clearManagedCodexV3OperationJournal(input.journal, input.env);
198
+ throw new CodexServiceError("The pending Codex delivery was replaced by a newer credential lineage; retry with the current assignment.", "managed_codex_v3_lineage_replaced", 409);
199
+ }
232
200
  if (bundle.providerAccountId !== input.journal.providerAccountId
233
201
  || bundle.lineageId !== input.journal.lineageId
234
202
  || bundle.managedAccountId !== input.journal.managedAccountId
@@ -312,9 +280,19 @@ export async function reconcilePendingManagedCodexV3Operation(input) {
312
280
  const journal = await readManagedCodexV3OperationJournal(input.env);
313
281
  if (!journal)
314
282
  return undefined;
315
- return journal.kind === "ENROLLMENT"
316
- ? completeEnrollmentJournal({ ...input, journal })
317
- : completeDeliveryJournal({ ...input, journal, enrollmentReplayed: true });
283
+ try {
284
+ return await (journal.kind === "ENROLLMENT"
285
+ ? completeEnrollmentJournal({ ...input, journal })
286
+ : completeDeliveryJournal({ ...input, journal, enrollmentReplayed: true }));
287
+ }
288
+ catch (error) {
289
+ if (error instanceof CodexServiceError
290
+ && error.code === "managed_codex_v3_lineage_replaced"
291
+ && error.status === 409) {
292
+ return undefined;
293
+ }
294
+ throw error;
295
+ }
318
296
  }
319
297
  async function resumePendingManagedCodexV3Ack(input) {
320
298
  const state = await readManagedCodexV3State(input.env);
@@ -611,17 +589,36 @@ function resultMayBeUnknown(error) {
611
589
  return error.status === undefined || error.status >= 500
612
590
  || error.code === "invalid_codex_service_response";
613
591
  }
614
- function tokenExpiry(token) {
615
- try {
616
- const payload = token.split(".")[1];
617
- if (!payload)
618
- return undefined;
619
- const value = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
620
- return typeof value.exp === "number" && Number.isFinite(value.exp) ? value.exp * 1_000 : undefined;
621
- }
622
- catch {
623
- return undefined;
624
- }
592
+ function credentialReauthenticationRequired(error) {
593
+ return error instanceof CodexServiceError && error.status === 409
594
+ && ["client_credential_expired", "codex_account_needs_reauth"].includes(error.code);
595
+ }
596
+ function pendingDeliveryWasReplaced(pending, current) {
597
+ return pending.kind === "DELIVERY"
598
+ && pending.tenantId === current.tenantId
599
+ && pending.subject === current.subject
600
+ && pending.assignmentId === current.assignmentId
601
+ && pending.managedAccountId === current.managedAccountId
602
+ && pending.providerAccountId === current.providerAccountId
603
+ && (pending.lineageId !== current.lineageId
604
+ || pending.generationVersion !== current.generationVersion);
605
+ }
606
+ function deliveredLineageReplacedJournal(journal, response, bundle) {
607
+ return response.delivery.assignmentId === journal.assignmentId
608
+ && bundle.managedAccountId === journal.managedAccountId
609
+ && bundle.providerAccountId === journal.providerAccountId
610
+ && (bundle.lineageId !== journal.lineageId
611
+ || bundle.generationVersion !== journal.generationVersion);
612
+ }
613
+ function deliveryJournalHasLocalInstall(journal, state) {
614
+ return state != null
615
+ && state.tenantId === journal.tenantId
616
+ && state.assignmentId === journal.assignmentId
617
+ && state.managedAccountId === journal.managedAccountId
618
+ && state.providerAccountId === journal.providerAccountId
619
+ && state.lineageId === journal.lineageId
620
+ && state.generationVersion === journal.generationVersion
621
+ && state.ackIdempotencyKey === journal.ackIdempotencyKey;
625
622
  }
626
623
  function errorCode(error) {
627
624
  return typeof error?.code === "string"