@tokensrc/codex 1.13.4 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +79 -3
  2. package/dist/client.d.ts +29 -1
  3. package/dist/client.js +221 -2
  4. package/dist/client.js.map +1 -1
  5. package/dist/command-directory.d.ts +1 -0
  6. package/dist/command-directory.js +3 -2
  7. package/dist/command-directory.js.map +1 -1
  8. package/dist/commands.d.ts +8 -2
  9. package/dist/commands.js +567 -40
  10. package/dist/commands.js.map +1 -1
  11. package/dist/console-status.js +1 -1
  12. package/dist/console-status.js.map +1 -1
  13. package/dist/credential-supervisor.d.ts +17 -0
  14. package/dist/credential-supervisor.js +84 -0
  15. package/dist/credential-supervisor.js.map +1 -0
  16. package/dist/credentials.d.ts +75 -3
  17. package/dist/credentials.js +357 -12
  18. package/dist/credentials.js.map +1 -1
  19. package/dist/enrollment-envelope.d.ts +18 -0
  20. package/dist/enrollment-envelope.js +112 -0
  21. package/dist/enrollment-envelope.js.map +1 -0
  22. package/dist/enrollment-flow.d.ts +27 -0
  23. package/dist/enrollment-flow.js +224 -0
  24. package/dist/enrollment-flow.js.map +1 -0
  25. package/dist/enrollment-login.d.ts +26 -0
  26. package/dist/enrollment-login.js +104 -0
  27. package/dist/enrollment-login.js.map +1 -0
  28. package/dist/index.d.ts +13 -0
  29. package/dist/index.js +17 -3
  30. package/dist/index.js.map +1 -1
  31. package/dist/managed-credential-v3-envelope.d.ts +60 -0
  32. package/dist/managed-credential-v3-envelope.js +234 -0
  33. package/dist/managed-credential-v3-envelope.js.map +1 -0
  34. package/dist/managed-credential-v3-flow.d.ts +45 -0
  35. package/dist/managed-credential-v3-flow.js +499 -0
  36. package/dist/managed-credential-v3-flow.js.map +1 -0
  37. package/dist/managed-credential-v3-journal.d.ts +192 -0
  38. package/dist/managed-credential-v3-journal.js +153 -0
  39. package/dist/managed-credential-v3-journal.js.map +1 -0
  40. package/dist/managed-credential-v3.d.ts +117 -0
  41. package/dist/managed-credential-v3.js +423 -0
  42. package/dist/managed-credential-v3.js.map +1 -0
  43. package/dist/migration-login-batch.d.ts +66 -0
  44. package/dist/migration-login-batch.js +202 -0
  45. package/dist/migration-login-batch.js.map +1 -0
  46. package/dist/private-file.d.ts +10 -0
  47. package/dist/private-file.js +77 -2
  48. package/dist/private-file.js.map +1 -1
  49. package/dist/profile.d.ts +10 -0
  50. package/dist/profile.js +55 -2
  51. package/dist/profile.js.map +1 -1
  52. package/dist/protocol.d.ts +1070 -0
  53. package/dist/protocol.js +560 -0
  54. package/dist/protocol.js.map +1 -1
  55. package/dist/retirement-flow.d.ts +38 -0
  56. package/dist/retirement-flow.js +78 -0
  57. package/dist/retirement-flow.js.map +1 -0
  58. package/dist/runtime.d.ts +4 -1
  59. package/dist/runtime.js +29 -4
  60. package/dist/runtime.js.map +1 -1
  61. package/dist/selection.d.ts +10 -1
  62. package/dist/selection.js +38 -2
  63. package/dist/selection.js.map +1 -1
  64. package/dist/short-lived-delivery-flow.d.ts +41 -0
  65. package/dist/short-lived-delivery-flow.js +141 -0
  66. package/dist/short-lived-delivery-flow.js.map +1 -0
  67. package/dist/short-lived-delivery-journal.d.ts +34 -0
  68. package/dist/short-lived-delivery-journal.js +137 -0
  69. package/dist/short-lived-delivery-journal.js.map +1 -0
  70. package/dist/short-lived-delivery.d.ts +26 -0
  71. package/dist/short-lived-delivery.js +139 -0
  72. package/dist/short-lived-delivery.js.map +1 -0
  73. package/dist/tui.js +23 -0
  74. package/dist/tui.js.map +1 -1
  75. package/dist/types.d.ts +6 -2
  76. package/package.json +2 -2
package/README.md CHANGED
@@ -11,7 +11,7 @@ npx @tokensrc/codex run
11
11
  ```
12
12
 
13
13
  The standalone command tree includes `login`, `logout`, `list`, `upload`, `use`,
14
- `run`, `app`, `auth-agent`, `admin`, `shortcut`, `status`, and `reset`. The
14
+ `run`, `app`, `auth-agent`, `enrollment`, `admin`, `shortcut`, `status`, and `reset`. The
15
15
  `admin accounts` subtree lists tenant accounts, shows redacted credential-version
16
16
  diagnostics, and requests one server-side refresh; it never receives refresh
17
17
  tokens, ciphertext, or credential fingerprints. `admin assignments` lists
@@ -27,6 +27,81 @@ numa codex admin assignments bind acct_xxx keycloak-subject --default
27
27
  numa codex admin assignments unbind assignment_xxx
28
28
  ```
29
29
 
30
+ Tenant administrators complete a server-created account discovery or assignment
31
+ enrollment with one isolated official Codex login:
32
+
33
+ ```sh
34
+ numa codex enrollment status intent_xxx
35
+ numa codex enrollment login intent_xxx
36
+ numa codex enrollment login intent_xxx --device-auth
37
+ numa codex enrollment login-batch migration_plan_xxx --dry-run
38
+ numa codex enrollment login-batch migration_plan_xxx
39
+ numa codex enrollment cancel intent_xxx
40
+ numa codex retirement acknowledge retirement_xxx
41
+ ```
42
+
43
+ `enrollment login` refuses to start until the service advertises encrypted
44
+ candidate ingress. It claims the intent, maintains its heartbeat, runs the
45
+ official login in a temporary `CODEX_HOME`, and uploads only an authenticated
46
+ X25519/AES-GCM refresh-token envelope bound to the tenant, intent, revision, and
47
+ idempotency key. Provider account identity and access/ID tokens are not accepted
48
+ by the upload contract, and the temporary login directory is removed afterward.
49
+ Transport failures and HTTP 5xx responses replay the exact same encrypted body,
50
+ intent revision, and idempotency key a bounded number of times. A Server-confirmed
51
+ `TEMPORARILY_UNAVAILABLE` result is different: while the same isolated login still
52
+ holds the credential, Numa may follow the returned revision and create the next
53
+ idempotent candidate attempt. If the final upload result remains uncertain, Numa
54
+ reads only intent metadata and refuses a new login or upload key until the Server
55
+ reports a terminal result.
56
+
57
+ `enrollment login-batch` is available only when discovery advertises
58
+ `migrationPlans: true` and the Bearer principal has the tenant-admin role. It
59
+ pages the Server-owned queue, executes `LOGIN`/`AWAITING_CLI` targets one at a
60
+ time, and reloads the plan after every target. A response-lost `CLAIMED` or
61
+ `LOGIN_IN_PROGRESS` target is resumed only after the Server proves that the
62
+ current Bearer is the same claimant; another claimant is never taken over.
63
+ Other `VIEW_ENROLLMENT`, completed, paused, and cancelled work is reported
64
+ without starting another official login.
65
+ `--dry-run` emits the same redacted ordering without generating credentials. The
66
+ advertised verified minimum of two parallel lineages is evidence, not a maximum;
67
+ the CLI still obeys `sequentialRequired: true` and never creates a local RT pool.
68
+
69
+ When the discovered profile advertises `delivery: true`, `use`, `run`, `app`,
70
+ and `auth-agent` resolve the caller's schema-v2 credential Assignment; they fail
71
+ closed instead of falling back to the schema-v1 account list. The Server remains
72
+ the only owner and refresh executor for the real OpenAI refresh token. Before an
73
+ issue request, Numa writes a mode-`0600` private recovery journal containing the
74
+ client delivery key and issue idempotency key. A lost response or crash in the
75
+ `INSTALLING` phase therefore replays the same request instead of creating another
76
+ delivery. Numa decrypts only access/ID tokens, installs them under a local file
77
+ lock with an atomic `fsync` + rename, and writes a random, upstream-unusable
78
+ placeholder in the `auth.json` refresh-token field. It then ACKs the installed
79
+ lineage generation and securely removes the private issue journal. The remaining
80
+ lineage and ACK recovery metadata contains no credential material.
81
+ Schema-v2 install, reset, and retirement also delete any old full
82
+ `auth.json.numa-backup` instead of retaining or restoring a legacy real refresh
83
+ token. Once delivery has been observed, profile caching treats it as sticky and
84
+ will not downgrade to schema v1 during a discovery failure.
85
+
86
+ When either `delivery` or `migrationPlans` is enabled, the legacy RT-pool
87
+ mutations (`upload`, administrator refresh, assignment bind/unbind, and
88
+ `auth-agent --restore`) fail with
89
+ `schema_v2_legacy_management_disabled`; they never silently call schema-v1.
90
+
91
+ `run` and `app` automatically supervise delivery while their official Codex child
92
+ process remains alive. They request renewal only inside the Server's final
93
+ 60-second safety window, stop supervision on child exit, and terminate the child
94
+ with a visible error if renewal fails. `auth-agent` remains available as an
95
+ explicit foreground diagnostic. Schema-v1 short-lived delivery remains available
96
+ only for tenants whose discovered profile has not enabled the v2 capability.
97
+
98
+ `retirement acknowledge` only removes the exact locally managed
99
+ Assignment/lineage/generation recorded by Numa. It writes a Secret-free local
100
+ tombstone before deleting `auth.json`. Before deletion it reads the Server
101
+ retirement, verifies the Assignment and exact disclosed lineage/version target,
102
+ then uses the current revision to append evidence. The ACK is not device identity and
103
+ does not bypass the natural expiry of any other disclosed short-lived token.
104
+
30
105
  The client connects to
31
106
  `X-Tenant-Id: numa-realm`. With `--server` and `--tenant-id` it resolves RFC 9728
32
107
  protected-resource metadata, the tenant client-configuration, and OIDC discovery
@@ -72,8 +147,9 @@ can customize branding and launcher behavior. Injected access tokens and provide
72
147
  results remain in memory and are never persisted or included in log messages. A
73
148
  provider is forcibly refreshed once after HTTP 401; a second failure is returned
74
149
  without another retry. Numa and standalone OIDC settings delegate to the shared
75
- `@numa-tech/cli-auth` lifecycle, which serializes refresh-token rotation across
76
- processes. A rejected refresh grant becomes `login_required`; standalone users
150
+ `@numa-tech/cli-auth` lifecycle, which serializes the Keycloak OIDC session's
151
+ refresh-token rotation across processes. This is separate from the Server-owned
152
+ OpenAI credential lineage. A rejected identity refresh grant becomes `login_required`; standalone users
77
153
  are directed to `tokensrc-codex login`, while transient identity-provider errors
78
154
  retain the cached session.
79
155
 
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 CodexCredentialVersionListResponse, type CodexImportResult, type CodexLoginCredentialsResponse, type CodexManualRefreshResponse, type CodexUploadBatch } 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 } 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 {
@@ -9,8 +9,26 @@ export declare class CodexServiceClient {
9
9
  private readonly baseUrl;
10
10
  get serviceUrl(): string;
11
11
  constructor(config: ResolvedCodexConfig, auth: CodexAuthController, fetchImpl?: typeof fetch);
12
+ getCurrentActorSubject(): Promise<string>;
12
13
  private request;
13
14
  listAccounts(): Promise<CodexAccountListResponse>;
15
+ listCredentialAssignments(): Promise<CodexUserCredentialAssignmentListResponse>;
16
+ getV3EnrollmentConfiguration(): Promise<CodexV3EnrollmentConfiguration>;
17
+ createV3Enrollment(input: CodexV3EnrollmentInput, idempotencyKey: string): Promise<CodexV3EnrollmentResponse>;
18
+ resolveV3Enrollment(clientRequestId: string): Promise<CodexV3EnrollmentResponse>;
19
+ private requireV3Enrollment;
20
+ listV3CredentialAssignments(): Promise<CodexV3CredentialAssignmentListResponse>;
21
+ createV3FullCredentialDelivery(assignmentId: string, input: CodexV3FullCredentialDeliveryRequest, idempotencyKey: string): Promise<CodexV3FullCredentialDeliveryResponse>;
22
+ resolveV3FullCredentialDelivery(assignmentId: string, clientRequestId: string): Promise<CodexV3FullCredentialDeliveryResponse>;
23
+ private requireV3Delivery;
24
+ acknowledgeV3FullCredentialDelivery(deliveryId: string, input: CodexV3FullCredentialDeliveryAckInput, idempotencyKey: string): Promise<CodexV3FullCredentialDeliveryAckResponse>;
25
+ reportV3Generation(lineageId: string, input: CodexV3GenerationReportInput, idempotencyKey: string): Promise<CodexV3GenerationReportResponse>;
26
+ resolveV3GenerationReport(lineageId: string, expected: Pick<CodexV3GenerationReportInput, "clientRequestId" | "expectedGenerationVersion" | "rotationMode" | "accessTokenHealth" | "refreshTokenHealth" | "observedAt">): Promise<CodexV3GenerationReportResponse>;
27
+ private requireV3Report;
28
+ createShortLivedCredentialDelivery(assignmentId: string, input: CodexShortLivedDeliveryRequest, idempotencyKey: string): Promise<CodexShortLivedDeliveryResponse>;
29
+ acknowledgeShortLivedCredentialDelivery(deliveryId: string, input: CodexShortLivedDeliveryAckInput, idempotencyKey: string): Promise<CodexShortLivedDeliveryAckResponse>;
30
+ acknowledgeAssignmentRetirementLocalDelete(retirementId: string, input: CodexAssignmentRetirementLocalDeleteAckInput, idempotencyKey: string): Promise<CodexAssignmentRetirementLocalDeleteAckResponse>;
31
+ getAssignmentRetirement(retirementId: string): Promise<CodexAssignmentRetirementPreflightResponse>;
14
32
  getLoginCredentials(accountId: string): Promise<CodexLoginCredentialsResponse>;
15
33
  uploadAccounts(payload: CodexUploadBatch): Promise<CodexImportResult>;
16
34
  listAdminAccounts(): Promise<CodexAdminAccountListResponse>;
@@ -23,5 +41,15 @@ export declare class CodexServiceClient {
23
41
  isDefault: boolean;
24
42
  }): Promise<CodexAdminAssignmentMutationResponse>;
25
43
  unbindAdminAssignment(assignmentId: string): Promise<CodexAdminAssignmentDeleteResponse>;
44
+ getEnrollmentIntent(intentId: string): Promise<CodexEnrollmentIntentResponse>;
45
+ listMigrationLoginQueue(planId: string, query?: {
46
+ page?: number;
47
+ pageSize?: number;
48
+ }): Promise<CodexMigrationLoginQueueResponse>;
49
+ claimEnrollmentIntent(intentId: string, input: CodexEnrollmentMutationInput): Promise<CodexEnrollmentIntentResponse>;
50
+ heartbeatEnrollmentIntent(intentId: string, input: CodexEnrollmentHeartbeatInput): Promise<CodexEnrollmentIntentResponse>;
51
+ cancelEnrollmentIntent(intentId: string, input: CodexEnrollmentMutationInput): Promise<CodexEnrollmentIntentResponse>;
52
+ uploadEnrollmentCandidate(intentId: string, input: CodexEnrollmentCandidateInput, idempotencyKey: string): Promise<CodexEnrollmentCandidateResponse>;
53
+ private mutateEnrollmentIntent;
26
54
  }
27
55
  export declare function codexImportRequestTimeoutMs(baseTimeoutMs: number, accountCount: number): number;
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, CODEX_ADMIN_ACCOUNTS_PATH, CODEX_ADMIN_ASSIGNMENTS_PATH, CodexAdminAssignmentDeleteResponseSchema, CodexAdminAssignmentListResponseSchema, CodexAdminAssignmentMutationResponseSchema, CodexAdminAccountListResponseSchema, CodexAccountListResponseSchema, CodexCredentialVersionListResponseSchema, CodexImportResultSchema, CodexLoginCredentialsResponseSchema, CodexManualRefreshResponseSchema, codexAccountLoginCredentialsPath, codexAdminAssignmentPath, codexAdminCredentialVersionsPath, codexAdminRefreshPath } 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, codexAccountLoginCredentialsPath, codexAssignmentRetirementLocalDeleteAckPath, codexAssignmentRetirementPath, codexAdminAssignmentPath, codexAdminCredentialVersionsPath, codexAdminEnrollmentIntentActionPath, codexAdminEnrollmentIntentPath, codexAdminMigrationLoginQueuePath, codexAdminRefreshPath, codexAssignmentShortLivedDeliveriesPath, codexShortLivedDeliveryAckPath, codexV3AssignmentFullCredentialDeliveriesPath, codexV3AssignmentFullCredentialDeliveryResolvePath, codexV3EnrollmentResolvePath, codexV3FullCredentialDeliveryAckPath, codexV3LineageGenerationReportResolvePath, codexV3LineageGenerationReportsPath } 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);
@@ -39,13 +39,32 @@ export class CodexServiceClient {
39
39
  this.fetchImpl = fetchImpl;
40
40
  this.baseUrl = normalizeCodexServiceUrl(config.connection.serverUrl, config.connection.allowInsecureHttp);
41
41
  }
42
+ async getCurrentActorSubject() {
43
+ const token = await this.auth.getAccessToken(false);
44
+ const payload = token.split(".")[1];
45
+ if (!payload) {
46
+ throw new CodexServiceError("Authenticated platform token has no subject.", "invalid_configuration");
47
+ }
48
+ try {
49
+ const decoded = JSON.parse(Buffer.from(payload, "base64url").toString("utf8"));
50
+ if (typeof decoded.sub !== "string" || decoded.sub !== decoded.sub.trim()
51
+ || decoded.sub.length < 1 || decoded.sub.length > 255) {
52
+ throw new Error("invalid subject");
53
+ }
54
+ return decoded.sub;
55
+ }
56
+ catch (error) {
57
+ throw new CodexServiceError("Authenticated platform token has no usable subject.", "invalid_configuration", undefined, { cause: error });
58
+ }
59
+ }
42
60
  async request(path, request) {
43
61
  const send = async (forceRefresh) => {
44
62
  const token = await this.auth.getAccessToken(forceRefresh);
45
63
  const headers = new Headers({
46
64
  Accept: "application/json",
47
65
  Authorization: `Bearer ${token}`,
48
- [this.config.connection.tenantHeaderName]: this.config.connection.tenantId
66
+ [this.config.connection.tenantHeaderName]: this.config.connection.tenantId,
67
+ ...(request?.headers ?? {})
49
68
  });
50
69
  if (request?.body !== undefined)
51
70
  headers.set("Content-Type", "application/json");
@@ -101,6 +120,149 @@ export class CodexServiceClient {
101
120
  }
102
121
  return parsed.data;
103
122
  }
123
+ async listCredentialAssignments() {
124
+ const parsed = CodexUserCredentialAssignmentListResponseSchema.safeParse(await this.request(CODEX_CREDENTIAL_ASSIGNMENTS_PATH));
125
+ if (!parsed.success) {
126
+ throw new CodexServiceError("Invalid Codex credential assignment list response.", "invalid_codex_service_response");
127
+ }
128
+ return parsed.data;
129
+ }
130
+ async getV3EnrollmentConfiguration() {
131
+ const parsed = CodexV3EnrollmentConfigurationSchema.safeParse(await this.request(CODEX_V3_ENROLLMENT_CONFIGURATION_PATH));
132
+ if (!parsed.success) {
133
+ throw new CodexServiceError("Invalid Codex v3 enrollment configuration.", "invalid_codex_service_response");
134
+ }
135
+ return parsed.data;
136
+ }
137
+ async createV3Enrollment(input, idempotencyKey) {
138
+ const body = CodexV3EnrollmentInputSchema.parse(input);
139
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
140
+ const parsed = CodexV3EnrollmentResponseSchema.safeParse(await this.request(CODEX_V3_ENROLLMENTS_PATH, {
141
+ method: "POST",
142
+ body,
143
+ headers: { "Idempotency-Key": key },
144
+ timeoutMs: Math.max(this.config.connection.requestTimeoutMs, 45_000)
145
+ }));
146
+ return this.requireV3Enrollment(parsed, body.clientRequestId);
147
+ }
148
+ async resolveV3Enrollment(clientRequestId) {
149
+ const id = CodexV3EnrollmentInputSchema.shape.clientRequestId.parse(clientRequestId);
150
+ const parsed = CodexV3EnrollmentResponseSchema.safeParse(await this.request(codexV3EnrollmentResolvePath(id)));
151
+ return this.requireV3Enrollment(parsed, id);
152
+ }
153
+ requireV3Enrollment(parsed, clientRequestId) {
154
+ if (!parsed.success || parsed.data.enrollment.clientRequestId !== clientRequestId) {
155
+ throw new CodexServiceError("Invalid or mismatched Codex v3 enrollment response.", "invalid_codex_service_response");
156
+ }
157
+ return parsed.data;
158
+ }
159
+ async listV3CredentialAssignments() {
160
+ const parsed = CodexV3CredentialAssignmentListResponseSchema.safeParse(await this.request(CODEX_V3_CREDENTIAL_ASSIGNMENTS_PATH));
161
+ if (!parsed.success) {
162
+ throw new CodexServiceError("Invalid Codex v3 credential assignments response.", "invalid_codex_service_response");
163
+ }
164
+ return parsed.data;
165
+ }
166
+ async createV3FullCredentialDelivery(assignmentId, input, idempotencyKey) {
167
+ const body = CodexV3FullCredentialDeliveryRequestSchema.parse(input);
168
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
169
+ const parsed = CodexV3FullCredentialDeliveryResponseSchema.safeParse(await this.request(codexV3AssignmentFullCredentialDeliveriesPath(assignmentId), { method: "POST", body, headers: { "Idempotency-Key": key }, timeoutMs: 45_000 }));
170
+ return this.requireV3Delivery(parsed, assignmentId, body.clientRequestId);
171
+ }
172
+ async resolveV3FullCredentialDelivery(assignmentId, clientRequestId) {
173
+ const id = CodexV3FullCredentialDeliveryRequestSchema.shape.clientRequestId.parse(clientRequestId);
174
+ const parsed = CodexV3FullCredentialDeliveryResponseSchema.safeParse(await this.request(codexV3AssignmentFullCredentialDeliveryResolvePath(assignmentId, id)));
175
+ return this.requireV3Delivery(parsed, assignmentId, id);
176
+ }
177
+ requireV3Delivery(parsed, assignmentId, clientRequestId) {
178
+ if (!parsed.success || parsed.data.delivery.assignmentId !== assignmentId
179
+ || parsed.data.delivery.clientRequestId !== clientRequestId) {
180
+ throw new CodexServiceError("Invalid or mismatched Codex v3 full delivery response.", "invalid_codex_service_response");
181
+ }
182
+ return parsed.data;
183
+ }
184
+ async acknowledgeV3FullCredentialDelivery(deliveryId, input, idempotencyKey) {
185
+ const body = CodexV3FullCredentialDeliveryAckInputSchema.parse(input);
186
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
187
+ const parsed = CodexV3FullCredentialDeliveryAckResponseSchema.safeParse(await this.request(codexV3FullCredentialDeliveryAckPath(deliveryId), { method: "POST", body, headers: { "Idempotency-Key": key } }));
188
+ if (!parsed.success || parsed.data.delivery.id !== deliveryId
189
+ || parsed.data.delivery.generationVersion !== body.generationVersion) {
190
+ throw new CodexServiceError("Invalid or mismatched Codex v3 delivery ACK response.", "invalid_codex_service_response");
191
+ }
192
+ return parsed.data;
193
+ }
194
+ async reportV3Generation(lineageId, input, idempotencyKey) {
195
+ const body = CodexV3GenerationReportInputSchema.parse(input);
196
+ const key = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
197
+ const parsed = CodexV3GenerationReportResponseSchema.safeParse(await this.request(codexV3LineageGenerationReportsPath(lineageId), { method: "POST", body, headers: { "Idempotency-Key": key }, timeoutMs: 45_000 }));
198
+ return this.requireV3Report(parsed, lineageId, body);
199
+ }
200
+ async resolveV3GenerationReport(lineageId, expected) {
201
+ const id = CodexV3GenerationReportInputSchema.shape.clientRequestId.parse(expected.clientRequestId);
202
+ const parsed = CodexV3GenerationReportResponseSchema.safeParse(await this.request(codexV3LineageGenerationReportResolvePath(lineageId, id)));
203
+ return this.requireV3Report(parsed, lineageId, { ...expected, clientRequestId: id });
204
+ }
205
+ requireV3Report(parsed, lineageId, expected) {
206
+ if (!parsed.success || parsed.data.report.lineageId !== lineageId
207
+ || parsed.data.report.clientRequestId !== expected.clientRequestId
208
+ || parsed.data.report.previousGenerationVersion !== expected.expectedGenerationVersion
209
+ || parsed.data.report.rotationMode !== expected.rotationMode
210
+ || parsed.data.report.accessTokenHealth !== expected.accessTokenHealth
211
+ || parsed.data.report.refreshTokenHealth !== expected.refreshTokenHealth
212
+ || parsed.data.report.observedAt !== expected.observedAt) {
213
+ throw new CodexServiceError("Invalid or mismatched Codex v3 generation report response.", "invalid_codex_service_response");
214
+ }
215
+ return parsed.data;
216
+ }
217
+ async createShortLivedCredentialDelivery(assignmentId, input, idempotencyKey) {
218
+ const body = CodexShortLivedDeliveryRequestSchema.parse(input);
219
+ const idempotency = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
220
+ const parsed = CodexShortLivedDeliveryResponseSchema.safeParse(await this.request(codexAssignmentShortLivedDeliveriesPath(assignmentId), {
221
+ method: "POST",
222
+ body,
223
+ headers: { "Idempotency-Key": idempotency },
224
+ timeoutMs: Math.max(this.config.connection.requestTimeoutMs, 45_000)
225
+ }));
226
+ if (!parsed.success || parsed.data.delivery.assignmentId !== assignmentId) {
227
+ throw new CodexServiceError("Invalid or mismatched Codex short-lived credential delivery response.", "invalid_codex_service_response");
228
+ }
229
+ return parsed.data;
230
+ }
231
+ async acknowledgeShortLivedCredentialDelivery(deliveryId, input, idempotencyKey) {
232
+ const body = CodexShortLivedDeliveryAckInputSchema.parse(input);
233
+ const idempotency = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
234
+ const parsed = CodexShortLivedDeliveryAckResponseSchema.safeParse(await this.request(codexShortLivedDeliveryAckPath(deliveryId), {
235
+ method: "POST",
236
+ body,
237
+ headers: { "Idempotency-Key": idempotency }
238
+ }));
239
+ if (!parsed.success || parsed.data.delivery.id !== deliveryId
240
+ || parsed.data.delivery.lineageId !== input.lineageId
241
+ || parsed.data.delivery.generationVersion !== input.generationVersion) {
242
+ throw new CodexServiceError("Invalid or mismatched Codex short-lived credential ACK response.", "invalid_codex_service_response");
243
+ }
244
+ return parsed.data;
245
+ }
246
+ async acknowledgeAssignmentRetirementLocalDelete(retirementId, input, idempotencyKey) {
247
+ const body = CodexAssignmentRetirementLocalDeleteAckInputSchema.parse(input);
248
+ const idempotency = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
249
+ const parsed = CodexAssignmentRetirementLocalDeleteAckResponseSchema.safeParse(await this.request(codexAssignmentRetirementLocalDeleteAckPath(retirementId), {
250
+ method: "POST",
251
+ body,
252
+ headers: { "Idempotency-Key": idempotency }
253
+ }));
254
+ if (!parsed.success || parsed.data.retirement.id !== retirementId) {
255
+ throw new CodexServiceError("Invalid or mismatched Codex assignment retirement response.", "invalid_codex_service_response");
256
+ }
257
+ return parsed.data;
258
+ }
259
+ async getAssignmentRetirement(retirementId) {
260
+ const parsed = CodexAssignmentRetirementPreflightResponseSchema.safeParse(await this.request(codexAssignmentRetirementPath(retirementId)));
261
+ if (!parsed.success || parsed.data.retirement.id !== retirementId) {
262
+ throw new CodexServiceError("Invalid or mismatched Codex assignment retirement preflight response.", "invalid_codex_service_response");
263
+ }
264
+ return parsed.data;
265
+ }
104
266
  async getLoginCredentials(accountId) {
105
267
  const parsed = CodexLoginCredentialsResponseSchema.safeParse(await this.request(codexAccountLoginCredentialsPath(accountId)));
106
268
  if (!parsed.success || parsed.data.account.id !== accountId) {
@@ -169,6 +331,63 @@ export class CodexServiceClient {
169
331
  }
170
332
  return parsed.data;
171
333
  }
334
+ async getEnrollmentIntent(intentId) {
335
+ const parsed = CodexEnrollmentIntentResponseSchema.safeParse(await this.request(codexAdminEnrollmentIntentPath(intentId)));
336
+ if (!parsed.success || parsed.data.intent.id !== intentId) {
337
+ throw new CodexServiceError("Invalid or mismatched Codex enrollment intent response.", "invalid_codex_service_response");
338
+ }
339
+ return parsed.data;
340
+ }
341
+ async listMigrationLoginQueue(planId, query = {}) {
342
+ const page = query.page ?? 1;
343
+ const pageSize = query.pageSize ?? 100;
344
+ if (!Number.isInteger(page) || page < 1 || page > 1_000_000
345
+ || !Number.isInteger(pageSize) || pageSize < 1 || pageSize > 100) {
346
+ throw new CodexServiceError("Invalid migration login queue page.", "invalid_configuration");
347
+ }
348
+ const parsed = CodexMigrationLoginQueueResponseSchema.safeParse(await this.request(codexAdminMigrationLoginQueuePath(planId, { page, pageSize })));
349
+ if (!parsed.success || parsed.data.plan.id !== planId
350
+ || parsed.data.page !== page || parsed.data.pageSize !== pageSize) {
351
+ throw new CodexServiceError("Invalid or mismatched Codex migration login queue response.", "invalid_codex_service_response");
352
+ }
353
+ return parsed.data;
354
+ }
355
+ async claimEnrollmentIntent(intentId, input) {
356
+ const body = CodexEnrollmentMutationInputSchema.parse(input);
357
+ return this.mutateEnrollmentIntent(intentId, "claim", body);
358
+ }
359
+ async heartbeatEnrollmentIntent(intentId, input) {
360
+ const body = CodexEnrollmentHeartbeatInputSchema.parse(input);
361
+ return this.mutateEnrollmentIntent(intentId, "heartbeat", body);
362
+ }
363
+ async cancelEnrollmentIntent(intentId, input) {
364
+ const body = CodexEnrollmentMutationInputSchema.parse(input);
365
+ return this.mutateEnrollmentIntent(intentId, "cancel", body);
366
+ }
367
+ async uploadEnrollmentCandidate(intentId, input, idempotencyKey) {
368
+ const body = CodexEnrollmentCandidateInputSchema.parse(input);
369
+ const idempotency = CodexEnrollmentMutationInputSchema.shape.idempotencyKey.parse(idempotencyKey);
370
+ const parsed = CodexEnrollmentCandidateResponseSchema.safeParse(await this.request(codexAdminEnrollmentIntentActionPath(intentId, "candidate"), {
371
+ method: "POST",
372
+ body,
373
+ headers: { "Idempotency-Key": idempotency },
374
+ timeoutMs: Math.max(this.config.connection.requestTimeoutMs, 45_000)
375
+ }));
376
+ if (!parsed.success || parsed.data.intent.id !== intentId) {
377
+ throw new CodexServiceError("Invalid or mismatched Codex enrollment candidate response.", "invalid_codex_service_response");
378
+ }
379
+ return parsed.data;
380
+ }
381
+ async mutateEnrollmentIntent(intentId, action, body) {
382
+ const parsed = CodexEnrollmentIntentResponseSchema.safeParse(await this.request(codexAdminEnrollmentIntentActionPath(intentId, action), {
383
+ method: "POST",
384
+ body
385
+ }));
386
+ if (!parsed.success || parsed.data.intent.id !== intentId) {
387
+ throw new CodexServiceError("Invalid or mismatched Codex enrollment intent response.", "invalid_codex_service_response");
388
+ }
389
+ return parsed.data;
390
+ }
172
391
  }
173
392
  export function codexImportRequestTimeoutMs(baseTimeoutMs, accountCount) {
174
393
  const validationWaves = Math.max(1, Math.ceil(accountCount / 8));
@@ -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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"}
@@ -6,6 +6,7 @@ export interface CodexCommandDescriptor {
6
6
  access: "public" | "authenticated";
7
7
  examples: string[];
8
8
  standaloneOnly?: boolean;
9
+ nestedOnly?: boolean;
9
10
  }
10
11
  export declare function createCodexCommandDirectory(options?: {
11
12
  nested?: boolean;
@@ -1,8 +1,9 @@
1
1
  const definitions = [
2
2
  { name: "login", description: "Log in to the standalone OIDC provider", command: "login", summary: "登录独立 Codex CLI", access: "public", examples: ["tokensrc-codex login"], standaloneOnly: true },
3
+ { name: "login", description: "Enroll and install client-managed official Codex credentials", command: "codex login", summary: "隔离登录官方 Codex,自动完成 v3 托管注册、完整凭据安装与 ACK", access: "authenticated", examples: ["numa codex login", "numa codex login --device-auth"], nestedOnly: true },
3
4
  { name: "logout", description: "Remove the standalone OIDC token cache", command: "logout", summary: "退出独立 Codex CLI", access: "public", examples: ["tokensrc-codex logout"], standaloneOnly: true },
4
5
  { name: "list", description: "List available Codex accounts", command: "codex list [-u|--server <url>]", summary: "列出服务端 Codex 账号元数据,不传输 refresh token", access: "authenticated", examples: ["numa codex list --server https://platform.example/api"] },
5
- { name: "upload", description: "Upload the local codex-multi-auth account pool", command: "codex upload [-u|--server <url>]", summary: " codex-multi-auth 管理的本地账号池批量上传到平台", access: "authenticated", examples: ["numa codex upload --server https://platform.example/api", "numa codex upload --storage ~/.codex/multi-auth/openai-codex-accounts.json"] },
6
+ { name: "upload", description: "Enroll the official Codex login or upload the legacy local pool", command: "codex upload [-u|--server <url>]", summary: "v3 读取官方 CODEX_HOME/auth.json 完整凭据并完成托管安装;旧 profile 保持批量池上传", access: "authenticated", examples: ["numa codex upload --server https://platform.example/api", "numa codex upload --storage ~/.codex/multi-auth/openai-codex-accounts.json"] },
6
7
  { name: "use", description: "Select an account and install official Codex credentials", command: "codex use [account]", summary: "选择服务端账号并写入官方 ChatGPT auth.json", access: "authenticated", examples: ["numa codex use acct_xxx"] },
7
8
  { name: "run", description: "Launch the official Codex CLI", command: "codex run [-s|--select-account|-a|--account <id>] [-u|--server <url>] [--] [codexArgs...]", summary: "选择或复用 ChatGPT 账号后启动官方 Codex;模型流量不经过宿主", access: "authenticated", examples: ["numa codex run -s", "numa codex run --account acct_xxx", "numa codex run -- exec \"完成长任务\""] },
8
9
  { name: "app", description: "Launch the official Codex desktop app", command: "codex app [workspace] [-s|--select-account|-a|--account <id>] [-u|--server <url>]", summary: "检查批准版本并使用官方 ChatGPT 登录启动 macOS/Windows Codex 桌面 App", access: "authenticated", examples: ["numa codex app . -s", "numa codex app . --account acct_xxx"] },
@@ -16,7 +17,7 @@ export function createCodexCommandDirectory(options = {}) {
16
17
  const nested = options.nested ?? false;
17
18
  const cliName = options.cliName ?? (nested ? "numa" : "tokensrc-codex");
18
19
  return definitions
19
- .filter((item) => !nested || !item.standaloneOnly)
20
+ .filter((item) => nested ? !item.standaloneOnly : !item.nestedOnly)
20
21
  .map((item) => ({
21
22
  ...item,
22
23
  command: nested ? item.command : item.command.replace(/^codex\s+/u, ""),
@@ -1 +1 @@
1
- {"version":3,"file":"command-directory.js","sourceRoot":"","sources":["../src/command-directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-directory.js","sourceRoot":"","sources":["../src/command-directory.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,19 @@ export interface CodexCommandDependencies {
12
12
  allowInsecureHttp?: boolean;
13
13
  }): CodexServiceClient;
14
14
  status: CodexStatusLoader;
15
- run(args: string[]): Promise<number>;
16
- app(workspace?: string): Promise<number>;
15
+ run(args: string[], options?: {
16
+ signal?: AbortSignal;
17
+ }): Promise<number>;
18
+ app(workspace?: string, options?: {
19
+ signal?: AbortSignal;
20
+ }): Promise<number>;
17
21
  output: NodeJS.WritableStream;
18
22
  errorOutput: NodeJS.WritableStream;
23
+ env: NodeJS.ProcessEnv;
19
24
  jsonEnabled?: (command: Command) => boolean | Promise<boolean>;
20
25
  }
21
26
  export declare const NO_AVAILABLE_CHATGPT_ACCOUNT_MESSAGE = "\u5F53\u524D\u7528\u6237\u6CA1\u6709\u7ED1\u5B9A\u53EF\u7528\u7684 ChatGPT \u8D26\u53F7\u3002\u8BF7\u524D\u5F80 OA \u7CFB\u7EDF\u63D0\u4EA4 IT11 \u5DE5\u5355\uFF0C\u7533\u8BF7\u72EC\u4EAB\u6216\u5171\u4EAB\u7684 ChatGPT \u4E2A\u4EBA\u8D26\u53F7\u3002";
27
+ export declare function effectiveCodexCredentialRefreshBefore(requestedMs: number, serverManagedShortLived: boolean): number;
22
28
  export declare function registerCodexCommands(program: Command, deps: CodexCommandDependencies, options?: {
23
29
  nested?: boolean;
24
30
  includeAuthCommands?: boolean;