codex-task 0.2.7 → 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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-task",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Delegate multimodal text, image, and workspace tasks to CodexTask",
5
5
  "author": {
6
6
  "name": "wang121ye",
package/README.md CHANGED
@@ -190,7 +190,7 @@ codex-task image "仅供本轮分析的草图" --temp
190
190
  codex-task gc
191
191
  ```
192
192
 
193
- 图片参数:`size=auto|WIDTHxHEIGHT`(最长边 ≤ 3840)、`quality=auto|low|medium|high`、`background=auto|opaque|transparent`、`count=1–10`、`concurrency=1–3`。
193
+ 图片参数:`size=auto|WIDTHxHEIGHT`(宽高为正整数,不设本地上限)、`quality=auto|low|medium|high`、`background=auto|opaque|transparent`、`count=1–10`、`concurrency=1–3`。自定义尺寸会原样交给后端;模型不支持时返回后端错误。
194
194
 
195
195
  ## 安装给其他 Agent
196
196
 
@@ -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
- 开机服务使用 `npm install -g codex-task@latest`。这样启动时不依赖 npm 网络,执行文件路径也不会变化。三平台脚本会安装或升级全局包、生成随机 token、创建用户级自启动项并立即启动服务。
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
@@ -126,7 +126,7 @@ SDK tasks default to `sandbox=danger-full-access`, `approval=never`, and `networ
126
126
  - Managed temporary output: `--temp`, under `os.tmpdir()/codex-task/<task-id>`, eligible for cleanup after 24 hours.
127
127
  - `--temp` and `--output` are mutually exclusive. Existing files are protected unless `--overwrite` is present.
128
128
 
129
- Image controls: `size=auto|WIDTHxHEIGHT` (longest edge 3840), `quality=auto|low|medium|high`, `background=auto|opaque|transparent`, `count=1–10`, and `concurrency=1–3`.
129
+ Image controls: `size=auto|WIDTHxHEIGHT` (positive integers with no local dimension cap), `quality=auto|low|medium|high`, `background=auto|opaque|transparent`, `count=1–10`, and `concurrency=1–3`. Custom dimensions are passed through; unsupported sizes return the backend error.
130
130
 
131
131
  ## Companion skill
132
132
 
@@ -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. A boot service uses `npm install -g codex-task@latest` so startup does not depend on registry access and the executable path stays fixed.
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":"AAuCA,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;IAkBvC,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
+ {"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;AAEjD,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,GAClB,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7B,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"}
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAazD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAgBzE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,qBAAqB,CAqCjF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,UAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAgBtC;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,EAClB,SAAS,UAAQ,GAChB,QAAQ,CAcV"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAazD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAgBzE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,qBAAqB,CA+BjF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,UAAQ,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAgBtC;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,EAClB,SAAS,UAAQ,GAChB,QAAQ,CAcV"}
package/dist/images.js CHANGED
@@ -49,15 +49,9 @@ export function validateImageOptions(options) {
49
49
  if (!Number.isInteger(concurrency) || concurrency < 1 || concurrency > 3) {
50
50
  throw usageError("concurrency must be an integer from 1 to 3");
51
51
  }
52
- if (!/^(auto|[1-9]\d{0,3}x[1-9]\d{0,3})$/.test(size)) {
52
+ if (!/^(auto|[1-9]\d*x[1-9]\d*)$/.test(size)) {
53
53
  throw usageError("size must be auto or WIDTHxHEIGHT");
54
54
  }
55
- if (size !== "auto") {
56
- const [width, height] = size.split("x").map(Number);
57
- if (!width || !height || Math.max(width, height) > 3840) {
58
- throw usageError("image width and height must be at most 3840");
59
- }
60
- }
61
55
  return {
62
56
  count,
63
57
  concurrency,
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../src/images.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface ServiceSetupOptions {
2
+ host: string;
3
+ port: number;
4
+ maxConcurrency: number;
5
+ proxy?: string | boolean | undefined;
6
+ }
7
+ export declare function runServiceSetup(options: ServiceSetupOptions): void;
8
+ //# sourceMappingURL=setup.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAalD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE/D,SAAS,iBAAiB,CAAC,IAAY,EAAE,IAAuB;IAC9D,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;YACnC,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,KAAK;SACf,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAsB;IACnD,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAU,EAAE,CAAC;QACjH,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;QAChC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,GAAW;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,GAAG,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9E,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,MAA0B,EAAE,IAAwB,EAAE,IAAwB;IAClG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACvF,OAAO,GAAG,MAAM,MAAM,aAAa,IAAI,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAC3G,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,CAAU,EAAE,CAAC;QAChD,IAAI,WAAW,CAAC,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,GAAG;YAAE,SAAS;QAC7D,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,CAAC,CAAC;QAChH,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;AACrD,CAAC;AAED,SAAS,kBAAkB,CAAC,UAA8B;IACxD,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,wBAAwB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClG,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAExC,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAU,EAAE,CAAC;QACrG,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,0BAA0B,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,0BAA0B,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,EAAE,CAAC;IAE3F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,SAAS,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7B,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAU,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC;IACvE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAuB,EAAE,UAA8B;IAChF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChE,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,EAAE;YAC1C,YAAY;YACZ,iBAAiB;YACjB,UAAU;YACV,wKAAwK;SACzK,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkC,EAAE;IACxE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,UAAU,CAAC;IACzC,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAC;IAC9C,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC,CAAC;AAC1G,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-task",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Unofficial agent-to-agent text, image, and workspace task runner for Codex",
5
5
  "type": "module",
6
6
  "author": "wang121ye",
@@ -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
- npm install -g codex-task@latest
16
- if ($LASTEXITCODE -ne 0) { throw "npm install -g codex-task@latest failed" }
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
- npm install -g codex-task@latest
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
- launchctl bootstrap "gui/$(id -u)" "$plist"
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
- npm install -g codex-task@latest
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