@singbox-iac/cli 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-en.md +24 -1
- package/README.md +24 -1
- package/dist/cli/commands/apply.js +21 -9
- package/dist/cli/commands/apply.js.map +1 -1
- package/dist/cli/commands/author.d.ts +3 -0
- package/dist/cli/commands/author.js +25 -3
- package/dist/cli/commands/author.js.map +1 -1
- package/dist/cli/commands/history.d.ts +2 -0
- package/dist/cli/commands/history.js +21 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/proxifier.js +60 -5
- package/dist/cli/commands/proxifier.js.map +1 -1
- package/dist/cli/commands/rollback.d.ts +2 -0
- package/dist/cli/commands/rollback.js +38 -0
- package/dist/cli/commands/rollback.js.map +1 -0
- package/dist/cli/commands/setup.js +24 -4
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/update.js +8 -0
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/use.js +7 -0
- package/dist/cli/commands/use.js.map +1 -1
- package/dist/cli/commands/verify.js +72 -20
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/domain/dns-plan.d.ts +27 -0
- package/dist/domain/dns-plan.js +2 -0
- package/dist/domain/dns-plan.js.map +1 -0
- package/dist/domain/intent.d.ts +61 -0
- package/dist/domain/intent.js +2 -0
- package/dist/domain/intent.js.map +1 -0
- package/dist/domain/runtime-mode.d.ts +8 -0
- package/dist/domain/runtime-mode.js +2 -0
- package/dist/domain/runtime-mode.js.map +1 -0
- package/dist/domain/transaction.d.ts +12 -0
- package/dist/domain/transaction.js +2 -0
- package/dist/domain/transaction.js.map +1 -0
- package/dist/domain/verification-plan.d.ts +34 -0
- package/dist/domain/verification-plan.js +2 -0
- package/dist/domain/verification-plan.js.map +1 -0
- package/dist/modules/authoring/index.d.ts +4 -0
- package/dist/modules/authoring/index.js +50 -21
- package/dist/modules/authoring/index.js.map +1 -1
- package/dist/modules/build/index.d.ts +3 -0
- package/dist/modules/build/index.js +8 -1
- package/dist/modules/build/index.js.map +1 -1
- package/dist/modules/compiler/index.d.ts +2 -2
- package/dist/modules/compiler/index.js +38 -53
- package/dist/modules/compiler/index.js.map +1 -1
- package/dist/modules/dns-plan/index.d.ts +10 -0
- package/dist/modules/dns-plan/index.js +104 -0
- package/dist/modules/dns-plan/index.js.map +1 -0
- package/dist/modules/intent/index.d.ts +7 -0
- package/dist/modules/intent/index.js +101 -0
- package/dist/modules/intent/index.js.map +1 -0
- package/dist/modules/natural-language/index.d.ts +5 -0
- package/dist/modules/natural-language/index.js +52 -9
- package/dist/modules/natural-language/index.js.map +1 -1
- package/dist/modules/preview/index.d.ts +4 -0
- package/dist/modules/preview/index.js +3 -0
- package/dist/modules/preview/index.js.map +1 -1
- package/dist/modules/proxifier/index.d.ts +15 -4
- package/dist/modules/proxifier/index.js +146 -40
- package/dist/modules/proxifier/index.js.map +1 -1
- package/dist/modules/runtime-mode/index.d.ts +18 -0
- package/dist/modules/runtime-mode/index.js +72 -0
- package/dist/modules/runtime-mode/index.js.map +1 -0
- package/dist/modules/transactions/index.d.ts +20 -0
- package/dist/modules/transactions/index.js +150 -0
- package/dist/modules/transactions/index.js.map +1 -0
- package/dist/modules/update/index.d.ts +1 -0
- package/dist/modules/update/index.js +22 -6
- package/dist/modules/update/index.js.map +1 -1
- package/dist/modules/verification/index.d.ts +42 -0
- package/dist/modules/verification/index.js +274 -0
- package/dist/modules/verification/index.js.map +1 -1
- package/dist/modules/verification-plan/index.d.ts +9 -0
- package/dist/modules/verification-plan/index.js +117 -0
- package/dist/modules/verification-plan/index.js.map +1 -0
- package/docs/natural-language-authoring.md +36 -0
- package/docs/proxifier-onboarding.md +14 -0
- 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
|
|
|
@@ -172,6 +173,8 @@ singbox-iac update
|
|
|
172
173
|
|
|
173
174
|
Everything else can be treated as advanced commands for debugging or fine-grained control.
|
|
174
175
|
|
|
176
|
+
`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).
|
|
177
|
+
|
|
175
178
|
### One-step onboarding
|
|
176
179
|
|
|
177
180
|
```bash
|
|
@@ -265,9 +268,17 @@ The authoring layer supports:
|
|
|
265
268
|
|
|
266
269
|
- deterministic local intent parsing by default
|
|
267
270
|
- optional local AI CLI integration
|
|
268
|
-
-
|
|
271
|
+
- `--strict` to reject vague requests instead of guessing
|
|
272
|
+
- `--diff` to inspect `Intent IR / rules / config` changes before writing
|
|
273
|
+
- `--emit-intent-ir` to print the structured intent layer directly
|
|
269
274
|
- closed-loop update after rule generation
|
|
270
275
|
|
|
276
|
+
Recommended before applying a production routing change:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
singbox-iac use 'GitHub and developer sites go through Hong Kong, Gemini goes through Singapore' --strict --diff
|
|
280
|
+
```
|
|
281
|
+
|
|
271
282
|
## Proxifier Onboarding
|
|
272
283
|
|
|
273
284
|
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 +295,8 @@ It contains:
|
|
|
284
295
|
- `bundles/antigravity.txt`
|
|
285
296
|
- `bundles/cursor.txt`
|
|
286
297
|
- `bundles/developer-ai-cli.txt`
|
|
298
|
+
- `bundle-specs/antigravity.yaml`
|
|
299
|
+
- `bundle-specs/cursor.yaml`
|
|
287
300
|
- `all-processes.txt`
|
|
288
301
|
|
|
289
302
|
If you only want to regenerate the Proxifier helper files:
|
|
@@ -292,6 +305,14 @@ If you only want to regenerate the Proxifier helper files:
|
|
|
292
305
|
singbox-iac proxifier scaffold --prompt 'Antigravity process traffic goes through the US and Cursor also uses a dedicated ingress'
|
|
293
306
|
```
|
|
294
307
|
|
|
308
|
+
You can also inspect or export declarative bundle specs directly:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
singbox-iac proxifier bundles
|
|
312
|
+
singbox-iac proxifier bundles show antigravity
|
|
313
|
+
singbox-iac proxifier bundles render antigravity
|
|
314
|
+
```
|
|
315
|
+
|
|
295
316
|
## How It Works With sing-box
|
|
296
317
|
|
|
297
318
|
This project does not replace the `sing-box` core binary. It generates and manages `sing-box` configuration.
|
|
@@ -339,6 +360,8 @@ singbox-iac verify
|
|
|
339
360
|
singbox-iac update
|
|
340
361
|
singbox-iac doctor
|
|
341
362
|
singbox-iac proxifier bundles
|
|
363
|
+
singbox-iac proxifier bundles show antigravity
|
|
364
|
+
singbox-iac proxifier bundles render antigravity
|
|
342
365
|
singbox-iac proxifier scaffold
|
|
343
366
|
singbox-iac schedule install
|
|
344
367
|
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
|
|
|
@@ -172,6 +173,8 @@ singbox-iac update
|
|
|
172
173
|
|
|
173
174
|
其余命令都可以理解为高级命令,主要用于调试、排障或更细粒度控制。
|
|
174
175
|
|
|
176
|
+
`RuntimeMode` 是内部概念,不要求用户手动选择。当前 onboarding 和 `update` 会自动推断 `browser-proxy`、`process-proxy` 或 `headless-daemon`,并据此调整可见验证和运行时默认行为。详见 [docs/runtime-modes.md](./docs/runtime-modes.md)。
|
|
177
|
+
|
|
175
178
|
### 一步完成初始化
|
|
176
179
|
|
|
177
180
|
```bash
|
|
@@ -265,9 +268,17 @@ singbox-iac author \
|
|
|
265
268
|
|
|
266
269
|
- 默认使用本地确定性意图解析
|
|
267
270
|
- 可选接入本地 AI CLI
|
|
268
|
-
-
|
|
271
|
+
- 支持 `--strict`,遇到模糊表述直接失败
|
|
272
|
+
- 支持 `--diff`,先看 `Intent IR / 规则 / 配置` 变化再决定是否应用
|
|
273
|
+
- 支持 `--emit-intent-ir`,直接输出结构化意图层
|
|
269
274
|
- 生成规则后直接闭环 update
|
|
270
275
|
|
|
276
|
+
推荐在正式改策略前先看一次 diff:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
singbox-iac use 'GitHub 这类开发类都走香港,Gemini 走新加坡' --strict --diff
|
|
280
|
+
```
|
|
281
|
+
|
|
271
282
|
## Proxifier 上手
|
|
272
283
|
|
|
273
284
|
如果你的 AI IDE、language server 或桌面应用不走系统代理,可以直接使用自动生成的 Proxifier 辅助目录:
|
|
@@ -284,6 +295,8 @@ singbox-iac author \
|
|
|
284
295
|
- `bundles/antigravity.txt`
|
|
285
296
|
- `bundles/cursor.txt`
|
|
286
297
|
- `bundles/developer-ai-cli.txt`
|
|
298
|
+
- `bundle-specs/antigravity.yaml`
|
|
299
|
+
- `bundle-specs/cursor.yaml`
|
|
287
300
|
- `all-processes.txt`
|
|
288
301
|
|
|
289
302
|
如果你只想重新生成这部分,不需要重跑全部 onboarding:
|
|
@@ -292,6 +305,14 @@ singbox-iac author \
|
|
|
292
305
|
singbox-iac proxifier scaffold --prompt 'Antigravity 进程级走美国,Cursor 也走独立入口'
|
|
293
306
|
```
|
|
294
307
|
|
|
308
|
+
也可以直接查看或导出声明式 bundle:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
singbox-iac proxifier bundles
|
|
312
|
+
singbox-iac proxifier bundles show antigravity
|
|
313
|
+
singbox-iac proxifier bundles render antigravity
|
|
314
|
+
```
|
|
315
|
+
|
|
295
316
|
## 它和 sing-box 是怎么配合的
|
|
296
317
|
|
|
297
318
|
它不会替代 `sing-box` 内核本身,而是负责生成和维护 `sing-box` 配置。
|
|
@@ -339,6 +360,8 @@ singbox-iac verify
|
|
|
339
360
|
singbox-iac update
|
|
340
361
|
singbox-iac doctor
|
|
341
362
|
singbox-iac proxifier bundles
|
|
363
|
+
singbox-iac proxifier bundles show antigravity
|
|
364
|
+
singbox-iac proxifier bundles render antigravity
|
|
342
365
|
singbox-iac proxifier scaffold
|
|
343
366
|
singbox-iac schedule install
|
|
344
367
|
singbox-iac schedule remove
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { applyConfig } from "../../modules/manager/index.js";
|
|
2
|
+
import { applyWithTransaction } from "../../modules/transactions/index.js";
|
|
2
3
|
import { resolveBuilderConfig } from "../command-helpers.js";
|
|
3
4
|
export function registerApplyCommand(program) {
|
|
4
5
|
program
|
|
@@ -18,15 +19,26 @@ export function registerApplyCommand(program) {
|
|
|
18
19
|
if (!stagingPath || !livePath) {
|
|
19
20
|
throw new Error("Unable to resolve staging/live paths. Pass --input/--live-path or provide a builder config.");
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
const transaction = builderConfig
|
|
23
|
+
? await applyWithTransaction({
|
|
24
|
+
config: builderConfig,
|
|
25
|
+
generatedPath: stagingPath,
|
|
26
|
+
livePath,
|
|
27
|
+
backupPath: backupPath ?? builderConfig.output.backupPath,
|
|
28
|
+
verificationSummary: {},
|
|
29
|
+
apply: async () => {
|
|
30
|
+
await applyConfig({
|
|
31
|
+
stagingPath,
|
|
32
|
+
livePath,
|
|
33
|
+
...(backupPath ? { backupPath } : {}),
|
|
34
|
+
...(options.singBoxBin ? { singBoxBinary: options.singBoxBin } : {}),
|
|
35
|
+
...(options.reload !== undefined ? { reload: options.reload } : {}),
|
|
36
|
+
...(builderConfig?.runtime.reload ? { runtime: builderConfig.runtime.reload } : {}),
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
: undefined;
|
|
41
|
+
process.stdout.write(`Applied config.\nSource: ${stagingPath}\nLive: ${livePath}\n${backupPath ? `Backup: ${backupPath}\n` : ""}${transaction ? `Transaction: ${transaction.txId}\n` : ""}`);
|
|
30
42
|
});
|
|
31
43
|
}
|
|
32
44
|
//# sourceMappingURL=apply.js.map
|
|
@@ -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,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,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,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"}
|
|
@@ -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.
|
|
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}`));
|
|
@@ -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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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { listTransactionHistory } from "../../modules/transactions/index.js";
|
|
2
|
+
import { resolveBuilderConfig } from "../command-helpers.js";
|
|
3
|
+
export function registerHistoryCommand(program) {
|
|
4
|
+
program
|
|
5
|
+
.command("history")
|
|
6
|
+
.description("Show recent publish transactions.")
|
|
7
|
+
.option("-c, --config <path>", "path to builder config YAML")
|
|
8
|
+
.action(async (options) => {
|
|
9
|
+
const builderConfig = await resolveBuilderConfig(options);
|
|
10
|
+
if (!builderConfig) {
|
|
11
|
+
throw new Error("history requires a builder config.");
|
|
12
|
+
}
|
|
13
|
+
const entries = await listTransactionHistory(builderConfig);
|
|
14
|
+
const lines = [
|
|
15
|
+
`Transactions: ${entries.length}`,
|
|
16
|
+
...entries.map((entry) => `- ${entry.txId} ${entry.status} ${entry.startedAt} ${entry.generatedPath} -> ${entry.livePath}`),
|
|
17
|
+
];
|
|
18
|
+
process.stdout.write(`${lines.join("\n")}\n`);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/cli/commands/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,OAAqC,EAAE,EAAE;QACtD,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG;YACZ,iBAAiB,OAAO,CAAC,MAAM,EAAE;YACjC,GAAG,OAAO,CAAC,GAAG,CACZ,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,OAAO,KAAK,CAAC,QAAQ,EAAE,CACnG;SACF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -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
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
|
|
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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxifier.js","sourceRoot":"","sources":["../../../src/cli/commands/proxifier.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,4DAA4D,CAAC,CAAC;IAE7E,SAAS;SACN,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"proxifier.js","sourceRoot":"","sources":["../../../src/cli/commands/proxifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { reloadRuntime, resolveSingBoxBinary } from "../../modules/manager/index.js";
|
|
2
|
+
import { rollbackToPrevious } from "../../modules/transactions/index.js";
|
|
3
|
+
import { resolveBuilderConfig } from "../command-helpers.js";
|
|
4
|
+
export function registerRollbackCommand(program) {
|
|
5
|
+
program
|
|
6
|
+
.command("rollback")
|
|
7
|
+
.description("Rollback the live config to the previous published snapshot.")
|
|
8
|
+
.option("-c, --config <path>", "path to builder config YAML")
|
|
9
|
+
.option("--to <target>", 'rollback target, currently only "previous"', "previous")
|
|
10
|
+
.option("--sing-box-bin <path>", "path to sing-box binary")
|
|
11
|
+
.option("--reload", "reload sing-box after restoring the previous snapshot")
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
if (options.to !== "previous") {
|
|
14
|
+
throw new Error('Only "--to previous" is currently supported.');
|
|
15
|
+
}
|
|
16
|
+
const builderConfig = await resolveBuilderConfig(options);
|
|
17
|
+
if (!builderConfig) {
|
|
18
|
+
throw new Error("rollback requires a builder config.");
|
|
19
|
+
}
|
|
20
|
+
const afterRestore = options.reload || options.singBoxBin
|
|
21
|
+
? async () => {
|
|
22
|
+
await resolveSingBoxBinary(options.singBoxBin);
|
|
23
|
+
if (options.reload) {
|
|
24
|
+
await reloadRuntime({
|
|
25
|
+
...(options.singBoxBin ? { singBoxBinary: options.singBoxBin } : {}),
|
|
26
|
+
runtime: builderConfig.runtime.reload,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
: undefined;
|
|
31
|
+
const transaction = await rollbackToPrevious({
|
|
32
|
+
config: builderConfig,
|
|
33
|
+
...(afterRestore ? { afterRestore } : {}),
|
|
34
|
+
});
|
|
35
|
+
process.stdout.write(`Rollback complete.\nTransaction: ${transaction.txId}\nLive: ${transaction.livePath}\nSnapshot: ${transaction.snapshotPath}\n`);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=rollback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../src/cli/commands/rollback.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,4CAA4C,EAAE,UAAU,CAAC;SACjF,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,UAAU,EAAE,uDAAuD,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAA+B,EAAE,EAAE;QAChD,IAAI,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU;YAClC,CAAC,CAAC,KAAK,IAAI,EAAE;gBACT,MAAM,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC/C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM,aAAa,CAAC;wBAClB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM;qBACtC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC;YAC3C,MAAM,EAAE,aAAa;YACrB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,oCAAoC,WAAW,CAAC,IAAI,WAAW,WAAW,CAAC,QAAQ,eAAe,WAAW,CAAC,YAAY,IAAI,CAC/H,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -5,13 +5,14 @@ import net from "node:net";
|
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { loadConfig } from "../../config/load-config.js";
|
|
7
7
|
import { generateAuthoringPlan } from "../../modules/authoring/index.js";
|
|
8
|
-
import { buildConfigArtifact } from "../../modules/build/index.js";
|
|
8
|
+
import { buildConfigArtifact, resolveEffectiveIntent } from "../../modules/build/index.js";
|
|
9
9
|
import { runDoctor } from "../../modules/doctor/index.js";
|
|
10
10
|
import { initWorkspace } from "../../modules/init/index.js";
|
|
11
11
|
import { applyConfig, checkConfig, resolveSingBoxBinary } from "../../modules/manager/index.js";
|
|
12
12
|
import { applyPlanToBuilderConfig, selectVerificationScenariosForPrompt, updateBuilderAuthoring, writeGeneratedRules, } from "../../modules/natural-language/index.js";
|
|
13
13
|
import { selectProxifierBundlesFromPrompt, writeProxifierScaffold, } from "../../modules/proxifier/index.js";
|
|
14
14
|
import { syncLocalRuleSets } from "../../modules/rule-set-sync/index.js";
|
|
15
|
+
import { getRuntimeModeDefaults, inferRuntimeMode, selectVerificationScenariosForRuntimeMode, } from "../../modules/runtime-mode/index.js";
|
|
15
16
|
import { installLaunchdSchedule } from "../../modules/schedule/index.js";
|
|
16
17
|
import { assertVerificationReportPassed, openVisibleChromeWindows, verifyConfigRoutes, } from "../../modules/verification/index.js";
|
|
17
18
|
import { getDefaultConfigPath, getDefaultRulesPath, resolveCliEntrypoint, resolvePackageRoot, } from "../command-helpers.js";
|
|
@@ -123,7 +124,6 @@ export async function runSetupFlow(options) {
|
|
|
123
124
|
const shouldApply = options.apply === true || options.ready === true;
|
|
124
125
|
const shouldInstallSchedule = options.installSchedule === true || options.ready === true;
|
|
125
126
|
const shouldRun = options.run === true;
|
|
126
|
-
const shouldOpenBrowser = options.openBrowser === true || (options.ready === true && options.run === true);
|
|
127
127
|
if (options.skipBuild && (shouldVerify || shouldApply)) {
|
|
128
128
|
throw new Error("setup cannot use --skip-build together with --verify or --apply.");
|
|
129
129
|
}
|
|
@@ -185,6 +185,25 @@ export async function runSetupFlow(options) {
|
|
|
185
185
|
const selectedProxifierBundles = options.prompt
|
|
186
186
|
? selectProxifierBundlesFromPrompt(options.prompt)
|
|
187
187
|
: [];
|
|
188
|
+
const effectiveIntent = await resolveEffectiveIntent(effectiveConfig);
|
|
189
|
+
const runtimeMode = inferRuntimeMode({
|
|
190
|
+
phase: "onboarding",
|
|
191
|
+
intent: effectiveIntent,
|
|
192
|
+
config: effectiveConfig,
|
|
193
|
+
proxifierBundleIds: selectedProxifierBundles,
|
|
194
|
+
runInForeground: shouldRun,
|
|
195
|
+
...(options.prompt ? { prompt: options.prompt } : {}),
|
|
196
|
+
});
|
|
197
|
+
const runtimeModeDefaults = getRuntimeModeDefaults(runtimeMode);
|
|
198
|
+
const shouldOpenBrowser = options.openBrowser === true ||
|
|
199
|
+
(options.openBrowser === undefined &&
|
|
200
|
+
options.ready === true &&
|
|
201
|
+
options.run === true &&
|
|
202
|
+
runtimeModeDefaults.openVisibleBrowserByDefault);
|
|
203
|
+
lines.push(`Runtime mode: ${runtimeMode}`);
|
|
204
|
+
lines.push(`Runtime DNS mode: ${runtimeModeDefaults.dnsMode}`);
|
|
205
|
+
lines.push(`Runtime listeners: ${runtimeModeDefaults.preferredListeners.map((entry) => `in-${entry}`).join(", ")}`);
|
|
206
|
+
lines.push(`Schedule recommended: ${runtimeModeDefaults.scheduleRecommended ? "yes" : "no"}`);
|
|
188
207
|
if (options.proxifierOutDir || selectedProxifierBundles.length > 0) {
|
|
189
208
|
const proxifierOutputDir = resolvePath(options.proxifierOutDir ?? path.join(path.dirname(configPath), "proxifier"));
|
|
190
209
|
const scaffold = await writeProxifierScaffold({
|
|
@@ -309,9 +328,10 @@ export async function runSetupFlow(options) {
|
|
|
309
328
|
},
|
|
310
329
|
], 15_000);
|
|
311
330
|
if (shouldOpenBrowser) {
|
|
331
|
+
const runtimeScenarios = selectVerificationScenariosForRuntimeMode(runtimeMode, effectiveConfig.verification.scenarios);
|
|
312
332
|
const selectedScenarios = options.prompt
|
|
313
|
-
? selectVerificationScenariosForPrompt(options.prompt,
|
|
314
|
-
:
|
|
333
|
+
? selectVerificationScenariosForPrompt(options.prompt, runtimeScenarios)
|
|
334
|
+
: runtimeScenarios.slice(0, Math.min(runtimeModeDefaults.visibleBrowserScenarioLimit, runtimeScenarios.length));
|
|
315
335
|
const visibleScenarios = selectedScenarios.map((scenario) => ({
|
|
316
336
|
id: scenario.id,
|
|
317
337
|
name: scenario.name,
|