@tokensrc/codex 1.14.11 → 1.14.13

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.
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { CodexAuthController } from "./oidc.js";
2
- import { type CodexAdminAccountListResponse, type CodexAdminAssignmentDeleteResponse, type CodexAdminAssignmentListResponse, type CodexAdminAssignmentMutationResponse, type CodexAccountListResponse, type CodexAssignmentRetirementLocalDeleteAckInput, type CodexAssignmentRetirementLocalDeleteAckResponse, type CodexAssignmentRetirementPreflightResponse, type CodexCredentialVersionListResponse, type CodexEnrollmentHeartbeatInput, type CodexEnrollmentCandidateInput, type CodexEnrollmentCandidateResponse, type CodexEnrollmentIntentResponse, type CodexEnrollmentMutationInput, type CodexImportResult, type CodexLoginCredentialsResponse, type CodexManualRefreshResponse, type CodexMigrationLoginQueueResponse, type CodexShortLivedDeliveryAckInput, type CodexShortLivedDeliveryAckResponse, type CodexShortLivedDeliveryRequest, type CodexShortLivedDeliveryResponse, type CodexUserCredentialAssignmentListResponse, type CodexUploadBatch, type CodexV3CredentialAssignmentListResponse, type CodexV3EnrollmentConfiguration, type CodexV3EnrollmentInput, type CodexV3EnrollmentResponse, type CodexV3FullCredentialDeliveryAckInput, type CodexV3FullCredentialDeliveryAckResponse, type CodexV3FullCredentialDeliveryRequest, type CodexV3FullCredentialDeliveryResponse, type CodexV3GenerationReportInput, type CodexV3GenerationReportResponse, type CodexV4AccessObservationInput, type CodexV4AccessObservationResponse, type CodexTokenPoolV4AssignmentTarget, type CodexTokenPoolV4DirectoryResolveResponse, type CodexTokenPoolV4EnrollmentConfiguration, type CodexTokenPoolV4UploadInput, type CodexTokenPoolV4UploadResponse } from "./protocol.js";
2
+ import { type CodexAdminAccountListResponse, type CodexAdminAssignmentDeleteResponse, type CodexAdminAssignmentListResponse, type CodexAdminAssignmentMutationResponse, type CodexAccountListResponse, type CodexAssignmentRetirementLocalDeleteAckInput, type CodexAssignmentRetirementLocalDeleteAckResponse, type CodexAssignmentRetirementPreflightResponse, type CodexCredentialVersionListResponse, type CodexEnrollmentHeartbeatInput, type CodexEnrollmentCandidateInput, type CodexEnrollmentCandidateResponse, type CodexEnrollmentIntentResponse, type CodexEnrollmentMutationInput, type CodexImportResult, type CodexLoginCredentialsResponse, type CodexManualRefreshResponse, type CodexMigrationLoginQueueResponse, type CodexShortLivedDeliveryAckInput, type CodexShortLivedDeliveryAckResponse, type CodexShortLivedDeliveryRequest, type CodexShortLivedDeliveryResponse, type CodexUserCredentialAssignmentListResponse, type CodexUploadBatch, type CodexV3CredentialAssignmentListResponse, type CodexV3EnrollmentConfiguration, type CodexV3EnrollmentInput, type CodexV3EnrollmentResponse, type CodexV3FullCredentialDeliveryAckInput, type CodexV3FullCredentialDeliveryAckResponse, type CodexV3FullCredentialDeliveryRequest, type CodexV3FullCredentialDeliveryResponse, type CodexV3GenerationReportInput, type CodexV3GenerationReportResponse, type CodexV4AccessObservationInput, type CodexV4AccessObservationResponse, type CodexV5AcknowledgeDeviceSessionInput, type CodexV5AcknowledgeDeviceSessionResponse, type CodexV5CreateDeviceSessionInput, type CodexV5CreateDeviceSessionResponse, type CodexV5GenerationReportInput, type CodexV5GenerationReportResponse, type CodexV5HeartbeatDeviceSessionInput, type CodexV5HeartbeatDeviceSessionResponse, type CodexV5ReleaseDeviceSessionInput, type CodexV5ReleaseDeviceSessionResponse, type CodexTokenPoolV4AssignmentTarget, type CodexTokenPoolV4DirectoryResolveResponse, type CodexTokenPoolV4EnrollmentConfiguration, type CodexTokenPoolV4UploadInput, type CodexTokenPoolV4UploadResponse } from "./protocol.js";
3
3
  import type { ResolvedCodexConfig } from "./types.js";
4
4
  export declare function normalizeCodexServiceUrl(rawUrl: string, allowInsecureHttp?: boolean): string;
5
5
  export declare class CodexServiceClient {
@@ -29,6 +29,13 @@ export declare class CodexServiceClient {
29
29
  acknowledgeV3FullCredentialDelivery(deliveryId: string, input: CodexV3FullCredentialDeliveryAckInput, idempotencyKey: string): Promise<CodexV3FullCredentialDeliveryAckResponse>;
30
30
  reportV3Generation(lineageId: string, input: CodexV3GenerationReportInput, idempotencyKey: string): Promise<CodexV3GenerationReportResponse>;
31
31
  resolveV3GenerationReport(lineageId: string, expected: Pick<CodexV3GenerationReportInput, "clientRequestId" | "expectedGenerationVersion" | "rotationMode" | "accessTokenHealth" | "refreshTokenHealth" | "observedAt">): Promise<CodexV3GenerationReportResponse>;
32
+ createV5DeviceSession(assignmentId: string, input: CodexV5CreateDeviceSessionInput, idempotencyKey: string): Promise<CodexV5CreateDeviceSessionResponse>;
33
+ resolveV5DeviceSession(assignmentId: string, clientRequestId: string, installationId: string): Promise<CodexV5CreateDeviceSessionResponse>;
34
+ private requireV5Session;
35
+ acknowledgeV5DeviceSession(sessionId: string, input: CodexV5AcknowledgeDeviceSessionInput, idempotencyKey: string): Promise<CodexV5AcknowledgeDeviceSessionResponse>;
36
+ heartbeatV5DeviceSession(sessionId: string, input: CodexV5HeartbeatDeviceSessionInput): Promise<CodexV5HeartbeatDeviceSessionResponse>;
37
+ releaseV5DeviceSession(sessionId: string, input: CodexV5ReleaseDeviceSessionInput, idempotencyKey: string): Promise<CodexV5ReleaseDeviceSessionResponse>;
38
+ reportV5Generation(lineageId: string, input: CodexV5GenerationReportInput, idempotencyKey: string): Promise<CodexV5GenerationReportResponse>;
32
39
  observeV4AccessToken(lineageId: string, input: CodexV4AccessObservationInput): Promise<CodexV4AccessObservationResponse>;
33
40
  private requireV3Report;
34
41
  createShortLivedCredentialDelivery(assignmentId: string, input: CodexShortLivedDeliveryRequest, idempotencyKey: string): Promise<CodexShortLivedDeliveryResponse>;
package/dist/client.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { CodexAuthError, CodexLoginRequiredError, CodexServiceError } from "./errors.js";
2
- import { CODEX_ACCOUNTS_IMPORT_PATH, CODEX_ACCOUNTS_LIST_PATH, CodexAssignmentRetirementLocalDeleteAckInputSchema, CodexAssignmentRetirementLocalDeleteAckResponseSchema, CodexAssignmentRetirementPreflightResponseSchema, CODEX_ADMIN_ACCOUNTS_PATH, CODEX_ADMIN_ASSIGNMENTS_PATH, CODEX_CREDENTIAL_ASSIGNMENTS_PATH, CodexAdminAssignmentDeleteResponseSchema, CodexAdminAssignmentListResponseSchema, CodexAdminAssignmentMutationResponseSchema, CodexAdminAccountListResponseSchema, CodexAccountListResponseSchema, CodexCredentialVersionListResponseSchema, CodexEnrollmentHeartbeatInputSchema, CodexEnrollmentCandidateInputSchema, CodexEnrollmentCandidateResponseSchema, CodexEnrollmentIntentResponseSchema, CodexEnrollmentMutationInputSchema, CodexImportResultSchema, CodexLoginCredentialsResponseSchema, CodexManualRefreshResponseSchema, CodexMigrationLoginQueueResponseSchema, CodexShortLivedDeliveryAckInputSchema, CodexShortLivedDeliveryAckResponseSchema, CodexShortLivedDeliveryRequestSchema, CodexShortLivedDeliveryResponseSchema, CodexUserCredentialAssignmentListResponseSchema, CODEX_V3_CREDENTIAL_ASSIGNMENTS_PATH, CODEX_V3_ENROLLMENT_CONFIGURATION_PATH, CODEX_V3_ENROLLMENTS_PATH, CodexV3CredentialAssignmentListResponseSchema, CodexV3EnrollmentConfigurationSchema, CodexV3EnrollmentInputSchema, CodexV3EnrollmentResponseSchema, CodexV3FullCredentialDeliveryAckInputSchema, CodexV3FullCredentialDeliveryAckResponseSchema, CodexV3FullCredentialDeliveryRequestSchema, CodexV3FullCredentialDeliveryResponseSchema, CodexV3GenerationReportInputSchema, CodexV3GenerationReportResponseSchema, CodexV4AccessObservationInputSchema, CodexV4AccessObservationResponseSchema, CODEX_TOKEN_POOL_V4_ENROLLMENT_CONFIGURATION_PATH, CODEX_TOKEN_POOL_V4_UPLOADS_PATH, CodexTokenPoolV4DirectoryResolveResponseSchema, CodexTokenPoolV4EnrollmentConfigurationSchema, CodexTokenPoolV4IdempotencyKeySchema, CodexTokenPoolV4UploadInputSchema, CodexTokenPoolV4UploadResponseSchema, codexAccountLoginCredentialsPath, codexAssignmentRetirementLocalDeleteAckPath, codexAssignmentRetirementPath, codexAdminAssignmentPath, codexAdminCredentialVersionsPath, codexAdminEnrollmentIntentActionPath, codexAdminEnrollmentIntentPath, codexAdminMigrationLoginQueuePath, codexAdminRefreshPath, codexAssignmentShortLivedDeliveriesPath, codexShortLivedDeliveryAckPath, codexV3AssignmentFullCredentialDeliveriesPath, codexV3AssignmentFullCredentialDeliveryResolvePath, codexV3EnrollmentResolvePath, codexV3FullCredentialDeliveryAckPath, codexV3LineageGenerationReportResolvePath, codexV3LineageGenerationReportsPath, codexV4LineageAccessObservationPath, codexTokenPoolV4DirectoryResolvePath, codexTokenPoolV4UploadResolvePath } from "./protocol.js";
2
+ import { CODEX_ACCOUNTS_IMPORT_PATH, CODEX_ACCOUNTS_LIST_PATH, CodexAssignmentRetirementLocalDeleteAckInputSchema, CodexAssignmentRetirementLocalDeleteAckResponseSchema, CodexAssignmentRetirementPreflightResponseSchema, CODEX_ADMIN_ACCOUNTS_PATH, CODEX_ADMIN_ASSIGNMENTS_PATH, CODEX_CREDENTIAL_ASSIGNMENTS_PATH, CodexAdminAssignmentDeleteResponseSchema, CodexAdminAssignmentListResponseSchema, CodexAdminAssignmentMutationResponseSchema, CodexAdminAccountListResponseSchema, CodexAccountListResponseSchema, CodexCredentialVersionListResponseSchema, CodexEnrollmentHeartbeatInputSchema, CodexEnrollmentCandidateInputSchema, CodexEnrollmentCandidateResponseSchema, CodexEnrollmentIntentResponseSchema, CodexEnrollmentMutationInputSchema, CodexImportResultSchema, CodexLoginCredentialsResponseSchema, CodexManualRefreshResponseSchema, CodexMigrationLoginQueueResponseSchema, CodexShortLivedDeliveryAckInputSchema, CodexShortLivedDeliveryAckResponseSchema, CodexShortLivedDeliveryRequestSchema, CodexShortLivedDeliveryResponseSchema, CodexUserCredentialAssignmentListResponseSchema, CODEX_V3_CREDENTIAL_ASSIGNMENTS_PATH, CODEX_V3_ENROLLMENT_CONFIGURATION_PATH, CODEX_V3_ENROLLMENTS_PATH, CodexV3CredentialAssignmentListResponseSchema, CodexV3EnrollmentConfigurationSchema, CodexV3EnrollmentInputSchema, CodexV3EnrollmentResponseSchema, CodexV3FullCredentialDeliveryAckInputSchema, CodexV3FullCredentialDeliveryAckResponseSchema, CodexV3FullCredentialDeliveryRequestSchema, CodexV3FullCredentialDeliveryResponseSchema, CodexV3GenerationReportInputSchema, CodexV3GenerationReportResponseSchema, CodexV4AccessObservationInputSchema, CodexV4AccessObservationResponseSchema, CodexV5AcknowledgeDeviceSessionInputSchema, CodexV5AcknowledgeDeviceSessionResponseSchema, CodexV5CreateDeviceSessionInputSchema, CodexV5CreateDeviceSessionResponseSchema, CodexV5GenerationReportInputSchema, CodexV5GenerationReportResponseSchema, CodexV5HeartbeatDeviceSessionInputSchema, CodexV5HeartbeatDeviceSessionResponseSchema, CodexV5ReleaseDeviceSessionInputSchema, CodexV5ReleaseDeviceSessionResponseSchema, CODEX_TOKEN_POOL_V4_ENROLLMENT_CONFIGURATION_PATH, CODEX_TOKEN_POOL_V4_UPLOADS_PATH, CodexTokenPoolV4DirectoryResolveResponseSchema, CodexTokenPoolV4EnrollmentConfigurationSchema, CodexTokenPoolV4IdempotencyKeySchema, CodexTokenPoolV4UploadInputSchema, CodexTokenPoolV4UploadResponseSchema, codexAccountLoginCredentialsPath, codexAssignmentRetirementLocalDeleteAckPath, codexAssignmentRetirementPath, codexAdminAssignmentPath, codexAdminCredentialVersionsPath, codexAdminEnrollmentIntentActionPath, codexAdminEnrollmentIntentPath, codexAdminMigrationLoginQueuePath, codexAdminRefreshPath, codexAssignmentShortLivedDeliveriesPath, codexShortLivedDeliveryAckPath, codexV3AssignmentFullCredentialDeliveriesPath, codexV3AssignmentFullCredentialDeliveryResolvePath, codexV3EnrollmentResolvePath, codexV3FullCredentialDeliveryAckPath, codexV3LineageGenerationReportResolvePath, codexV3LineageGenerationReportsPath, codexV4LineageAccessObservationPath, codexV5AssignmentDeviceSessionResolvePath, codexV5AssignmentDeviceSessionsPath, codexV5DeviceSessionActionPath, codexV5LineageGenerationReportsPath, codexTokenPoolV4DirectoryResolvePath, codexTokenPoolV4UploadResolvePath } from "./protocol.js";
3
3
  export function normalizeCodexServiceUrl(rawUrl, allowInsecureHttp = false) {
4
4
  const url = new URL(rawUrl);
5
5
  const loopback = ["127.0.0.1", "localhost", "::1", "[::1]"].includes(url.hostname);
@@ -241,6 +241,76 @@ export class CodexServiceClient {
241
241
  const parsed = CodexV3GenerationReportResponseSchema.safeParse(await this.request(codexV3LineageGenerationReportResolvePath(lineageId, id)));
242
242
  return this.requireV3Report(parsed, lineageId, { ...expected, clientRequestId: id });
243
243
  }
244
+ async createV5DeviceSession(assignmentId, input, idempotencyKey) {
245
+ const body = CodexV5CreateDeviceSessionInputSchema.parse(input);
246
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
247
+ const parsed = CodexV5CreateDeviceSessionResponseSchema.safeParse(await this.request(codexV5AssignmentDeviceSessionsPath(assignmentId), { method: "POST", body, headers: { "Idempotency-Key": key }, timeoutMs: 45_000 }));
248
+ return this.requireV5Session(parsed, assignmentId, body.clientRequestId, body.installationId);
249
+ }
250
+ async resolveV5DeviceSession(assignmentId, clientRequestId, installationId) {
251
+ const request = CodexV5CreateDeviceSessionInputSchema.shape.clientRequestId.parse(clientRequestId);
252
+ const installation = CodexV5CreateDeviceSessionInputSchema.shape.installationId.parse(installationId);
253
+ const parsed = CodexV5CreateDeviceSessionResponseSchema.safeParse(await this.request(codexV5AssignmentDeviceSessionResolvePath(assignmentId, request)));
254
+ return this.requireV5Session(parsed, assignmentId, request, installation);
255
+ }
256
+ requireV5Session(parsed, assignmentId, clientRequestId, installationId) {
257
+ if (!parsed.success || parsed.data.session.assignmentId !== assignmentId
258
+ || parsed.data.session.clientRequestId !== clientRequestId
259
+ || parsed.data.session.installationId !== installationId) {
260
+ throw new CodexServiceError("Invalid or mismatched Codex v5 device-session response.", "invalid_codex_service_response");
261
+ }
262
+ return parsed.data;
263
+ }
264
+ async acknowledgeV5DeviceSession(sessionId, input, idempotencyKey) {
265
+ const body = CodexV5AcknowledgeDeviceSessionInputSchema.parse(input);
266
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
267
+ const parsed = CodexV5AcknowledgeDeviceSessionResponseSchema.safeParse(await this.request(codexV5DeviceSessionActionPath(sessionId, "ack"), { method: "POST", body, headers: { "Idempotency-Key": key } }));
268
+ if (!parsed.success || parsed.data.session.id !== sessionId
269
+ || parsed.data.session.installationId !== body.installationId
270
+ || parsed.data.session.lineageId !== body.lineageId
271
+ || parsed.data.session.generationVersion !== body.generationVersion) {
272
+ throw new CodexServiceError("Invalid or mismatched Codex v5 session ACK response.", "invalid_codex_service_response");
273
+ }
274
+ return parsed.data;
275
+ }
276
+ async heartbeatV5DeviceSession(sessionId, input) {
277
+ const body = CodexV5HeartbeatDeviceSessionInputSchema.parse(input);
278
+ const parsed = CodexV5HeartbeatDeviceSessionResponseSchema.safeParse(await this.request(codexV5DeviceSessionActionPath(sessionId, "heartbeat"), { method: "POST", body }));
279
+ if (!parsed.success || parsed.data.session.id !== sessionId
280
+ || parsed.data.session.installationId !== body.installationId
281
+ || parsed.data.session.authorityEpoch !== body.authorityEpoch) {
282
+ throw new CodexServiceError("Invalid or mismatched Codex v5 session heartbeat response.", "invalid_codex_service_response");
283
+ }
284
+ return parsed.data;
285
+ }
286
+ async releaseV5DeviceSession(sessionId, input, idempotencyKey) {
287
+ const body = CodexV5ReleaseDeviceSessionInputSchema.parse(input);
288
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
289
+ const parsed = CodexV5ReleaseDeviceSessionResponseSchema.safeParse(await this.request(codexV5DeviceSessionActionPath(sessionId, "release"), { method: "POST", body, headers: { "Idempotency-Key": key } }));
290
+ if (!parsed.success || parsed.data.session.id !== sessionId
291
+ || parsed.data.session.installationId !== body.installationId
292
+ || parsed.data.session.authorityEpoch !== body.authorityEpoch
293
+ || parsed.data.session.generationVersion !== body.expectedGenerationVersion) {
294
+ throw new CodexServiceError("Invalid or mismatched Codex v5 session release response.", "invalid_codex_service_response");
295
+ }
296
+ return parsed.data;
297
+ }
298
+ async reportV5Generation(lineageId, input, idempotencyKey) {
299
+ const body = CodexV5GenerationReportInputSchema.parse(input);
300
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
301
+ const parsed = CodexV5GenerationReportResponseSchema.safeParse(await this.request(codexV5LineageGenerationReportsPath(lineageId), { method: "POST", body, headers: { "Idempotency-Key": key }, timeoutMs: 45_000 }));
302
+ if (!parsed.success || parsed.data.report.lineageId !== lineageId
303
+ || parsed.data.report.clientRequestId !== body.clientRequestId
304
+ || parsed.data.report.sessionId !== body.sessionId
305
+ || parsed.data.report.installationId !== body.installationId
306
+ || parsed.data.report.authorityEpoch !== body.authorityEpoch
307
+ || parsed.data.report.previousGenerationVersion !== body.expectedGenerationVersion
308
+ || parsed.data.report.rotationMode !== body.rotationMode
309
+ || parsed.data.report.observedAt !== body.observedAt) {
310
+ throw new CodexServiceError("Invalid or mismatched Codex v5 generation report response.", "invalid_codex_service_response");
311
+ }
312
+ return parsed.data;
313
+ }
244
314
  async observeV4AccessToken(lineageId, input) {
245
315
  const body = CodexV4AccessObservationInputSchema.parse(input);
246
316
  const parsed = CodexV4AccessObservationResponseSchema.safeParse(await this.request(codexV4LineageAccessObservationPath(lineageId), { method: "PUT", body, timeoutMs: Math.min(this.config.connection.requestTimeoutMs, 2_000) }));
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/commands.js CHANGED
@@ -16,7 +16,8 @@ import { executeCodexTokenPoolV4Delivery, reconcilePendingManagedCodexV3Operatio
16
16
  import { resolveManagedCodexV3AssignmentTarget } from "./managed-credential-v3-assignment.js";
17
17
  import { executeCodexTokenPoolV4Login } from "./token-pool-v4-upload-flow.js";
18
18
  import { readManagedCodexV3State } from "./managed-credential-v3.js";
19
- import { profileAccountTokenPoolV4Enabled } from "./profile.js";
19
+ import { profileAccountTokenPoolV4Enabled, profileMultiDeviceCredentialSyncEnabled } from "./profile.js";
20
+ import { superviseCodexV5Credentials, synchronizeCodexV5SelectionOnce } from "./multi-device-v5-flow.js";
20
21
  import { executeCodexAssignmentRetirementLocalDelete } from "./retirement-flow.js";
21
22
  import { clearCodexSelection, loadCodexSelection, rememberCodexSelectionProviderAccount, saveCodexSelection } from "./selection.js";
22
23
  import { installCodexShortcuts, removeCodexShortcuts } from "./shortcuts.js";
@@ -65,6 +66,9 @@ function schemaV2LifecycleEnabled(config) {
65
66
  function accountTokenPoolV4Enabled(config) {
66
67
  return profileAccountTokenPoolV4Enabled(config.profile);
67
68
  }
69
+ function multiDeviceCredentialSyncEnabled(config) {
70
+ return profileMultiDeviceCredentialSyncEnabled(config.profile);
71
+ }
68
72
  function codexConfigPathForEnv(env) {
69
73
  const codexHome = env.CODEX_HOME?.trim();
70
74
  return codexHome ? join(codexHome, "config.toml") : undefined;
@@ -79,6 +83,36 @@ function assignmentCredentialStatus(assignment) {
79
83
  return "AVAILABLE";
80
84
  return ["NEEDS_REAUTH", "LOST", "DIVERGED", "COMPROMISED"].includes(assignment.lineageStatus ?? "") ? "NEEDS_REAUTH" : "TEMPORARILY_UNAVAILABLE";
81
85
  }
86
+ function v4AssignmentMatchesLocalState(assignment, state) {
87
+ return state?.phase === "INSTALLED" && state.authorityMode === "CLIENT_MANAGED"
88
+ && assignment.assignmentId === state.assignmentId
89
+ && assignment.managedAccountId === state.managedAccountId
90
+ && assignment.providerAccountId === state.providerAccountId
91
+ && assignment.lineageId === state.lineageId
92
+ && assignment.currentGenerationVersion === state.generationVersion
93
+ && assignment.authorityMode === "CLIENT_MANAGED";
94
+ }
95
+ function v4AssignmentPreference(assignment, state, allowReplacement) {
96
+ if (v4AssignmentMatchesLocalState(assignment, state))
97
+ return 4;
98
+ if (allowReplacement
99
+ && assignment.deliveryEligible && assignment.authorityMode === "SERVER_VALIDATING")
100
+ return 3;
101
+ if (assignment.authorityMode === "CLIENT_MANAGED")
102
+ return 2;
103
+ return 1;
104
+ }
105
+ function preferredV4Assignments(assignments, state, allowReplacement = false) {
106
+ const preferred = new Map();
107
+ for (const assignment of assignments) {
108
+ const current = preferred.get(assignment.assignmentId);
109
+ if (!current || v4AssignmentPreference(assignment, state, allowReplacement)
110
+ > v4AssignmentPreference(current, state, allowReplacement)) {
111
+ preferred.set(assignment.assignmentId, assignment);
112
+ }
113
+ }
114
+ return preferred;
115
+ }
82
116
  function serviceConnection(options = {}) {
83
117
  return {
84
118
  ...(options.server ? { serverUrl: options.server } : {}),
@@ -112,30 +146,47 @@ function formatAdminAccount(account) {
112
146
  providerAccountId: account.providerAccountId
113
147
  })} (${account.id})`;
114
148
  }
115
- async function loadAccountData(deps, options = {}) {
149
+ async function loadAccountData(deps, options = {}, allowV4Replacement = false) {
116
150
  const previous = await loadCodexSelection(deps.config.persistence.configDirectory);
117
151
  if (accountTokenPoolV4Enabled(deps.config)) {
118
152
  const v3Assignments = await deps.clientFor(serviceConnection(options)).listV3CredentialAssignments();
119
- const accounts = v3Assignments.items.map((assignment) => ({
120
- id: assignment.managedAccountId,
121
- accountId: assignment.assignmentId,
122
- label: assignment.label,
123
- isDefault: previous?.account.distributionMode === "CLIENT_MANAGED_V4"
124
- && previous.account.assignmentId === assignment.assignmentId,
125
- accessExpiresAt: Date.parse(assignment.credentialExpiresAt),
126
- credentialStatus: assignment.lineageStatus === "NEEDS_REAUTH"
127
- || assignment.refreshTokenHealth === "REJECTED"
128
- ? "NEEDS_REAUTH"
129
- : assignment.deliveryEligible || assignment.authorityMode === "CLIENT_MANAGED"
130
- ? "AVAILABLE" : "TEMPORARILY_UNAVAILABLE",
131
- lineageStatus: assignment.lineageStatus === "STALE" ? "SYNC_LAGGING" : assignment.lineageStatus,
132
- quota: assignment.quota ?? null
133
- }));
153
+ const state = await readManagedCodexV3State(deps.env);
154
+ const preferredV3Assignments = preferredV4Assignments(v3Assignments.items, state, allowV4Replacement);
155
+ const multiDevice = multiDeviceCredentialSyncEnabled(deps.config);
156
+ const accounts = [...preferredV3Assignments.values()].map((assignment) => {
157
+ const locallyManaged = v4AssignmentMatchesLocalState(assignment, state);
158
+ const replacementCandidate = assignment.deliveryEligible
159
+ && assignment.authorityMode === "SERVER_VALIDATING"
160
+ && v3Assignments.items.some((item) => item.assignmentId === assignment.assignmentId
161
+ && item.lineageId !== assignment.lineageId
162
+ && item.authorityMode === "CLIENT_MANAGED");
163
+ return {
164
+ id: assignment.managedAccountId,
165
+ accountId: assignment.assignmentId,
166
+ label: assignment.label,
167
+ isDefault: previous?.account.distributionMode === "CLIENT_MANAGED_V4"
168
+ && previous.account.assignmentId === assignment.assignmentId,
169
+ accessExpiresAt: Date.parse(assignment.credentialExpiresAt),
170
+ credentialStatus: assignment.lineageStatus === "NEEDS_REAUTH"
171
+ || assignment.refreshTokenHealth === "REJECTED"
172
+ ? "NEEDS_REAUTH"
173
+ : locallyManaged || multiDevice && assignment.authorityMode === "CLIENT_MANAGED"
174
+ || assignment.deliveryEligible
175
+ && (allowV4Replacement || !replacementCandidate)
176
+ ? "AVAILABLE" : "TEMPORARILY_UNAVAILABLE",
177
+ lineageStatus: assignment.authorityMode === "CLIENT_MANAGED" && !locallyManaged
178
+ ? multiDevice && assignment.lineageStatus !== "STALE"
179
+ ? assignment.lineageStatus : "SYNC_LAGGING"
180
+ : assignment.lineageStatus === "STALE" ? "SYNC_LAGGING" : assignment.lineageStatus,
181
+ quota: assignment.quota ?? null
182
+ };
183
+ });
134
184
  return {
135
185
  response: { schemaVersion: CODEX_DISTRIBUTION_SCHEMA_VERSION, accounts,
136
186
  defaultAccountId: previous?.account.managedAccountId ?? null },
137
187
  selectedAccountId: previous?.account.managedAccountId,
138
- v3Assignments
188
+ v3Assignments,
189
+ preferredV3Assignments
139
190
  };
140
191
  }
141
192
  if (deps.config.profile?.userBoundRefreshTokens?.delivery === true) {
@@ -168,8 +219,8 @@ async function loadAccountData(deps, options = {}) {
168
219
  selectedAccountId: previous?.account.id ?? response.defaultAccountId ?? undefined
169
220
  };
170
221
  }
171
- async function chooseAccount(deps, requested, options = {}, persistSelection = true) {
172
- const data = await loadAccountData(deps, options);
222
+ async function chooseAccount(deps, requested, options = {}, persistSelection = true, allowV4Replacement = false) {
223
+ const data = await loadAccountData(deps, options, allowV4Replacement);
173
224
  const { response, selectedAccountId } = data;
174
225
  const previous = await loadCodexSelection(deps.config.persistence.configDirectory);
175
226
  const cli = deps.config.branding.cliName === "numa"
@@ -192,7 +243,7 @@ async function chooseAccount(deps, requested, options = {}, persistSelection = t
192
243
  && previous?.account.assignmentId === assignment.assignmentId
193
244
  ? previous.account.providerAccountId
194
245
  : undefined;
195
- const v3Assignment = data.v3Assignments?.items.find((item) => item.managedAccountId === account.id && item.assignmentId === account.accountId);
246
+ const v3Assignment = data.preferredV3Assignments?.get(account.accountId);
196
247
  const selectionInput = {
197
248
  serviceUrl: options.server ?? deps.config.connection.serverUrl,
198
249
  allowInsecurePoc: Boolean(options.insecurePoc || options.insecureHttp || deps.config.connection.allowInsecureHttp),
@@ -238,7 +289,7 @@ async function persistInstalledSelection(deps, installed) {
238
289
  });
239
290
  return { ...installed, selection };
240
291
  }
241
- async function installCredentials(deps, selection, service) {
292
+ async function installCredentials(deps, selection, service, allowV4Replacement = false) {
242
293
  const client = deps.clientFor(service);
243
294
  await cleanupLegacyCodexProvider(codexConfigPathForEnv(deps.env));
244
295
  if (accountTokenPoolV4Enabled(deps.config)) {
@@ -255,13 +306,24 @@ async function installCredentials(deps, selection, service) {
255
306
  // Recovery may ACK or renew a previous delivery and therefore advance the
256
307
  // Server assignment tuple. Always fetch a fresh snapshot afterwards.
257
308
  const assignments = await client.listV3CredentialAssignments();
258
- const assignment = assignments.items.find((item) => item.assignmentId === selection.account.assignmentId
309
+ const state = await readManagedCodexV3State(deps.env);
310
+ const candidates = assignments.items.filter((item) => item.assignmentId === selection.account.assignmentId
259
311
  && item.managedAccountId === selection.account.managedAccountId
260
312
  && item.providerAccountId === selection.account.providerAccountId);
313
+ const assignment = preferredV4Assignments(candidates, state, allowV4Replacement).get(selection.account.assignmentId);
261
314
  if (!assignment) {
262
315
  throw new CodexServiceError("The v4 token-pool assignment is no longer active.", "codex_assignment_not_found", 404);
263
316
  }
264
- const state = await readManagedCodexV3State(deps.env);
317
+ if (multiDeviceCredentialSyncEnabled(deps.config)
318
+ && assignment.authorityMode === "CLIENT_MANAGED") {
319
+ const synced = await synchronizeCodexV5SelectionOnce({
320
+ client,
321
+ tenantId: deps.config.connection.tenantId,
322
+ assignment,
323
+ env: deps.env
324
+ });
325
+ return { expiresAt: Date.parse(synced.credentialExpiresAt), selection };
326
+ }
265
327
  if (state?.phase === "INSTALLED" && state.authorityMode === "CLIENT_MANAGED"
266
328
  && selection.account.assignmentId === state.assignmentId
267
329
  && selection.account.managedAccountId === state.managedAccountId
@@ -351,6 +413,28 @@ async function selectedCredentials(deps, requested, options = {}) {
351
413
  });
352
414
  return { selection, expiresAt: Date.parse(recovered.credentialExpiresAt) };
353
415
  }
416
+ if (multiDeviceCredentialSyncEnabled(deps.config)) {
417
+ const staged = (await chooseAccount(deps, requested, options, false)).selection;
418
+ const assignments = await client.listV3CredentialAssignments();
419
+ const localState = await readManagedCodexV3State(deps.env);
420
+ const candidates = assignments.items.filter((item) => item.assignmentId === staged.account.assignmentId
421
+ && item.managedAccountId === staged.account.managedAccountId
422
+ && item.providerAccountId === staged.account.providerAccountId);
423
+ const assignment = preferredV4Assignments(candidates, localState)
424
+ .get(staged.account.assignmentId ?? "");
425
+ if (!assignment) {
426
+ throw new CodexServiceError("The selected v5 assignment is no longer active.", "codex_assignment_not_found", 404);
427
+ }
428
+ if (assignment.authorityMode !== "CLIENT_MANAGED") {
429
+ return persistInstalledSelection(deps, await installCredentials(deps, staged, serviceConnection(options)));
430
+ }
431
+ const selection = await saveCodexSelection(deps.config.persistence.configDirectory, {
432
+ serviceUrl: staged.serviceUrl,
433
+ allowInsecurePoc: staged.allowInsecurePoc,
434
+ account: staged.account
435
+ });
436
+ return { selection, expiresAt: Date.parse(assignment.credentialExpiresAt) };
437
+ }
354
438
  const state = await readManagedCodexV3State(deps.env);
355
439
  if (!state || state.phase !== "INSTALLED" || state.authorityMode !== "CLIENT_MANAGED") {
356
440
  const selection = (await chooseAccount(deps, requested, options, false)).selection;
@@ -454,6 +538,31 @@ async function selectedCredentials(deps, requested, options = {}) {
454
538
  return { selection, expiresAt: local.expiresAt };
455
539
  }
456
540
  async function launchWithSelectedCredentials(deps, selected, launch) {
541
+ if (multiDeviceCredentialSyncEnabled(deps.config)) {
542
+ const client = deps.clientFor({
543
+ serverUrl: selected.selection.serviceUrl,
544
+ allowInsecureHttp: selected.selection.allowInsecurePoc
545
+ });
546
+ const account = selected.selection.account;
547
+ if (account.distributionMode !== "CLIENT_MANAGED_V4" || !account.assignmentId
548
+ || !account.managedAccountId || !account.providerAccountId) {
549
+ throw new CodexServiceError("The selected account is not a v5-capable assignment.", "codex_assignment_not_found", 404);
550
+ }
551
+ const assignments = await client.listV3CredentialAssignments();
552
+ const assignment = assignments.items.find((item) => item.assignmentId === account.assignmentId
553
+ && item.managedAccountId === account.managedAccountId
554
+ && item.providerAccountId === account.providerAccountId
555
+ && item.authorityMode === "CLIENT_MANAGED");
556
+ if (!assignment)
557
+ throw new CodexServiceError("The selected assignment is not ready for a fenced v5 device session.", "client_credential_assignment_not_found", 404);
558
+ return superviseCodexV5Credentials({
559
+ client,
560
+ tenantId: deps.config.connection.tenantId,
561
+ assignment,
562
+ env: deps.env,
563
+ launch: (signal) => launch(signal)
564
+ });
565
+ }
457
566
  if (accountTokenPoolV4Enabled(deps.config)) {
458
567
  try {
459
568
  return await launch();
@@ -573,10 +682,13 @@ export function registerCodexCommands(program, deps, options = {}) {
573
682
  }
574
683
  });
575
684
  serviceOptions(codex.command("use [account]").description("Select an account and update the official Codex auth.json"))
685
+ .option("--takeover", "explicitly replace a v4 credential active on another host")
576
686
  .action(async (account, opts, command) => {
577
687
  const v4 = accountTokenPoolV4Enabled(deps.config);
578
- const result = await chooseAccount(deps, account, opts, !v4);
579
- const installed = await installCredentials(deps, result.selection, serviceConnection(opts));
688
+ if (opts.takeover && !v4)
689
+ throw new CodexServiceError("Credential takeover requires the v4 token-pool capability.", "codex_token_pool_v4_not_enabled", 409);
690
+ const result = await chooseAccount(deps, account, opts, !v4, Boolean(opts.takeover));
691
+ const installed = await installCredentials(deps, result.selection, serviceConnection(opts), Boolean(opts.takeover));
580
692
  if (v4)
581
693
  await persistInstalledSelection(deps, installed);
582
694
  if (await json(command, deps))