codex-task 0.2.8 → 0.2.9
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 +21 -1
- package/README_EN.md +7 -1
- package/dist/backends/direct/http.d.ts.map +1 -1
- package/dist/backends/direct/http.js +2 -6
- package/dist/backends/direct/http.js.map +1 -1
- package/dist/cli.js +23 -0
- package/dist/cli.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
|
@@ -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
|
@@ -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
|
|
@@ -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":"AAwCA,wBAAgB,wBAAwB,IAAI,OAAO,CAOlD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;gBAE5B,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAYvC,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,6 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
2
|
import { CodexTaskError } from "../../errors.js";
|
|
3
|
+
import { resolveEffectiveProxy } from "../../system-proxy.js";
|
|
3
4
|
const require = createRequire(import.meta.url);
|
|
4
5
|
let requests;
|
|
5
6
|
function loadRequests() {
|
|
@@ -28,12 +29,7 @@ export function directTransportAvailable() {
|
|
|
28
29
|
export class ImpersonatedSession {
|
|
29
30
|
session;
|
|
30
31
|
constructor(timeoutMs, proxy) {
|
|
31
|
-
const effectiveProxy = proxy
|
|
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"];
|
|
32
|
+
const effectiveProxy = resolveEffectiveProxy({ configuredProxy: proxy });
|
|
37
33
|
this.session = loadRequests().session({
|
|
38
34
|
ja3: "auto",
|
|
39
35
|
akamai: "auto",
|
|
@@ -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;AAE9D,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,OAAO,mBAAmB;IACb,OAAO,CAAgB;IAExC,YAAY,SAAiB,EAAE,KAAc;QAC3C,MAAM,cAAc,GAAG,qBAAqB,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC,OAAO,CAAC;YACpC,GAAG,EAAE,MAAM;YACX,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;YACjD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,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"}
|
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/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":"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"}
|
|
@@ -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
|