codex-multi-auth 2.9.1 → 2.10.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/.codex-plugin/plugin.json +1 -1
- package/README.md +2 -1
- package/config/schema/config.schema.json +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -2
- package/dist/lib/accounts.d.ts +25 -1
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +26 -6
- package/dist/lib/codex-manager/backend-settings-helpers.d.ts.map +1 -1
- package/dist/lib/codex-manager/backend-settings-helpers.js +10 -1
- package/dist/lib/codex-manager/backend-settings-schema.d.ts +18 -0
- package/dist/lib/codex-manager/backend-settings-schema.d.ts.map +1 -1
- package/dist/lib/codex-manager/backend-settings-schema.js +19 -0
- package/dist/lib/codex-manager/experimental-settings-prompt.d.ts +1 -0
- package/dist/lib/codex-manager/experimental-settings-prompt.d.ts.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-prompt.js +12 -0
- package/dist/lib/codex-manager/experimental-settings-schema.d.ts +2 -0
- package/dist/lib/codex-manager/experimental-settings-schema.d.ts.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-schema.js +2 -0
- package/dist/lib/config.d.ts +29 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +88 -0
- package/dist/lib/context-budget/model-context-windows.d.ts +25 -0
- package/dist/lib/context-budget/model-context-windows.d.ts.map +1 -0
- package/dist/lib/context-budget/model-context-windows.js +118 -0
- package/dist/lib/context-budget-guard.d.ts +100 -0
- package/dist/lib/context-budget-guard.d.ts.map +1 -0
- package/dist/lib/context-budget-guard.js +183 -0
- package/dist/lib/context-budget-response.d.ts +25 -0
- package/dist/lib/context-budget-response.d.ts.map +1 -0
- package/dist/lib/context-budget-response.js +57 -0
- package/dist/lib/context-overflow.d.ts.map +1 -1
- package/dist/lib/context-overflow.js +5 -60
- package/dist/lib/request/rate-limit-decision.d.ts +4 -5
- package/dist/lib/request/rate-limit-decision.d.ts.map +1 -1
- package/dist/lib/request/rate-limit-decision.js +33 -4
- package/dist/lib/request/response-metadata.d.ts.map +1 -1
- package/dist/lib/request/response-metadata.js +1 -0
- package/dist/lib/request/stream-failover-runtime.d.ts +3 -1
- package/dist/lib/request/stream-failover-runtime.d.ts.map +1 -1
- package/dist/lib/request/stream-failover-runtime.js +7 -2
- package/dist/lib/runtime/context-budget-settings.d.ts +13 -0
- package/dist/lib/runtime/context-budget-settings.d.ts.map +1 -0
- package/dist/lib/runtime/context-budget-settings.js +8 -0
- package/dist/lib/runtime/loader-setup.d.ts +1 -0
- package/dist/lib/runtime/loader-setup.d.ts.map +1 -1
- package/dist/lib/runtime/loader-setup.js +1 -0
- package/dist/lib/runtime/rotation-account-selection.d.ts +23 -0
- package/dist/lib/runtime/rotation-account-selection.d.ts.map +1 -1
- package/dist/lib/runtime/rotation-account-selection.js +15 -6
- package/dist/lib/runtime/rotation-proxy-state.d.ts +2 -0
- package/dist/lib/runtime/rotation-proxy-state.d.ts.map +1 -1
- package/dist/lib/runtime/rotation-server-types.d.ts +11 -0
- package/dist/lib/runtime/rotation-server-types.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.js +251 -43
- package/dist/lib/schemas.d.ts +4 -0
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +10 -0
- package/dist/lib/synthetic-response.d.ts +31 -0
- package/dist/lib/synthetic-response.d.ts.map +1 -0
- package/dist/lib/synthetic-response.js +79 -0
- package/dist/lib/ui/ui-copy.d.ts +2 -1
- package/dist/lib/ui/ui-copy.d.ts.map +1 -1
- package/dist/lib/ui/ui-copy.js +2 -1
- package/package.json +2 -2
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared builder for locally-answered Responses API replies.
|
|
3
|
+
*
|
|
4
|
+
* Both the reactive context-overflow handler (`lib/context-overflow.ts`) and
|
|
5
|
+
* the proactive context budget guard (`lib/context-budget-response.ts`) need
|
|
6
|
+
* to hand the caller a plugin-authored notice instead of forwarding to
|
|
7
|
+
* upstream, in the exact SSE dialect the Codex CLI / Responses client
|
|
8
|
+
* expects. Extracted here so both answer with one audited SSE shape rather
|
|
9
|
+
* than two independently-maintained copies of it.
|
|
10
|
+
*/
|
|
11
|
+
function randomSuffix() {
|
|
12
|
+
return Math.random().toString(36).slice(2, 8);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build a synthetic OpenAI Responses API SSE stream carrying a single
|
|
16
|
+
* assistant text message, then a terminal `response.completed`.
|
|
17
|
+
*
|
|
18
|
+
* Emits `response.*` events — the dialect the Codex CLI client and this
|
|
19
|
+
* package's own `convertSseToJson` parser speak, not the Anthropic Messages
|
|
20
|
+
* API dialect. Returns 200 OK so the host session never locks on a 4xx for a
|
|
21
|
+
* notice the plugin itself generated.
|
|
22
|
+
*/
|
|
23
|
+
export function createSyntheticSseResponse(options) {
|
|
24
|
+
const { model, message, idPrefix, errorType } = options;
|
|
25
|
+
const messageId = `msg_${idPrefix}_${Date.now()}_${randomSuffix()}`;
|
|
26
|
+
const responseId = `resp_${idPrefix}_${Date.now()}_${randomSuffix()}`;
|
|
27
|
+
const events = [];
|
|
28
|
+
const push = (type, payload) => {
|
|
29
|
+
events.push(`event: ${type}\ndata: ${JSON.stringify({ type, ...payload })}\n\n`);
|
|
30
|
+
};
|
|
31
|
+
const baseResponse = {
|
|
32
|
+
id: responseId,
|
|
33
|
+
object: "response",
|
|
34
|
+
model,
|
|
35
|
+
};
|
|
36
|
+
push("response.created", { response: { ...baseResponse, status: "in_progress" } });
|
|
37
|
+
push("response.output_item.added", {
|
|
38
|
+
output_index: 0,
|
|
39
|
+
item: {
|
|
40
|
+
id: messageId,
|
|
41
|
+
type: "message",
|
|
42
|
+
role: "assistant",
|
|
43
|
+
content: [],
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
push("response.output_text.delta", {
|
|
47
|
+
output_index: 0,
|
|
48
|
+
content_index: 0,
|
|
49
|
+
delta: message,
|
|
50
|
+
});
|
|
51
|
+
push("response.output_text.done", {
|
|
52
|
+
output_index: 0,
|
|
53
|
+
content_index: 0,
|
|
54
|
+
text: message,
|
|
55
|
+
});
|
|
56
|
+
push("response.completed", {
|
|
57
|
+
response: {
|
|
58
|
+
...baseResponse,
|
|
59
|
+
status: "completed",
|
|
60
|
+
output: [
|
|
61
|
+
{
|
|
62
|
+
id: messageId,
|
|
63
|
+
type: "message",
|
|
64
|
+
role: "assistant",
|
|
65
|
+
content: [{ type: "output_text", text: message }],
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
usage: { input_tokens: 0, output_tokens: 0, total_tokens: 0 },
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
return new Response(events.join(""), {
|
|
72
|
+
status: 200,
|
|
73
|
+
headers: {
|
|
74
|
+
"Content-Type": "text/event-stream",
|
|
75
|
+
"X-Codex-Plugin-Synthetic": "true",
|
|
76
|
+
"X-Codex-Plugin-Error-Type": errorType,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
}
|
package/dist/lib/ui/ui-copy.d.ts
CHANGED
|
@@ -91,7 +91,7 @@ export declare const UI_COPY: {
|
|
|
91
91
|
readonly experimental: "Experimental";
|
|
92
92
|
readonly experimentalTitle: "Experimental";
|
|
93
93
|
readonly experimentalSubtitle: "Preview sync and backup actions before they become stable";
|
|
94
|
-
readonly experimentalHelpMenu: "Enter Select | 1 Sync | 2 Backup | 3 Guard | [ - Down | ] + Up | S Save | Q Back";
|
|
94
|
+
readonly experimentalHelpMenu: "Enter Select | 1 Sync | 2 Backup | 3 Guard | 4 Budget | [ - Down | ] + Up | S Save | Q Back";
|
|
95
95
|
readonly experimentalHelpPreview: "Enter Select | A Apply | Q Back";
|
|
96
96
|
readonly experimentalHelpStatus: "Enter Select | Q Back";
|
|
97
97
|
readonly experimentalSync: "Sync Accounts to oc-chatgpt-multi-auth";
|
|
@@ -102,6 +102,7 @@ export declare const UI_COPY: {
|
|
|
102
102
|
readonly experimentalRefreshInterval: "Refresh Guard Interval";
|
|
103
103
|
readonly experimentalDecreaseInterval: "Decrease Refresh Interval";
|
|
104
104
|
readonly experimentalIncreaseInterval: "Increase Refresh Interval";
|
|
105
|
+
readonly experimentalContextBudgetGuard: "Enable Context Budget Guard";
|
|
105
106
|
readonly backend: "Backend Controls";
|
|
106
107
|
readonly back: "Back";
|
|
107
108
|
readonly previewHeading: "Live Preview";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-copy.d.ts","sourceRoot":"","sources":["../../../lib/ui/ui-copy.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAqDP,MAAM,gBACF,MAAM,WACX,MAAM;kDAGiB,MAAM,WAAW,MAAM;kDAEvB,MAAM,gBAAgB,MAAM;iDAE7B,MAAM,gBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;uCAyBtC,MAAM
|
|
1
|
+
{"version":3,"file":"ui-copy.d.ts","sourceRoot":"","sources":["../../../lib/ui/ui-copy.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAqDP,MAAM,gBACF,MAAM,WACX,MAAM;kDAGiB,MAAM,WAAW,MAAM;kDAEvB,MAAM,gBAAgB,MAAM;iDAE7B,MAAM,gBAAgB,MAAM;;;;;;;;;;;;;;;;;;;;uCAyBtC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAgFA,MAAM;;;;CAM1B,CAAC;AAEX;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIpE"}
|
package/dist/lib/ui/ui-copy.js
CHANGED
|
@@ -92,7 +92,7 @@ export const UI_COPY = {
|
|
|
92
92
|
experimental: "Experimental",
|
|
93
93
|
experimentalTitle: "Experimental",
|
|
94
94
|
experimentalSubtitle: "Preview sync and backup actions before they become stable",
|
|
95
|
-
experimentalHelpMenu: "Enter Select | 1 Sync | 2 Backup | 3 Guard | [ - Down | ] + Up | S Save | Q Back",
|
|
95
|
+
experimentalHelpMenu: "Enter Select | 1 Sync | 2 Backup | 3 Guard | 4 Budget | [ - Down | ] + Up | S Save | Q Back",
|
|
96
96
|
experimentalHelpPreview: "Enter Select | A Apply | Q Back",
|
|
97
97
|
experimentalHelpStatus: "Enter Select | Q Back",
|
|
98
98
|
experimentalSync: "Sync Accounts to oc-chatgpt-multi-auth",
|
|
@@ -103,6 +103,7 @@ export const UI_COPY = {
|
|
|
103
103
|
experimentalRefreshInterval: "Refresh Guard Interval",
|
|
104
104
|
experimentalDecreaseInterval: "Decrease Refresh Interval",
|
|
105
105
|
experimentalIncreaseInterval: "Increase Refresh Interval",
|
|
106
|
+
experimentalContextBudgetGuard: "Enable Context Budget Guard",
|
|
106
107
|
backend: "Backend Controls",
|
|
107
108
|
back: "Back",
|
|
108
109
|
previewHeading: "Live Preview",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-multi-auth",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "Codex CLI multi-account OAuth manager with account switching, health checks, runtime rotation, diagnostics, and recovery tools for @openai/codex",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"build": "tsc && node scripts/copy-oauth-success.js",
|
|
82
82
|
"generate:schema": "npm run build && node scripts/generate-config-schema.mjs",
|
|
83
83
|
"typecheck": "tsc --noEmit",
|
|
84
|
-
"typecheck:scripts": "tsc -p tsconfig.scripts.json",
|
|
84
|
+
"typecheck:scripts": "npm run build && tsc -p tsconfig.scripts.json",
|
|
85
85
|
"lint": "npm run lint:ts && npm run lint:scripts",
|
|
86
86
|
"lint:ts": "eslint . --ext .ts",
|
|
87
87
|
"lint:scripts": "eslint scripts --ext .js,.mjs",
|