@singbox-iac/cli 0.1.4 → 0.1.5

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 (41) hide show
  1. package/README-en.md +40 -9
  2. package/README.md +40 -9
  3. package/assets/rule-set/geoip-cn.srs +0 -0
  4. package/assets/rule-set/geosite-anthropic.srs +0 -0
  5. package/assets/rule-set/geosite-cn.srs +0 -0
  6. package/assets/rule-set/geosite-cursor.srs +0 -0
  7. package/assets/rule-set/geosite-figma.srs +0 -0
  8. package/assets/rule-set/geosite-github-copilot.srs +0 -0
  9. package/assets/rule-set/geosite-github.srs +0 -0
  10. package/assets/rule-set/geosite-google-deepmind.srs +0 -0
  11. package/assets/rule-set/geosite-google-gemini.srs +0 -0
  12. package/assets/rule-set/geosite-google.srs +0 -0
  13. package/dist/cli/commands/build.js +1 -1
  14. package/dist/cli/commands/build.js.map +1 -1
  15. package/dist/cli/commands/proxifier.d.ts +2 -0
  16. package/dist/cli/commands/proxifier.js +61 -0
  17. package/dist/cli/commands/proxifier.js.map +1 -0
  18. package/dist/cli/commands/quickstart.d.ts +2 -0
  19. package/dist/cli/commands/quickstart.js +54 -0
  20. package/dist/cli/commands/quickstart.js.map +1 -0
  21. package/dist/cli/commands/setup.d.ts +30 -0
  22. package/dist/cli/commands/setup.js +277 -233
  23. package/dist/cli/commands/setup.js.map +1 -1
  24. package/dist/cli/index.js +4 -0
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/modules/compiler/index.js +8 -3
  27. package/dist/modules/compiler/index.js.map +1 -1
  28. package/dist/modules/natural-language/index.js +1 -1
  29. package/dist/modules/natural-language/index.js.map +1 -1
  30. package/dist/modules/proxifier/index.d.ts +27 -0
  31. package/dist/modules/proxifier/index.js +184 -0
  32. package/dist/modules/proxifier/index.js.map +1 -0
  33. package/dist/modules/rule-set-sync/index.d.ts +10 -0
  34. package/dist/modules/rule-set-sync/index.js +72 -12
  35. package/dist/modules/rule-set-sync/index.js.map +1 -1
  36. package/dist/modules/verification/index.js +37 -21
  37. package/dist/modules/verification/index.js.map +1 -1
  38. package/docs/proxifier-onboarding.md +65 -0
  39. package/docs/runtime-on-macos.md +5 -4
  40. package/examples/builder.config.yaml +1 -1
  41. package/package.json +11 -2
package/README-en.md CHANGED
@@ -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["setup"]
65
+ A["User provides subscription URL + one sentence"] --> B["quickstart / setup --ready"]
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"]
@@ -161,21 +161,25 @@ singbox-iac --help
161
161
  ### One-step onboarding
162
162
 
163
163
  ```bash
164
- singbox-iac setup \
164
+ singbox-iac quickstart \
165
165
  --subscription-url 'your subscription URL' \
166
166
  --prompt 'GitHub and developer sites go through Hong Kong, Antigravity process traffic goes through the US, Gemini goes through Singapore, update every 30 minutes'
167
167
  ```
168
168
 
169
- `setup` will:
169
+ `quickstart` will:
170
170
 
171
171
  - create `~/.config/singbox-iac/builder.config.yaml`
172
172
  - create `~/.config/singbox-iac/rules/custom.rules.yaml`
173
+ - create `~/.config/singbox-iac/proxifier/` helper files
173
174
  - check local environment readiness
174
- - download default local `.srs` rule sets
175
+ - use bundled default `.srs` rule sets and only sync extras when needed
175
176
  - turn one sentence into routing rules
176
177
  - build `~/.config/singbox-iac/generated/config.staging.json`
178
+ - verify critical routes
179
+ - publish the live config
180
+ - install the recurring schedule
177
181
 
178
- For a more guided first-run path:
182
+ If you want the more explicit onboarding command, you can still use:
179
183
 
180
184
  ```bash
181
185
  singbox-iac setup \
@@ -184,11 +188,10 @@ singbox-iac setup \
184
188
  --ready
185
189
  ```
186
190
 
187
- `--ready` additionally performs:
191
+ The difference is simple:
188
192
 
189
- - route verification
190
- - live config publish
191
- - recurring schedule installation
193
+ - `quickstart` is the shortest opinionated first-run path
194
+ - `setup --ready` is better if you still want to control run/browser/Proxifier flags yourself
192
195
 
193
196
  ### Manual foreground run
194
197
 
@@ -245,6 +248,30 @@ The authoring layer supports:
245
248
  - preview before writing
246
249
  - closed-loop update after rule generation
247
250
 
251
+ ## Proxifier Onboarding
252
+
253
+ If your AI IDE, language server, or desktop app does not respect the normal system proxy path, use the generated Proxifier helper directory:
254
+
255
+ ```text
256
+ ~/.config/singbox-iac/proxifier/
257
+ ```
258
+
259
+ It contains:
260
+
261
+ - `README.md`
262
+ - `proxy-endpoint.txt`
263
+ - `custom-processes.txt`
264
+ - `bundles/antigravity.txt`
265
+ - `bundles/cursor.txt`
266
+ - `bundles/developer-ai-cli.txt`
267
+ - `all-processes.txt`
268
+
269
+ If you only want to regenerate the Proxifier helper files:
270
+
271
+ ```bash
272
+ singbox-iac proxifier scaffold --prompt 'Antigravity process traffic goes through the US and Cursor also uses a dedicated ingress'
273
+ ```
274
+
248
275
  ## How It Works With sing-box
249
276
 
250
277
  This project does not replace the `sing-box` core binary. It generates and manages `sing-box` configuration.
@@ -282,6 +309,7 @@ The project does not automatically upload subscription URLs to any remote servic
282
309
  ```bash
283
310
  singbox-iac init
284
311
  singbox-iac setup
312
+ singbox-iac quickstart
285
313
  singbox-iac author
286
314
  singbox-iac build
287
315
  singbox-iac check
@@ -290,6 +318,8 @@ singbox-iac run
290
318
  singbox-iac verify
291
319
  singbox-iac update
292
320
  singbox-iac doctor
321
+ singbox-iac proxifier bundles
322
+ singbox-iac proxifier scaffold
293
323
  singbox-iac schedule install
294
324
  singbox-iac schedule remove
295
325
  singbox-iac templates list
@@ -300,6 +330,7 @@ singbox-iac templates list
300
330
  - [rules-dsl.md](./docs/rules-dsl.md)
301
331
  - [rule-templates.md](./docs/rule-templates.md)
302
332
  - [natural-language-authoring.md](./docs/natural-language-authoring.md)
333
+ - [proxifier-onboarding.md](./docs/proxifier-onboarding.md)
303
334
  - [runtime-on-macos.md](./docs/runtime-on-macos.md)
304
335
  - [openspec/project.md](./openspec/project.md)
305
336
 
package/README.md CHANGED
@@ -62,7 +62,7 @@ flowchart LR
62
62
 
63
63
  ```mermaid
64
64
  flowchart TD
65
- A["用户提供订阅地址 + 一句话需求"] --> B["setup"]
65
+ A["用户提供订阅地址 + 一句话需求"] --> B["quickstart / setup --ready"]
66
66
  B --> C["检测本地环境<br/>macOS / sing-box / Chrome / AI CLI"]
67
67
  C --> D["根据意图生成规则"]
68
68
  D --> E["同步本地 rule set"]
@@ -161,21 +161,25 @@ singbox-iac --help
161
161
  ### 一步完成初始化
162
162
 
163
163
  ```bash
164
- singbox-iac setup \
164
+ singbox-iac quickstart \
165
165
  --subscription-url '你的机场订阅地址' \
166
166
  --prompt 'GitHub 这类开发类走香港,Antigravity 进程级走美国,Gemini 走新加坡,每30分钟自动更新'
167
167
  ```
168
168
 
169
- `setup` 会自动:
169
+ `quickstart` 会自动:
170
170
 
171
171
  - 生成 `~/.config/singbox-iac/builder.config.yaml`
172
172
  - 生成 `~/.config/singbox-iac/rules/custom.rules.yaml`
173
+ - 生成 `~/.config/singbox-iac/proxifier/` 辅助文件
173
174
  - 检查本地环境
174
- - 下载默认本地 `.srs` 规则集
175
+ - 使用包内内置的默认 `.srs` 规则集,并在需要时补充同步
175
176
  - 把一句自然语言转成路由规则
176
177
  - 构建 `~/.config/singbox-iac/generated/config.staging.json`
178
+ - 验证关键路由
179
+ - 发布 live config
180
+ - 安装定时更新
177
181
 
178
- 如果你希望首次安装时尽可能自动化,可以这样:
182
+ 如果你希望保留更细的步骤控制,也可以继续用:
179
183
 
180
184
  ```bash
181
185
  singbox-iac setup \
@@ -184,11 +188,10 @@ singbox-iac setup \
184
188
  --ready
185
189
  ```
186
190
 
187
- `--ready` 会额外执行:
191
+ `setup --ready` 和 `quickstart` 的主要区别是:
188
192
 
189
- - 路由验证
190
- - 发布 live config
191
- - 安装定时更新
193
+ - `quickstart` 更偏默认的一键上手
194
+ - `setup --ready` 更适合你还想自己决定是否运行、是否开浏览器、是否写 Proxifier 辅助目录
192
195
 
193
196
  ### 前台运行测试
194
197
 
@@ -245,6 +248,30 @@ singbox-iac author \
245
248
  - 写入前先 preview
246
249
  - 生成规则后直接闭环 update
247
250
 
251
+ ## Proxifier 上手
252
+
253
+ 如果你的 AI IDE、language server 或桌面应用不走系统代理,可以直接使用自动生成的 Proxifier 辅助目录:
254
+
255
+ ```text
256
+ ~/.config/singbox-iac/proxifier/
257
+ ```
258
+
259
+ 其中会包含:
260
+
261
+ - `README.md`
262
+ - `proxy-endpoint.txt`
263
+ - `custom-processes.txt`
264
+ - `bundles/antigravity.txt`
265
+ - `bundles/cursor.txt`
266
+ - `bundles/developer-ai-cli.txt`
267
+ - `all-processes.txt`
268
+
269
+ 如果你只想重新生成这部分,不需要重跑全部 onboarding:
270
+
271
+ ```bash
272
+ singbox-iac proxifier scaffold --prompt 'Antigravity 进程级走美国,Cursor 也走独立入口'
273
+ ```
274
+
248
275
  ## 它和 sing-box 是怎么配合的
249
276
 
250
277
  它不会替代 `sing-box` 内核本身,而是负责生成和维护 `sing-box` 配置。
@@ -282,6 +309,7 @@ singbox-iac author \
282
309
  ```bash
283
310
  singbox-iac init
284
311
  singbox-iac setup
312
+ singbox-iac quickstart
285
313
  singbox-iac author
286
314
  singbox-iac build
287
315
  singbox-iac check
@@ -290,6 +318,8 @@ singbox-iac run
290
318
  singbox-iac verify
291
319
  singbox-iac update
292
320
  singbox-iac doctor
321
+ singbox-iac proxifier bundles
322
+ singbox-iac proxifier scaffold
293
323
  singbox-iac schedule install
294
324
  singbox-iac schedule remove
295
325
  singbox-iac templates list
@@ -300,6 +330,7 @@ singbox-iac templates list
300
330
  - [rules-dsl.md](./docs/rules-dsl.md)
301
331
  - [rule-templates.md](./docs/rule-templates.md)
302
332
  - [natural-language-authoring.md](./docs/natural-language-authoring.md)
333
+ - [proxifier-onboarding.md](./docs/proxifier-onboarding.md)
303
334
  - [runtime-on-macos.md](./docs/runtime-on-macos.md)
304
335
  - [openspec/project.md](./openspec/project.md)
305
336
 
Binary file
Binary file
@@ -150,7 +150,7 @@ async function resolveBuildConfig(options) {
150
150
  {
151
151
  id: "cn-direct",
152
152
  name: "China traffic stays direct",
153
- url: "https://www.baidu.com/favicon.ico",
153
+ url: "https://www.qq.com/favicon.ico",
154
154
  inbound: "in-mixed",
155
155
  expectedOutbound: "direct",
156
156
  },
@@ -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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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerProxifierCommand(program: Command): void;
@@ -0,0 +1,61 @@
1
+ import path from "node:path";
2
+ import { loadConfig } from "../../config/load-config.js";
3
+ import { listProxifierBundles, selectProxifierBundlesFromPrompt, writeProxifierScaffold, } from "../../modules/proxifier/index.js";
4
+ import { getDefaultConfigDir, getDefaultConfigPath } from "../command-helpers.js";
5
+ export function registerProxifierCommand(program) {
6
+ const proxifier = program
7
+ .command("proxifier")
8
+ .description("Generate Proxifier helper files for process-aware routing.");
9
+ proxifier
10
+ .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`);
15
+ });
16
+ proxifier
17
+ .command("scaffold")
18
+ .description("Generate a Proxifier helper directory from the current listener config.")
19
+ .option("-c, --config <path>", "path to builder config YAML", getDefaultConfigPath())
20
+ .option("--out-dir <path>", "output directory for Proxifier helper files", path.join(getDefaultConfigDir(), "proxifier"))
21
+ .option("--bundle <id>", "bundle id to include", collectOption, [])
22
+ .option("--prompt <text>", "derive recommended bundles from a routing prompt")
23
+ .action(async (options) => {
24
+ const config = await loadConfig(resolvePath(options.config));
25
+ const promptBundleIds = options.prompt
26
+ ? selectProxifierBundlesFromPrompt(options.prompt)
27
+ : [];
28
+ const bundleIds = [...new Set([...options.bundle, ...promptBundleIds])];
29
+ const result = await writeProxifierScaffold({
30
+ listener: {
31
+ host: config.listeners.proxifier.listen,
32
+ port: config.listeners.proxifier.port,
33
+ },
34
+ outputDir: resolvePath(options.outDir),
35
+ ...(bundleIds.length > 0 ? { bundleIds } : {}),
36
+ });
37
+ const lines = [
38
+ `Output: ${result.outputDir}`,
39
+ `Guide: ${result.guidePath}`,
40
+ `Proxy endpoint: ${result.proxyEndpointPath}`,
41
+ `Custom processes: ${result.customProcessesPath}`,
42
+ ];
43
+ if (result.combinedProcessesPath) {
44
+ lines.push(`Combined processes: ${result.combinedProcessesPath}`);
45
+ }
46
+ if (result.bundles.length > 0) {
47
+ lines.push(`Bundles: ${result.bundles.map((bundle) => bundle.id).join(", ")}`);
48
+ }
49
+ else {
50
+ lines.push("Bundles: none");
51
+ }
52
+ process.stdout.write(`${lines.join("\n")}\n`);
53
+ });
54
+ }
55
+ function collectOption(value, previous) {
56
+ return [...previous, value];
57
+ }
58
+ function resolvePath(filePath) {
59
+ return filePath.startsWith("/") ? filePath : path.resolve(process.cwd(), filePath);
60
+ }
61
+ //# sourceMappingURL=proxifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxifier.js","sourceRoot":"","sources":["../../../src/cli/commands/proxifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerQuickstartCommand(program: Command): void;
@@ -0,0 +1,54 @@
1
+ import { getDefaultConfigPath, getDefaultRulesPath } from "../command-helpers.js";
2
+ import { runSetupFlow } from "./setup.js";
3
+ export function registerQuickstartCommand(program) {
4
+ program
5
+ .command("quickstart")
6
+ .description("Fast first-run flow: provide a subscription URL and one routing sentence, then prepare, verify, publish, schedule, and optionally run.")
7
+ .requiredOption("--subscription-url <url>", "subscription URL")
8
+ .requiredOption("-p, --prompt <text>", "one-sentence routing intent")
9
+ .option("-c, --config <path>", "path to builder config YAML", getDefaultConfigPath())
10
+ .option("--rules-out <path>", "path to generated custom-rules file", getDefaultRulesPath())
11
+ .option("--provider <provider>", "authoring provider: deterministic, auto, claude, exec")
12
+ .option("--author-timeout-ms <ms>", "timeout for local AI CLI authoring")
13
+ .option("--exec-command <command>", "command for the exec authoring provider")
14
+ .option("--exec-arg <arg>", "append one argument for the exec authoring provider", collectOption, [])
15
+ .option("--sing-box-bin <path>", "path to sing-box binary")
16
+ .option("--chrome-bin <path>", "path to Chrome binary")
17
+ .option("--label <label>", "LaunchAgent label", "org.singbox-iac.update")
18
+ .option("--launch-agents-dir <path>", "override LaunchAgents directory")
19
+ .option("--logs-dir <path>", "override launchd log directory")
20
+ .option("-f, --force", "overwrite generated files during first-time setup")
21
+ .option("--no-run", "prepare and publish, but do not keep sing-box in the foreground")
22
+ .option("--no-browser", "skip opening isolated browser windows during the foreground run")
23
+ .option("--no-load", "write the LaunchAgent without calling launchctl bootstrap")
24
+ .action(async (options) => {
25
+ await runSetupFlow({
26
+ config: options.config,
27
+ rulesOut: options.rulesOut,
28
+ subscriptionUrl: options.subscriptionUrl,
29
+ prompt: options.prompt,
30
+ ...(options.provider ? { provider: options.provider } : {}),
31
+ ...(options.authorTimeoutMs ? { authorTimeoutMs: options.authorTimeoutMs } : {}),
32
+ ...(options.execCommand ? { execCommand: options.execCommand } : {}),
33
+ ...(options.execArg.length > 0 ? { execArg: options.execArg } : { execArg: [] }),
34
+ ...(options.singBoxBin ? { singBoxBin: options.singBoxBin } : {}),
35
+ ...(options.chromeBin ? { chromeBin: options.chromeBin } : {}),
36
+ label: options.label,
37
+ ...(options.launchAgentsDir ? { launchAgentsDir: options.launchAgentsDir } : {}),
38
+ ...(options.logsDir ? { logsDir: options.logsDir } : {}),
39
+ ...(options.force ? { force: options.force } : {}),
40
+ ...(options.load !== undefined ? { load: options.load } : {}),
41
+ doctor: true,
42
+ verify: true,
43
+ apply: true,
44
+ ready: true,
45
+ installSchedule: true,
46
+ run: options.run !== false,
47
+ openBrowser: options.browser !== false,
48
+ });
49
+ });
50
+ }
51
+ function collectOption(value, previous) {
52
+ return [...previous, value];
53
+ }
54
+ //# sourceMappingURL=quickstart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/cli/commands/quickstart.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,32 @@
1
1
  import type { Command } from "commander";
2
2
  export declare function registerSetupCommand(program: Command): void;
3
+ export declare function runSetupFlow(options: SetupCommandOptions): Promise<void>;
4
+ export interface SetupCommandOptions {
5
+ readonly config: string;
6
+ readonly rulesOut: string;
7
+ readonly subscriptionUrl?: string;
8
+ readonly subscriptionFile?: string;
9
+ readonly prompt?: string;
10
+ readonly provider?: "deterministic" | "auto" | "claude" | "exec";
11
+ readonly authorTimeoutMs?: string;
12
+ readonly execCommand?: string;
13
+ readonly execArg: string[];
14
+ readonly skipRulesets?: boolean;
15
+ readonly skipBuild?: boolean;
16
+ readonly doctor?: boolean;
17
+ readonly verify?: boolean;
18
+ readonly apply?: boolean;
19
+ readonly reload?: boolean;
20
+ readonly run?: boolean;
21
+ readonly openBrowser?: boolean;
22
+ readonly ready?: boolean;
23
+ readonly singBoxBin?: string;
24
+ readonly chromeBin?: string;
25
+ readonly installSchedule?: boolean;
26
+ readonly label: string;
27
+ readonly launchAgentsDir?: string;
28
+ readonly logsDir?: string;
29
+ readonly proxifierOutDir?: string;
30
+ readonly force?: boolean;
31
+ readonly load?: boolean;
32
+ }