@singbox-iac/cli 0.1.18 → 0.1.19
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 +47 -1
- package/README.md +47 -1
- package/dist/cli/commands/diagnose.js +19 -5
- package/dist/cli/commands/diagnose.js.map +1 -1
- package/dist/cli/commands/reload.js +13 -1
- package/dist/cli/commands/reload.js.map +1 -1
- package/dist/cli/commands/restart.js +25 -5
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/start.js +70 -12
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.js +5 -4
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.js +15 -4
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/verify.js +19 -1
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/config/load-config.js +24 -1
- package/dist/config/load-config.js.map +1 -1
- package/dist/modules/authoring/index.js +21 -1
- package/dist/modules/authoring/index.js.map +1 -1
- package/dist/modules/desktop-runtime/index.d.ts +25 -0
- package/dist/modules/desktop-runtime/index.js +119 -0
- package/dist/modules/desktop-runtime/index.js.map +1 -1
- package/dist/modules/diagnostics/index.js +83 -8
- package/dist/modules/diagnostics/index.js.map +1 -1
- package/dist/modules/doctor/index.js +41 -0
- package/dist/modules/doctor/index.js.map +1 -1
- package/dist/modules/manager/index.js +15 -5
- package/dist/modules/manager/index.js.map +1 -1
- package/dist/modules/natural-language/index.d.ts +1 -0
- package/dist/modules/natural-language/index.js +83 -35
- package/dist/modules/natural-language/index.js.map +1 -1
- package/dist/modules/runtime-watchdog/index.d.ts +10 -0
- package/dist/modules/runtime-watchdog/index.js +33 -0
- package/dist/modules/runtime-watchdog/index.js.map +1 -1
- package/dist/modules/status/index.d.ts +4 -0
- package/dist/modules/status/index.js +55 -3
- package/dist/modules/status/index.js.map +1 -1
- package/dist/modules/verification/index.d.ts +22 -0
- package/dist/modules/verification/index.js +449 -8
- package/dist/modules/verification/index.js.map +1 -1
- package/dist/modules/verification-plan/index.js +4 -3
- package/dist/modules/verification-plan/index.js.map +1 -1
- package/docs/natural-language-authoring.md +6 -0
- package/docs/runtime-modes.md +23 -7
- package/docs/runtime-on-macos.md +48 -9
- package/docs/sing-box-config-primer.md +10 -1
- package/package.json +1 -1
package/README-en.md
CHANGED
|
@@ -216,6 +216,46 @@ singbox-iac diagnose
|
|
|
216
216
|
|
|
217
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.
|
|
218
218
|
|
|
219
|
+
### Tun beta day-to-day usage
|
|
220
|
+
|
|
221
|
+
If your `builder.config.yaml` already contains:
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
runtime:
|
|
225
|
+
desktop:
|
|
226
|
+
profile: tun
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
then the recommended daily workflow is:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
singbox-iac use '<new routing sentence>'
|
|
233
|
+
singbox-iac update
|
|
234
|
+
sudo singbox-iac start
|
|
235
|
+
sudo singbox-iac status
|
|
236
|
+
sudo singbox-iac verify app -i ~/.config/sing-box/config.json
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Important behavior:
|
|
240
|
+
|
|
241
|
+
- `tun` is managed as a root `LaunchDaemon`, not a user `LaunchAgent`
|
|
242
|
+
- normal config rollouts should use `update` or `sudo singbox-iac reload`
|
|
243
|
+
- `sudo singbox-iac restart` is a destructive recovery action because it replaces the live `sing-box` process
|
|
244
|
+
- `verify app` on `tun` includes a root-owned native-process e2e probe
|
|
245
|
+
- if an older builder config still carries `in-mixed` or `in-proxifier` verification scenarios, the `tun` path treats them as compatibility data instead of treating them as `tun` runtime failures
|
|
246
|
+
|
|
247
|
+
Natural-language authoring on `tun` can express both kinds of routing directly:
|
|
248
|
+
|
|
249
|
+
- site or site-bundle routing
|
|
250
|
+
Example: `GitHub goes through Hong Kong, Google Stitch goes through the US, Gemini goes through Singapore`
|
|
251
|
+
- process-aware routing
|
|
252
|
+
Example: `Antigravity process traffic goes through the US, Cursor and claude go through the US`
|
|
253
|
+
|
|
254
|
+
In the `tun` profile both still compile onto the same `in-tun` path:
|
|
255
|
+
|
|
256
|
+
- ordinary site and ruleset traffic is captured by `in-tun`
|
|
257
|
+
- matching process rules are also applied on `in-tun`, but at a higher priority than site/ruleset routing
|
|
258
|
+
|
|
219
259
|
Everything else can be treated as advanced commands for debugging or fine-grained control.
|
|
220
260
|
|
|
221
261
|
For example:
|
|
@@ -284,7 +324,13 @@ The default desktop runtime profiles are:
|
|
|
284
324
|
- `system-proxy`: keep the `mixed` inbound and let `sing-box` set / clean macOS system proxy automatically
|
|
285
325
|
- `tun`: emit a `tun` inbound with `auto_route`, closer to the global-capture behavior of GUI clients
|
|
286
326
|
|
|
287
|
-
|
|
327
|
+
Natural-language prompts do not silently switch the desktop profile to `tun`. Unless the current builder config already persists `runtime.desktop.profile: tun`, the everyday default remains `system-proxy`.
|
|
328
|
+
|
|
329
|
+
In practical terms:
|
|
330
|
+
|
|
331
|
+
- if you do not explicitly change the profile, `use 'GitHub goes through Hong Kong, Gemini goes through Singapore'` still stays on the default `system-proxy` path
|
|
332
|
+
- if the current builder config already uses `tun`, the same sentence keeps using `tun`
|
|
333
|
+
- the sentence describes where traffic should go; the profile decides whether those rules are enforced through system proxy or through `tun`
|
|
288
334
|
|
|
289
335
|
Default local listeners:
|
|
290
336
|
|
package/README.md
CHANGED
|
@@ -216,6 +216,46 @@ singbox-iac diagnose
|
|
|
216
216
|
|
|
217
217
|
`status` 适合看当前运行快照;`diagnose` 适合继续判断问题更像是运行时漂移、系统 DNS/默认路由异常,还是最近一次发布没有生效。
|
|
218
218
|
|
|
219
|
+
### Tun Beta 建议用法
|
|
220
|
+
|
|
221
|
+
如果你的 `builder.config.yaml` 已经显式设置了:
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
runtime:
|
|
225
|
+
desktop:
|
|
226
|
+
profile: tun
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
建议把日常操作固定成这一组:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
singbox-iac use '<新的需求描述>'
|
|
233
|
+
singbox-iac update
|
|
234
|
+
sudo singbox-iac start
|
|
235
|
+
sudo singbox-iac status
|
|
236
|
+
sudo singbox-iac verify app -i ~/.config/sing-box/config.json
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
注意:
|
|
240
|
+
|
|
241
|
+
- `tun` 运行时使用 root `LaunchDaemon`,不是用户 `LaunchAgent`
|
|
242
|
+
- 日常配置变更优先用 `update` 或 `sudo singbox-iac reload`
|
|
243
|
+
- `sudo singbox-iac restart` 只适合恢复性操作,因为它会替换当前 `sing-box` 进程
|
|
244
|
+
- `verify app` 在 `tun` 下会执行 root-owned native-process e2e
|
|
245
|
+
- 如果旧 builder config 里还保留了 `in-mixed` 或 `in-proxifier` verification scenarios,`tun` 路径会做兼容归一化;这些遗留场景不会再被当成 `tun` app verification 的失败条件
|
|
246
|
+
|
|
247
|
+
自然语言在 `tun` 下可以直接表达两类意图:
|
|
248
|
+
|
|
249
|
+
- site / site bundle 路由
|
|
250
|
+
例如:`GitHub 走香港,Google Stitch 走美国,Gemini 走新加坡`
|
|
251
|
+
- process-aware 路由
|
|
252
|
+
例如:`Antigravity 进程级走美国,Cursor 和 claude 走美国`
|
|
253
|
+
|
|
254
|
+
这些意图在 `tun` 下都会编译到同一条 `in-tun` 主路径里:
|
|
255
|
+
|
|
256
|
+
- 普通站点 / ruleset 流量走 `in-tun`
|
|
257
|
+
- 命中的进程规则也走 `in-tun`,但优先级高于 site/ruleset 规则
|
|
258
|
+
|
|
219
259
|
其余命令都属于 power-user / 工程命令,主要用于拆流程、排障或更细粒度控制。
|
|
220
260
|
|
|
221
261
|
例如:
|
|
@@ -284,7 +324,13 @@ singbox-iac start
|
|
|
284
324
|
- `system-proxy`:保留 `mixed` 入站,并让 `sing-box` 自动设置 / 清理 macOS 系统代理
|
|
285
325
|
- `tun`:生成 `tun` 入站并启用 `auto_route`,更接近 GUI 客户端的全局接管方式
|
|
286
326
|
|
|
287
|
-
|
|
327
|
+
自然语言不会悄悄把当前桌面 profile 切成 `tun`。除非你的 builder config 已经持久化了 `runtime.desktop.profile: tun`,否则默认仍然是 `system-proxy`。
|
|
328
|
+
|
|
329
|
+
换句话说:
|
|
330
|
+
|
|
331
|
+
- 不显式改 profile 时,`use 'GitHub 走香港,Gemini 走新加坡'` 仍然走默认 `system-proxy`
|
|
332
|
+
- 如果 builder config 已经是 `tun`,同样一句 `use` 会继续走 `tun`
|
|
333
|
+
- 也就是说,句子负责表达“什么流量去哪里”;profile 负责表达“系统代理还是 tun 来承接这些规则”
|
|
288
334
|
|
|
289
335
|
默认监听端口:
|
|
290
336
|
|
|
@@ -75,10 +75,16 @@ function assessDiagnostics(report) {
|
|
|
75
75
|
}
|
|
76
76
|
if (runtimeHasWarnings && !networkHasWarnings) {
|
|
77
77
|
return {
|
|
78
|
-
label:
|
|
78
|
+
label: report.status.runtime.desktopProfile === "tun"
|
|
79
|
+
? "Likely tun runtime drift or insufficient LaunchDaemon visibility."
|
|
80
|
+
: "Likely runtime drift or publish issue.",
|
|
79
81
|
nextSteps: [
|
|
80
|
-
report.status.runtime.
|
|
81
|
-
|
|
82
|
+
report.status.runtime.desktopProfile === "tun"
|
|
83
|
+
? report.status.runtime.serviceVisibilityLimited
|
|
84
|
+
? "Re-run `sudo singbox-iac status` or `sudo singbox-iac diagnose` to inspect the managed LaunchDaemon and tun state."
|
|
85
|
+
: "If this was only a config change, run `sudo singbox-iac reload`. Use `sudo singbox-iac restart` only when the LaunchDaemon or utun is unhealthy."
|
|
86
|
+
: report.status.runtime.systemProxy?.nextAction ??
|
|
87
|
+
"Reconcile runtime state first: run `singbox-iac status` or `singbox-iac restart`, then re-run diagnose.",
|
|
82
88
|
],
|
|
83
89
|
};
|
|
84
90
|
}
|
|
@@ -91,8 +97,12 @@ function assessDiagnostics(report) {
|
|
|
91
97
|
return {
|
|
92
98
|
label: "Mixed evidence across runtime and local network.",
|
|
93
99
|
nextSteps: [
|
|
94
|
-
report.status.runtime.
|
|
95
|
-
|
|
100
|
+
report.status.runtime.desktopProfile === "tun"
|
|
101
|
+
? report.status.runtime.serviceVisibilityLimited
|
|
102
|
+
? "Re-run `sudo singbox-iac diagnose` first so tun LaunchDaemon evidence is complete, then inspect the remaining network warnings."
|
|
103
|
+
: "Fix the tun runtime first. Prefer `sudo singbox-iac reload` for config changes, and reserve `sudo singbox-iac restart` for runtime recovery."
|
|
104
|
+
: report.status.runtime.systemProxy?.nextAction ??
|
|
105
|
+
"Fix runtime drift first, then re-run diagnose to see whether local DNS or route warnings remain.",
|
|
96
106
|
"If network warnings remain after the runtime is healthy, inspect local DNS, route, VPN, or captive-portal state.",
|
|
97
107
|
],
|
|
98
108
|
};
|
|
@@ -104,7 +114,11 @@ function isRuntimeCheck(name) {
|
|
|
104
114
|
return (name === "runtime-process" ||
|
|
105
115
|
name.startsWith("listener:") ||
|
|
106
116
|
name === "system-proxy" ||
|
|
117
|
+
name === "tun-root-access" ||
|
|
107
118
|
name === "tun-interface" ||
|
|
119
|
+
name === "tun-service-pid" ||
|
|
120
|
+
name === "tun-hot-reload" ||
|
|
121
|
+
name === "tun-native-process-rules" ||
|
|
108
122
|
name === "fakeip-cache" ||
|
|
109
123
|
name === "live-config" ||
|
|
110
124
|
name === "schedule" ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../src/cli/commands/diagnose.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../src/cli/commands/diagnose.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { assertDesktopRuntimePrivileges, resolveDesktopRuntimeServiceKind, } from "../../modules/desktop-runtime/index.js";
|
|
1
3
|
import { reloadRuntime } from "../../modules/manager/index.js";
|
|
2
4
|
import { resolveBuilderConfig } from "../command-helpers.js";
|
|
3
5
|
export function registerReloadCommand(program) {
|
|
4
6
|
program
|
|
5
7
|
.command("reload")
|
|
6
|
-
.description("
|
|
8
|
+
.description("Hot-reload the running sing-box process. This is the preferred config-change path for tun.")
|
|
7
9
|
.option("-c, --config <path>", "path to builder config YAML")
|
|
8
10
|
.option("--sing-box-bin <path>", "path to sing-box binary")
|
|
9
11
|
.action(async (options) => {
|
|
@@ -11,6 +13,13 @@ export function registerReloadCommand(program) {
|
|
|
11
13
|
if (!builderConfig) {
|
|
12
14
|
throw new Error("A builder config is required for reload.");
|
|
13
15
|
}
|
|
16
|
+
if (builderConfig.runtime.desktop.profile === "tun") {
|
|
17
|
+
assertDesktopRuntimePrivileges({
|
|
18
|
+
serviceKind: resolveDesktopRuntimeServiceKind(builderConfig.runtime.desktop.profile),
|
|
19
|
+
action: "reload",
|
|
20
|
+
...(options.config ? { configPath: resolvePath(options.config) } : {}),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
14
23
|
await reloadRuntime({
|
|
15
24
|
...(options.singBoxBin
|
|
16
25
|
? { singBoxBinary: options.singBoxBin }
|
|
@@ -23,4 +32,7 @@ export function registerReloadCommand(program) {
|
|
|
23
32
|
process.stdout.write("Reloaded sing-box runtime.\n");
|
|
24
33
|
});
|
|
25
34
|
}
|
|
35
|
+
function resolvePath(filePath) {
|
|
36
|
+
return filePath.startsWith("/") ? filePath : path.resolve(process.cwd(), filePath);
|
|
37
|
+
}
|
|
26
38
|
//# sourceMappingURL=reload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reload.js","sourceRoot":"","sources":["../../../src/cli/commands/reload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"reload.js","sourceRoot":"","sources":["../../../src/cli/commands/reload.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4FAA4F,CAAC;SACzG,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAC9C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpD,8BAA8B,CAAC;gBAC7B,WAAW,EAAE,gCAAgC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBACpF,MAAM,EAAE,QAAQ;gBAChB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,CAAC;YAClB,GAAG,CAAC,OAAO,CAAC,UAAU;gBACpB,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE;gBACvC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa;oBAChD,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE;oBACrE,CAAC,CAAC,EAAE,CAAC;YACT,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM;YACrC,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO;SAC9C,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC;AAOD,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,18 +1,18 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { defaultRuntimeLaunchDaemonLabel, installDesktopRuntimeAgent, removeDesktopRuntimeAgent, resolveDesktopRuntimeServiceKind, restartDesktopRuntimeAgent, } from "../../modules/desktop-runtime/index.js";
|
|
2
|
+
import { assertDesktopRuntimePrivileges, defaultRuntimeLaunchDaemonLabel, installDesktopRuntimeAgent, removeDesktopRuntimeAgent, resolveDesktopRuntimeServiceKind, restartDesktopRuntimeAgent, } from "../../modules/desktop-runtime/index.js";
|
|
3
3
|
import { checkConfig, resolveSingBoxBinary } from "../../modules/manager/index.js";
|
|
4
4
|
import { installRuntimeWatchdogAgent, removeRuntimeWatchdogAgent, } from "../../modules/runtime-watchdog/index.js";
|
|
5
5
|
import { findDefaultConfigPath, resolveBuilderConfig, resolveCliEntrypoint, } from "../command-helpers.js";
|
|
6
6
|
export function registerRestartCommand(program) {
|
|
7
7
|
program
|
|
8
8
|
.command("restart")
|
|
9
|
-
.description("Restart the dedicated desktop sing-box runtime launchd service.")
|
|
9
|
+
.description("Restart the dedicated desktop sing-box runtime launchd service. In tun mode this is destructive and resets FakeIP/runtime state.")
|
|
10
10
|
.option("-c, --config <path>", "path to builder config YAML")
|
|
11
11
|
.option("--sing-box-bin <path>", "path to sing-box binary")
|
|
12
|
-
.option("--label <label>", "runtime
|
|
13
|
-
.option("--launch-agents-dir <path>", "override
|
|
12
|
+
.option("--label <label>", "runtime launchd label")
|
|
13
|
+
.option("--launch-agents-dir <path>", "override launchd plist directory")
|
|
14
14
|
.option("--logs-dir <path>", "override launchd log directory")
|
|
15
|
-
.option("--no-load", "write the runtime
|
|
15
|
+
.option("--no-load", "write the runtime launchd plist without calling launchctl bootstrap")
|
|
16
16
|
.action(async (options) => {
|
|
17
17
|
const builderConfig = await resolveBuilderConfig(options);
|
|
18
18
|
const configPath = options.config
|
|
@@ -28,6 +28,21 @@ export function registerRestartCommand(program) {
|
|
|
28
28
|
throw new Error("Desktop runtime profile is disabled in this config. Re-run onboarding or set runtime.desktop.profile first.");
|
|
29
29
|
}
|
|
30
30
|
const serviceKind = resolveDesktopRuntimeServiceKind(builderConfig.runtime.desktop.profile);
|
|
31
|
+
if (builderConfig.runtime.desktop.profile === "tun") {
|
|
32
|
+
const hasOverrides = options.singBoxBin !== undefined ||
|
|
33
|
+
options.launchAgentsDir !== undefined ||
|
|
34
|
+
options.logsDir !== undefined;
|
|
35
|
+
const restartAction = options.load !== false && !hasOverrides ? "restart" : "install";
|
|
36
|
+
assertDesktopRuntimePrivileges({
|
|
37
|
+
serviceKind,
|
|
38
|
+
action: restartAction,
|
|
39
|
+
configPath,
|
|
40
|
+
...(options.launchAgentsDir
|
|
41
|
+
? { launchAgentsDir: resolvePath(options.launchAgentsDir) }
|
|
42
|
+
: {}),
|
|
43
|
+
load: options.load !== false,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
31
46
|
const label = options.label ??
|
|
32
47
|
(builderConfig.runtime.desktop.profile === "tun"
|
|
33
48
|
? builderConfig.runtime.desktop.tun.launchDaemonLabel
|
|
@@ -124,6 +139,11 @@ export function registerRestartCommand(program) {
|
|
|
124
139
|
`Label: ${result.label}`,
|
|
125
140
|
`Live config: ${builderConfig.output.livePath}`,
|
|
126
141
|
`${serviceKind === "launch-daemon" ? "LaunchDaemon" : "LaunchAgent"}: ${result.plistPath}`,
|
|
142
|
+
...(builderConfig.runtime.desktop.profile === "tun"
|
|
143
|
+
? [
|
|
144
|
+
"Warning: restart is destructive for tun runtime state; use `reload` or `update` for normal config changes.",
|
|
145
|
+
]
|
|
146
|
+
: []),
|
|
127
147
|
...(watchdogResult
|
|
128
148
|
? [
|
|
129
149
|
`Watchdog: ${watchdogResult.label}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAChC,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,
|
|
1
|
+
{"version":3,"file":"restart.js","sourceRoot":"","sources":["../../../src/cli/commands/restart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { defaultRuntimeLaunchDaemonLabel, installDesktopRuntimeAgent, removeDesktopRuntimeAgent, resolveDesktopRuntimeServiceKind, } from "../../modules/desktop-runtime/index.js";
|
|
2
|
+
import { assertDesktopRuntimePrivileges, defaultRuntimeLaunchDaemonLabel, installDesktopRuntimeAgent, removeDesktopRuntimeAgent, recoverDesktopRuntimeAgent, resolveDesktopRuntimeServiceKind, } from "../../modules/desktop-runtime/index.js";
|
|
3
3
|
import { checkConfig, resolveSingBoxBinary } from "../../modules/manager/index.js";
|
|
4
|
-
import { installRuntimeWatchdogAgent } from "../../modules/runtime-watchdog/index.js";
|
|
4
|
+
import { installRuntimeWatchdogAgent, recoverRuntimeWatchdogAgent, } from "../../modules/runtime-watchdog/index.js";
|
|
5
5
|
import { findDefaultConfigPath, resolveBuilderConfig, resolveCliEntrypoint, } from "../command-helpers.js";
|
|
6
6
|
export function registerStartCommand(program) {
|
|
7
7
|
program
|
|
@@ -9,11 +9,11 @@ export function registerStartCommand(program) {
|
|
|
9
9
|
.description("Start the desktop sing-box runtime as a managed launchd service.")
|
|
10
10
|
.option("-c, --config <path>", "path to builder config YAML")
|
|
11
11
|
.option("--sing-box-bin <path>", "path to sing-box binary")
|
|
12
|
-
.option("--label <label>", "runtime
|
|
13
|
-
.option("--launch-agents-dir <path>", "override
|
|
12
|
+
.option("--label <label>", "runtime launchd label")
|
|
13
|
+
.option("--launch-agents-dir <path>", "override launchd plist directory")
|
|
14
14
|
.option("--logs-dir <path>", "override launchd log directory")
|
|
15
|
-
.option("-f, --force", "replace an existing runtime
|
|
16
|
-
.option("--no-load", "write the runtime
|
|
15
|
+
.option("-f, --force", "replace an existing runtime launchd plist")
|
|
16
|
+
.option("--no-load", "write the runtime launchd plist without calling launchctl bootstrap")
|
|
17
17
|
.action(async (options) => {
|
|
18
18
|
const builderConfig = await resolveBuilderConfig(options);
|
|
19
19
|
const configPath = options.config
|
|
@@ -29,6 +29,17 @@ export function registerStartCommand(program) {
|
|
|
29
29
|
throw new Error("Desktop runtime profile is disabled in this config. Re-run onboarding or set runtime.desktop.profile first.");
|
|
30
30
|
}
|
|
31
31
|
const serviceKind = resolveDesktopRuntimeServiceKind(builderConfig.runtime.desktop.profile);
|
|
32
|
+
if (builderConfig.runtime.desktop.profile === "tun") {
|
|
33
|
+
assertDesktopRuntimePrivileges({
|
|
34
|
+
serviceKind,
|
|
35
|
+
action: "install",
|
|
36
|
+
configPath,
|
|
37
|
+
...(options.launchAgentsDir
|
|
38
|
+
? { launchAgentsDir: resolvePath(options.launchAgentsDir) }
|
|
39
|
+
: {}),
|
|
40
|
+
load: options.load !== false,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
32
43
|
const singBoxBinary = await resolveSingBoxBinary(options.singBoxBin ? resolvePath(options.singBoxBin) : undefined, builderConfig.runtime.dependencies.singBoxBinary);
|
|
33
44
|
await checkConfig({
|
|
34
45
|
configPath: builderConfig.output.livePath,
|
|
@@ -52,14 +63,15 @@ export function registerStartCommand(program) {
|
|
|
52
63
|
: {}),
|
|
53
64
|
}).catch(() => undefined);
|
|
54
65
|
}
|
|
55
|
-
const
|
|
66
|
+
const runtimeLabel = options.label ??
|
|
67
|
+
(builderConfig.runtime.desktop.profile === "tun"
|
|
68
|
+
? builderConfig.runtime.desktop.tun.launchDaemonLabel
|
|
69
|
+
: builderConfig.runtime.desktop.launchAgentLabel);
|
|
70
|
+
const result = await ensureDesktopRuntimeAgent({
|
|
56
71
|
liveConfigPath: builderConfig.output.livePath,
|
|
57
72
|
singBoxBinary,
|
|
58
73
|
serviceKind,
|
|
59
|
-
label:
|
|
60
|
-
(builderConfig.runtime.desktop.profile === "tun"
|
|
61
|
-
? builderConfig.runtime.desktop.tun.launchDaemonLabel
|
|
62
|
-
: builderConfig.runtime.desktop.launchAgentLabel),
|
|
74
|
+
label: runtimeLabel,
|
|
63
75
|
...(options.launchAgentsDir
|
|
64
76
|
? { launchAgentsDir: resolvePath(options.launchAgentsDir) }
|
|
65
77
|
: {}),
|
|
@@ -69,7 +81,7 @@ export function registerStartCommand(program) {
|
|
|
69
81
|
});
|
|
70
82
|
const watchdogResult = builderConfig.runtime.desktop.profile === "system-proxy" &&
|
|
71
83
|
builderConfig.runtime.desktop.watchdog.enabled
|
|
72
|
-
? await
|
|
84
|
+
? await ensureRuntimeWatchdogAgent({
|
|
73
85
|
configPath,
|
|
74
86
|
cliEntrypoint: resolveCliEntrypoint(import.meta.url),
|
|
75
87
|
intervalSeconds: builderConfig.runtime.desktop.watchdog.intervalSeconds,
|
|
@@ -87,10 +99,12 @@ export function registerStartCommand(program) {
|
|
|
87
99
|
`Label: ${result.label}`,
|
|
88
100
|
`Live config: ${builderConfig.output.livePath}`,
|
|
89
101
|
`${serviceKind === "launch-daemon" ? "LaunchDaemon" : "LaunchAgent"}: ${result.plistPath}`,
|
|
102
|
+
`Method: ${result.method}`,
|
|
90
103
|
...(watchdogResult
|
|
91
104
|
? [
|
|
92
105
|
`Watchdog: ${watchdogResult.label}`,
|
|
93
106
|
`Watchdog LaunchAgent: ${watchdogResult.plistPath}`,
|
|
107
|
+
`Watchdog Method: ${watchdogResult.method}`,
|
|
94
108
|
]
|
|
95
109
|
: []),
|
|
96
110
|
].join("\n")}\n`);
|
|
@@ -99,4 +113,48 @@ export function registerStartCommand(program) {
|
|
|
99
113
|
function resolvePath(filePath) {
|
|
100
114
|
return filePath.startsWith("/") ? filePath : path.resolve(process.cwd(), filePath);
|
|
101
115
|
}
|
|
116
|
+
async function ensureDesktopRuntimeAgent(input) {
|
|
117
|
+
try {
|
|
118
|
+
const result = await installDesktopRuntimeAgent(input);
|
|
119
|
+
return {
|
|
120
|
+
label: result.label,
|
|
121
|
+
plistPath: result.plistPath,
|
|
122
|
+
method: "install",
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (input.force === true || !isAlreadyExistsError(error)) {
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
const recovered = await recoverDesktopRuntimeAgent({
|
|
130
|
+
...(input.serviceKind ? { serviceKind: input.serviceKind } : {}),
|
|
131
|
+
...(input.label ? { label: input.label } : {}),
|
|
132
|
+
...(input.launchAgentsDir ? { launchAgentsDir: input.launchAgentsDir } : {}),
|
|
133
|
+
});
|
|
134
|
+
return recovered;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async function ensureRuntimeWatchdogAgent(input) {
|
|
138
|
+
try {
|
|
139
|
+
const result = await installRuntimeWatchdogAgent(input);
|
|
140
|
+
return {
|
|
141
|
+
label: result.label,
|
|
142
|
+
plistPath: result.plistPath,
|
|
143
|
+
method: "install",
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
if (input.force === true || !isAlreadyExistsError(error)) {
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
150
|
+
const recovered = await recoverRuntimeWatchdogAgent({
|
|
151
|
+
...(input.label ? { label: input.label } : {}),
|
|
152
|
+
...(input.launchAgentsDir ? { launchAgentsDir: input.launchAgentsDir } : {}),
|
|
153
|
+
});
|
|
154
|
+
return recovered;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function isAlreadyExistsError(error) {
|
|
158
|
+
return error instanceof Error && error.message.includes("already exists:");
|
|
159
|
+
}
|
|
102
160
|
//# sourceMappingURL=start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,9 @@ export function registerStatusCommand(program) {
|
|
|
7
7
|
.description("Show the current sing-box runtime, config, schedule, and transaction status.")
|
|
8
8
|
.option("-c, --config <path>", "path to builder config YAML")
|
|
9
9
|
.option("--sing-box-bin <path>", "path to sing-box binary")
|
|
10
|
-
.option("--launch-agents-dir <path>", "override
|
|
10
|
+
.option("--launch-agents-dir <path>", "override launchd plist directory")
|
|
11
11
|
.option("--label <label>", "LaunchAgent label", "org.singbox-iac.update")
|
|
12
|
-
.option("--runtime-label <label>", "runtime
|
|
12
|
+
.option("--runtime-label <label>", "runtime launchd label")
|
|
13
13
|
.option("--json", "print machine-readable JSON")
|
|
14
14
|
.action(async (options) => {
|
|
15
15
|
const [config, configPath] = await Promise.all([
|
|
@@ -99,10 +99,11 @@ function buildStatusSummaryLines(report) {
|
|
|
99
99
|
function buildRuntimeLines(report) {
|
|
100
100
|
const lines = [
|
|
101
101
|
`binary: ${report.runtime.singBoxBinary ?? "(unresolved)"}${report.runtime.binarySource ? ` [${report.runtime.binarySource}]` : ""}`,
|
|
102
|
-
`mode: ${report.runtime.mode ?? "(unknown)"}`,
|
|
102
|
+
`planner-mode: ${report.runtime.plannerMode ?? report.runtime.mode ?? "(unknown)"}`,
|
|
103
|
+
`effective-runtime: ${report.runtime.effectiveRuntime ?? "(unknown)"}`,
|
|
103
104
|
`desktop-runtime: ${report.runtime.desktopProfile ?? "none"} ${report.runtime.serviceKind}=${report.runtime.serviceLabel} installed=${String(report.runtime.serviceInstalled)}${report.runtime.serviceLoaded !== undefined
|
|
104
105
|
? ` loaded=${String(report.runtime.serviceLoaded)}`
|
|
105
|
-
: ""}${report.runtime.systemProxyActive !== undefined
|
|
106
|
+
: ""}${report.runtime.servicePid !== undefined ? ` pid=${report.runtime.servicePid}` : ""}${report.runtime.serviceVisibilityLimited ? " visibility=limited" : ""}${report.runtime.systemProxyActive !== undefined
|
|
106
107
|
? ` system-proxy=${String(report.runtime.systemProxyActive)}`
|
|
107
108
|
: ""}${report.runtime.tunInterfacePresent !== undefined
|
|
108
109
|
? ` tun=${String(report.runtime.tunInterfacePresent)}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAGL,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,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,8EAA8E,CAAC;SAC3F,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,4BAA4B,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { defaultRuntimeLaunchAgentLabel, defaultRuntimeLaunchDaemonLabel, removeDesktopRuntimeAgent, resolveDesktopRuntimeServiceKind, } from "../../modules/desktop-runtime/index.js";
|
|
2
|
+
import { assertDesktopRuntimePrivileges, defaultRuntimeLaunchAgentLabel, defaultRuntimeLaunchDaemonLabel, removeDesktopRuntimeAgent, resolveDesktopRuntimeServiceKind, } from "../../modules/desktop-runtime/index.js";
|
|
3
3
|
import { defaultRuntimeWatchdogLaunchAgentLabel, removeRuntimeWatchdogAgent, } from "../../modules/runtime-watchdog/index.js";
|
|
4
4
|
import { resolveBuilderConfig } from "../command-helpers.js";
|
|
5
5
|
export function registerStopCommand(program) {
|
|
@@ -7,13 +7,24 @@ export function registerStopCommand(program) {
|
|
|
7
7
|
.command("stop")
|
|
8
8
|
.description("Stop the dedicated desktop sing-box runtime launchd service.")
|
|
9
9
|
.option("-c, --config <path>", "path to builder config YAML")
|
|
10
|
-
.option("--label <label>", "runtime
|
|
11
|
-
.option("--launch-agents-dir <path>", "override
|
|
12
|
-
.option("--no-unload", "remove the
|
|
10
|
+
.option("--label <label>", "runtime launchd label")
|
|
11
|
+
.option("--launch-agents-dir <path>", "override launchd plist directory")
|
|
12
|
+
.option("--no-unload", "remove the runtime plist without calling launchctl bootout")
|
|
13
13
|
.action(async (options) => {
|
|
14
14
|
const builderConfig = await resolveBuilderConfig(options);
|
|
15
15
|
const profile = builderConfig?.runtime.desktop.profile ?? "system-proxy";
|
|
16
16
|
const serviceKind = resolveDesktopRuntimeServiceKind(profile);
|
|
17
|
+
if (profile === "tun") {
|
|
18
|
+
assertDesktopRuntimePrivileges({
|
|
19
|
+
serviceKind,
|
|
20
|
+
action: "remove",
|
|
21
|
+
...(options.config ? { configPath: resolvePath(options.config) } : {}),
|
|
22
|
+
...(options.launchAgentsDir
|
|
23
|
+
? { launchAgentsDir: resolvePath(options.launchAgentsDir) }
|
|
24
|
+
: {}),
|
|
25
|
+
unload: options.unload !== false,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
17
28
|
const watchdogLabel = builderConfig?.runtime.desktop.watchdog.launchAgentLabel ??
|
|
18
29
|
defaultRuntimeWatchdogLaunchAgentLabel;
|
|
19
30
|
const plistPath = await removeDesktopRuntimeAgent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/cli/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,sCAAsC,EACtC,0BAA0B,GAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/cli/commands/stop.ts"],"names":[],"mappings":"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"}
|