@singbox-iac/cli 0.1.7 → 0.1.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.
Files changed (96) hide show
  1. package/README-en.md +67 -1
  2. package/README.md +66 -1
  3. package/dist/cli/commands/apply.js +5 -1
  4. package/dist/cli/commands/apply.js.map +1 -1
  5. package/dist/cli/commands/author.d.ts +3 -0
  6. package/dist/cli/commands/author.js +35 -3
  7. package/dist/cli/commands/author.js.map +1 -1
  8. package/dist/cli/commands/build.js +11 -0
  9. package/dist/cli/commands/build.js.map +1 -1
  10. package/dist/cli/commands/check.js +5 -1
  11. package/dist/cli/commands/check.js.map +1 -1
  12. package/dist/cli/commands/doctor.js +12 -0
  13. package/dist/cli/commands/doctor.js.map +1 -1
  14. package/dist/cli/commands/proxifier.js +60 -5
  15. package/dist/cli/commands/proxifier.js.map +1 -1
  16. package/dist/cli/commands/reload.js +5 -1
  17. package/dist/cli/commands/reload.js.map +1 -1
  18. package/dist/cli/commands/restart.d.ts +2 -0
  19. package/dist/cli/commands/restart.js +57 -0
  20. package/dist/cli/commands/restart.js.map +1 -0
  21. package/dist/cli/commands/rollback.js +6 -2
  22. package/dist/cli/commands/rollback.js.map +1 -1
  23. package/dist/cli/commands/run.js +5 -1
  24. package/dist/cli/commands/run.js.map +1 -1
  25. package/dist/cli/commands/schedule.js +10 -2
  26. package/dist/cli/commands/schedule.js.map +1 -1
  27. package/dist/cli/commands/setup.js +90 -12
  28. package/dist/cli/commands/setup.js.map +1 -1
  29. package/dist/cli/commands/start.d.ts +2 -0
  30. package/dist/cli/commands/start.js +51 -0
  31. package/dist/cli/commands/start.js.map +1 -0
  32. package/dist/cli/commands/status.d.ts +2 -0
  33. package/dist/cli/commands/status.js +65 -0
  34. package/dist/cli/commands/status.js.map +1 -0
  35. package/dist/cli/commands/stop.d.ts +2 -0
  36. package/dist/cli/commands/stop.js +29 -0
  37. package/dist/cli/commands/stop.js.map +1 -0
  38. package/dist/cli/commands/update.js +8 -0
  39. package/dist/cli/commands/update.js.map +1 -1
  40. package/dist/cli/commands/use.js +7 -0
  41. package/dist/cli/commands/use.js.map +1 -1
  42. package/dist/cli/commands/verify.js +15 -3
  43. package/dist/cli/commands/verify.js.map +1 -1
  44. package/dist/cli/index.js +17 -1
  45. package/dist/cli/index.js.map +1 -1
  46. package/dist/config/schema.d.ts +125 -0
  47. package/dist/config/schema.js +49 -0
  48. package/dist/config/schema.js.map +1 -1
  49. package/dist/domain/runtime-mode.d.ts +10 -0
  50. package/dist/domain/runtime-mode.js +2 -0
  51. package/dist/domain/runtime-mode.js.map +1 -0
  52. package/dist/modules/authoring/index.d.ts +2 -0
  53. package/dist/modules/authoring/index.js +19 -5
  54. package/dist/modules/authoring/index.js.map +1 -1
  55. package/dist/modules/compiler/index.js +32 -14
  56. package/dist/modules/compiler/index.js.map +1 -1
  57. package/dist/modules/desktop-runtime/index.d.ts +48 -0
  58. package/dist/modules/desktop-runtime/index.js +183 -0
  59. package/dist/modules/desktop-runtime/index.js.map +1 -0
  60. package/dist/modules/doctor/index.d.ts +5 -0
  61. package/dist/modules/doctor/index.js +37 -8
  62. package/dist/modules/doctor/index.js.map +1 -1
  63. package/dist/modules/manager/index.d.ts +1 -1
  64. package/dist/modules/manager/index.js +6 -28
  65. package/dist/modules/manager/index.js.map +1 -1
  66. package/dist/modules/natural-language/index.d.ts +5 -0
  67. package/dist/modules/natural-language/index.js +52 -9
  68. package/dist/modules/natural-language/index.js.map +1 -1
  69. package/dist/modules/preview/index.d.ts +4 -0
  70. package/dist/modules/preview/index.js +3 -0
  71. package/dist/modules/preview/index.js.map +1 -1
  72. package/dist/modules/proxifier/index.d.ts +15 -4
  73. package/dist/modules/proxifier/index.js +146 -40
  74. package/dist/modules/proxifier/index.js.map +1 -1
  75. package/dist/modules/runtime-dependencies/index.d.ts +22 -0
  76. package/dist/modules/runtime-dependencies/index.js +114 -0
  77. package/dist/modules/runtime-dependencies/index.js.map +1 -0
  78. package/dist/modules/runtime-mode/index.d.ts +23 -0
  79. package/dist/modules/runtime-mode/index.js +86 -0
  80. package/dist/modules/runtime-mode/index.js.map +1 -0
  81. package/dist/modules/schedule/index.d.ts +1 -0
  82. package/dist/modules/schedule/index.js +1 -1
  83. package/dist/modules/schedule/index.js.map +1 -1
  84. package/dist/modules/status/index.d.ts +57 -0
  85. package/dist/modules/status/index.js +295 -0
  86. package/dist/modules/status/index.js.map +1 -0
  87. package/dist/modules/update/index.js +5 -3
  88. package/dist/modules/update/index.js.map +1 -1
  89. package/dist/modules/verification/index.d.ts +1 -1
  90. package/dist/modules/verification/index.js +6 -12
  91. package/dist/modules/verification/index.js.map +1 -1
  92. package/docs/natural-language-authoring.md +36 -0
  93. package/docs/proxifier-onboarding.md +14 -0
  94. package/docs/runtime-on-macos.md +36 -0
  95. package/examples/builder.config.yaml +9 -0
  96. package/package.json +2 -1
package/README-en.md CHANGED
@@ -140,6 +140,7 @@ The other common need is service-level routing:
140
140
  - Sync local `.srs` rule sets automatically
141
141
  - Publish validated configs to `~/.config/sing-box/config.json`
142
142
  - Install `launchd` schedules for recurring updates on macOS
143
+ - Use an internal `RuntimeMode` planning layer to keep browser-proxy, process-proxy, and headless update defaults consistent
143
144
 
144
145
  ## Install
145
146
 
@@ -156,6 +157,8 @@ npm install -g @singbox-iac/cli
156
157
  singbox-iac --help
157
158
  ```
158
159
 
160
+ After the first successful `go`, `setup`, or `doctor` run, the CLI persists the resolved `sing-box` and Chrome paths into your `builder.config.yaml`. Later `update` runs and the `launchd` schedule no longer depend on your current shell `PATH`.
161
+
159
162
  ## Quick Start
160
163
 
161
164
  ### Most users only need 3 commands
@@ -170,8 +173,33 @@ singbox-iac update
170
173
  - `use`: change policy later with one sentence and re-apply it
171
174
  - `update`: refresh the subscription and apply the latest config
172
175
 
176
+ For desktop runtime and troubleshooting, the most useful commands are:
177
+
178
+ ```bash
179
+ singbox-iac start
180
+ singbox-iac stop
181
+ singbox-iac restart
182
+ singbox-iac status
183
+ ```
184
+
185
+ - `start`: start the desktop runtime as a dedicated macOS LaunchAgent
186
+ - `stop`: stop the desktop runtime and let `sing-box` release system proxy or TUN resources
187
+ - `restart`: restart the desktop runtime
188
+ - `status`: summarize live config, desktop runtime, system proxy/TUN state, schedule, and the latest transaction
189
+
190
+ For troubleshooting, start with:
191
+
192
+ ```bash
193
+ singbox-iac status
194
+ ```
195
+
196
+ It summarizes the current `sing-box` binary, live config, process state, listener activity,
197
+ schedule state, and the latest publish transaction.
198
+
173
199
  Everything else can be treated as advanced commands for debugging or fine-grained control.
174
200
 
201
+ `RuntimeMode` is an internal concept; users do not need to choose one manually. Onboarding and `update` infer `browser-proxy`, `process-proxy`, or `headless-daemon` and use that to guide visible verification and runtime defaults. See [docs/runtime-modes.md](./docs/runtime-modes.md).
202
+
175
203
  ### One-step onboarding
176
204
 
177
205
  ```bash
@@ -213,6 +241,19 @@ The difference is simple:
213
241
  singbox-iac run
214
242
  ```
215
243
 
244
+ If you want a more GUI-like always-on desktop runtime, prefer:
245
+
246
+ ```bash
247
+ singbox-iac start
248
+ ```
249
+
250
+ The default desktop runtime profiles are:
251
+
252
+ - `system-proxy`: keep the `mixed` inbound and let `sing-box` set / clean macOS system proxy automatically
253
+ - `tun`: emit a `tun` inbound with `auto_route`, closer to the global-capture behavior of GUI clients
254
+
255
+ If onboarding intent explicitly mentions `TUN`, `global proxy`, or similar wording, the desktop profile is inferred as `tun`. Otherwise the default profile is `system-proxy`.
256
+
216
257
  Default local listeners:
217
258
 
218
259
  - `127.0.0.1:39097` for browser/system proxy traffic
@@ -238,6 +279,11 @@ That command performs:
238
279
  singbox-iac schedule install
239
280
  ```
240
281
 
282
+ Background updates and desktop runtime are separate concerns:
283
+
284
+ - `schedule install`: runs recurring `update`
285
+ - `start / stop / restart`: manage the local desktop runtime LaunchAgent
286
+
241
287
  ## Natural-Language Authoring
242
288
 
243
289
  If you only want to change the routing sentence and apply it immediately, use the shorter command:
@@ -265,9 +311,17 @@ The authoring layer supports:
265
311
 
266
312
  - deterministic local intent parsing by default
267
313
  - optional local AI CLI integration
268
- - preview before writing
314
+ - `--strict` to reject vague requests instead of guessing
315
+ - `--diff` to inspect `Intent IR / rules / config` changes before writing
316
+ - `--emit-intent-ir` to print the structured intent layer directly
269
317
  - closed-loop update after rule generation
270
318
 
319
+ Recommended before applying a production routing change:
320
+
321
+ ```bash
322
+ singbox-iac use 'GitHub and developer sites go through Hong Kong, Gemini goes through Singapore' --strict --diff
323
+ ```
324
+
271
325
  ## Proxifier Onboarding
272
326
 
273
327
  If your AI IDE, language server, or desktop app does not respect the normal system proxy path, use the generated Proxifier helper directory:
@@ -284,6 +338,8 @@ It contains:
284
338
  - `bundles/antigravity.txt`
285
339
  - `bundles/cursor.txt`
286
340
  - `bundles/developer-ai-cli.txt`
341
+ - `bundle-specs/antigravity.yaml`
342
+ - `bundle-specs/cursor.yaml`
287
343
  - `all-processes.txt`
288
344
 
289
345
  If you only want to regenerate the Proxifier helper files:
@@ -292,6 +348,14 @@ If you only want to regenerate the Proxifier helper files:
292
348
  singbox-iac proxifier scaffold --prompt 'Antigravity process traffic goes through the US and Cursor also uses a dedicated ingress'
293
349
  ```
294
350
 
351
+ You can also inspect or export declarative bundle specs directly:
352
+
353
+ ```bash
354
+ singbox-iac proxifier bundles
355
+ singbox-iac proxifier bundles show antigravity
356
+ singbox-iac proxifier bundles render antigravity
357
+ ```
358
+
295
359
  ## How It Works With sing-box
296
360
 
297
361
  This project does not replace the `sing-box` core binary. It generates and manages `sing-box` configuration.
@@ -339,6 +403,8 @@ singbox-iac verify
339
403
  singbox-iac update
340
404
  singbox-iac doctor
341
405
  singbox-iac proxifier bundles
406
+ singbox-iac proxifier bundles show antigravity
407
+ singbox-iac proxifier bundles render antigravity
342
408
  singbox-iac proxifier scaffold
343
409
  singbox-iac schedule install
344
410
  singbox-iac schedule remove
package/README.md CHANGED
@@ -140,6 +140,7 @@ flowchart TD
140
140
  - 自动同步本地 `.srs` 规则集
141
141
  - 发布配置到 `~/.config/sing-box/config.json`
142
142
  - 通过 `launchd` 做定时更新
143
+ - 内部 `RuntimeMode` 规划层,用于统一浏览器代理、进程级代理和无头更新路径的默认行为
143
144
 
144
145
  ## 安装
145
146
 
@@ -156,6 +157,8 @@ npm install -g @singbox-iac/cli
156
157
  singbox-iac --help
157
158
  ```
158
159
 
160
+ 第一次成功执行 `go`、`setup` 或 `doctor` 之后,CLI 会把解析到的 `sing-box` 和 Chrome 路径写回你的 `builder.config.yaml`。这样后续 `update` 和 `launchd schedule` 不会再依赖你当前 shell 的 `PATH`。
161
+
159
162
  ## 快速开始
160
163
 
161
164
  ### 大多数用户只需要 3 个命令
@@ -170,8 +173,32 @@ singbox-iac update
170
173
  - `use`:以后需求变化时使用,一句话改策略并重新应用
171
174
  - `update`:日常更新订阅并自动在运行中的 `sing-box` 上生效
172
175
 
176
+ 桌面运行和排障最常用的是:
177
+
178
+ ```bash
179
+ singbox-iac start
180
+ singbox-iac stop
181
+ singbox-iac restart
182
+ singbox-iac status
183
+ ```
184
+
185
+ - `start`:以 macOS 专用 LaunchAgent 启动桌面运行时
186
+ - `stop`:停止桌面运行时,并让 `sing-box` 释放系统代理或 TUN 资源
187
+ - `restart`:重新拉起桌面运行时
188
+ - `status`:汇总 live config、桌面运行时、系统代理 / TUN 状态、schedule 和最近一次事务
189
+
190
+ 排障时优先用:
191
+
192
+ ```bash
193
+ singbox-iac status
194
+ ```
195
+
196
+ 它会汇总当前 `sing-box` binary、live config、进程状态、监听端口、schedule 状态和最近一次发布事务。
197
+
173
198
  其余命令都可以理解为高级命令,主要用于调试、排障或更细粒度控制。
174
199
 
200
+ `RuntimeMode` 是内部概念,不要求用户手动选择。当前 onboarding 和 `update` 会自动推断 `browser-proxy`、`process-proxy` 或 `headless-daemon`,并据此调整可见验证和运行时默认行为。详见 [docs/runtime-modes.md](./docs/runtime-modes.md)。
201
+
175
202
  ### 一步完成初始化
176
203
 
177
204
  ```bash
@@ -213,6 +240,19 @@ singbox-iac setup \
213
240
  singbox-iac run
214
241
  ```
215
242
 
243
+ 如果你想要更接近 GUI 的常驻体验,优先用:
244
+
245
+ ```bash
246
+ singbox-iac start
247
+ ```
248
+
249
+ 当前默认桌面运行 profile 是:
250
+
251
+ - `system-proxy`:保留 `mixed` 入站,并让 `sing-box` 自动设置 / 清理 macOS 系统代理
252
+ - `tun`:生成 `tun` 入站并启用 `auto_route`,更接近 GUI 客户端的全局接管方式
253
+
254
+ 如果自然语言里明确提到 `TUN`、`全局代理`、`全局模式` 等需求,onboarding 会把桌面 profile 推断成 `tun`。否则默认使用 `system-proxy`。
255
+
216
256
  默认监听端口:
217
257
 
218
258
  - `127.0.0.1:39097`:浏览器 / 系统代理流量
@@ -238,6 +278,11 @@ singbox-iac update
238
278
  singbox-iac schedule install
239
279
  ```
240
280
 
281
+ 定时更新和桌面运行是两条独立链路:
282
+
283
+ - `schedule install`:定时执行 `update`
284
+ - `start / stop / restart`:管理本地桌面运行的 `sing-box` LaunchAgent
285
+
241
286
  ## 自然语言规则编写
242
287
 
243
288
  如果你只想“改一句话需求并立即生效”,推荐直接用更短的命令:
@@ -265,9 +310,17 @@ singbox-iac author \
265
310
 
266
311
  - 默认使用本地确定性意图解析
267
312
  - 可选接入本地 AI CLI
268
- - 写入前先 preview
313
+ - 支持 `--strict`,遇到模糊表述直接失败
314
+ - 支持 `--diff`,先看 `Intent IR / 规则 / 配置` 变化再决定是否应用
315
+ - 支持 `--emit-intent-ir`,直接输出结构化意图层
269
316
  - 生成规则后直接闭环 update
270
317
 
318
+ 推荐在正式改策略前先看一次 diff:
319
+
320
+ ```bash
321
+ singbox-iac use 'GitHub 这类开发类都走香港,Gemini 走新加坡' --strict --diff
322
+ ```
323
+
271
324
  ## Proxifier 上手
272
325
 
273
326
  如果你的 AI IDE、language server 或桌面应用不走系统代理,可以直接使用自动生成的 Proxifier 辅助目录:
@@ -284,6 +337,8 @@ singbox-iac author \
284
337
  - `bundles/antigravity.txt`
285
338
  - `bundles/cursor.txt`
286
339
  - `bundles/developer-ai-cli.txt`
340
+ - `bundle-specs/antigravity.yaml`
341
+ - `bundle-specs/cursor.yaml`
287
342
  - `all-processes.txt`
288
343
 
289
344
  如果你只想重新生成这部分,不需要重跑全部 onboarding:
@@ -292,6 +347,14 @@ singbox-iac author \
292
347
  singbox-iac proxifier scaffold --prompt 'Antigravity 进程级走美国,Cursor 也走独立入口'
293
348
  ```
294
349
 
350
+ 也可以直接查看或导出声明式 bundle:
351
+
352
+ ```bash
353
+ singbox-iac proxifier bundles
354
+ singbox-iac proxifier bundles show antigravity
355
+ singbox-iac proxifier bundles render antigravity
356
+ ```
357
+
295
358
  ## 它和 sing-box 是怎么配合的
296
359
 
297
360
  它不会替代 `sing-box` 内核本身,而是负责生成和维护 `sing-box` 配置。
@@ -339,6 +402,8 @@ singbox-iac verify
339
402
  singbox-iac update
340
403
  singbox-iac doctor
341
404
  singbox-iac proxifier bundles
405
+ singbox-iac proxifier bundles show antigravity
406
+ singbox-iac proxifier bundles render antigravity
342
407
  singbox-iac proxifier scaffold
343
408
  singbox-iac schedule install
344
409
  singbox-iac schedule remove
@@ -31,7 +31,11 @@ export function registerApplyCommand(program) {
31
31
  stagingPath,
32
32
  livePath,
33
33
  ...(backupPath ? { backupPath } : {}),
34
- ...(options.singBoxBin ? { singBoxBinary: options.singBoxBin } : {}),
34
+ ...(options.singBoxBin
35
+ ? { singBoxBinary: options.singBoxBin }
36
+ : builderConfig.runtime.dependencies.singBoxBinary
37
+ ? { singBoxBinary: builderConfig.runtime.dependencies.singBoxBinary }
38
+ : {}),
35
39
  ...(options.reload !== undefined ? { reload: options.reload } : {}),
36
40
  ...(builderConfig?.runtime.reload ? { runtime: builderConfig.runtime.reload } : {}),
37
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/cli/commands/apply.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;SAC3D,MAAM,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;SAC7D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,+BAA+B,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC;QAE1E,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,aAAa;YAC/B,CAAC,CAAC,MAAM,oBAAoB,CAAC;gBACzB,MAAM,EAAE,aAAa;gBACrB,aAAa,EAAE,WAAW;gBAC1B,QAAQ;gBACR,UAAU,EAAE,UAAU,IAAI,aAAa,CAAC,MAAM,CAAC,UAAU;gBACzD,mBAAmB,EAAE,EAAE;gBACvB,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,WAAW,CAAC;wBAChB,WAAW;wBACX,QAAQ;wBACR,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnE,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpF,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,WAAW,WAAW,QAAQ,KACxD,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,IAAI,CAAC,CAAC,CAAC,EAC3C,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/cli/commands/apply.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;SAC3D,MAAM,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,6BAA6B,CAAC;SAC7D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,+BAA+B,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC;QAE1E,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,aAAa;YAC/B,CAAC,CAAC,MAAM,oBAAoB,CAAC;gBACzB,MAAM,EAAE,aAAa;gBACrB,aAAa,EAAE,WAAW;gBAC1B,QAAQ;gBACR,UAAU,EAAE,UAAU,IAAI,aAAa,CAAC,MAAM,CAAC,UAAU;gBACzD,mBAAmB,EAAE,EAAE;gBACvB,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,WAAW,CAAC;wBAChB,WAAW;wBACX,QAAQ;wBACR,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrC,GAAG,CAAC,OAAO,CAAC,UAAU;4BACpB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE;4BACvC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa;gCAChD,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE;gCACrE,CAAC,CAAC,EAAE,CAAC;wBACT,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnE,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpF,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,WAAW,WAAW,QAAQ,KACxD,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,IAAI,CAAC,CAAC,CAAC,EAC3C,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7D,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -12,6 +12,9 @@ interface AuthorCommandOptions {
12
12
  readonly subscriptionUrl?: string;
13
13
  readonly subscriptionFile?: string;
14
14
  readonly preview?: boolean;
15
+ readonly diff?: boolean;
16
+ readonly emitIntentIr?: boolean;
17
+ readonly strict?: boolean;
15
18
  readonly skipBuild?: boolean;
16
19
  readonly update?: boolean;
17
20
  readonly skipVerify?: boolean;
@@ -1,6 +1,6 @@
1
1
  import path from "node:path";
2
2
  import { generateAuthoringPlan } from "../../modules/authoring/index.js";
3
- import { buildConfigArtifact } from "../../modules/build/index.js";
3
+ import { buildConfigArtifact, resolveEffectiveIntent } from "../../modules/build/index.js";
4
4
  import { applyPlanToBuilderConfig, updateBuilderAuthoring, writeGeneratedRules, } from "../../modules/natural-language/index.js";
5
5
  import { generateAuthoringPreview } from "../../modules/preview/index.js";
6
6
  import { installLaunchdSchedule } from "../../modules/schedule/index.js";
@@ -20,6 +20,9 @@ export function registerAuthorCommand(program) {
20
20
  .option("--subscription-url <url>", "override subscription URL when building")
21
21
  .option("--subscription-file <path>", "use a local subscription file instead of fetching")
22
22
  .option("--preview", "print rules/config/staging diffs without writing any files")
23
+ .option("--diff", "print intent/rules/config diffs without writing any files")
24
+ .option("--emit-intent-ir", "print the generated Intent IR and exit without writing files")
25
+ .option("--strict", "reject ambiguous natural-language requests instead of guessing")
23
26
  .option("--skip-build", "write rules only and skip config generation")
24
27
  .option("--update", "after writing rules, run build + verify + publish")
25
28
  .option("--skip-verify", "when used with --update, skip runtime verification before publish")
@@ -56,6 +59,7 @@ export async function runAuthorFlow(options) {
56
59
  ...(options.authorTimeoutMs ? { timeoutMs: Number.parseInt(options.authorTimeoutMs, 10) } : {}),
57
60
  ...(options.execCommand ? { execCommand: options.execCommand } : {}),
58
61
  ...(options.execArg.length > 0 ? { execArgs: options.execArg } : {}),
62
+ ...(options.strict ? { strict: true } : {}),
59
63
  });
60
64
  const plan = planResult.plan;
61
65
  const rulesPath = options.rulesOut
@@ -65,12 +69,19 @@ export async function runAuthorFlow(options) {
65
69
  rulesPath,
66
70
  plan,
67
71
  });
68
- if (options.preview) {
72
+ if (options.emitIntentIr) {
73
+ process.stdout.write(`${JSON.stringify(planResult.intent, null, 2)}\n`);
74
+ return;
75
+ }
76
+ if (options.preview || options.diff) {
77
+ const currentIntent = await resolveEffectiveIntent(builderConfig);
69
78
  const preview = await generateAuthoringPreview({
70
79
  configPath,
71
80
  config: builderConfig,
72
81
  plan,
73
82
  rulesPath,
83
+ currentIntent,
84
+ proposedIntent: planResult.intent,
74
85
  ...(options.subscriptionFile ? { subscriptionFile: options.subscriptionFile } : {}),
75
86
  ...(options.subscriptionUrl ? { subscriptionUrl: options.subscriptionUrl } : {}),
76
87
  buildStaging: !options.skipBuild,
@@ -82,8 +93,12 @@ export async function runAuthorFlow(options) {
82
93
  `Provider used: ${planResult.providerUsed}`,
83
94
  `Templates: ${plan.templateIds.length > 0 ? plan.templateIds.join(", ") : "(none)"}`,
84
95
  `Generated rules: ${plan.beforeBuiltins.length + plan.afterBuiltins.length}`,
85
- "Preview mode: no files were written.",
96
+ `${options.diff ? "Diff" : "Preview"} mode: no files were written.`,
86
97
  ];
98
+ if (planResult.ambiguities.length > 0) {
99
+ lines.push(`Ambiguities detected: ${planResult.ambiguities.length}`);
100
+ lines.push(...planResult.ambiguities.map((ambiguity) => `- ${ambiguity}`));
101
+ }
87
102
  if (plan.notes.length > 0) {
88
103
  lines.push(`Notes: ${plan.notes.length}`);
89
104
  lines.push(...plan.notes.map((note) => `- ${note}`));
@@ -95,6 +110,9 @@ export async function runAuthorFlow(options) {
95
110
  lines.push("Live update: requested, but skipped in preview mode.");
96
111
  }
97
112
  lines.push("");
113
+ lines.push("Intent IR diff:");
114
+ lines.push(preview.intentDiff.diff);
115
+ lines.push("");
98
116
  lines.push("Rules diff:");
99
117
  lines.push(preview.rulesDiff.diff);
100
118
  lines.push("");
@@ -127,6 +145,10 @@ export async function runAuthorFlow(options) {
127
145
  `Templates: ${plan.templateIds.length > 0 ? plan.templateIds.join(", ") : "(none)"}`,
128
146
  `Generated rules: ${plan.beforeBuiltins.length + plan.afterBuiltins.length}`,
129
147
  ];
148
+ if (planResult.ambiguities.length > 0) {
149
+ lines.push(`Ambiguities detected: ${planResult.ambiguities.length}`);
150
+ lines.push(...planResult.ambiguities.map((ambiguity) => `- ${ambiguity}`));
151
+ }
130
152
  if (plan.notes.length > 0) {
131
153
  lines.push(`Notes: ${plan.notes.length}`);
132
154
  lines.push(...plan.notes.map((note) => `- ${note}`));
@@ -140,6 +162,16 @@ export async function runAuthorFlow(options) {
140
162
  label: options.label,
141
163
  ...(options.launchAgentsDir ? { launchAgentsDir: resolvePath(options.launchAgentsDir) } : {}),
142
164
  ...(options.logsDir ? { logsDir: resolvePath(options.logsDir) } : {}),
165
+ ...(options.singBoxBin
166
+ ? { singBoxBinary: resolvePath(options.singBoxBin) }
167
+ : effectiveConfig.runtime.dependencies.singBoxBinary
168
+ ? { singBoxBinary: effectiveConfig.runtime.dependencies.singBoxBinary }
169
+ : {}),
170
+ ...(options.chromeBin
171
+ ? { chromeBinary: resolvePath(options.chromeBin) }
172
+ : effectiveConfig.runtime.dependencies.chromeBinary
173
+ ? { chromeBinary: effectiveConfig.runtime.dependencies.chromeBinary }
174
+ : {}),
143
175
  force: options.forceSchedule === true,
144
176
  load: options.load !== false,
145
177
  });
@@ -1 +1 @@
1
- {"version":3,"file":"author.js","sourceRoot":"","sources":["../../../src/cli/commands/author.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"author.js","sourceRoot":"","sources":["../../../src/cli/commands/author.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { homedir } from "node:os";
2
2
  import path from "node:path";
3
3
  import { buildConfigArtifact } from "../../modules/build/index.js";
4
+ import { defaultRuntimeLaunchAgentLabel } from "../../modules/desktop-runtime/index.js";
4
5
  import { resolveBuilderConfig } from "../command-helpers.js";
5
6
  export function registerBuildCommand(program) {
6
7
  program
@@ -53,6 +54,16 @@ async function resolveBuildConfig(options) {
53
54
  processName: "sing-box",
54
55
  signal: "HUP",
55
56
  },
57
+ dependencies: {},
58
+ desktop: {
59
+ profile: "system-proxy",
60
+ launchAgentLabel: defaultRuntimeLaunchAgentLabel,
61
+ tun: {
62
+ autoRoute: true,
63
+ strictRoute: false,
64
+ addresses: ["172.19.0.1/30", "fdfe:dcba:9876::1/126"],
65
+ },
66
+ },
56
67
  },
57
68
  listeners: {
58
69
  mixed: {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,11 @@ export function registerCheckCommand(program) {
15
15
  }
16
16
  const result = await checkConfig({
17
17
  configPath,
18
- ...(options.singBoxBin ? { singBoxBinary: options.singBoxBin } : {}),
18
+ ...(options.singBoxBin
19
+ ? { singBoxBinary: options.singBoxBin }
20
+ : builderConfig?.runtime.dependencies.singBoxBinary
21
+ ? { singBoxBinary: builderConfig.runtime.dependencies.singBoxBinary }
22
+ : {}),
19
23
  });
20
24
  process.stdout.write(`OK: ${configPath}\nBinary: ${result.binaryPath}\n`);
21
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;SAC/D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAC/B,UAAU;YACV,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,UAAU,aAAa,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/cli/commands/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;SAC/D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAC/B,UAAU;YACV,GAAG,CAAC,OAAO,CAAC,UAAU;gBACpB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE;gBACvC,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa;oBACjD,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE;oBACrE,CAAC,CAAC,EAAE,CAAC;SACV,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,UAAU,aAAa,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import path from "node:path";
2
2
  import { runDoctor } from "../../modules/doctor/index.js";
3
+ import { persistRuntimeDependencies } from "../../modules/runtime-dependencies/index.js";
3
4
  import { findDefaultConfigPath, resolveBuilderConfig } from "../command-helpers.js";
4
5
  export function registerDoctorCommand(program) {
5
6
  program
@@ -23,6 +24,17 @@ export function registerDoctorCommand(program) {
23
24
  ? { launchAgentsDir: pathResolve(options.launchAgentsDir) }
24
25
  : {}),
25
26
  });
27
+ if (config && configPath) {
28
+ await persistRuntimeDependencies({
29
+ configPath,
30
+ ...(report.resolvedDependencies.singBox
31
+ ? { singBox: report.resolvedDependencies.singBox }
32
+ : {}),
33
+ ...(report.resolvedDependencies.chrome
34
+ ? { chrome: report.resolvedDependencies.chrome }
35
+ : {}),
36
+ });
37
+ }
26
38
  process.stdout.write(`${report.checks.map((check) => `[${check.status}] ${check.name}: ${check.details}`).join("\n")}\n`);
27
39
  if (report.checks.some((check) => check.status === "FAIL")) {
28
40
  throw new Error("Doctor found blocking failures.");
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SACtD,MAAM,CAAC,4BAA4B,EAAE,6CAA6C,CAAC;SACnF,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAC9C,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7C,oBAAoB,CAAC,OAAO,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE;SACxF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAC3D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACpG,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AASD,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
1
2
  import path from "node:path";
2
3
  import { loadConfig } from "../../config/load-config.js";
3
- import { listProxifierBundles, selectProxifierBundlesFromPrompt, writeProxifierScaffold, } from "../../modules/proxifier/index.js";
4
+ import { getProxifierBundle, listProxifierBundles, renderProxifierBundleSpec, selectProxifierBundlesFromPrompt, writeProxifierScaffold, } from "../../modules/proxifier/index.js";
4
5
  import { getDefaultConfigDir, getDefaultConfigPath } from "../command-helpers.js";
5
6
  export function registerProxifierCommand(program) {
6
7
  const proxifier = program
@@ -8,10 +9,59 @@ export function registerProxifierCommand(program) {
8
9
  .description("Generate Proxifier helper files for process-aware routing.");
9
10
  proxifier
10
11
  .command("bundles")
11
- .description("List supported Proxifier process bundles.")
12
- .action(() => {
13
- const lines = listProxifierBundles().map((bundle) => `${bundle.id}: ${bundle.name}\n- ${bundle.description}`);
14
- process.stdout.write(`${lines.join("\n")}\n`);
12
+ .description("List supported Proxifier bundles, show one bundle, or render one bundle spec.")
13
+ .argument("[operation]", "show or render")
14
+ .argument("[id]", "bundle id")
15
+ .option("--out <path>", "write the rendered bundle spec to a file")
16
+ .action(async (operation, id, options) => {
17
+ if (!operation) {
18
+ const lines = listProxifierBundles().map((bundle) => `${bundle.id}: ${bundle.name}\n- ${bundle.description}\n- inbound: ${bundle.targetInbound}, outbound: ${bundle.targetOutboundGroup}`);
19
+ process.stdout.write(`${lines.join("\n")}\n`);
20
+ return;
21
+ }
22
+ if (!["show", "render"].includes(operation)) {
23
+ throw new Error(`Unknown proxifier bundle operation: ${operation}`);
24
+ }
25
+ if (!id) {
26
+ throw new Error(`proxifier bundles ${operation} requires a bundle id.`);
27
+ }
28
+ const bundle = getProxifierBundle(id);
29
+ if (!bundle) {
30
+ throw new Error(`Unknown Proxifier bundle: ${id}`);
31
+ }
32
+ if (operation === "show") {
33
+ const lines = [
34
+ `ID: ${bundle.id}`,
35
+ `Name: ${bundle.name}`,
36
+ `Description: ${bundle.description}`,
37
+ `Inbound: ${bundle.targetInbound}`,
38
+ `Outbound: ${bundle.targetOutboundGroup}`,
39
+ "Matchers:",
40
+ ...bundle.processMatchers.map((matcher) => {
41
+ if (matcher.processName) {
42
+ return `- processName: ${matcher.processName}`;
43
+ }
44
+ if (matcher.bundleId) {
45
+ return `- bundleId: ${matcher.bundleId}`;
46
+ }
47
+ return `- pathRegex: ${matcher.pathRegex ?? ""}`;
48
+ }),
49
+ ];
50
+ if (bundle.notes && bundle.notes.length > 0) {
51
+ lines.push("Notes:");
52
+ lines.push(...bundle.notes.map((note) => `- ${note}`));
53
+ }
54
+ process.stdout.write(`${lines.join("\n")}\n`);
55
+ return;
56
+ }
57
+ const rendered = renderProxifierBundleSpec(bundle);
58
+ if (options?.out) {
59
+ const outputPath = resolvePath(options.out);
60
+ await writeBundleSpec(outputPath, rendered);
61
+ process.stdout.write(`Bundle spec: ${outputPath}\n`);
62
+ return;
63
+ }
64
+ process.stdout.write(rendered);
15
65
  });
16
66
  proxifier
17
67
  .command("scaffold")
@@ -45,6 +95,7 @@ export function registerProxifierCommand(program) {
45
95
  }
46
96
  if (result.bundles.length > 0) {
47
97
  lines.push(`Bundles: ${result.bundles.map((bundle) => bundle.id).join(", ")}`);
98
+ lines.push(`Bundle specs: ${result.bundleSpecPaths.join(", ")}`);
48
99
  }
49
100
  else {
50
101
  lines.push("Bundles: none");
@@ -58,4 +109,8 @@ function collectOption(value, previous) {
58
109
  function resolvePath(filePath) {
59
110
  return filePath.startsWith("/") ? filePath : path.resolve(process.cwd(), filePath);
60
111
  }
112
+ async function writeBundleSpec(filePath, rendered) {
113
+ await mkdir(path.dirname(filePath), { recursive: true });
114
+ await writeFile(filePath, rendered, "utf8");
115
+ }
61
116
  //# sourceMappingURL=proxifier.js.map