opencode-openai-codex-auth-multi 4.3.0-multiaccount.1 → 4.5.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/LICENSE +37 -37
- package/README.md +463 -80
- package/assets/opencode-logo-ornate-dark.svg +18 -18
- package/assets/readme-hero.svg +31 -31
- package/config/README.md +98 -98
- package/config/minimal-opencode.json +11 -11
- package/config/opencode-legacy.json +568 -568
- package/config/opencode-modern.json +236 -236
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +391 -135
- package/dist/index.js.map +1 -1
- package/dist/lib/accounts.d.ts +85 -11
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +352 -62
- package/dist/lib/accounts.js.map +1 -1
- package/dist/lib/auth/auth.d.ts +9 -1
- package/dist/lib/auth/auth.d.ts.map +1 -1
- package/dist/lib/auth/auth.js +26 -13
- package/dist/lib/auth/auth.js.map +1 -1
- package/dist/lib/auth/browser.d.ts.map +1 -1
- package/dist/lib/auth/browser.js +9 -2
- package/dist/lib/auth/browser.js.map +1 -1
- package/dist/lib/auth/server.d.ts.map +1 -1
- package/dist/lib/auth/server.js +11 -4
- package/dist/lib/auth/server.js.map +1 -1
- package/dist/lib/auto-update-checker.d.ts +10 -0
- package/dist/lib/auto-update-checker.d.ts.map +1 -0
- package/dist/lib/auto-update-checker.js +129 -0
- package/dist/lib/auto-update-checker.js.map +1 -0
- package/dist/lib/cli.d.ts +1 -0
- package/dist/lib/cli.d.ts.map +1 -1
- package/dist/lib/cli.js +11 -6
- package/dist/lib/cli.js.map +1 -1
- package/dist/lib/config.d.ts +5 -7
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +49 -6
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +7 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +7 -0
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/index.d.ts +13 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +13 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logger.d.ts +13 -17
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +89 -24
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/oauth-success.html +712 -712
- package/dist/lib/prompts/codex-opencode-bridge.js +121 -121
- package/dist/lib/prompts/codex.d.ts +5 -0
- package/dist/lib/prompts/codex.d.ts.map +1 -1
- package/dist/lib/prompts/codex.js +114 -93
- package/dist/lib/prompts/codex.js.map +1 -1
- package/dist/lib/refresh-queue.d.ts +100 -0
- package/dist/lib/refresh-queue.d.ts.map +1 -0
- package/dist/lib/refresh-queue.js +196 -0
- package/dist/lib/refresh-queue.js.map +1 -0
- package/dist/lib/request/fetch-helpers.d.ts +2 -3
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/request/fetch-helpers.js +26 -29
- package/dist/lib/request/fetch-helpers.js.map +1 -1
- package/dist/lib/request/rate-limit-backoff.d.ts +17 -0
- package/dist/lib/request/rate-limit-backoff.d.ts.map +1 -0
- package/dist/lib/request/rate-limit-backoff.js +74 -0
- package/dist/lib/request/rate-limit-backoff.js.map +1 -0
- package/dist/lib/request/request-transformer.d.ts.map +1 -1
- package/dist/lib/request/request-transformer.js +3 -2
- package/dist/lib/request/request-transformer.js.map +1 -1
- package/dist/lib/request/response-handler.js +1 -1
- package/dist/lib/request/response-handler.js.map +1 -1
- package/dist/lib/rotation.d.ts +121 -0
- package/dist/lib/rotation.d.ts.map +1 -0
- package/dist/lib/rotation.js +248 -0
- package/dist/lib/rotation.js.map +1 -0
- package/dist/lib/storage.d.ts +72 -4
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/storage.js +189 -19
- package/dist/lib/storage.js.map +1 -1
- package/dist/lib/types.d.ts +37 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +85 -71
- package/scripts/install-opencode-codex-auth.js +191 -191
- package/scripts/test-all-models.sh +258 -258
- package/scripts/validate-model-map.sh +97 -97
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./accounts.js";
|
|
2
|
+
export * from "./storage.js";
|
|
3
|
+
export * from "./config.js";
|
|
4
|
+
export * from "./constants.js";
|
|
5
|
+
export * from "./types.js";
|
|
6
|
+
export * from "./logger.js";
|
|
7
|
+
export * from "./auth/auth.js";
|
|
8
|
+
export * from "./request/fetch-helpers.js";
|
|
9
|
+
export * from "./request/request-transformer.js";
|
|
10
|
+
export * from "./request/response-handler.js";
|
|
11
|
+
export * from "./request/rate-limit-backoff.js";
|
|
12
|
+
export * from "./prompts/codex.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./accounts.js";
|
|
2
|
+
export * from "./storage.js";
|
|
3
|
+
export * from "./config.js";
|
|
4
|
+
export * from "./constants.js";
|
|
5
|
+
export * from "./types.js";
|
|
6
|
+
export * from "./logger.js";
|
|
7
|
+
export * from "./auth/auth.js";
|
|
8
|
+
export * from "./request/fetch-helpers.js";
|
|
9
|
+
export * from "./request/request-transformer.js";
|
|
10
|
+
export * from "./request/response-handler.js";
|
|
11
|
+
export * from "./request/rate-limit-backoff.js";
|
|
12
|
+
export * from "./prompts/codex.js";
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC"}
|
package/dist/lib/logger.d.ts
CHANGED
|
@@ -1,26 +1,22 @@
|
|
|
1
|
+
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
1
2
|
export declare const LOGGING_ENABLED: boolean;
|
|
2
3
|
export declare const DEBUG_ENABLED: boolean;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* @param stage - The stage of the request (e.g., "before-transform", "after-transform")
|
|
6
|
-
* @param data - The data to log
|
|
7
|
-
*/
|
|
4
|
+
export declare const LOG_LEVEL: LogLevel;
|
|
5
|
+
declare function formatDuration(ms: number): string;
|
|
8
6
|
export declare function logRequest(stage: string, data: Record<string, unknown>): void;
|
|
9
|
-
/**
|
|
10
|
-
* Log debug information (only when DEBUG_ENABLED is true)
|
|
11
|
-
* @param message - Debug message
|
|
12
|
-
* @param data - Optional data to log
|
|
13
|
-
*/
|
|
14
7
|
export declare function logDebug(message: string, data?: unknown): void;
|
|
15
|
-
|
|
16
|
-
* Log warning (always enabled for important issues)
|
|
17
|
-
* @param message - Warning message
|
|
18
|
-
* @param data - Optional data to log
|
|
19
|
-
*/
|
|
8
|
+
export declare function logInfo(message: string, data?: unknown): void;
|
|
20
9
|
export declare function logWarn(message: string, data?: unknown): void;
|
|
21
|
-
export declare function
|
|
10
|
+
export declare function logError(message: string, data?: unknown): void;
|
|
11
|
+
export interface ScopedLogger {
|
|
12
|
+
debug(message: string, data?: unknown): void;
|
|
22
13
|
info(message: string, data?: unknown): void;
|
|
23
14
|
warn(message: string, data?: unknown): void;
|
|
24
15
|
error(message: string, data?: unknown): void;
|
|
25
|
-
|
|
16
|
+
time(label: string): () => number;
|
|
17
|
+
timeEnd(label: string, startTime: number): void;
|
|
18
|
+
}
|
|
19
|
+
export declare function createLogger(scope: string): ScopedLogger;
|
|
20
|
+
export declare function getRequestId(): number;
|
|
21
|
+
export { formatDuration };
|
|
26
22
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/lib/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAgB3D,eAAO,MAAM,eAAe,SAAoD,CAAC;AACjF,eAAO,MAAM,aAAa,SAA4D,CAAC;AACvF,eAAO,MAAM,SAAS,UAAoD,CAAC;AAkB3E,iBAAS,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM1C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA+B7E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAQ9D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAQ7D;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAO7D;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAM9D;AAED,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,MAAM,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAwDxD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/lib/logger.js
CHANGED
|
@@ -2,28 +2,50 @@ import { writeFileSync, mkdirSync, existsSync } from "node:fs";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { PLUGIN_NAME } from "./constants.js";
|
|
5
|
-
|
|
5
|
+
const LOG_LEVEL_PRIORITY = {
|
|
6
|
+
debug: 0,
|
|
7
|
+
info: 1,
|
|
8
|
+
warn: 2,
|
|
9
|
+
error: 3,
|
|
10
|
+
};
|
|
11
|
+
function parseLogLevel(value) {
|
|
12
|
+
if (!value)
|
|
13
|
+
return "info";
|
|
14
|
+
const normalized = value.toLowerCase().trim();
|
|
15
|
+
if (normalized in LOG_LEVEL_PRIORITY)
|
|
16
|
+
return normalized;
|
|
17
|
+
return "info";
|
|
18
|
+
}
|
|
6
19
|
export const LOGGING_ENABLED = process.env.ENABLE_PLUGIN_REQUEST_LOGGING === "1";
|
|
7
20
|
export const DEBUG_ENABLED = process.env.DEBUG_CODEX_PLUGIN === "1" || LOGGING_ENABLED;
|
|
21
|
+
export const LOG_LEVEL = parseLogLevel(process.env.CODEX_PLUGIN_LOG_LEVEL);
|
|
8
22
|
const LOG_DIR = join(homedir(), ".opencode", "logs", "codex-plugin");
|
|
9
|
-
// Log startup message about logging state
|
|
10
23
|
if (LOGGING_ENABLED) {
|
|
11
24
|
console.log(`[${PLUGIN_NAME}] Request logging ENABLED - logs will be saved to:`, LOG_DIR);
|
|
12
25
|
}
|
|
13
26
|
if (DEBUG_ENABLED && !LOGGING_ENABLED) {
|
|
14
|
-
console.log(`[${PLUGIN_NAME}] Debug logging ENABLED`);
|
|
27
|
+
console.log(`[${PLUGIN_NAME}] Debug logging ENABLED (level: ${LOG_LEVEL})`);
|
|
15
28
|
}
|
|
16
29
|
let requestCounter = 0;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
30
|
+
function shouldLog(level) {
|
|
31
|
+
if (level === "error")
|
|
32
|
+
return true;
|
|
33
|
+
if (!DEBUG_ENABLED && !LOGGING_ENABLED)
|
|
34
|
+
return false;
|
|
35
|
+
return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[LOG_LEVEL];
|
|
36
|
+
}
|
|
37
|
+
function formatDuration(ms) {
|
|
38
|
+
if (ms < 1000)
|
|
39
|
+
return `${Math.round(ms)}ms`;
|
|
40
|
+
if (ms < 60000)
|
|
41
|
+
return `${(ms / 1000).toFixed(2)}s`;
|
|
42
|
+
const minutes = Math.floor(ms / 60000);
|
|
43
|
+
const seconds = ((ms % 60000) / 1000).toFixed(1);
|
|
44
|
+
return `${minutes}m ${seconds}s`;
|
|
45
|
+
}
|
|
22
46
|
export function logRequest(stage, data) {
|
|
23
|
-
// Only log if explicitly enabled via environment variable
|
|
24
47
|
if (!LOGGING_ENABLED)
|
|
25
48
|
return;
|
|
26
|
-
// Ensure log directory exists on first log
|
|
27
49
|
if (!existsSync(LOG_DIR)) {
|
|
28
50
|
mkdirSync(LOG_DIR, { recursive: true });
|
|
29
51
|
}
|
|
@@ -44,13 +66,18 @@ export function logRequest(stage, data) {
|
|
|
44
66
|
console.error(`[${PLUGIN_NAME}] Failed to write log:`, error.message);
|
|
45
67
|
}
|
|
46
68
|
}
|
|
47
|
-
/**
|
|
48
|
-
* Log debug information (only when DEBUG_ENABLED is true)
|
|
49
|
-
* @param message - Debug message
|
|
50
|
-
* @param data - Optional data to log
|
|
51
|
-
*/
|
|
52
69
|
export function logDebug(message, data) {
|
|
53
|
-
if (!
|
|
70
|
+
if (!shouldLog("debug"))
|
|
71
|
+
return;
|
|
72
|
+
if (data !== undefined) {
|
|
73
|
+
console.log(`[${PLUGIN_NAME}] ${message}`, data);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.log(`[${PLUGIN_NAME}] ${message}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export function logInfo(message, data) {
|
|
80
|
+
if (!shouldLog("info"))
|
|
54
81
|
return;
|
|
55
82
|
if (data !== undefined) {
|
|
56
83
|
console.log(`[${PLUGIN_NAME}] ${message}`, data);
|
|
@@ -59,13 +86,8 @@ export function logDebug(message, data) {
|
|
|
59
86
|
console.log(`[${PLUGIN_NAME}] ${message}`);
|
|
60
87
|
}
|
|
61
88
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Log warning (always enabled for important issues)
|
|
64
|
-
* @param message - Warning message
|
|
65
|
-
* @param data - Optional data to log
|
|
66
|
-
*/
|
|
67
89
|
export function logWarn(message, data) {
|
|
68
|
-
if (!
|
|
90
|
+
if (!shouldLog("warn"))
|
|
69
91
|
return;
|
|
70
92
|
if (data !== undefined) {
|
|
71
93
|
console.warn(`[${PLUGIN_NAME}] ${message}`, data);
|
|
@@ -74,11 +96,30 @@ export function logWarn(message, data) {
|
|
|
74
96
|
console.warn(`[${PLUGIN_NAME}] ${message}`);
|
|
75
97
|
}
|
|
76
98
|
}
|
|
99
|
+
export function logError(message, data) {
|
|
100
|
+
if (data !== undefined) {
|
|
101
|
+
console.error(`[${PLUGIN_NAME}] ${message}`, data);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
console.error(`[${PLUGIN_NAME}] ${message}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
const timers = new Map();
|
|
77
108
|
export function createLogger(scope) {
|
|
78
109
|
const prefix = `[${PLUGIN_NAME}:${scope}]`;
|
|
79
110
|
return {
|
|
111
|
+
debug(message, data) {
|
|
112
|
+
if (!shouldLog("debug"))
|
|
113
|
+
return;
|
|
114
|
+
if (data !== undefined) {
|
|
115
|
+
console.log(`${prefix} ${message}`, data);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.log(`${prefix} ${message}`);
|
|
119
|
+
}
|
|
120
|
+
},
|
|
80
121
|
info(message, data) {
|
|
81
|
-
if (!
|
|
122
|
+
if (!shouldLog("info"))
|
|
82
123
|
return;
|
|
83
124
|
if (data !== undefined) {
|
|
84
125
|
console.log(`${prefix} ${message}`, data);
|
|
@@ -88,7 +129,7 @@ export function createLogger(scope) {
|
|
|
88
129
|
}
|
|
89
130
|
},
|
|
90
131
|
warn(message, data) {
|
|
91
|
-
if (!
|
|
132
|
+
if (!shouldLog("warn"))
|
|
92
133
|
return;
|
|
93
134
|
if (data !== undefined) {
|
|
94
135
|
console.warn(`${prefix} ${message}`, data);
|
|
@@ -105,6 +146,30 @@ export function createLogger(scope) {
|
|
|
105
146
|
console.error(`${prefix} ${message}`);
|
|
106
147
|
}
|
|
107
148
|
},
|
|
149
|
+
time(label) {
|
|
150
|
+
const key = `${scope}:${label}`;
|
|
151
|
+
const startTime = performance.now();
|
|
152
|
+
timers.set(key, startTime);
|
|
153
|
+
return () => {
|
|
154
|
+
const endTime = performance.now();
|
|
155
|
+
const duration = endTime - startTime;
|
|
156
|
+
timers.delete(key);
|
|
157
|
+
if (shouldLog("debug")) {
|
|
158
|
+
console.log(`${prefix} ${label}: ${formatDuration(duration)}`);
|
|
159
|
+
}
|
|
160
|
+
return duration;
|
|
161
|
+
};
|
|
162
|
+
},
|
|
163
|
+
timeEnd(label, startTime) {
|
|
164
|
+
const duration = performance.now() - startTime;
|
|
165
|
+
if (shouldLog("debug")) {
|
|
166
|
+
console.log(`${prefix} ${label}: ${formatDuration(duration)}`);
|
|
167
|
+
}
|
|
168
|
+
},
|
|
108
169
|
};
|
|
109
170
|
}
|
|
171
|
+
export function getRequestId() {
|
|
172
|
+
return requestCounter;
|
|
173
|
+
}
|
|
174
|
+
export { formatDuration };
|
|
110
175
|
//# sourceMappingURL=logger.js.map
|
package/dist/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../lib/logger.ts"],"names":[],"mappings":"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"}
|