@singbox-iac/cli 0.1.16 → 0.1.18

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 (113) hide show
  1. package/README-en.md +70 -19
  2. package/README.md +75 -23
  3. package/dist/cli/commands/apply.js +3 -0
  4. package/dist/cli/commands/apply.js.map +1 -1
  5. package/dist/cli/commands/author.d.ts +2 -0
  6. package/dist/cli/commands/author.js +49 -19
  7. package/dist/cli/commands/author.js.map +1 -1
  8. package/dist/cli/commands/build.js +39 -13
  9. package/dist/cli/commands/build.js.map +1 -1
  10. package/dist/cli/commands/diagnose.d.ts +2 -0
  11. package/dist/cli/commands/diagnose.js +122 -0
  12. package/dist/cli/commands/diagnose.js.map +1 -0
  13. package/dist/cli/commands/doctor.js +21 -1
  14. package/dist/cli/commands/doctor.js.map +1 -1
  15. package/dist/cli/commands/proxifier.js +13 -4
  16. package/dist/cli/commands/proxifier.js.map +1 -1
  17. package/dist/cli/commands/reload.js +1 -0
  18. package/dist/cli/commands/reload.js.map +1 -1
  19. package/dist/cli/commands/restart.js +71 -7
  20. package/dist/cli/commands/restart.js.map +1 -1
  21. package/dist/cli/commands/rollback.js +1 -0
  22. package/dist/cli/commands/rollback.js.map +1 -1
  23. package/dist/cli/commands/rulesets.d.ts +2 -0
  24. package/dist/cli/commands/rulesets.js +125 -0
  25. package/dist/cli/commands/rulesets.js.map +1 -0
  26. package/dist/cli/commands/runtime-watchdog.d.ts +2 -0
  27. package/dist/cli/commands/runtime-watchdog.js +45 -0
  28. package/dist/cli/commands/runtime-watchdog.js.map +1 -0
  29. package/dist/cli/commands/setup.js +40 -14
  30. package/dist/cli/commands/setup.js.map +1 -1
  31. package/dist/cli/commands/start.js +56 -5
  32. package/dist/cli/commands/start.js.map +1 -1
  33. package/dist/cli/commands/status.js +140 -28
  34. package/dist/cli/commands/status.js.map +1 -1
  35. package/dist/cli/commands/stop.js +28 -5
  36. package/dist/cli/commands/stop.js.map +1 -1
  37. package/dist/cli/commands/use.js +3 -1
  38. package/dist/cli/commands/use.js.map +1 -1
  39. package/dist/cli/commands/verify.js +1 -1
  40. package/dist/cli/commands/verify.js.map +1 -1
  41. package/dist/cli/index.js +12 -4
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/config/schema.d.ts +222 -35
  44. package/dist/config/schema.js +80 -1
  45. package/dist/config/schema.js.map +1 -1
  46. package/dist/domain/dns-plan.d.ts +11 -1
  47. package/dist/domain/intent.d.ts +2 -2
  48. package/dist/domain/verification-plan.d.ts +3 -3
  49. package/dist/modules/authoring/index.js +26 -9
  50. package/dist/modules/authoring/index.js.map +1 -1
  51. package/dist/modules/build/index.d.ts +4 -1
  52. package/dist/modules/build/index.js +17 -4
  53. package/dist/modules/build/index.js.map +1 -1
  54. package/dist/modules/bundle-registry/index.d.ts +52 -0
  55. package/dist/modules/bundle-registry/index.js +691 -0
  56. package/dist/modules/bundle-registry/index.js.map +1 -0
  57. package/dist/modules/compiler/index.js +79 -12
  58. package/dist/modules/compiler/index.js.map +1 -1
  59. package/dist/modules/desktop-runtime/index.d.ts +36 -0
  60. package/dist/modules/desktop-runtime/index.js +154 -12
  61. package/dist/modules/desktop-runtime/index.js.map +1 -1
  62. package/dist/modules/diagnostics/index.d.ts +28 -0
  63. package/dist/modules/diagnostics/index.js +306 -0
  64. package/dist/modules/diagnostics/index.js.map +1 -0
  65. package/dist/modules/dns-plan/index.js +73 -12
  66. package/dist/modules/dns-plan/index.js.map +1 -1
  67. package/dist/modules/intent/index.js +2 -2
  68. package/dist/modules/intent/index.js.map +1 -1
  69. package/dist/modules/layered-authoring/index.d.ts +45 -0
  70. package/dist/modules/layered-authoring/index.js +549 -0
  71. package/dist/modules/layered-authoring/index.js.map +1 -0
  72. package/dist/modules/manager/index.d.ts +3 -1
  73. package/dist/modules/manager/index.js +26 -1
  74. package/dist/modules/manager/index.js.map +1 -1
  75. package/dist/modules/natural-language/index.d.ts +8 -5
  76. package/dist/modules/natural-language/index.js +74 -69
  77. package/dist/modules/natural-language/index.js.map +1 -1
  78. package/dist/modules/proxifier/index.d.ts +1 -14
  79. package/dist/modules/proxifier/index.js +13 -143
  80. package/dist/modules/proxifier/index.js.map +1 -1
  81. package/dist/modules/rule-set-catalog/index.d.ts +25 -0
  82. package/dist/modules/rule-set-catalog/index.js +135 -0
  83. package/dist/modules/rule-set-catalog/index.js.map +1 -0
  84. package/dist/modules/runtime-mode/index.d.ts +1 -1
  85. package/dist/modules/runtime-mode/index.js +0 -5
  86. package/dist/modules/runtime-mode/index.js.map +1 -1
  87. package/dist/modules/runtime-watchdog/index.d.ts +73 -0
  88. package/dist/modules/runtime-watchdog/index.js +532 -0
  89. package/dist/modules/runtime-watchdog/index.js.map +1 -0
  90. package/dist/modules/status/index.d.ts +57 -0
  91. package/dist/modules/status/index.js +307 -31
  92. package/dist/modules/status/index.js.map +1 -1
  93. package/dist/modules/system-proxy/index.d.ts +31 -0
  94. package/dist/modules/system-proxy/index.js +164 -0
  95. package/dist/modules/system-proxy/index.js.map +1 -0
  96. package/dist/modules/update/index.js +3 -1
  97. package/dist/modules/update/index.js.map +1 -1
  98. package/dist/modules/verification/index.d.ts +5 -5
  99. package/dist/modules/verification/index.js +93 -12
  100. package/dist/modules/verification/index.js.map +1 -1
  101. package/dist/modules/verification-plan/index.js +13 -4
  102. package/dist/modules/verification-plan/index.js.map +1 -1
  103. package/docs/agent-context.md +131 -0
  104. package/docs/natural-language-authoring.md +106 -1
  105. package/docs/proxifier-onboarding.md +15 -4
  106. package/docs/rule-templates.md +2 -0
  107. package/docs/runtime-modes.md +84 -0
  108. package/docs/runtime-on-macos.md +59 -4
  109. package/examples/builder.config.yaml +60 -0
  110. package/package.json +3 -2
  111. package/dist/cli/commands/quickstart.d.ts +0 -2
  112. package/dist/cli/commands/quickstart.js +0 -54
  113. package/dist/cli/commands/quickstart.js.map +0 -1
package/README-en.md CHANGED
@@ -34,7 +34,7 @@ Many macOS users rely on GUI clients like Clash Verge, upstream subscriptions, g
34
34
 
35
35
  `Singbox IaC` compresses that problem into:
36
36
 
37
- `subscription -> parse -> compile -> verify -> apply -> schedule`
37
+ `subscription -> intent -> DNS / verification planning -> compile -> verify -> apply -> runtime / schedule`
38
38
 
39
39
  ## Architecture
40
40
 
@@ -62,7 +62,7 @@ The system has three layers:
62
62
 
63
63
  ```mermaid
64
64
  flowchart TD
65
- A["User provides subscription URL + one sentence"] --> B["quickstart / setup --ready"]
65
+ A["User provides subscription URL + one sentence"] --> B["go"]
66
66
  B --> C["Detect local environment<br/>macOS / sing-box / Chrome / AI CLI"]
67
67
  C --> D["Generate rules from intent"]
68
68
  D --> E["Sync local rule sets"]
@@ -94,6 +94,22 @@ You can describe routing goals in plain language instead of editing raw `sing-bo
94
94
 
95
95
  The tool compiles those intents into internal rules and then into a `sing-box` config.
96
96
 
97
+ There is now a maintained bundle-discovery layer:
98
+
99
+ - site bundles
100
+ - for example `NotebookLM`, `Gemini`, `OpenRouter`, and `Google Stitch`
101
+ - process bundles
102
+ - for example `Antigravity`, `Cursor`, `VS Code`, and `Codex`
103
+
104
+ Site bundles use a dual-track model:
105
+
106
+ - prefer official `sing-geosite` rule-set tags that are already enabled in the current config
107
+ - fall back to curated domains when upstream has no suitable tag or the current config has not enabled it yet
108
+
109
+ Process bundles keep stable metadata for `Proxifier` and `in-proxifier` process matching.
110
+
111
+ In most cases that means you do not need to remember related domains, official geosite tags, or helper process names yourself.
112
+
97
113
  ### 2. Minimal DSL
98
114
 
99
115
  For advanced users, a small YAML DSL still exists for fine-grained exceptions instead of forcing them to edit a full `sing-box` JSON file.
@@ -173,6 +189,8 @@ singbox-iac update
173
189
  - `use`: change policy later with one sentence and re-apply it
174
190
  - `update`: refresh the subscription and apply the latest config
175
191
 
192
+ `use` defaults to patch semantics. It preserves unrelated previously authored intent unless you explicitly pass `--replace`.
193
+
176
194
  For desktop runtime and troubleshooting, the most useful commands are:
177
195
 
178
196
  ```bash
@@ -180,35 +198,49 @@ singbox-iac start
180
198
  singbox-iac stop
181
199
  singbox-iac restart
182
200
  singbox-iac status
201
+ singbox-iac diagnose
183
202
  ```
184
203
 
185
204
  - `start`: start the desktop runtime as a dedicated macOS LaunchAgent
186
205
  - `stop`: stop the desktop runtime and let `sing-box` release system proxy or TUN resources
187
206
  - `restart`: restart the desktop runtime
188
207
  - `status`: summarize live config, desktop runtime, system proxy/TUN state, schedule, and the latest transaction
208
+ - `diagnose`: extend `status` with default route, system DNS, and representative DNS evidence when you need to understand why the network is still wrong
189
209
 
190
210
  For troubleshooting, start with:
191
211
 
192
212
  ```bash
193
213
  singbox-iac status
214
+ singbox-iac diagnose
194
215
  ```
195
216
 
196
- It summarizes the current `sing-box` binary, live config, process state, listener activity,
197
- schedule state, and the latest publish transaction.
217
+ `status` is the compact runtime snapshot. `diagnose` is the heavier triage command when you need to separate runtime drift from local DNS or default-route problems.
198
218
 
199
219
  Everything else can be treated as advanced commands for debugging or fine-grained control.
200
220
 
221
+ For example:
222
+
223
+ ```bash
224
+ singbox-iac rulesets list --filter openai
225
+ ```
226
+
227
+ That hidden command shows:
228
+
229
+ - which `ruleSet` tags are enabled in the current builder config
230
+ - which upstream `sing-geosite` and `sing-geoip` tags are available
231
+ - which built-in site bundles prefer official tags and which still fall back to curated domains
232
+
201
233
  `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
234
 
203
- ### One-step onboarding
235
+ ### Default first-run path
204
236
 
205
237
  ```bash
206
- singbox-iac quickstart \
207
- --subscription-url 'your subscription URL' \
208
- --prompt 'GitHub and developer sites go through Hong Kong, Antigravity process traffic goes through the US, Gemini goes through Singapore, update every 30 minutes'
238
+ singbox-iac go \
239
+ 'your subscription URL' \
240
+ 'GitHub and developer sites go through Hong Kong, Antigravity process traffic goes through the US, Gemini goes through Singapore, update every 30 minutes'
209
241
  ```
210
242
 
211
- `quickstart` will:
243
+ `go` will:
212
244
 
213
245
  - create `~/.config/singbox-iac/builder.config.yaml`
214
246
  - create `~/.config/singbox-iac/rules/custom.rules.yaml`
@@ -232,7 +264,7 @@ singbox-iac setup \
232
264
 
233
265
  The difference is simple:
234
266
 
235
- - `quickstart` is the shortest opinionated first-run path
267
+ - `go` is the shortest recommended first-run path
236
268
  - `setup --ready` is better if you still want to control run/browser/Proxifier flags yourself
237
269
 
238
270
  ### Manual foreground run
@@ -294,17 +326,28 @@ singbox-iac use 'GitHub and developer sites go through Hong Kong, Gemini goes th
294
326
 
295
327
  For common cases, you do not need to learn raw `sing-box` JSON or even the DSL.
296
328
 
329
+ `use` defaults to patch instead of replace:
330
+
331
+ - `singbox-iac use 'NotebookLM goes through the US'`
332
+ - augments or overrides the relevant part of the current authored intent
333
+ - `singbox-iac use 'All developer traffic goes through Singapore' --replace`
334
+ - explicitly rebuilds the authored policy set from scratch
335
+
336
+ The tool keeps two related files:
337
+
338
+ - `rules.userRulesFile`
339
+ - the merged YAML DSL that the compiler actually consumes
340
+ - sibling `*.authoring.yaml`
341
+ - the layered authoring state used to preserve a base intent plus later patches
342
+
297
343
  Examples:
298
344
 
299
345
  ```bash
300
- singbox-iac author \
301
- --prompt 'GitHub and dev sites should use Hong Kong, Antigravity process traffic should use a dedicated US path, Gemini should use Singapore'
346
+ singbox-iac use 'Google services and GitHub use Hong Kong, Amazon Prime and Apple TV use Singapore, China traffic stays direct, update every 45 minutes'
302
347
  ```
303
348
 
304
349
  ```bash
305
- singbox-iac author \
306
- --prompt 'Google services and GitHub use Hong Kong, Amazon Prime and Apple TV use Singapore, China traffic stays direct, update every 45 minutes' \
307
- --update
350
+ singbox-iac use 'NotebookLM goes through the US, Cursor uses a dedicated ingress and exits through the US'
308
351
  ```
309
352
 
310
353
  The authoring layer supports:
@@ -322,6 +365,14 @@ Recommended before applying a production routing change:
322
365
  singbox-iac use 'GitHub and developer sites go through Hong Kong, Gemini goes through Singapore' --strict --diff
323
366
  ```
324
367
 
368
+ If you explicitly want to discard the earlier natural-language policy set, use:
369
+
370
+ ```bash
371
+ singbox-iac use 'Google services and GitHub use Singapore' --replace
372
+ ```
373
+
374
+ If you need preview-only operation, direct `Intent IR`, or staged author/build/update control, use the power-user `author` command. See [docs/natural-language-authoring.md](./docs/natural-language-authoring.md).
375
+
325
376
  ## Proxifier Onboarding
326
377
 
327
378
  If your AI IDE, language server, or desktop app does not respect the normal system proxy path, use the generated Proxifier helper directory:
@@ -388,24 +439,24 @@ This project is designed to keep sensitive inputs local by default:
388
439
 
389
440
  The project does not automatically upload subscription URLs to any remote service. Unless you explicitly configure an external AI CLI or external command, the default authoring path does not depend on an external API.
390
441
 
391
- ## Common Commands
442
+ ## Power-User / Engineering Commands
443
+
444
+ Unless you are splitting the pipeline, doing deeper diagnostics, or handling a special integration, you usually do not need these directly:
392
445
 
393
446
  ```bash
394
447
  singbox-iac init
395
448
  singbox-iac setup
396
- singbox-iac quickstart
397
449
  singbox-iac author
398
450
  singbox-iac build
399
451
  singbox-iac check
400
452
  singbox-iac apply
401
453
  singbox-iac run
402
454
  singbox-iac verify
403
- singbox-iac update
404
- singbox-iac doctor
405
455
  singbox-iac proxifier bundles
406
456
  singbox-iac proxifier bundles show antigravity
407
457
  singbox-iac proxifier bundles render antigravity
408
458
  singbox-iac proxifier scaffold
459
+ singbox-iac rulesets list --filter openai
409
460
  singbox-iac schedule install
410
461
  singbox-iac schedule remove
411
462
  singbox-iac templates list
package/README.md CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
  `Singbox IaC` 的目标就是把这些需求收敛成:
36
36
 
37
- `subscription -> parse -> compile -> verify -> apply -> schedule`
37
+ `subscription -> intent -> DNS / verification planning -> compile -> verify -> apply -> runtime / schedule`
38
38
 
39
39
  ## 架构图
40
40
 
@@ -62,7 +62,7 @@ flowchart LR
62
62
 
63
63
  ```mermaid
64
64
  flowchart TD
65
- A["用户提供订阅地址 + 一句话需求"] --> B["quickstart / setup --ready"]
65
+ A["用户提供订阅地址 + 一句话需求"] --> B["go"]
66
66
  B --> C["检测本地环境<br/>macOS / sing-box / Chrome / AI CLI"]
67
67
  C --> D["根据意图生成规则"]
68
68
  D --> E["同步本地 rule set"]
@@ -94,6 +94,22 @@ flowchart TD
94
94
 
95
95
  系统会把这些意图编译成内部规则,再进一步生成 `sing-box` 配置。
96
96
 
97
+ 现在内置了一个可维护的 bundle discovery 层:
98
+
99
+ - 站点 bundle
100
+ - 例如 `NotebookLM`、`Gemini`、`OpenRouter`、`Google Stitch`
101
+ - 进程 bundle
102
+ - 例如 `Antigravity`、`Cursor`、`VS Code`、`Codex`
103
+
104
+ 站点 bundle 现在走双轨:
105
+
106
+ - 优先使用当前 config 已启用的官方 `sing-geosite` rule-set tags
107
+ - 如果 upstream 没有对应 tag,或者当前 config 还没启用该 tag,就回退到内置维护的 fallback domains
108
+
109
+ 进程 bundle 则继续提供稳定的 `Proxifier` / `in-proxifier` 进程匹配元数据。
110
+
111
+ 这意味着多数情况下你不需要自己记住相关域名、官方 geosite tag,或辅助进程名。
112
+
97
113
  ### 2. 极简 DSL
98
114
 
99
115
  对于高级用户,仍然保留了一个极简 YAML DSL,用于补充少量例外规则,而不是逼用户手写整份 `sing-box` JSON。
@@ -170,9 +186,11 @@ singbox-iac update
170
186
  ```
171
187
 
172
188
  - `go`:第一次安装时使用,一条命令完成初始化、验证、发布和定时任务准备
173
- - `use`:以后需求变化时使用,一句话改策略并重新应用
189
+ - `use`:以后需求变化时使用,一句话 patch 现有策略并重新应用
174
190
  - `update`:日常更新订阅并自动在运行中的 `sing-box` 上生效
175
191
 
192
+ `use` 默认不会清空你之前的自然语言策略。它会在现有 authored intent 之上做 patch;只有显式传 `--replace` 时,才会把 authored policy set 整体替换掉。
193
+
176
194
  桌面运行和排障最常用的是:
177
195
 
178
196
  ```bash
@@ -180,34 +198,49 @@ singbox-iac start
180
198
  singbox-iac stop
181
199
  singbox-iac restart
182
200
  singbox-iac status
201
+ singbox-iac diagnose
183
202
  ```
184
203
 
185
204
  - `start`:以 macOS 专用 LaunchAgent 启动桌面运行时
186
205
  - `stop`:停止桌面运行时,并让 `sing-box` 释放系统代理或 TUN 资源
187
206
  - `restart`:重新拉起桌面运行时
188
207
  - `status`:汇总 live config、桌面运行时、系统代理 / TUN 状态、schedule 和最近一次事务
208
+ - `diagnose`:在 `status` 之上追加默认路由、系统 DNS 和代表性域名解析证据,适合排查“为什么现在网络还是不对”
189
209
 
190
210
  排障时优先用:
191
211
 
192
212
  ```bash
193
213
  singbox-iac status
214
+ singbox-iac diagnose
215
+ ```
216
+
217
+ `status` 适合看当前运行快照;`diagnose` 适合继续判断问题更像是运行时漂移、系统 DNS/默认路由异常,还是最近一次发布没有生效。
218
+
219
+ 其余命令都属于 power-user / 工程命令,主要用于拆流程、排障或更细粒度控制。
220
+
221
+ 例如:
222
+
223
+ ```bash
224
+ singbox-iac rulesets list --filter openai
194
225
  ```
195
226
 
196
- 它会汇总当前 `sing-box` binary、live config、进程状态、监听端口、schedule 状态和最近一次发布事务。
227
+ 这个隐藏命令可以查看:
197
228
 
198
- 其余命令都可以理解为高级命令,主要用于调试、排障或更细粒度控制。
229
+ - 当前 builder config 已启用哪些 `ruleSet` tags
230
+ - upstream 官方 `sing-geosite` / `sing-geoip` 当前有哪些 tags
231
+ - 内置 site bundle 会优先命中哪些官方 tags,哪些还会走 fallback
199
232
 
200
233
  `RuntimeMode` 是内部概念,不要求用户手动选择。当前 onboarding 和 `update` 会自动推断 `browser-proxy`、`process-proxy` 或 `headless-daemon`,并据此调整可见验证和运行时默认行为。详见 [docs/runtime-modes.md](./docs/runtime-modes.md)。
201
234
 
202
- ### 一步完成初始化
235
+ ### 首次初始化的默认路径
203
236
 
204
237
  ```bash
205
- singbox-iac quickstart \
206
- --subscription-url '你的机场订阅地址' \
207
- --prompt 'GitHub 这类开发类走香港,Antigravity 进程级走美国,Gemini 走新加坡,每30分钟自动更新'
238
+ singbox-iac go \
239
+ '你的机场订阅地址' \
240
+ 'GitHub 这类开发类走香港,Antigravity 进程级走美国,Gemini 走新加坡,每30分钟自动更新'
208
241
  ```
209
242
 
210
- `quickstart` 会自动:
243
+ `go` 会自动:
211
244
 
212
245
  - 生成 `~/.config/singbox-iac/builder.config.yaml`
213
246
  - 生成 `~/.config/singbox-iac/rules/custom.rules.yaml`
@@ -220,7 +253,7 @@ singbox-iac quickstart \
220
253
  - 发布 live config
221
254
  - 安装定时更新
222
255
 
223
- 如果你希望保留更细的步骤控制,也可以继续用:
256
+ 如果你希望保留更细的首启控制,再使用 power-user 的 `setup --ready`:
224
257
 
225
258
  ```bash
226
259
  singbox-iac setup \
@@ -229,10 +262,10 @@ singbox-iac setup \
229
262
  --ready
230
263
  ```
231
264
 
232
- `setup --ready` 和 `quickstart` 的主要区别是:
265
+ 两者区别很简单:
233
266
 
234
- - `quickstart` 更偏默认的一键上手
235
- - `setup --ready` 更适合你还想自己决定是否运行、是否开浏览器、是否写 Proxifier 辅助目录
267
+ - `go`:最短、默认推荐的首次上手路径
268
+ - `setup --ready`:保留更多开关和显式阶段控制的 power-user 路径
236
269
 
237
270
  ### 前台运行测试
238
271
 
@@ -293,17 +326,28 @@ singbox-iac use 'GitHub 这类开发类都走香港,Gemini 走新加坡'
293
326
 
294
327
  对于大多数场景,不需要手写 `sing-box` JSON,也不需要理解 DSL。
295
328
 
329
+ `use` 的默认语义是 patch,而不是 replace:
330
+
331
+ - `singbox-iac use 'NotebookLM 走美国'`
332
+ - 在现有 authored intent 上追加或覆盖相关策略
333
+ - `singbox-iac use '所有开发类都走新加坡' --replace`
334
+ - 显式重建 authored policy set
335
+
336
+ 内部会同时维护两类文件:
337
+
338
+ - `rules.userRulesFile`
339
+ - 当前 compiler 真正消费的 merged YAML DSL
340
+ - 同目录下的 `*.authoring.yaml`
341
+ - layered authored state,用来保留 base intent 和后续 patch
342
+
296
343
  示例:
297
344
 
298
345
  ```bash
299
- singbox-iac author \
300
- --prompt 'GitHub 这类开发类都走香港出口,Antigravity 进程级都走独立入口并路由到美国节点,Gemini 都出口到新加坡'
346
+ singbox-iac use 'Google 服务和 GitHub 走香港,Amazon Prime 和 Apple TV 走新加坡,国内直连,每45分钟自动更新'
301
347
  ```
302
348
 
303
349
  ```bash
304
- singbox-iac author \
305
- --prompt 'Google 服务和 GitHub 走香港,Amazon Prime 和 Apple TV 走新加坡,国内直连,每45分钟自动更新' \
306
- --update
350
+ singbox-iac use 'NotebookLM 走美国,Cursor 走独立入口并出口到美国'
307
351
  ```
308
352
 
309
353
  作者层支持:
@@ -321,6 +365,14 @@ singbox-iac author \
321
365
  singbox-iac use 'GitHub 这类开发类都走香港,Gemini 走新加坡' --strict --diff
322
366
  ```
323
367
 
368
+ 如果你明确要放弃之前的一整套自然语言策略,再使用:
369
+
370
+ ```bash
371
+ singbox-iac use 'Google 服务和 GitHub 都走新加坡' --replace
372
+ ```
373
+
374
+ 如果你需要 preview、Intent IR、或分阶段 author/build/update 控制,再使用 power-user 的 `author`。详见 [docs/natural-language-authoring.md](./docs/natural-language-authoring.md)。
375
+
324
376
  ## Proxifier 上手
325
377
 
326
378
  如果你的 AI IDE、language server 或桌面应用不走系统代理,可以直接使用自动生成的 Proxifier 辅助目录:
@@ -387,24 +439,24 @@ singbox-iac proxifier bundles render antigravity
387
439
 
388
440
  当前项目不会把订阅地址自动上传到任何远端服务。除非你主动配置外部 AI CLI 或外部命令,否则默认作者层不依赖外部 API。
389
441
 
390
- ## 常用命令
442
+ ## Power-user / 工程命令
443
+
444
+ 除非你要拆开流水线、做深度排障或处理特殊集成,一般不需要直接用这些:
391
445
 
392
446
  ```bash
393
447
  singbox-iac init
394
448
  singbox-iac setup
395
- singbox-iac quickstart
396
449
  singbox-iac author
397
450
  singbox-iac build
398
451
  singbox-iac check
399
452
  singbox-iac apply
400
453
  singbox-iac run
401
454
  singbox-iac verify
402
- singbox-iac update
403
- singbox-iac doctor
404
455
  singbox-iac proxifier bundles
405
456
  singbox-iac proxifier bundles show antigravity
406
457
  singbox-iac proxifier bundles render antigravity
407
458
  singbox-iac proxifier scaffold
459
+ singbox-iac rulesets list --filter openai
408
460
  singbox-iac schedule install
409
461
  singbox-iac schedule remove
410
462
  singbox-iac templates list
@@ -38,6 +38,9 @@ export function registerApplyCommand(program) {
38
38
  : {}),
39
39
  ...(options.reload !== undefined ? { reload: options.reload } : {}),
40
40
  ...(builderConfig?.runtime.reload ? { runtime: builderConfig.runtime.reload } : {}),
41
+ ...(builderConfig?.runtime.desktop
42
+ ? { desktopRuntime: builderConfig.runtime.desktop }
43
+ : {}),
41
44
  });
42
45
  },
43
46
  })
@@ -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;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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/cli/commands/apply.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Command } from "commander";
2
+ import { type AuthoringWriteMode } from "../../modules/layered-authoring/index.js";
2
3
  export declare function registerAuthorCommand(program: Command): void;
3
4
  export declare function runAuthorFlow(options: AuthorCommandOptions): Promise<void>;
4
5
  interface AuthorCommandOptions {
@@ -29,5 +30,6 @@ interface AuthorCommandOptions {
29
30
  readonly logsDir?: string;
30
31
  readonly forceSchedule?: boolean;
31
32
  readonly load?: boolean;
33
+ readonly authoringMode?: AuthoringWriteMode;
32
34
  }
33
35
  export {};
@@ -1,6 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { generateAuthoringPlan } from "../../modules/authoring/index.js";
3
3
  import { buildConfigArtifact, resolveEffectiveIntent } from "../../modules/build/index.js";
4
+ import { applyLayeredAuthoringUpdate, materializeLayeredAuthoringState, resolveLayeredAuthoringPath, resolveLayeredAuthoringState, writeLayeredAuthoringState, } from "../../modules/layered-authoring/index.js";
4
5
  import { applyPlanToBuilderConfig, updateBuilderAuthoring, writeGeneratedRules, } from "../../modules/natural-language/index.js";
5
6
  import { generateAuthoringPreview } from "../../modules/preview/index.js";
6
7
  import { installLaunchdSchedule } from "../../modules/schedule/index.js";
@@ -62,15 +63,32 @@ export async function runAuthorFlow(options) {
62
63
  ...(options.strict ? { strict: true } : {}),
63
64
  });
64
65
  const plan = planResult.plan;
66
+ const authoringMode = options.authoringMode ?? "replace";
65
67
  const rulesPath = options.rulesOut
66
68
  ? resolvePath(options.rulesOut)
67
69
  : builderConfig.rules.userRulesFile;
70
+ const currentLayeredState = await resolveLayeredAuthoringState({
71
+ config: builderConfig,
72
+ });
73
+ const nextLayeredState = applyLayeredAuthoringUpdate({
74
+ current: currentLayeredState.state,
75
+ prompt: options.prompt,
76
+ plan,
77
+ mode: authoringMode,
78
+ appliedAt: new Date().toISOString(),
79
+ });
80
+ const nextResolvedLayeredState = materializeLayeredAuthoringState({
81
+ filePath: resolveLayeredAuthoringPath(rulesPath),
82
+ exists: true,
83
+ state: nextLayeredState,
84
+ });
85
+ const mergedPlan = nextResolvedLayeredState.mergedPlan;
68
86
  const effectiveConfig = applyPlanToBuilderConfig(builderConfig, {
69
87
  rulesPath,
70
- plan,
88
+ plan: mergedPlan,
71
89
  });
72
90
  if (options.emitIntentIr) {
73
- process.stdout.write(`${JSON.stringify(planResult.intent, null, 2)}\n`);
91
+ process.stdout.write(`${JSON.stringify(nextResolvedLayeredState.mergedIntent, null, 2)}\n`);
74
92
  return;
75
93
  }
76
94
  if (options.preview || options.diff) {
@@ -78,10 +96,10 @@ export async function runAuthorFlow(options) {
78
96
  const preview = await generateAuthoringPreview({
79
97
  configPath,
80
98
  config: builderConfig,
81
- plan,
99
+ plan: mergedPlan,
82
100
  rulesPath,
83
101
  currentIntent,
84
- proposedIntent: planResult.intent,
102
+ proposedIntent: nextResolvedLayeredState.mergedIntent,
85
103
  ...(options.subscriptionFile ? { subscriptionFile: options.subscriptionFile } : {}),
86
104
  ...(options.subscriptionUrl ? { subscriptionUrl: options.subscriptionUrl } : {}),
87
105
  buildStaging: !options.skipBuild,
@@ -89,19 +107,21 @@ export async function runAuthorFlow(options) {
89
107
  const lines = [
90
108
  `Config: ${configPath}`,
91
109
  `Rules: ${rulesPath}`,
110
+ `Authoring mode: ${authoringMode}`,
111
+ `Layered authoring: ${nextResolvedLayeredState.filePath}`,
92
112
  `Provider requested: ${planResult.providerRequested}`,
93
113
  `Provider used: ${planResult.providerUsed}`,
94
- `Templates: ${plan.templateIds.length > 0 ? plan.templateIds.join(", ") : "(none)"}`,
95
- `Generated rules: ${plan.beforeBuiltins.length + plan.afterBuiltins.length}`,
114
+ `Templates: ${mergedPlan.templateIds.length > 0 ? mergedPlan.templateIds.join(", ") : "(none)"}`,
115
+ `Generated rules: ${mergedPlan.beforeBuiltins.length + mergedPlan.afterBuiltins.length}`,
96
116
  `${options.diff ? "Diff" : "Preview"} mode: no files were written.`,
97
117
  ];
98
118
  if (planResult.ambiguities.length > 0) {
99
119
  lines.push(`Ambiguities detected: ${planResult.ambiguities.length}`);
100
120
  lines.push(...planResult.ambiguities.map((ambiguity) => `- ${ambiguity}`));
101
121
  }
102
- if (plan.notes.length > 0) {
103
- lines.push(`Notes: ${plan.notes.length}`);
104
- lines.push(...plan.notes.map((note) => `- ${note}`));
122
+ if (mergedPlan.notes.length > 0) {
123
+ lines.push(`Notes: ${mergedPlan.notes.length}`);
124
+ lines.push(...mergedPlan.notes.map((note) => `- ${note}`));
105
125
  }
106
126
  if (options.installSchedule) {
107
127
  lines.push("Schedule install: requested, but skipped in preview mode.");
@@ -128,33 +148,43 @@ export async function runAuthorFlow(options) {
128
148
  }
129
149
  await writeGeneratedRules({
130
150
  filePath: rulesPath,
131
- plan,
151
+ plan: mergedPlan,
152
+ });
153
+ await writeLayeredAuthoringState({
154
+ rulesPath,
155
+ state: nextLayeredState,
132
156
  });
133
157
  await updateBuilderAuthoring({
134
158
  configPath,
135
159
  rulesPath,
136
- ...(plan.scheduleIntervalMinutes ? { intervalMinutes: plan.scheduleIntervalMinutes } : {}),
137
- ...(plan.groupDefaults ? { groupDefaults: plan.groupDefaults } : {}),
138
- ...(plan.verificationOverrides ? { verificationOverrides: plan.verificationOverrides } : {}),
160
+ ...(mergedPlan.scheduleIntervalMinutes
161
+ ? { intervalMinutes: mergedPlan.scheduleIntervalMinutes }
162
+ : {}),
163
+ ...(mergedPlan.groupDefaults ? { groupDefaults: mergedPlan.groupDefaults } : {}),
164
+ ...(mergedPlan.verificationOverrides
165
+ ? { verificationOverrides: mergedPlan.verificationOverrides }
166
+ : {}),
139
167
  });
140
168
  const lines = [
141
169
  `Config: ${configPath}`,
142
170
  `Rules: ${rulesPath}`,
171
+ `Authoring mode: ${authoringMode}`,
172
+ `Layered authoring: ${nextResolvedLayeredState.filePath}`,
143
173
  `Provider requested: ${planResult.providerRequested}`,
144
174
  `Provider used: ${planResult.providerUsed}`,
145
- `Templates: ${plan.templateIds.length > 0 ? plan.templateIds.join(", ") : "(none)"}`,
146
- `Generated rules: ${plan.beforeBuiltins.length + plan.afterBuiltins.length}`,
175
+ `Templates: ${mergedPlan.templateIds.length > 0 ? mergedPlan.templateIds.join(", ") : "(none)"}`,
176
+ `Generated rules: ${mergedPlan.beforeBuiltins.length + mergedPlan.afterBuiltins.length}`,
147
177
  ];
148
178
  if (planResult.ambiguities.length > 0) {
149
179
  lines.push(`Ambiguities detected: ${planResult.ambiguities.length}`);
150
180
  lines.push(...planResult.ambiguities.map((ambiguity) => `- ${ambiguity}`));
151
181
  }
152
- if (plan.notes.length > 0) {
153
- lines.push(`Notes: ${plan.notes.length}`);
154
- lines.push(...plan.notes.map((note) => `- ${note}`));
182
+ if (mergedPlan.notes.length > 0) {
183
+ lines.push(`Notes: ${mergedPlan.notes.length}`);
184
+ lines.push(...mergedPlan.notes.map((note) => `- ${note}`));
155
185
  }
156
186
  if (options.installSchedule) {
157
- const intervalMinutes = plan.scheduleIntervalMinutes ?? effectiveConfig.schedule.intervalMinutes;
187
+ const intervalMinutes = mergedPlan.scheduleIntervalMinutes ?? effectiveConfig.schedule.intervalMinutes;
158
188
  const schedule = await installLaunchdSchedule({
159
189
  configPath,
160
190
  intervalMinutes,
@@ -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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"}