codex-task 0.2.8 → 0.2.10
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 +22 -2
- package/README_EN.md +9 -3
- package/dist/backends/direct/auth.d.ts +2 -1
- package/dist/backends/direct/auth.d.ts.map +1 -1
- package/dist/backends/direct/auth.js +4 -4
- package/dist/backends/direct/auth.js.map +1 -1
- package/dist/backends/direct/http.d.ts +3 -1
- package/dist/backends/direct/http.d.ts.map +1 -1
- package/dist/backends/direct/http.js +15 -15
- package/dist/backends/direct/http.js.map +1 -1
- package/dist/backends/direct/identity.d.ts +15 -0
- package/dist/backends/direct/identity.d.ts.map +1 -1
- package/dist/backends/direct/identity.js +45 -2
- package/dist/backends/direct/identity.js.map +1 -1
- package/dist/backends/direct/index.d.ts +2 -0
- package/dist/backends/direct/index.d.ts.map +1 -1
- package/dist/backends/direct/index.js +9 -5
- package/dist/backends/direct/index.js.map +1 -1
- package/dist/cli.js +23 -0
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +8 -0
- package/dist/doctor.js.map +1 -1
- package/dist/setup.d.ts +8 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +52 -0
- package/dist/setup.js.map +1 -0
- package/dist/system-proxy.d.ts +12 -0
- package/dist/system-proxy.d.ts.map +1 -0
- package/dist/system-proxy.js +119 -0
- package/dist/system-proxy.js.map +1 -0
- package/package.json +1 -1
- package/scripts/service/Install-Windows.ps1 +26 -2
- package/scripts/service/install-macos.sh +23 -2
- package/scripts/service/install-ubuntu.sh +12 -1
- package/scripts/service/install.sh +1 -0
package/README.md
CHANGED
|
@@ -165,7 +165,7 @@ printf '%s' "总热量控制在 700 kcal 内" | codex-task text "制定调整建
|
|
|
165
165
|
| 本地 Codex skills | 不支持 | 按 Codex 正常发现 |
|
|
166
166
|
| 底层 | 非官方 ChatGPT Codex Responses | 官方 `@openai/codex-sdk` |
|
|
167
167
|
|
|
168
|
-
Direct 复用 `$CODEX_HOME/auth.json`、Codex installation metadata、TLS impersonation 和 ChatGPT 私有 Codex Responses
|
|
168
|
+
Direct 复用 `$CODEX_HOME/auth.json`、Codex installation metadata、TLS impersonation 和 ChatGPT 私有 Codex Responses 接口。每个安装会持久化一个显式的现代 Chrome TLS/HTTP2 profile,避免 native transport 的平台相关 `auto` 指纹在 Linux 上触发 HTML 403;`codex-task doctor` 会显示当前 profile。输入仍会发往 ChatGPT,接口可能随时变化。Direct 只返回生成结果,不能读项目、运行 shell、调用本地 MCP 或使用 worker skills。
|
|
169
169
|
|
|
170
170
|
SDK task 默认权限为:
|
|
171
171
|
|
|
@@ -218,16 +218,36 @@ skilltruck install https://github.com/wangyendt/codex-task --global
|
|
|
218
218
|
| 查询进度 | `GET /v1/jobs/:jobId` |
|
|
219
219
|
| 下载产物 | `GET /v1/jobs/:jobId/artifacts/:index` |
|
|
220
220
|
|
|
221
|
-
|
|
221
|
+
已经全局安装 CodexTask 后,运行一次 `codex-task setup` 即可自动识别 macOS、Linux 或 Windows,生成随机 token、创建用户级自启动项并立即启动服务:
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
codex-task setup
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
默认代理模式是 `auto`:每次 Direct 请求先读取服务环境中的 `ALL_PROXY` / `HTTPS_PROXY` / `HTTP_PROXY`,没有时再读取当前操作系统代理。开关系统代理或更换端口后无需重装服务,也不假定代理端口是 `7890`。需要固定代理或始终直连时使用:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
codex-task setup --proxy socks5h://127.0.0.1:PORT
|
|
231
|
+
codex-task setup --no-proxy
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
`setup` 还支持 `--host`、`--port` 和 `--max-concurrency`。再次运行会更新现有启动配置并重启服务,不会更换已有 token。
|
|
235
|
+
|
|
236
|
+
仓库中的三平台安装脚本仍可用于首次安装:它们会先执行 `npm install -g codex-task@latest`,再建立开机服务。
|
|
222
237
|
|
|
223
238
|
```bash
|
|
224
239
|
# Ubuntu/Linux 或 macOS:自动识别 systemd user / LaunchAgent
|
|
225
240
|
bash ./scripts/service/install.sh
|
|
226
241
|
|
|
242
|
+
# 固定代理;省略时为 auto
|
|
243
|
+
CODEX_TASK_SERVICE_PROXY=socks5h://127.0.0.1:PORT bash ./scripts/service/install.sh
|
|
244
|
+
|
|
227
245
|
# Windows PowerShell:Scheduled Task
|
|
228
246
|
powershell -ExecutionPolicy Bypass -File .\scripts\service\Install-Windows.ps1
|
|
229
247
|
```
|
|
230
248
|
|
|
249
|
+
安装脚本的 `CODEX_TASK_SERVICE_PROXY` 支持 `auto`、`direct` 或完整代理 URL;为兼容旧用法,也会读取 `CODEX_TASK_PROXY` / `CODEXERRAND_PROXY`。固定地址只写入权限受限的 service runner,安装输出不会打印其内容。
|
|
250
|
+
|
|
231
251
|
安装脚本生成的是全权限主 Token。给手机或其他设备使用时,可以独立创建只允许 `text`、只允许 `image`,或同时允许两者的设备 Token;创建后立即生效,不需要重启服务:
|
|
232
252
|
|
|
233
253
|
```bash
|
package/README_EN.md
CHANGED
|
@@ -115,7 +115,7 @@ Text is composed in a stable order: positional prompt, prompt files in command-l
|
|
|
115
115
|
| Local Codex skills | No | Normal Codex discovery |
|
|
116
116
|
| Transport | Unofficial ChatGPT Codex Responses | Official `@openai/codex-sdk` |
|
|
117
117
|
|
|
118
|
-
Direct reuses `$CODEX_HOME/auth.json`, Codex installation metadata, TLS impersonation, and the private ChatGPT Codex Responses endpoint. Inputs are still sent to ChatGPT, and the interface may change without notice. Direct cannot read a repository, run local tools, call local MCP, or use worker skills.
|
|
118
|
+
Direct reuses `$CODEX_HOME/auth.json`, Codex installation metadata, TLS impersonation, and the private ChatGPT Codex Responses endpoint. Each installation persists an explicit modern Chrome TLS/HTTP2 profile instead of relying on the native transport's platform-dependent `auto` fingerprint, which can trigger an HTML 403 on Linux. `codex-task doctor` shows the active profile. Inputs are still sent to ChatGPT, and the interface may change without notice. Direct cannot read a repository, run local tools, call local MCP, or use worker skills.
|
|
119
119
|
|
|
120
120
|
SDK tasks default to `sandbox=danger-full-access`, `approval=never`, and `network=true`. With these settings, the worker can access paths outside the workspace, run commands, and use the network without waiting for approval. Delegate only trusted prompts and projects; use `--sandbox workspace-write` or `--no-network` when needed.
|
|
121
121
|
|
|
@@ -162,7 +162,11 @@ Default stdout is one JSON result; `--stream` produces JSONL item/task progress.
|
|
|
162
162
|
|
|
163
163
|
## Self-hosted service and mobile clients
|
|
164
164
|
|
|
165
|
-
`codex-task serve` exposes text, image, workspace, and resume work as authenticated asynchronous HTTP jobs.
|
|
165
|
+
`codex-task serve` exposes text, image, workspace, and resume work as authenticated asynchronous HTTP jobs. After installing CodexTask globally, run `codex-task setup` once to detect macOS, Linux, or Windows, generate a random token, install the native user-level startup entry, and start it immediately.
|
|
166
|
+
|
|
167
|
+
The default proxy mode is `auto`. Every Direct request checks `ALL_PROXY`, `HTTPS_PROXY`, and `HTTP_PROXY`, then the current operating-system proxy. Toggling the system proxy or changing its port does not require reinstalling the service, and no port such as `7890` is assumed. Use `codex-task setup --proxy socks5h://127.0.0.1:PORT` for a fixed proxy or `codex-task setup --no-proxy` to force direct connections. The command also accepts `--host`, `--port`, and `--max-concurrency`. Running it again updates and restarts the service without replacing its existing token.
|
|
168
|
+
|
|
169
|
+
The repository installers remain available for first-time installation. They install or update `codex-task@latest` before creating the startup entry.
|
|
166
170
|
|
|
167
171
|
| Platform | Installer | Startup mechanism |
|
|
168
172
|
| --- | --- | --- |
|
|
@@ -172,6 +176,8 @@ Default stdout is one JSON result; `--stream` produces JSONL item/task progress.
|
|
|
172
176
|
|
|
173
177
|
The installers bind to `0.0.0.0:7777`, generate a protected Service Token, and print both. A phone must use the computer's reachable LAN or VPN address, not `0.0.0.0`. The API provides `POST /v1/text`, `/v1/image`, `/v1/task`, `/v1/tasks/:taskId/resume`, plus job polling and authenticated artifact downloads.
|
|
174
178
|
|
|
179
|
+
The scripts accept `CODEX_TASK_SERVICE_PROXY=auto`, `direct`, or a complete proxy URL, and retain compatibility with `CODEX_TASK_PROXY` / `CODEXERRAND_PROXY`. A fixed URL is stored only in the protected service runner and its value is not printed.
|
|
180
|
+
|
|
175
181
|
The installer Token is the full-access master Token. Create a separate device Token for text only, image only, or both; changes take effect without restarting the service:
|
|
176
182
|
|
|
177
183
|
```bash
|
|
@@ -202,7 +208,7 @@ npm run verify
|
|
|
202
208
|
|
|
203
209
|
`verify` runs lint, workflow checks, type checking, tests, build, package inspection, and a clean install/import smoke test. Live Direct endpoint tests are manual-only: `RUN_DIRECT_E2E=1 npm run test:e2e`.
|
|
204
210
|
|
|
205
|
-
|
|
211
|
+
Core package changes pushed to `main` publish a patch release; documentation-only changes do not. See [release setup](./docs/RELEASING.md).
|
|
206
212
|
|
|
207
213
|
The Direct backend derives in part from MIT-licensed [`lawrencewzen/imgen`](https://github.com/lawrencewzen/imgen); see [third-party notices](./THIRD_PARTY_NOTICES.md).
|
|
208
214
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { DirectTlsProfile } from "./identity.js";
|
|
1
2
|
export declare function tokenExpiry(accessToken: string): number | undefined;
|
|
2
3
|
export declare function isTokenExpired(accessToken: string): boolean;
|
|
3
|
-
export declare function ensureDirectAuth(codexHome: string, proxy?: string): Promise<{
|
|
4
|
+
export declare function ensureDirectAuth(codexHome: string, proxy?: string, tls?: DirectTlsProfile): Promise<{
|
|
4
5
|
accessToken: string;
|
|
5
6
|
accountId: string;
|
|
6
7
|
expiresAt?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/auth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AA2BtD,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnE;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG3D;AA+DD,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,gBAAgB,GACrB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,CAkDrF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,CAaA"}
|
|
@@ -63,8 +63,8 @@ function tokensFromDocument(document) {
|
|
|
63
63
|
account_id: tokens.account_id ?? "",
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
async function refreshTokens(refreshToken, proxy) {
|
|
67
|
-
const session = new ImpersonatedSession(15_000, proxy);
|
|
66
|
+
async function refreshTokens(refreshToken, proxy, tls) {
|
|
67
|
+
const session = new ImpersonatedSession(15_000, proxy, tls);
|
|
68
68
|
try {
|
|
69
69
|
const response = await session.post(TOKEN_REFRESH_URL, { "Content-Type": "application/json" }, JSON.stringify({ grant_type: "refresh_token", refresh_token: refreshToken, client_id: OAUTH_CLIENT_ID }));
|
|
70
70
|
if (response.status < 200 || response.status >= 300) {
|
|
@@ -84,7 +84,7 @@ async function refreshTokens(refreshToken, proxy) {
|
|
|
84
84
|
session.close();
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
export async function ensureDirectAuth(codexHome, proxy) {
|
|
87
|
+
export async function ensureDirectAuth(codexHome, proxy, tls) {
|
|
88
88
|
const initial = tokensFromDocument(loadAuthDocument(codexHome));
|
|
89
89
|
if (!isTokenExpired(initial.access_token)) {
|
|
90
90
|
return {
|
|
@@ -109,7 +109,7 @@ export async function ensureDirectAuth(codexHome, proxy) {
|
|
|
109
109
|
expiresAt: tokenExpiry(latest.access_token),
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
-
const refreshed = await refreshTokens(latest.refresh_token || initial.refresh_token, proxy);
|
|
112
|
+
const refreshed = await refreshTokens(latest.refresh_token || initial.refresh_token, proxy, tls);
|
|
113
113
|
if (!refreshed.access_token) {
|
|
114
114
|
throw new CodexTaskError("AUTH_REFRESH_FAILED", "Codex token refresh returned no access token");
|
|
115
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/backends/direct/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/backends/direct/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { type DirectTlsProfile } from "./identity.js";
|
|
1
2
|
export declare function directTransportAvailable(): boolean;
|
|
2
3
|
export interface HttpResponse {
|
|
3
4
|
status: number;
|
|
4
5
|
text: string;
|
|
5
6
|
}
|
|
7
|
+
export declare function directSessionOptions(timeoutMs: number, proxy: string | undefined, tls: DirectTlsProfile): Record<string, unknown>;
|
|
6
8
|
export declare class ImpersonatedSession {
|
|
7
9
|
private readonly session;
|
|
8
|
-
constructor(timeoutMs: number, proxy?: string);
|
|
10
|
+
constructor(timeoutMs: number, proxy?: string, tls?: DirectTlsProfile);
|
|
9
11
|
post(url: string, headers: Record<string, string>, body: string): Promise<HttpResponse>;
|
|
10
12
|
close(): void;
|
|
11
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/http.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAsCvB,wBAAgB,wBAAwB,IAAI,OAAO,CAOlD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,gBAAgB,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAGtC,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,GAAE,gBAA6C;IAK9C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ7F,KAAK,IAAI,IAAI;CAOd"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
2
|
import { CodexTaskError } from "../../errors.js";
|
|
3
|
+
import { resolveEffectiveProxy } from "../../system-proxy.js";
|
|
4
|
+
import { DEFAULT_DIRECT_TLS_PROFILE, } from "./identity.js";
|
|
3
5
|
const require = createRequire(import.meta.url);
|
|
4
6
|
let requests;
|
|
5
7
|
function loadRequests() {
|
|
@@ -25,23 +27,21 @@ export function directTransportAvailable() {
|
|
|
25
27
|
return false;
|
|
26
28
|
}
|
|
27
29
|
}
|
|
30
|
+
export function directSessionOptions(timeoutMs, proxy, tls) {
|
|
31
|
+
const effectiveProxy = resolveEffectiveProxy({ configuredProxy: proxy });
|
|
32
|
+
return {
|
|
33
|
+
ja3: tls.ja3,
|
|
34
|
+
akamai: tls.akamai,
|
|
35
|
+
httpVersion: "http2",
|
|
36
|
+
redirect: false,
|
|
37
|
+
timeout: Math.max(1, Math.ceil(timeoutMs / 1000)),
|
|
38
|
+
...(effectiveProxy ? { proxy: effectiveProxy } : {}),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
28
41
|
export class ImpersonatedSession {
|
|
29
42
|
session;
|
|
30
|
-
constructor(timeoutMs, proxy) {
|
|
31
|
-
|
|
32
|
-
process.env["CODEX_TASK_PROXY"] ??
|
|
33
|
-
process.env["CODEXERRAND_PROXY"] ??
|
|
34
|
-
process.env["ALL_PROXY"] ??
|
|
35
|
-
process.env["HTTPS_PROXY"] ??
|
|
36
|
-
process.env["https_proxy"];
|
|
37
|
-
this.session = loadRequests().session({
|
|
38
|
-
ja3: "auto",
|
|
39
|
-
akamai: "auto",
|
|
40
|
-
httpVersion: "http2",
|
|
41
|
-
redirect: false,
|
|
42
|
-
timeout: Math.max(1, Math.ceil(timeoutMs / 1000)),
|
|
43
|
-
...(effectiveProxy ? { proxy: effectiveProxy } : {}),
|
|
44
|
-
});
|
|
43
|
+
constructor(timeoutMs, proxy, tls = DEFAULT_DIRECT_TLS_PROFILE) {
|
|
44
|
+
this.session = loadRequests().session(directSessionOptions(timeoutMs, proxy, tls));
|
|
45
45
|
}
|
|
46
46
|
async post(url, headers, body) {
|
|
47
47
|
const response = await this.session.post(url, { headers, data: body });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/backends/direct/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/backends/direct/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,0BAA0B,GAE3B,MAAM,eAAe,CAAC;AAEvB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAkB/C,IAAI,QAAoC,CAAC;AAEzC,SAAS,YAAY;IACnB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAkC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACzE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,cAAc,CACtB,oBAAoB,EACpB,kHAAkH,EAClH,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAC9B,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,IAAI,CAAC;QACH,YAAY,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,KAAyB,EACzB,GAAqB;IAErB,MAAM,cAAc,GAAG,qBAAqB,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACjD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,mBAAmB;IACb,OAAO,CAAgB;IAExC,YACE,SAAiB,EACjB,KAAc,EACd,MAAwB,0BAA0B;QAElD,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAA+B,EAAE,IAAY;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,OAAO;YACL,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,IAAI,CAAC;YACvD,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,YAAY,IAAI,EAAE;SACnD,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
export interface DirectIdentity {
|
|
2
|
+
tls: DirectTlsProfile;
|
|
2
3
|
installationId: string;
|
|
3
4
|
codexVersion: string;
|
|
4
5
|
osType: string;
|
|
5
6
|
osVersion: string;
|
|
6
7
|
arch: string;
|
|
7
8
|
}
|
|
9
|
+
export interface DirectTlsProfile {
|
|
10
|
+
label: string;
|
|
11
|
+
ja3: string;
|
|
12
|
+
akamai: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Explicit profiles supported by @ossiana/node-libcurl. `auto` is intentionally
|
|
16
|
+
* avoided: its platform-dependent choice is rejected by ChatGPT's frontend on
|
|
17
|
+
* some Linux hosts even when the same OAuth account and proxy work in Codex CLI.
|
|
18
|
+
*/
|
|
19
|
+
export declare const DIRECT_TLS_PROFILES: readonly DirectTlsProfile[];
|
|
20
|
+
export declare const DEFAULT_DIRECT_TLS_PROFILE: DirectTlsProfile;
|
|
21
|
+
/** Returns the persisted profile, or the profile a future Direct request will persist. */
|
|
22
|
+
export declare function inspectDirectTlsProfile(): DirectTlsProfile;
|
|
8
23
|
export declare function loadOrCreateIdentity(codexHome: string): DirectIdentity;
|
|
9
24
|
export declare function buildUserAgent(identity: DirectIdentity): string;
|
|
10
25
|
export declare function platformSandboxTag(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/identity.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AA+CD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/identity.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,gBAAgB,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAI1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,gBAA8C,CAAC;AAcxF,0FAA0F;AAC1F,wBAAgB,uBAAuB,IAAI,gBAAgB,CAW1D;AA+CD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAuBtE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAE/D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAK3C"}
|
|
@@ -5,6 +5,43 @@ import { existsSync, readFileSync } from "node:fs";
|
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import { appPaths } from "../../paths.js";
|
|
7
7
|
import { atomicWrite } from "../../fs-utils.js";
|
|
8
|
+
/**
|
|
9
|
+
* Explicit profiles supported by @ossiana/node-libcurl. `auto` is intentionally
|
|
10
|
+
* avoided: its platform-dependent choice is rejected by ChatGPT's frontend on
|
|
11
|
+
* some Linux hosts even when the same OAuth account and proxy work in Codex CLI.
|
|
12
|
+
*/
|
|
13
|
+
export const DIRECT_TLS_PROFILES = [
|
|
14
|
+
{ label: "chrome131", ja3: "chrome131", akamai: "chrome119" },
|
|
15
|
+
{ label: "chrome133", ja3: "chrome133", akamai: "chrome119" },
|
|
16
|
+
{ label: "chrome150", ja3: "chrome150", akamai: "chrome119" },
|
|
17
|
+
];
|
|
18
|
+
export const DEFAULT_DIRECT_TLS_PROFILE = DIRECT_TLS_PROFILES.at(-1);
|
|
19
|
+
function pickTlsProfile() {
|
|
20
|
+
return { ...DEFAULT_DIRECT_TLS_PROFILE };
|
|
21
|
+
}
|
|
22
|
+
function isTlsProfile(value) {
|
|
23
|
+
if (!value || typeof value !== "object")
|
|
24
|
+
return false;
|
|
25
|
+
const profile = value;
|
|
26
|
+
return typeof profile["label"] === "string" &&
|
|
27
|
+
typeof profile["ja3"] === "string" && profile["ja3"] !== "auto" &&
|
|
28
|
+
typeof profile["akamai"] === "string" && profile["akamai"] !== "auto";
|
|
29
|
+
}
|
|
30
|
+
/** Returns the persisted profile, or the profile a future Direct request will persist. */
|
|
31
|
+
export function inspectDirectTlsProfile() {
|
|
32
|
+
const path = appPaths().identityPath;
|
|
33
|
+
if (existsSync(path)) {
|
|
34
|
+
try {
|
|
35
|
+
const value = JSON.parse(readFileSync(path, "utf8"));
|
|
36
|
+
if (isTlsProfile(value.tls))
|
|
37
|
+
return value.tls;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Report the migration default without mutating invalid state.
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return { ...DEFAULT_DIRECT_TLS_PROFILE };
|
|
44
|
+
}
|
|
8
45
|
function detectCodexVersion(codexHome) {
|
|
9
46
|
try {
|
|
10
47
|
const versionPath = join(codexHome, "version.json");
|
|
@@ -59,14 +96,20 @@ export function loadOrCreateIdentity(codexHome) {
|
|
|
59
96
|
if (existsSync(path)) {
|
|
60
97
|
try {
|
|
61
98
|
const value = JSON.parse(readFileSync(path, "utf8"));
|
|
62
|
-
if (value.installationId && value.codexVersion)
|
|
63
|
-
|
|
99
|
+
if (value.installationId && value.codexVersion && value.osType && value.osVersion && value.arch) {
|
|
100
|
+
if (isTlsProfile(value.tls))
|
|
101
|
+
return value;
|
|
102
|
+
const migrated = { ...value, tls: pickTlsProfile() };
|
|
103
|
+
atomicWrite(path, JSON.stringify(migrated, null, 2), 0o600);
|
|
104
|
+
return migrated;
|
|
105
|
+
}
|
|
64
106
|
}
|
|
65
107
|
catch {
|
|
66
108
|
// Replace invalid state.
|
|
67
109
|
}
|
|
68
110
|
}
|
|
69
111
|
const identity = {
|
|
112
|
+
tls: pickTlsProfile(),
|
|
70
113
|
installationId: detectInstallationId(codexHome),
|
|
71
114
|
codexVersion: detectCodexVersion(codexHome),
|
|
72
115
|
...platformInfo(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/backends/direct/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/backends/direct/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgC;IAC9D,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;IAC7D,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;IAC7D,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE;CAC9D,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAqB,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;AAExF,SAAS,cAAc;IACrB,OAAO,EAAE,GAAG,0BAA0B,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,OAAO,GAAG,KAAgC,CAAC;IACjD,OAAO,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ;QACzC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM;QAC/D,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC;AAC1E,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB;IACrC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC,YAAY,CAAC;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAsB,CAAC;YAC1E,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC,GAAG,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,0BAA0B,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAA4B,CAAC;YACvF,IAAI,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YAChD,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IACD,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,YAAY,GAAG,IAAI,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3F,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACvE,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,EAAE,KAAK,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACnG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC,YAAY,CAAC;IACrC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4B,CAAC;YAChF,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChG,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAuB,CAAC;gBAC5D,MAAM,QAAQ,GAAmB,EAAE,GAAG,KAAoC,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC;gBACpG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC5D,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAmB;QAC/B,GAAG,EAAE,cAAc,EAAE;QACrB,cAAc,EAAE,oBAAoB,CAAC,SAAS,CAAC;QAC/C,YAAY,EAAE,kBAAkB,CAAC,SAAS,CAAC;QAC3C,GAAG,YAAY,EAAE;KAClB,CAAC;IACF,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAwB;IACrD,OAAO,gBAAgB,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,GAAG,CAAC;AAC9G,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,IAAI,QAAQ,EAAE,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IAC/C,IAAI,QAAQ,EAAE,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,QAAQ,EAAE,KAAK,OAAO;QAAE,OAAO,iBAAiB,CAAC;IACrD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ResolvedDirectModel } from "./models.js";
|
|
2
|
+
import { CodexTaskError } from "../../errors.js";
|
|
2
3
|
import type { Artifact, ImageOptions, TextOptions, UsageSummary } from "../../types.js";
|
|
3
4
|
export interface DirectTextExecution {
|
|
4
5
|
text: string;
|
|
@@ -10,6 +11,7 @@ export interface DirectImageExecution {
|
|
|
10
11
|
model: ResolvedDirectModel;
|
|
11
12
|
usage?: UsageSummary | undefined;
|
|
12
13
|
}
|
|
14
|
+
export declare function mapDirectHttpError(status: number, body: string): CodexTaskError;
|
|
13
15
|
export declare function executeDirectText(taskId: string, options: TextOptions & {
|
|
14
16
|
prompt: string;
|
|
15
17
|
}): Promise<DirectTextExecution>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/direct/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAA+C,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKpG,OAAO,EAAE,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAa,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC;AAMD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAmC/E;AA8ED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA+B/H;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyFlI"}
|
|
@@ -11,8 +11,11 @@ import { validateImageOptions, writePngArtifact } from "../../images.js";
|
|
|
11
11
|
function emit(callback, event) {
|
|
12
12
|
callback?.(event);
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
export function mapDirectHttpError(status, body) {
|
|
15
15
|
const detail = body.slice(0, 500);
|
|
16
|
+
if (status === 403 && /^\s*(?:<!doctype\s+html|<html)\b/i.test(body)) {
|
|
17
|
+
return new CodexTaskError("DIRECT_UPSTREAM_BLOCKED", "Direct request was blocked by the ChatGPT frontend with HTTP 403", { details: detail });
|
|
18
|
+
}
|
|
16
19
|
if (status === 401 || status === 403) {
|
|
17
20
|
return new CodexTaskError("DIRECT_AUTH_FAILED", `Direct authentication failed with HTTP ${status}`, {
|
|
18
21
|
details: detail,
|
|
@@ -50,7 +53,7 @@ function normalizeDirectError(error) {
|
|
|
50
53
|
async function sendOnce(context, spec, timeoutMs, proxy, signal) {
|
|
51
54
|
if (signal?.aborted)
|
|
52
55
|
throw new DOMException("The operation was aborted", "AbortError");
|
|
53
|
-
const session = new ImpersonatedSession(timeoutMs, proxy);
|
|
56
|
+
const session = new ImpersonatedSession(timeoutMs, proxy, context.identity.tls);
|
|
54
57
|
const abort = () => session.close();
|
|
55
58
|
signal?.addEventListener("abort", abort, { once: true });
|
|
56
59
|
try {
|
|
@@ -59,7 +62,7 @@ async function sendOnce(context, spec, timeoutMs, proxy, signal) {
|
|
|
59
62
|
if (signal?.aborted)
|
|
60
63
|
throw new DOMException("The operation was aborted", "AbortError");
|
|
61
64
|
if (response.status !== 200)
|
|
62
|
-
throw
|
|
65
|
+
throw mapDirectHttpError(response.status, response.text);
|
|
63
66
|
const parsed = parseDirectResponse(response.text);
|
|
64
67
|
if (!parsed.text && !parsed.image) {
|
|
65
68
|
throw new CodexTaskError("DIRECT_EMPTY_RESPONSE", "Direct backend returned an empty response", {
|
|
@@ -92,11 +95,12 @@ async function sendWithRetry(taskId, context, spec, timeoutMs, retries, proxy, s
|
|
|
92
95
|
}
|
|
93
96
|
}
|
|
94
97
|
async function contextForRequest(codexHome, proxy) {
|
|
95
|
-
const
|
|
98
|
+
const identity = loadOrCreateIdentity(codexHome);
|
|
99
|
+
const auth = await ensureDirectAuth(codexHome, proxy, identity.tls);
|
|
96
100
|
return {
|
|
97
101
|
accessToken: auth.accessToken,
|
|
98
102
|
accountId: auth.accountId,
|
|
99
|
-
identity
|
|
103
|
+
identity,
|
|
100
104
|
sessionId: randomUUID(),
|
|
101
105
|
threadId: randomUUID(),
|
|
102
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/direct/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAA4B,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAA0B,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAezE,SAAS,IAAI,CAAC,QAAkD,EAAE,KAAgB;IAChF,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/direct/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ import { resolveTaskInput } from "./inputs.js";
|
|
|
8
8
|
import { startCodexTaskServer } from "./server.js";
|
|
9
9
|
import { createServiceToken, listServiceTokens, parseServiceTokenScopes, revokeServiceToken, serviceTokenRegistryPath, } from "./service-tokens.js";
|
|
10
10
|
import { companionSkillPath } from "./skill.js";
|
|
11
|
+
import { runServiceSetup } from "./setup.js";
|
|
11
12
|
import { runGarbageCollection } from "./state.js";
|
|
12
13
|
function collect(value, previous) {
|
|
13
14
|
return [...previous, value];
|
|
@@ -230,6 +231,28 @@ program.command("doctor").description("inspect local Direct and SDK readiness wi
|
|
|
230
231
|
program.command("gc").description("remove expired CodexTask state and temporary artifacts").action(() => {
|
|
231
232
|
writeJson(runGarbageCollection());
|
|
232
233
|
});
|
|
234
|
+
program
|
|
235
|
+
.command("setup")
|
|
236
|
+
.description("install and start the native user-level auto-start service")
|
|
237
|
+
.option("--host <host>", "listener address", "0.0.0.0")
|
|
238
|
+
.option("--port <port>", "listener port", "7777")
|
|
239
|
+
.option("--max-concurrency <count>", "maximum simultaneously running jobs", "2")
|
|
240
|
+
.option("--proxy <url>", "fixed HTTP/HTTPS/SOCKS proxy; defaults to automatic system detection")
|
|
241
|
+
.option("--no-proxy", "always connect directly and ignore environment and system proxies")
|
|
242
|
+
.action((flags) => {
|
|
243
|
+
const port = integer(flags["port"], "port");
|
|
244
|
+
const maxConcurrency = integer(flags["maxConcurrency"], "max-concurrency");
|
|
245
|
+
if (!port || port > 65_535)
|
|
246
|
+
throw usageError("port must be an integer from 1 to 65535");
|
|
247
|
+
if (!maxConcurrency)
|
|
248
|
+
throw usageError("max-concurrency must be a positive integer");
|
|
249
|
+
runServiceSetup({
|
|
250
|
+
host: flags["host"],
|
|
251
|
+
port,
|
|
252
|
+
maxConcurrency,
|
|
253
|
+
proxy: flags["proxy"],
|
|
254
|
+
});
|
|
255
|
+
});
|
|
233
256
|
const tokenCommand = program.command("token").description("manage scoped Service Tokens");
|
|
234
257
|
tokenCommand
|
|
235
258
|
.command("create")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,YAAY,CAAC;AAsB5D,wBAAgB,SAAS,CAAC,SAAS,SAAqB,GAAG,YAAY,CA6EtE"}
|
package/dist/doctor.js
CHANGED
|
@@ -6,6 +6,7 @@ import { appPaths, defaultCodexHome } from "./paths.js";
|
|
|
6
6
|
import { directTransportAvailable } from "./backends/direct/http.js";
|
|
7
7
|
import { inspectDirectAuth } from "./backends/direct/auth.js";
|
|
8
8
|
import { resolveDirectImageModel, resolveDirectModel } from "./backends/direct/models.js";
|
|
9
|
+
import { inspectDirectTlsProfile } from "./backends/direct/identity.js";
|
|
9
10
|
function codexVersion() {
|
|
10
11
|
try {
|
|
11
12
|
return execFileSync("codex", ["--version"], { timeout: 3000, encoding: "utf8" }).trim();
|
|
@@ -35,6 +36,13 @@ export function runDoctor(codexHome = defaultCodexHome()) {
|
|
|
35
36
|
? "Native Direct transport is available"
|
|
36
37
|
: "Native Direct transport is unavailable; SDK backend can still be used",
|
|
37
38
|
});
|
|
39
|
+
const tls = inspectDirectTlsProfile();
|
|
40
|
+
checks.push({
|
|
41
|
+
name: "direct-fingerprint",
|
|
42
|
+
status: "ok",
|
|
43
|
+
message: `${tls.label} TLS / ${tls.akamai} HTTP/2`,
|
|
44
|
+
details: { ja3: tls.ja3, akamai: tls.akamai },
|
|
45
|
+
});
|
|
38
46
|
const auth = inspectDirectAuth(codexHome);
|
|
39
47
|
checks.push({
|
|
40
48
|
name: "codex-oauth",
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtC;AAmBD,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CA2BlE"}
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { CodexTaskError, usageError } from "./errors.js";
|
|
4
|
+
function serviceProxySetting(proxy) {
|
|
5
|
+
if (proxy === false)
|
|
6
|
+
return "direct";
|
|
7
|
+
if (proxy === undefined || proxy === true)
|
|
8
|
+
return "auto";
|
|
9
|
+
const value = proxy.trim();
|
|
10
|
+
if (!value)
|
|
11
|
+
throw usageError("proxy URL must not be empty");
|
|
12
|
+
if (["auto", "direct", "none", "off"].includes(value.toLowerCase()))
|
|
13
|
+
return value.toLowerCase();
|
|
14
|
+
try {
|
|
15
|
+
const protocol = new URL(value).protocol;
|
|
16
|
+
if (!["http:", "https:", "socks:", "socks4:", "socks4a:", "socks5:", "socks5h:"].includes(protocol)) {
|
|
17
|
+
throw new Error("unsupported protocol");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
throw usageError("proxy must be auto, direct, or an HTTP/HTTPS/SOCKS URL");
|
|
22
|
+
}
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
export function runServiceSetup(options) {
|
|
26
|
+
const environment = {
|
|
27
|
+
...process.env,
|
|
28
|
+
CODEX_TASK_SERVICE_HOST: options.host,
|
|
29
|
+
CODEX_TASK_SERVICE_PORT: String(options.port),
|
|
30
|
+
CODEX_TASK_SERVICE_CONCURRENCY: String(options.maxConcurrency),
|
|
31
|
+
CODEX_TASK_SERVICE_PROXY: serviceProxySetting(options.proxy),
|
|
32
|
+
CODEX_TASK_SKIP_GLOBAL_INSTALL: "1",
|
|
33
|
+
};
|
|
34
|
+
const serviceDirectory = fileURLToPath(new URL("../scripts/service/", import.meta.url));
|
|
35
|
+
const command = process.platform === "win32" ? "powershell.exe" : "bash";
|
|
36
|
+
const args = process.platform === "win32"
|
|
37
|
+
? ["-NoProfile", "-ExecutionPolicy", "Bypass", "-File", `${serviceDirectory}Install-Windows.ps1`]
|
|
38
|
+
: [`${serviceDirectory}install.sh`];
|
|
39
|
+
const result = spawnSync(command, args, { env: environment, stdio: "inherit" });
|
|
40
|
+
if (result.error) {
|
|
41
|
+
throw new CodexTaskError("SETUP_FAILED", `Could not start the ${process.platform} service installer`, {
|
|
42
|
+
exitCode: 1,
|
|
43
|
+
cause: result.error,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (result.status !== 0) {
|
|
47
|
+
throw new CodexTaskError("SETUP_FAILED", `Service installer exited with status ${result.status ?? "unknown"}`, {
|
|
48
|
+
exitCode: 1,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzD,SAAS,mBAAmB,CAAC,KAAmC;IAC9D,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,MAAM,UAAU,CAAC,6BAA6B,CAAC,CAAC;IAC5D,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAChG,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpG,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,CAAC,wDAAwD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA4B;IAC1D,MAAM,WAAW,GAAsB;QACrC,GAAG,OAAO,CAAC,GAAG;QACd,uBAAuB,EAAE,OAAO,CAAC,IAAI;QACrC,uBAAuB,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7C,8BAA8B,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;QAC9D,wBAAwB,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5D,8BAA8B,EAAE,GAAG;KACpC,CAAC;IAEF,MAAM,gBAAgB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;QACvC,CAAC,CAAC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,gBAAgB,qBAAqB,CAAC;QACjG,CAAC,CAAC,CAAC,GAAG,gBAAgB,YAAY,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAChF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,cAAc,CAAC,cAAc,EAAE,uBAAuB,OAAO,CAAC,QAAQ,oBAAoB,EAAE;YACpG,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,cAAc,CAAC,cAAc,EAAE,wCAAwC,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE;YAC7G,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type ProxyPlatform = NodeJS.Platform;
|
|
2
|
+
export type ProxyCommandRunner = (file: string, args: readonly string[]) => string | undefined;
|
|
3
|
+
export interface ProxyResolutionOptions {
|
|
4
|
+
configuredProxy?: string | undefined;
|
|
5
|
+
env?: NodeJS.ProcessEnv | undefined;
|
|
6
|
+
platform?: ProxyPlatform | undefined;
|
|
7
|
+
runCommand?: ProxyCommandRunner | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function proxyFromMacOsOutput(output: string): string | undefined;
|
|
10
|
+
export declare function proxyFromWindowsServer(value: string): string | undefined;
|
|
11
|
+
export declare function resolveEffectiveProxy(options?: ProxyResolutionOptions): string | undefined;
|
|
12
|
+
//# sourceMappingURL=system-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-proxy.d.ts","sourceRoot":"","sources":["../src/system-proxy.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CAC7C;AAmCD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWvE;AAsBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAcxE;AAoBD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,MAAM,GAAG,SAAS,CAY9F"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
const DIRECT_PROXY_VALUES = new Set(["direct", "none", "off"]);
|
|
3
|
+
function defaultRunCommand(file, args) {
|
|
4
|
+
try {
|
|
5
|
+
return execFileSync(file, [...args], {
|
|
6
|
+
encoding: "utf8",
|
|
7
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
8
|
+
timeout: 1_500,
|
|
9
|
+
}).trim();
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function firstEnvironmentProxy(env) {
|
|
16
|
+
for (const name of ["ALL_PROXY", "all_proxy", "HTTPS_PROXY", "https_proxy", "HTTP_PROXY", "http_proxy"]) {
|
|
17
|
+
const value = env[name]?.trim();
|
|
18
|
+
if (value)
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
function outputValue(output, key) {
|
|
24
|
+
const match = output.match(new RegExp(`^\\s*${key}\\s*:\\s*(.*?)\\s*$`, "m"));
|
|
25
|
+
return match?.[1]?.trim() || undefined;
|
|
26
|
+
}
|
|
27
|
+
function proxyAddress(scheme, host, port) {
|
|
28
|
+
if (!host || !port || !/^\d+$/.test(port))
|
|
29
|
+
return undefined;
|
|
30
|
+
const formattedHost = host.includes(":") && !host.startsWith("[") ? `[${host}]` : host;
|
|
31
|
+
return `${scheme}://${formattedHost}:${port}`;
|
|
32
|
+
}
|
|
33
|
+
export function proxyFromMacOsOutput(output) {
|
|
34
|
+
if (outputValue(output, "SOCKSEnable") === "1") {
|
|
35
|
+
const socks = proxyAddress("socks5h", outputValue(output, "SOCKSProxy"), outputValue(output, "SOCKSPort"));
|
|
36
|
+
if (socks)
|
|
37
|
+
return socks;
|
|
38
|
+
}
|
|
39
|
+
for (const prefix of ["HTTPS", "HTTP"]) {
|
|
40
|
+
if (outputValue(output, `${prefix}Enable`) !== "1")
|
|
41
|
+
continue;
|
|
42
|
+
const proxy = proxyAddress("http", outputValue(output, `${prefix}Proxy`), outputValue(output, `${prefix}Port`));
|
|
43
|
+
if (proxy)
|
|
44
|
+
return proxy;
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
function unquoteGsettings(value) {
|
|
49
|
+
if (!value)
|
|
50
|
+
return undefined;
|
|
51
|
+
const trimmed = value.trim();
|
|
52
|
+
const match = trimmed.match(/^['"](.*)['"]$/s);
|
|
53
|
+
return (match?.[1] ?? trimmed).trim() || undefined;
|
|
54
|
+
}
|
|
55
|
+
function proxyFromGsettings(runCommand) {
|
|
56
|
+
const mode = unquoteGsettings(runCommand("gsettings", ["get", "org.gnome.system.proxy", "mode"]));
|
|
57
|
+
if (mode !== "manual")
|
|
58
|
+
return undefined;
|
|
59
|
+
for (const [section, scheme] of [["socks", "socks5h"], ["https", "http"], ["http", "http"]]) {
|
|
60
|
+
const host = unquoteGsettings(runCommand("gsettings", ["get", `org.gnome.system.proxy.${section}`, "host"]));
|
|
61
|
+
const port = unquoteGsettings(runCommand("gsettings", ["get", `org.gnome.system.proxy.${section}`, "port"]));
|
|
62
|
+
const proxy = proxyAddress(scheme, host, port);
|
|
63
|
+
if (proxy)
|
|
64
|
+
return proxy;
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
export function proxyFromWindowsServer(value) {
|
|
69
|
+
const trimmed = value.trim();
|
|
70
|
+
if (!trimmed)
|
|
71
|
+
return undefined;
|
|
72
|
+
if (!trimmed.includes("="))
|
|
73
|
+
return trimmed.includes("://") ? trimmed : `http://${trimmed}`;
|
|
74
|
+
const entries = new Map(trimmed.split(";").flatMap((entry) => {
|
|
75
|
+
const separator = entry.indexOf("=");
|
|
76
|
+
if (separator < 1)
|
|
77
|
+
return [];
|
|
78
|
+
return [[entry.slice(0, separator).trim().toLowerCase(), entry.slice(separator + 1).trim()]];
|
|
79
|
+
}));
|
|
80
|
+
const socks = entries.get("socks");
|
|
81
|
+
if (socks)
|
|
82
|
+
return socks.includes("://") ? socks : `socks5h://${socks}`;
|
|
83
|
+
const web = entries.get("https") ?? entries.get("http");
|
|
84
|
+
return web ? (web.includes("://") ? web : `http://${web}`) : undefined;
|
|
85
|
+
}
|
|
86
|
+
function detectSystemProxy(platform, runCommand) {
|
|
87
|
+
if (platform === "darwin") {
|
|
88
|
+
const output = runCommand("/usr/sbin/scutil", ["--proxy"]);
|
|
89
|
+
return output ? proxyFromMacOsOutput(output) : undefined;
|
|
90
|
+
}
|
|
91
|
+
if (platform === "linux")
|
|
92
|
+
return proxyFromGsettings(runCommand);
|
|
93
|
+
if (platform === "win32") {
|
|
94
|
+
const output = runCommand("powershell.exe", [
|
|
95
|
+
"-NoProfile",
|
|
96
|
+
"-NonInteractive",
|
|
97
|
+
"-Command",
|
|
98
|
+
"$p=Get-ItemProperty 'HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings'; if ($p.ProxyEnable -eq 1) {[Console]::Out.Write([string]$p.ProxyServer)}",
|
|
99
|
+
]);
|
|
100
|
+
return output ? proxyFromWindowsServer(output) : undefined;
|
|
101
|
+
}
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
export function resolveEffectiveProxy(options = {}) {
|
|
105
|
+
const env = options.env ?? process.env;
|
|
106
|
+
const configured = options.configuredProxy?.trim();
|
|
107
|
+
if (configured) {
|
|
108
|
+
const mode = configured.toLowerCase();
|
|
109
|
+
if (DIRECT_PROXY_VALUES.has(mode))
|
|
110
|
+
return undefined;
|
|
111
|
+
if (mode !== "auto")
|
|
112
|
+
return configured;
|
|
113
|
+
}
|
|
114
|
+
const environmentProxy = firstEnvironmentProxy(env);
|
|
115
|
+
if (environmentProxy)
|
|
116
|
+
return environmentProxy;
|
|
117
|
+
return detectSystemProxy(options.platform ?? process.platform, options.runCommand ?? defaultRunCommand);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=system-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-proxy.js","sourceRoot":"","sources":["../src/system-proxy.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,10 +10,21 @@ $ServiceDir = Join-Path $env:APPDATA "codex-task\service"
|
|
|
10
10
|
$TokenFile = Join-Path $ServiceDir "token"
|
|
11
11
|
$Runner = Join-Path $ServiceDir "run.cmd"
|
|
12
12
|
$LogFile = Join-Path $ServiceDir "service.log"
|
|
13
|
+
$ServiceProxy = if ($env:CODEX_TASK_SERVICE_PROXY) {
|
|
14
|
+
$env:CODEX_TASK_SERVICE_PROXY
|
|
15
|
+
} elseif ($env:CODEX_TASK_PROXY) {
|
|
16
|
+
$env:CODEX_TASK_PROXY
|
|
17
|
+
} elseif ($env:CODEXERRAND_PROXY) {
|
|
18
|
+
$env:CODEXERRAND_PROXY
|
|
19
|
+
} else {
|
|
20
|
+
"auto"
|
|
21
|
+
}
|
|
13
22
|
|
|
14
23
|
if (-not (Get-Command npm -ErrorAction SilentlyContinue)) { throw "npm is required" }
|
|
15
|
-
|
|
16
|
-
|
|
24
|
+
if ($env:CODEX_TASK_SKIP_GLOBAL_INSTALL -ne "1") {
|
|
25
|
+
npm install -g codex-task@latest
|
|
26
|
+
if ($LASTEXITCODE -ne 0) { throw "npm install -g codex-task@latest failed" }
|
|
27
|
+
}
|
|
17
28
|
$CodexTask = (Get-Command codex-task.cmd -ErrorAction SilentlyContinue).Source
|
|
18
29
|
if (-not $CodexTask) { $CodexTask = (Get-Command codex-task -ErrorAction Stop).Source }
|
|
19
30
|
|
|
@@ -24,11 +35,17 @@ if (-not (Test-Path $TokenFile) -or (Get-Item $TokenFile).Length -eq 0) {
|
|
|
24
35
|
}
|
|
25
36
|
icacls $TokenFile /inheritance:r /grant:r "$env:USERNAME`:(R,W)" | Out-Null
|
|
26
37
|
|
|
38
|
+
if ($ServiceProxy -match '[\r\n"]') { throw "The proxy setting contains characters unsupported by the Windows service runner" }
|
|
39
|
+
$EscapedProxy = $ServiceProxy.Replace("%", "%%")
|
|
40
|
+
$ProxyLine = "set `"CODEX_TASK_PROXY=$EscapedProxy`""
|
|
41
|
+
|
|
27
42
|
$RunnerBody = @"
|
|
28
43
|
@echo off
|
|
44
|
+
$ProxyLine
|
|
29
45
|
"$CodexTask" serve --host "$HostAddress" --port "$Port" --token-file "$TokenFile" --max-concurrency "$MaxConcurrency" >> "$LogFile" 2>&1
|
|
30
46
|
"@
|
|
31
47
|
[System.IO.File]::WriteAllText($Runner, $RunnerBody)
|
|
48
|
+
icacls $Runner /inheritance:r /grant:r "$env:USERNAME`:(R,W)" | Out-Null
|
|
32
49
|
|
|
33
50
|
$UserId = if ($env:USERDOMAIN) { "$env:USERDOMAIN\$env:USERNAME" } else { $env:USERNAME }
|
|
34
51
|
$Action = New-ScheduledTaskAction -Execute (Join-Path $env:SystemRoot "System32\cmd.exe") -Argument "/d /c `"$Runner`""
|
|
@@ -45,3 +62,10 @@ Write-Host "Token: $([System.IO.File]::ReadAllText($TokenFile))"
|
|
|
45
62
|
Write-Host "Token file: $TokenFile"
|
|
46
63
|
Write-Host "Log: $LogFile"
|
|
47
64
|
Write-Host "The task starts when $UserId logs in so it can reuse that user's Codex environment."
|
|
65
|
+
if ($ServiceProxy.ToLowerInvariant() -eq "auto") {
|
|
66
|
+
Write-Host "Proxy: automatic environment/system detection."
|
|
67
|
+
} elseif ($ServiceProxy.ToLowerInvariant() -in "direct", "none", "off") {
|
|
68
|
+
Write-Host "Proxy: disabled; Direct requests connect directly."
|
|
69
|
+
} else {
|
|
70
|
+
Write-Host "Proxy: fixed URL stored in the protected service runner."
|
|
71
|
+
}
|
|
@@ -4,6 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
service_host="${CODEX_TASK_SERVICE_HOST:-0.0.0.0}"
|
|
5
5
|
service_port="${CODEX_TASK_SERVICE_PORT:-7777}"
|
|
6
6
|
service_concurrency="${CODEX_TASK_SERVICE_CONCURRENCY:-2}"
|
|
7
|
+
service_proxy="${CODEX_TASK_SERVICE_PROXY:-${CODEX_TASK_PROXY:-${CODEXERRAND_PROXY:-auto}}}"
|
|
7
8
|
service_dir="$HOME/Library/Application Support/codex-task/service"
|
|
8
9
|
token_file="$service_dir/token"
|
|
9
10
|
runner="$service_dir/run.sh"
|
|
@@ -12,7 +13,9 @@ label="com.wangyendt.codex-task"
|
|
|
12
13
|
plist="$HOME/Library/LaunchAgents/$label.plist"
|
|
13
14
|
|
|
14
15
|
command -v npm >/dev/null 2>&1 || { echo "npm is required" >&2; exit 1; }
|
|
15
|
-
|
|
16
|
+
if [[ "${CODEX_TASK_SKIP_GLOBAL_INSTALL:-0}" != "1" ]]; then
|
|
17
|
+
npm install -g codex-task@latest
|
|
18
|
+
fi
|
|
16
19
|
codex_task_bin="$(command -v codex-task)"
|
|
17
20
|
|
|
18
21
|
mkdir -p "$service_dir" "$HOME/Library/LaunchAgents"
|
|
@@ -28,9 +31,12 @@ quoted_host="$(printf '%q' "$service_host")"
|
|
|
28
31
|
quoted_port="$(printf '%q' "$service_port")"
|
|
29
32
|
quoted_token="$(printf '%q' "$token_file")"
|
|
30
33
|
quoted_concurrency="$(printf '%q' "$service_concurrency")"
|
|
34
|
+
quoted_proxy="$(printf '%q' "$service_proxy")"
|
|
35
|
+
proxy_export="export CODEX_TASK_PROXY=$quoted_proxy"
|
|
31
36
|
cat > "$runner" <<EOF
|
|
32
37
|
#!/usr/bin/env bash
|
|
33
38
|
export PATH=$quoted_path
|
|
39
|
+
$proxy_export
|
|
34
40
|
exec $quoted_bin serve --host $quoted_host --port $quoted_port --token-file $quoted_token --max-concurrency $quoted_concurrency
|
|
35
41
|
EOF
|
|
36
42
|
chmod 700 "$runner"
|
|
@@ -57,10 +63,25 @@ EOF
|
|
|
57
63
|
plutil -lint "$plist" >/dev/null
|
|
58
64
|
|
|
59
65
|
launchctl bootout "gui/$(id -u)/$label" 2>/dev/null || true
|
|
60
|
-
|
|
66
|
+
bootstrap_status=1
|
|
67
|
+
for delay in 0.2 0.5 1; do
|
|
68
|
+
if launchctl bootstrap "gui/$(id -u)" "$plist" 2>/dev/null; then
|
|
69
|
+
bootstrap_status=0
|
|
70
|
+
break
|
|
71
|
+
fi
|
|
72
|
+
sleep "$delay"
|
|
73
|
+
done
|
|
74
|
+
if [[ "$bootstrap_status" -ne 0 ]]; then
|
|
75
|
+
launchctl bootstrap "gui/$(id -u)" "$plist"
|
|
76
|
+
fi
|
|
61
77
|
|
|
62
78
|
echo "CodexTask LaunchAgent installed."
|
|
63
79
|
echo "URL: http://$service_host:$service_port"
|
|
64
80
|
echo "Token: $(<"$token_file")"
|
|
65
81
|
echo "Token file: $token_file"
|
|
66
82
|
echo "Log: $log_file"
|
|
83
|
+
case "$service_proxy" in
|
|
84
|
+
auto|AUTO) echo "Proxy: automatic environment/system detection." ;;
|
|
85
|
+
direct|DIRECT|none|NONE|off|OFF) echo "Proxy: disabled; Direct requests connect directly." ;;
|
|
86
|
+
*) echo "Proxy: fixed URL stored in the protected service runner." ;;
|
|
87
|
+
esac
|
|
@@ -4,6 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
service_host="${CODEX_TASK_SERVICE_HOST:-0.0.0.0}"
|
|
5
5
|
service_port="${CODEX_TASK_SERVICE_PORT:-7777}"
|
|
6
6
|
service_concurrency="${CODEX_TASK_SERVICE_CONCURRENCY:-2}"
|
|
7
|
+
service_proxy="${CODEX_TASK_SERVICE_PROXY:-${CODEX_TASK_PROXY:-${CODEXERRAND_PROXY:-auto}}}"
|
|
7
8
|
service_dir="${XDG_CONFIG_HOME:-$HOME/.config}/codex-task/service"
|
|
8
9
|
user_unit_dir="${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user"
|
|
9
10
|
token_file="$service_dir/token"
|
|
@@ -13,7 +14,9 @@ unit_file="$user_unit_dir/codex-task.service"
|
|
|
13
14
|
command -v npm >/dev/null 2>&1 || { echo "npm is required" >&2; exit 1; }
|
|
14
15
|
command -v systemctl >/dev/null 2>&1 || { echo "systemd user services are required" >&2; exit 1; }
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
if [[ "${CODEX_TASK_SKIP_GLOBAL_INSTALL:-0}" != "1" ]]; then
|
|
18
|
+
npm install -g codex-task@latest
|
|
19
|
+
fi
|
|
17
20
|
codex_task_bin="$(command -v codex-task)"
|
|
18
21
|
|
|
19
22
|
mkdir -p "$service_dir" "$user_unit_dir"
|
|
@@ -29,9 +32,12 @@ quoted_host="$(printf '%q' "$service_host")"
|
|
|
29
32
|
quoted_port="$(printf '%q' "$service_port")"
|
|
30
33
|
quoted_token="$(printf '%q' "$token_file")"
|
|
31
34
|
quoted_concurrency="$(printf '%q' "$service_concurrency")"
|
|
35
|
+
quoted_proxy="$(printf '%q' "$service_proxy")"
|
|
36
|
+
proxy_export="export CODEX_TASK_PROXY=$quoted_proxy"
|
|
32
37
|
cat > "$runner" <<EOF
|
|
33
38
|
#!/usr/bin/env bash
|
|
34
39
|
export PATH=$quoted_path
|
|
40
|
+
$proxy_export
|
|
35
41
|
exec $quoted_bin serve --host $quoted_host --port $quoted_port --token-file $quoted_token --max-concurrency $quoted_concurrency
|
|
36
42
|
EOF
|
|
37
43
|
chmod 700 "$runner"
|
|
@@ -61,3 +67,8 @@ echo "Token: $(<"$token_file")"
|
|
|
61
67
|
echo "Token file: $token_file"
|
|
62
68
|
echo "Status: systemctl --user status codex-task.service"
|
|
63
69
|
echo "For boot-time start before login, an administrator may run: loginctl enable-linger $USER"
|
|
70
|
+
case "$service_proxy" in
|
|
71
|
+
auto|AUTO) echo "Proxy: automatic environment/system detection." ;;
|
|
72
|
+
direct|DIRECT|none|NONE|off|OFF) echo "Proxy: disabled; Direct requests connect directly." ;;
|
|
73
|
+
*) echo "Proxy: fixed URL stored in the protected service runner." ;;
|
|
74
|
+
esac
|
|
@@ -4,6 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
if [[ "${1:-}" == "--help" || "${1:-}" == "-h" ]]; then
|
|
5
5
|
echo "Install the CodexTask auto-start service for Ubuntu/Linux or macOS."
|
|
6
6
|
echo "Usage: bash scripts/service/install.sh"
|
|
7
|
+
echo "Optional: CODEX_TASK_SERVICE_PROXY=auto, direct, or a proxy URL."
|
|
7
8
|
exit 0
|
|
8
9
|
fi
|
|
9
10
|
if [[ $# -ne 0 ]]; then
|