@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.
- 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
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { executeCodexEnrollmentLogin } from "./enrollment-flow.js";
|
|
2
|
+
import { CodexServiceError } from "./errors.js";
|
|
3
|
+
import { CODEX_MIGRATION_CAPACITY } from "./protocol.js";
|
|
4
|
+
/** Loads all pages and rejects a mixed-revision snapshot instead of reordering targets. */
|
|
5
|
+
export async function loadCodexMigrationLoginQueueSnapshot(input) {
|
|
6
|
+
const pageSize = input.pageSize ?? 100;
|
|
7
|
+
const maxAttempts = input.maxSnapshotAttempts ?? 3;
|
|
8
|
+
for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
|
|
9
|
+
const first = await input.client.listMigrationLoginQueue(input.planId, { page: 1, pageSize });
|
|
10
|
+
if (first.plan.status !== "ACTIVE" || first.total <= first.items.length) {
|
|
11
|
+
return { plan: first.plan, items: uniqueQueueItems(first.items, first.total) };
|
|
12
|
+
}
|
|
13
|
+
const items = [...first.items];
|
|
14
|
+
let stable = true;
|
|
15
|
+
const pageCount = Math.ceil(first.total / pageSize);
|
|
16
|
+
for (let page = 2; page <= pageCount; page += 1) {
|
|
17
|
+
const next = await input.client.listMigrationLoginQueue(input.planId, { page, pageSize });
|
|
18
|
+
if (!samePlanProjection(first.plan, next.plan) || next.total !== first.total) {
|
|
19
|
+
stable = false;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
items.push(...next.items);
|
|
23
|
+
}
|
|
24
|
+
if (stable && items.length === first.total) {
|
|
25
|
+
return { plan: first.plan, items: uniqueQueueItems(items, first.total) };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
throw new CodexServiceError("Migration login queue changed while it was being paged; retry from a fresh snapshot.", "migration_queue_changed", 409);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Executes at most one isolated official login at a time. The queue is fetched
|
|
32
|
+
* again after every handled target so pause/cancel/completion takes effect before
|
|
33
|
+
* another refresh token can be generated.
|
|
34
|
+
*/
|
|
35
|
+
export async function executeCodexMigrationLoginBatch(input) {
|
|
36
|
+
const executeEnrollment = input.executeEnrollment ?? executeCodexEnrollmentLogin;
|
|
37
|
+
const handledTargets = new Set();
|
|
38
|
+
const items = [];
|
|
39
|
+
let latest = await loadCodexMigrationLoginQueueSnapshot(input);
|
|
40
|
+
if (input.dryRun) {
|
|
41
|
+
if (latest.plan.status === "ACTIVE") {
|
|
42
|
+
for (const target of latest.items)
|
|
43
|
+
items.push(dryRunItem(target));
|
|
44
|
+
}
|
|
45
|
+
return result(latest.plan, true, latest.plan.status === "ACTIVE"
|
|
46
|
+
? "DRY_RUN" : planStopReason(latest.plan.status), items);
|
|
47
|
+
}
|
|
48
|
+
while (true) {
|
|
49
|
+
const stopped = planStopReason(latest.plan.status);
|
|
50
|
+
if (stopped !== "QUEUE_EXHAUSTED")
|
|
51
|
+
return result(latest.plan, false, stopped, items);
|
|
52
|
+
const target = latest.items.find((candidate) => !handledTargets.has(candidate.id));
|
|
53
|
+
if (!target)
|
|
54
|
+
return result(latest.plan, false, "QUEUE_EXHAUSTED", items);
|
|
55
|
+
handledTargets.add(target.id);
|
|
56
|
+
const resumableClaim = target.allowedAction === "VIEW_ENROLLMENT"
|
|
57
|
+
&& target.enrollmentIntent !== null
|
|
58
|
+
&& ["CLAIMED", "LOGIN_IN_PROGRESS"].includes(target.enrollmentIntent.status);
|
|
59
|
+
if (target.allowedAction !== "LOGIN" && !resumableClaim) {
|
|
60
|
+
items.push(skippedItem(target));
|
|
61
|
+
latest = await loadCodexMigrationLoginQueueSnapshot(input);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (!target.enrollmentIntent || (!resumableClaim && target.enrollmentIntent.status !== "AWAITING_CLI")) {
|
|
65
|
+
items.push({
|
|
66
|
+
...baseItem(target),
|
|
67
|
+
action: "LOGIN",
|
|
68
|
+
status: "FAILED",
|
|
69
|
+
safeErrorCode: "invalid_migration_login_target"
|
|
70
|
+
});
|
|
71
|
+
return result(latest.plan, false, "SERVICE_ERROR", items);
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const response = await executeEnrollment({
|
|
75
|
+
client: input.client,
|
|
76
|
+
tenantId: input.tenantId,
|
|
77
|
+
intentId: target.enrollmentIntent.id,
|
|
78
|
+
deviceAuth: input.deviceAuth,
|
|
79
|
+
requireInitialAwaitingCli: true,
|
|
80
|
+
resumeClaimedIntent: resumableClaim
|
|
81
|
+
});
|
|
82
|
+
items.push({
|
|
83
|
+
...baseItem(target),
|
|
84
|
+
action: "LOGIN",
|
|
85
|
+
status: response.result.outcome === "READY" ? "COMPLETED" : "FAILED",
|
|
86
|
+
outcome: response.result.outcome,
|
|
87
|
+
intentStatus: response.intent.status,
|
|
88
|
+
safeErrorCode: response.intent.safeErrorCode
|
|
89
|
+
});
|
|
90
|
+
if (!["READY", "ACCOUNT_MISMATCH", "IDENTITY_UNVERIFIABLE"].includes(response.result.outcome)) {
|
|
91
|
+
latest = await loadCodexMigrationLoginQueueSnapshot(input);
|
|
92
|
+
const planStopped = planStopReason(latest.plan.status);
|
|
93
|
+
return result(latest.plan, false, planStopped === "QUEUE_EXHAUSTED" ? "TARGET_UNCERTAIN" : planStopped, items);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
latest = await safeReload(input, latest);
|
|
98
|
+
const refreshedTarget = latest.items.find(({ id }) => id === target.id);
|
|
99
|
+
if (["enrollment_intent_state_conflict", "enrollment_intent_claimed"].includes(String(error.code ?? ""))
|
|
100
|
+
&& refreshedTarget && refreshedTarget.allowedAction !== "LOGIN") {
|
|
101
|
+
items.push(skippedItem(refreshedTarget));
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const classified = classifyBatchError(error);
|
|
105
|
+
items.push({
|
|
106
|
+
...baseItem(target),
|
|
107
|
+
action: "LOGIN",
|
|
108
|
+
status: "FAILED",
|
|
109
|
+
safeErrorCode: classified.safeErrorCode
|
|
110
|
+
});
|
|
111
|
+
const planStopped = planStopReason(latest.plan.status);
|
|
112
|
+
return result(latest.plan, false, planStopped === "QUEUE_EXHAUSTED" ? classified.stopReason : planStopped, items);
|
|
113
|
+
}
|
|
114
|
+
latest = await loadCodexMigrationLoginQueueSnapshot(input);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function samePlanProjection(left, right) {
|
|
118
|
+
return left.id === right.id && left.status === right.status && left.revision === right.revision
|
|
119
|
+
&& left.accountId === right.accountId && right.sequentialRequired === true;
|
|
120
|
+
}
|
|
121
|
+
function uniqueQueueItems(items, total) {
|
|
122
|
+
if (items.length !== total || new Set(items.map(({ id }) => id)).size !== items.length
|
|
123
|
+
|| new Set(items.map(({ assignmentId }) => assignmentId)).size !== items.length) {
|
|
124
|
+
throw new CodexServiceError("Migration login queue contains duplicate or incomplete targets.", "invalid_codex_service_response");
|
|
125
|
+
}
|
|
126
|
+
return items;
|
|
127
|
+
}
|
|
128
|
+
function baseItem(target) {
|
|
129
|
+
return {
|
|
130
|
+
targetId: target.id,
|
|
131
|
+
assignmentId: target.assignmentId,
|
|
132
|
+
intentId: target.enrollmentIntent?.id ?? null,
|
|
133
|
+
requestedAction: target.allowedAction
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function dryRunItem(target) {
|
|
137
|
+
if (target.allowedAction === "LOGIN" && target.enrollmentIntent?.status === "AWAITING_CLI") {
|
|
138
|
+
return { ...baseItem(target), action: "LOGIN", status: "PLANNED" };
|
|
139
|
+
}
|
|
140
|
+
return { ...skippedItem(target), status: "PLANNED" };
|
|
141
|
+
}
|
|
142
|
+
function skippedItem(target) {
|
|
143
|
+
return {
|
|
144
|
+
...baseItem(target),
|
|
145
|
+
action: "SKIP",
|
|
146
|
+
status: "SKIPPED",
|
|
147
|
+
intentStatus: target.enrollmentIntent?.status,
|
|
148
|
+
safeErrorCode: target.enrollmentIntent?.safeErrorCode,
|
|
149
|
+
skipReason: target.allowedAction === "VIEW_ENROLLMENT"
|
|
150
|
+
? "VIEW_ENROLLMENT"
|
|
151
|
+
: target.distributionMode === "USER_BOUND" && target.projectedStatus === "ACTIVE"
|
|
152
|
+
? "ALREADY_USER_BOUND"
|
|
153
|
+
: "NO_ACTION"
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function planStopReason(status) {
|
|
157
|
+
return status === "ACTIVE" ? "QUEUE_EXHAUSTED" : status;
|
|
158
|
+
}
|
|
159
|
+
function classifyBatchError(error) {
|
|
160
|
+
const value = error;
|
|
161
|
+
const code = typeof value?.code === "string" && /^[a-z][a-z0-9_.-]{0,127}$/iu.test(value.code)
|
|
162
|
+
? value.code
|
|
163
|
+
: "official_login_failed";
|
|
164
|
+
const status = typeof value?.status === "number" ? value.status : undefined;
|
|
165
|
+
if (["auth_error", "login_required", "http_error", "issuer_mismatch", "codex_access_denied"]
|
|
166
|
+
.includes(code) || status === 401 || status === 403) {
|
|
167
|
+
return { stopReason: "AUTHENTICATION_ERROR", safeErrorCode: code };
|
|
168
|
+
}
|
|
169
|
+
if (["codex_service_unavailable", "invalid_codex_service_response", "codex_service_error",
|
|
170
|
+
"migration_queue_changed"].includes(code) || status !== undefined && status >= 500) {
|
|
171
|
+
return { stopReason: "SERVICE_ERROR", safeErrorCode: code };
|
|
172
|
+
}
|
|
173
|
+
return { stopReason: "LOGIN_ERROR", safeErrorCode: code };
|
|
174
|
+
}
|
|
175
|
+
async function safeReload(input, fallback) {
|
|
176
|
+
try {
|
|
177
|
+
return await loadCodexMigrationLoginQueueSnapshot(input);
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
return fallback;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
function result(plan, dryRun, stopReason, items) {
|
|
184
|
+
return {
|
|
185
|
+
schemaVersion: 2,
|
|
186
|
+
plan,
|
|
187
|
+
capacity: CODEX_MIGRATION_CAPACITY,
|
|
188
|
+
dryRun,
|
|
189
|
+
stopReason,
|
|
190
|
+
counts: {
|
|
191
|
+
observed: items.length,
|
|
192
|
+
plannedLogins: items.filter(({ action }) => action === "LOGIN").length,
|
|
193
|
+
attempted: items.filter(({ action, status }) => action === "LOGIN"
|
|
194
|
+
&& status !== "PLANNED").length,
|
|
195
|
+
completed: items.filter(({ status }) => status === "COMPLETED").length,
|
|
196
|
+
failed: items.filter(({ status }) => status === "FAILED").length,
|
|
197
|
+
skipped: items.filter(({ action }) => action === "SKIP").length
|
|
198
|
+
},
|
|
199
|
+
items
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=migration-login-batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration-login-batch.js","sourceRoot":"","sources":["../src/migration-login-batch.ts"],"names":[],"mappings":"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"}
|
package/dist/private-file.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
export declare function writePrivateText(path: string, content: string): Promise<void>;
|
|
2
2
|
export declare function writePrivateJson(path: string, value: unknown): Promise<void>;
|
|
3
|
+
export declare function removePrivateFileDurably(path: string): Promise<void>;
|
|
3
4
|
export declare function readJsonIfExists(path: string): Promise<unknown | undefined>;
|
|
5
|
+
/**
|
|
6
|
+
* Serializes writers for a private credential file. A stale lock is recoverable
|
|
7
|
+
* after a bounded interval so a crashed Numa process cannot permanently block
|
|
8
|
+
* credential repair.
|
|
9
|
+
*/
|
|
10
|
+
export declare function withPrivateFileLock<T>(targetPath: string, operation: () => Promise<T>, options?: {
|
|
11
|
+
timeoutMs?: number;
|
|
12
|
+
staleAfterMs?: number;
|
|
13
|
+
}): Promise<T>;
|
package/dist/private-file.js
CHANGED
|
@@ -1,22 +1,51 @@
|
|
|
1
1
|
import { randomBytes } from "node:crypto";
|
|
2
|
-
import { chmod, mkdir, readFile, rename, rm,
|
|
2
|
+
import { chmod, mkdir, open, readFile, rename, rm, stat } from "node:fs/promises";
|
|
3
3
|
import { dirname } from "node:path";
|
|
4
4
|
export async function writePrivateText(path, content) {
|
|
5
5
|
await mkdir(dirname(path), { recursive: true, mode: 0o700 });
|
|
6
6
|
const temporaryPath = `${path}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
7
|
+
let handle;
|
|
7
8
|
try {
|
|
8
|
-
await
|
|
9
|
+
handle = await open(temporaryPath, "wx", 0o600);
|
|
10
|
+
await handle.writeFile(content, { encoding: "utf8" });
|
|
11
|
+
await handle.sync();
|
|
12
|
+
await handle.close();
|
|
13
|
+
handle = undefined;
|
|
9
14
|
await rename(temporaryPath, path);
|
|
10
15
|
if (process.platform !== "win32")
|
|
11
16
|
await chmod(path, 0o600);
|
|
17
|
+
if (process.platform !== "win32") {
|
|
18
|
+
const directory = await open(dirname(path), "r");
|
|
19
|
+
try {
|
|
20
|
+
await directory.sync();
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
await directory.close();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
12
26
|
}
|
|
13
27
|
finally {
|
|
28
|
+
await handle?.close().catch(() => undefined);
|
|
14
29
|
await rm(temporaryPath, { force: true }).catch(() => undefined);
|
|
15
30
|
}
|
|
16
31
|
}
|
|
17
32
|
export async function writePrivateJson(path, value) {
|
|
18
33
|
await writePrivateText(path, `${JSON.stringify(value, null, 2)}\n`);
|
|
19
34
|
}
|
|
35
|
+
export async function removePrivateFileDurably(path) {
|
|
36
|
+
const directoryPath = dirname(path);
|
|
37
|
+
await mkdir(directoryPath, { recursive: true, mode: 0o700 });
|
|
38
|
+
await rm(path, { force: true });
|
|
39
|
+
if (process.platform !== "win32") {
|
|
40
|
+
const directory = await open(directoryPath, "r");
|
|
41
|
+
try {
|
|
42
|
+
await directory.sync();
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
await directory.close();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
20
49
|
export async function readJsonIfExists(path) {
|
|
21
50
|
try {
|
|
22
51
|
return JSON.parse(await readFile(path, "utf8"));
|
|
@@ -27,4 +56,50 @@ export async function readJsonIfExists(path) {
|
|
|
27
56
|
throw error;
|
|
28
57
|
}
|
|
29
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Serializes writers for a private credential file. A stale lock is recoverable
|
|
61
|
+
* after a bounded interval so a crashed Numa process cannot permanently block
|
|
62
|
+
* credential repair.
|
|
63
|
+
*/
|
|
64
|
+
export async function withPrivateFileLock(targetPath, operation, options = {}) {
|
|
65
|
+
const lockPath = `${targetPath}.numa-lock`;
|
|
66
|
+
const timeoutMs = options.timeoutMs ?? 5_000;
|
|
67
|
+
const staleAfterMs = options.staleAfterMs ?? 120_000;
|
|
68
|
+
const startedAt = Date.now();
|
|
69
|
+
await mkdir(dirname(targetPath), { recursive: true, mode: 0o700 });
|
|
70
|
+
while (true) {
|
|
71
|
+
try {
|
|
72
|
+
const handle = await open(lockPath, "wx", 0o600);
|
|
73
|
+
try {
|
|
74
|
+
await handle.writeFile(`${process.pid}\n`, "utf8");
|
|
75
|
+
await handle.sync();
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
await handle.close();
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (error.code !== "EEXIST")
|
|
84
|
+
throw error;
|
|
85
|
+
const lockStat = await stat(lockPath).catch(() => undefined);
|
|
86
|
+
if (lockStat && Date.now() - lockStat.mtimeMs > staleAfterMs) {
|
|
87
|
+
await rm(lockPath, { force: true });
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
if (Date.now() - startedAt >= timeoutMs) {
|
|
91
|
+
throw Object.assign(new Error("Timed out waiting for the Codex credential file lock."), {
|
|
92
|
+
code: "codex_credential_lock_timeout"
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
return await operation();
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
await rm(lockPath, { force: true });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
30
105
|
//# sourceMappingURL=private-file.js.map
|
package/dist/private-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private-file.js","sourceRoot":"","sources":["../src/private-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"private-file.js","sourceRoot":"","sources":["../src/private-file.ts"],"names":[],"mappings":"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"}
|
package/dist/profile.d.ts
CHANGED
|
@@ -15,6 +15,15 @@ export interface ResolvedCodexProfile {
|
|
|
15
15
|
clientId: string;
|
|
16
16
|
scope: string;
|
|
17
17
|
};
|
|
18
|
+
userBoundRefreshTokens?: {
|
|
19
|
+
enrollmentIntents: boolean;
|
|
20
|
+
candidateUpload: boolean;
|
|
21
|
+
delivery: boolean;
|
|
22
|
+
retirement?: boolean;
|
|
23
|
+
migrationPlans?: boolean;
|
|
24
|
+
rotationSync: boolean;
|
|
25
|
+
managedCredentialsV3?: boolean;
|
|
26
|
+
};
|
|
18
27
|
stale: boolean;
|
|
19
28
|
}
|
|
20
29
|
export interface ResolveCodexProfileOptions {
|
|
@@ -27,3 +36,4 @@ export interface ResolveCodexProfileOptions {
|
|
|
27
36
|
onWarning?: (message: string) => void;
|
|
28
37
|
}
|
|
29
38
|
export declare function resolveCodexProfile(options: ResolveCodexProfileOptions): Promise<ResolvedCodexProfile>;
|
|
39
|
+
export declare function profileManagedCredentialsV3Enabled(value: unknown): boolean;
|
package/dist/profile.js
CHANGED
|
@@ -17,7 +17,18 @@ const ServiceSchema = z.object({
|
|
|
17
17
|
authority: z.string().min(1),
|
|
18
18
|
audience: z.string().min(1),
|
|
19
19
|
roleClientId: z.string().min(1),
|
|
20
|
-
apiVersion: z.string().min(1)
|
|
20
|
+
apiVersion: z.string().min(1),
|
|
21
|
+
capabilities: z.object({
|
|
22
|
+
userBoundRefreshTokens: z.object({
|
|
23
|
+
enrollmentIntents: z.boolean(),
|
|
24
|
+
candidateUpload: z.boolean(),
|
|
25
|
+
delivery: z.boolean(),
|
|
26
|
+
retirement: z.boolean().optional(),
|
|
27
|
+
migrationPlans: z.boolean().optional(),
|
|
28
|
+
rotationSync: z.boolean(),
|
|
29
|
+
managedCredentialsV3: z.boolean().optional()
|
|
30
|
+
}).passthrough().optional()
|
|
31
|
+
}).passthrough().optional()
|
|
21
32
|
});
|
|
22
33
|
const ProfileSchema = z.object({
|
|
23
34
|
schemaVersion: z.literal(1),
|
|
@@ -90,6 +101,10 @@ export async function resolveCodexProfile(options) {
|
|
|
90
101
|
let stale = false;
|
|
91
102
|
let pendingCache;
|
|
92
103
|
const cachedProfile = cached ? ProfileSchema.safeParse(cached.profile) : undefined;
|
|
104
|
+
const deliveryRequired = cached?.observedDelivery === true
|
|
105
|
+
|| cachedProfile?.success === true && profileDeliveryEnabled(cachedProfile.data);
|
|
106
|
+
const managedCredentialsV3Required = cached?.observedManagedCredentialsV3 === true
|
|
107
|
+
|| cachedProfile?.success === true && profileManagedCredentialsV3Enabled(cachedProfile.data);
|
|
93
108
|
const cacheMaxAgeMs = cachedProfile?.success
|
|
94
109
|
? (cachedProfile.data.cache?.maxAgeSeconds ?? 300) * 1_000
|
|
95
110
|
: 0;
|
|
@@ -127,6 +142,12 @@ export async function resolveCodexProfile(options) {
|
|
|
127
142
|
if (!next.success) {
|
|
128
143
|
throw new CodexError("Client configuration does not match schema v1.", "invalid_profile");
|
|
129
144
|
}
|
|
145
|
+
if (deliveryRequired && !profileDeliveryEnabled(next.data)) {
|
|
146
|
+
throw new CodexError("Client configuration attempted to disable previously observed schema-v2 delivery.", "profile_capability_downgrade");
|
|
147
|
+
}
|
|
148
|
+
if (managedCredentialsV3Required && !profileManagedCredentialsV3Enabled(next.data)) {
|
|
149
|
+
throw new CodexError("Client configuration attempted to disable previously observed schema-v3 managed credentials.", "profile_capability_downgrade");
|
|
150
|
+
}
|
|
130
151
|
const previous = cached ? ProfileSchema.safeParse(cached.profile) : undefined;
|
|
131
152
|
if (previous?.success && next.data.profileId === previous.data.profileId
|
|
132
153
|
&& next.data.revision < previous.data.revision) {
|
|
@@ -134,7 +155,15 @@ export async function resolveCodexProfile(options) {
|
|
|
134
155
|
}
|
|
135
156
|
}
|
|
136
157
|
pendingCache = {
|
|
137
|
-
schemaVersion: 1,
|
|
158
|
+
schemaVersion: 1,
|
|
159
|
+
sourceUrl: resolvedProfileUrl,
|
|
160
|
+
fetchedAt: now,
|
|
161
|
+
...(etag ? { etag } : {}),
|
|
162
|
+
...((deliveryRequired || profileDeliveryEnabled(raw)) ? { observedDelivery: true } : {}),
|
|
163
|
+
...((managedCredentialsV3Required || profileManagedCredentialsV3Enabled(raw))
|
|
164
|
+
? { observedManagedCredentialsV3: true }
|
|
165
|
+
: {}),
|
|
166
|
+
profile: raw
|
|
138
167
|
};
|
|
139
168
|
}
|
|
140
169
|
}
|
|
@@ -151,6 +180,12 @@ export async function resolveCodexProfile(options) {
|
|
|
151
180
|
const profile = ProfileSchema.safeParse(raw);
|
|
152
181
|
if (!profile.success)
|
|
153
182
|
throw new CodexError("Client configuration does not match schema v1.", "invalid_profile");
|
|
183
|
+
if (deliveryRequired && !profileDeliveryEnabled(profile.data)) {
|
|
184
|
+
throw new CodexError("A cached profile cannot disable previously observed schema-v2 delivery.", "profile_capability_downgrade");
|
|
185
|
+
}
|
|
186
|
+
if (managedCredentialsV3Required && !profileManagedCredentialsV3Enabled(profile.data)) {
|
|
187
|
+
throw new CodexError("A cached profile cannot disable previously observed schema-v3 managed credentials.", "profile_capability_downgrade");
|
|
188
|
+
}
|
|
154
189
|
const minimumVersion = profile.data.minimumClientVersions?.tokensrcCodex;
|
|
155
190
|
if (minimumVersion && compareVersions(PACKAGE_VERSION, minimumVersion) < 0) {
|
|
156
191
|
throw new CodexError(`@tokensrc/codex ${minimumVersion} or newer is required by this profile.`, "client_upgrade_required");
|
|
@@ -195,9 +230,27 @@ export async function resolveCodexProfile(options) {
|
|
|
195
230
|
clientId: authority.clientId,
|
|
196
231
|
scope: authority.scopes.join(" ")
|
|
197
232
|
},
|
|
233
|
+
...(codex.capabilities?.userBoundRefreshTokens
|
|
234
|
+
? { userBoundRefreshTokens: codex.capabilities.userBoundRefreshTokens }
|
|
235
|
+
: {}),
|
|
198
236
|
stale
|
|
199
237
|
};
|
|
200
238
|
}
|
|
239
|
+
function profileDeliveryEnabled(value) {
|
|
240
|
+
const parsed = ProfileSchema.safeParse(value);
|
|
241
|
+
return parsed.success
|
|
242
|
+
&& parsed.data.services.codex?.capabilities?.userBoundRefreshTokens?.delivery === true;
|
|
243
|
+
}
|
|
244
|
+
export function profileManagedCredentialsV3Enabled(value) {
|
|
245
|
+
if (value && typeof value === "object"
|
|
246
|
+
&& value
|
|
247
|
+
.userBoundRefreshTokens?.managedCredentialsV3 === true) {
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
const parsed = ProfileSchema.safeParse(value);
|
|
251
|
+
return parsed.success
|
|
252
|
+
&& parsed.data.services.codex?.capabilities?.userBoundRefreshTokens?.managedCredentialsV3 === true;
|
|
253
|
+
}
|
|
201
254
|
function defaultProfileDirectory() {
|
|
202
255
|
const configured = process.env.TOKENSRC_CODEX_CONFIG_DIR?.trim();
|
|
203
256
|
if (configured)
|
package/dist/profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
|