@tokensrc/codex 1.13.5 → 1.14.1
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/README.md +79 -3
- package/dist/client.d.ts +29 -1
- package/dist/client.js +221 -2
- package/dist/client.js.map +1 -1
- package/dist/command-directory.d.ts +1 -0
- package/dist/command-directory.js +3 -2
- package/dist/command-directory.js.map +1 -1
- package/dist/commands.d.ts +8 -2
- package/dist/commands.js +567 -40
- package/dist/commands.js.map +1 -1
- package/dist/console-status.js +1 -1
- package/dist/console-status.js.map +1 -1
- package/dist/credential-supervisor.d.ts +17 -0
- package/dist/credential-supervisor.js +84 -0
- package/dist/credential-supervisor.js.map +1 -0
- package/dist/credentials.d.ts +75 -3
- package/dist/credentials.js +357 -12
- package/dist/credentials.js.map +1 -1
- package/dist/enrollment-envelope.d.ts +18 -0
- package/dist/enrollment-envelope.js +112 -0
- package/dist/enrollment-envelope.js.map +1 -0
- package/dist/enrollment-flow.d.ts +27 -0
- package/dist/enrollment-flow.js +224 -0
- package/dist/enrollment-flow.js.map +1 -0
- package/dist/enrollment-login.d.ts +26 -0
- package/dist/enrollment-login.js +104 -0
- package/dist/enrollment-login.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/managed-credential-v3-envelope.d.ts +60 -0
- package/dist/managed-credential-v3-envelope.js +234 -0
- package/dist/managed-credential-v3-envelope.js.map +1 -0
- package/dist/managed-credential-v3-flow.d.ts +45 -0
- package/dist/managed-credential-v3-flow.js +499 -0
- package/dist/managed-credential-v3-flow.js.map +1 -0
- package/dist/managed-credential-v3-journal.d.ts +192 -0
- package/dist/managed-credential-v3-journal.js +153 -0
- package/dist/managed-credential-v3-journal.js.map +1 -0
- package/dist/managed-credential-v3.d.ts +117 -0
- package/dist/managed-credential-v3.js +423 -0
- package/dist/managed-credential-v3.js.map +1 -0
- package/dist/migration-login-batch.d.ts +66 -0
- package/dist/migration-login-batch.js +202 -0
- package/dist/migration-login-batch.js.map +1 -0
- package/dist/private-file.d.ts +10 -0
- package/dist/private-file.js +77 -2
- package/dist/private-file.js.map +1 -1
- package/dist/profile.d.ts +10 -0
- package/dist/profile.js +55 -2
- package/dist/profile.js.map +1 -1
- package/dist/protocol.d.ts +1070 -0
- package/dist/protocol.js +560 -0
- package/dist/protocol.js.map +1 -1
- package/dist/retirement-flow.d.ts +38 -0
- package/dist/retirement-flow.js +78 -0
- package/dist/retirement-flow.js.map +1 -0
- package/dist/runtime.d.ts +4 -1
- package/dist/runtime.js +29 -4
- package/dist/runtime.js.map +1 -1
- package/dist/selection.d.ts +10 -1
- package/dist/selection.js +38 -2
- package/dist/selection.js.map +1 -1
- package/dist/short-lived-delivery-flow.d.ts +41 -0
- package/dist/short-lived-delivery-flow.js +141 -0
- package/dist/short-lived-delivery-flow.js.map +1 -0
- package/dist/short-lived-delivery-journal.d.ts +34 -0
- package/dist/short-lived-delivery-journal.js +137 -0
- package/dist/short-lived-delivery-journal.js.map +1 -0
- package/dist/short-lived-delivery.d.ts +26 -0
- package/dist/short-lived-delivery.js +139 -0
- package/dist/short-lived-delivery.js.map +1 -0
- package/dist/tui.js +23 -0
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +6 -2
- 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
|
|
76
|
-
processes.
|
|
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));
|
package/dist/client.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -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: "
|
|
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) =>
|
|
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":"
|
|
1
|
+
{"version":3,"file":"command-directory.js","sourceRoot":"","sources":["../src/command-directory.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.d.ts
CHANGED
|
@@ -12,13 +12,19 @@ export interface CodexCommandDependencies {
|
|
|
12
12
|
allowInsecureHttp?: boolean;
|
|
13
13
|
}): CodexServiceClient;
|
|
14
14
|
status: CodexStatusLoader;
|
|
15
|
-
run(args: string[]
|
|
16
|
-
|
|
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;
|