@singbox-iac/cli 0.1.16 → 0.1.17

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 (80) hide show
  1. package/README.md +70 -24
  2. package/dist/cli/commands/author.d.ts +2 -0
  3. package/dist/cli/commands/author.js +49 -19
  4. package/dist/cli/commands/author.js.map +1 -1
  5. package/dist/cli/commands/build.js +25 -13
  6. package/dist/cli/commands/build.js.map +1 -1
  7. package/dist/cli/commands/diagnose.d.ts +2 -0
  8. package/dist/cli/commands/diagnose.js +120 -0
  9. package/dist/cli/commands/diagnose.js.map +1 -0
  10. package/dist/cli/commands/doctor.js +21 -1
  11. package/dist/cli/commands/doctor.js.map +1 -1
  12. package/dist/cli/commands/restart.js +42 -2
  13. package/dist/cli/commands/restart.js.map +1 -1
  14. package/dist/cli/commands/rulesets.d.ts +2 -0
  15. package/dist/cli/commands/rulesets.js +125 -0
  16. package/dist/cli/commands/rulesets.js.map +1 -0
  17. package/dist/cli/commands/runtime-watchdog.d.ts +2 -0
  18. package/dist/cli/commands/runtime-watchdog.js +45 -0
  19. package/dist/cli/commands/runtime-watchdog.js.map +1 -0
  20. package/dist/cli/commands/setup.js +38 -13
  21. package/dist/cli/commands/setup.js.map +1 -1
  22. package/dist/cli/commands/start.js +29 -1
  23. package/dist/cli/commands/start.js.map +1 -1
  24. package/dist/cli/commands/status.js +135 -28
  25. package/dist/cli/commands/status.js.map +1 -1
  26. package/dist/cli/commands/stop.js +19 -1
  27. package/dist/cli/commands/stop.js.map +1 -1
  28. package/dist/cli/commands/use.js +3 -1
  29. package/dist/cli/commands/use.js.map +1 -1
  30. package/dist/cli/index.js +12 -4
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/config/schema.d.ts +49 -6
  33. package/dist/config/schema.js +17 -0
  34. package/dist/config/schema.js.map +1 -1
  35. package/dist/modules/authoring/index.js +25 -8
  36. package/dist/modules/authoring/index.js.map +1 -1
  37. package/dist/modules/build/index.d.ts +4 -1
  38. package/dist/modules/build/index.js +17 -4
  39. package/dist/modules/build/index.js.map +1 -1
  40. package/dist/modules/bundle-registry/index.d.ts +46 -0
  41. package/dist/modules/bundle-registry/index.js +650 -0
  42. package/dist/modules/bundle-registry/index.js.map +1 -0
  43. package/dist/modules/desktop-runtime/index.d.ts +11 -0
  44. package/dist/modules/desktop-runtime/index.js +41 -0
  45. package/dist/modules/desktop-runtime/index.js.map +1 -1
  46. package/dist/modules/diagnostics/index.d.ts +28 -0
  47. package/dist/modules/diagnostics/index.js +288 -0
  48. package/dist/modules/diagnostics/index.js.map +1 -0
  49. package/dist/modules/layered-authoring/index.d.ts +45 -0
  50. package/dist/modules/layered-authoring/index.js +549 -0
  51. package/dist/modules/layered-authoring/index.js.map +1 -0
  52. package/dist/modules/natural-language/index.d.ts +6 -3
  53. package/dist/modules/natural-language/index.js +74 -69
  54. package/dist/modules/natural-language/index.js.map +1 -1
  55. package/dist/modules/proxifier/index.d.ts +1 -14
  56. package/dist/modules/proxifier/index.js +10 -139
  57. package/dist/modules/proxifier/index.js.map +1 -1
  58. package/dist/modules/rule-set-catalog/index.d.ts +25 -0
  59. package/dist/modules/rule-set-catalog/index.js +135 -0
  60. package/dist/modules/rule-set-catalog/index.js.map +1 -0
  61. package/dist/modules/runtime-watchdog/index.d.ts +73 -0
  62. package/dist/modules/runtime-watchdog/index.js +532 -0
  63. package/dist/modules/runtime-watchdog/index.js.map +1 -0
  64. package/dist/modules/status/index.d.ts +48 -0
  65. package/dist/modules/status/index.js +254 -23
  66. package/dist/modules/status/index.js.map +1 -1
  67. package/dist/modules/system-proxy/index.d.ts +31 -0
  68. package/dist/modules/system-proxy/index.js +164 -0
  69. package/dist/modules/system-proxy/index.js.map +1 -0
  70. package/docs/agent-context.md +131 -0
  71. package/docs/natural-language-authoring.md +106 -1
  72. package/docs/proxifier-onboarding.md +15 -4
  73. package/docs/rule-templates.md +2 -0
  74. package/docs/runtime-modes.md +84 -0
  75. package/docs/runtime-on-macos.md +53 -4
  76. package/examples/builder.config.yaml +60 -0
  77. package/package.json +3 -2
  78. package/dist/cli/commands/quickstart.d.ts +0 -2
  79. package/dist/cli/commands/quickstart.js +0 -54
  80. package/dist/cli/commands/quickstart.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import path from "node:path";
2
2
  import { installDesktopRuntimeAgent } from "../../modules/desktop-runtime/index.js";
3
3
  import { checkConfig, resolveSingBoxBinary } from "../../modules/manager/index.js";
4
- import { resolveBuilderConfig } from "../command-helpers.js";
4
+ import { installRuntimeWatchdogAgent } from "../../modules/runtime-watchdog/index.js";
5
+ import { findDefaultConfigPath, resolveBuilderConfig, resolveCliEntrypoint, } from "../command-helpers.js";
5
6
  export function registerStartCommand(program) {
6
7
  program
7
8
  .command("start")
@@ -15,9 +16,15 @@ export function registerStartCommand(program) {
15
16
  .option("--no-load", "write the runtime LaunchAgent without calling launchctl bootstrap")
16
17
  .action(async (options) => {
17
18
  const builderConfig = await resolveBuilderConfig(options);
19
+ const configPath = options.config
20
+ ? resolvePath(options.config)
21
+ : await findDefaultConfigPath();
18
22
  if (!builderConfig) {
19
23
  throw new Error("Start requires a builder config. Run `singbox-iac go` first.");
20
24
  }
25
+ if (!configPath) {
26
+ throw new Error("Start requires a builder config path.");
27
+ }
21
28
  if (builderConfig.runtime.desktop.profile === "none") {
22
29
  throw new Error("Desktop runtime profile is disabled in this config. Re-run onboarding or set runtime.desktop.profile first.");
23
30
  }
@@ -37,11 +44,32 @@ export function registerStartCommand(program) {
37
44
  force: options.force === true,
38
45
  load: options.load !== false,
39
46
  });
47
+ const watchdogResult = builderConfig.runtime.desktop.profile === "system-proxy" &&
48
+ builderConfig.runtime.desktop.watchdog.enabled
49
+ ? await installRuntimeWatchdogAgent({
50
+ configPath,
51
+ cliEntrypoint: resolveCliEntrypoint(import.meta.url),
52
+ intervalSeconds: builderConfig.runtime.desktop.watchdog.intervalSeconds,
53
+ label: builderConfig.runtime.desktop.watchdog.launchAgentLabel,
54
+ ...(options.launchAgentsDir
55
+ ? { launchAgentsDir: resolvePath(options.launchAgentsDir) }
56
+ : {}),
57
+ ...(options.logsDir ? { logsDir: resolvePath(options.logsDir) } : {}),
58
+ force: options.force === true,
59
+ load: options.load !== false,
60
+ })
61
+ : undefined;
40
62
  process.stdout.write(`${[
41
63
  `Started desktop runtime profile: ${builderConfig.runtime.desktop.profile}`,
42
64
  `Label: ${result.label}`,
43
65
  `Live config: ${builderConfig.output.livePath}`,
44
66
  `LaunchAgent: ${result.plistPath}`,
67
+ ...(watchdogResult
68
+ ? [
69
+ `Watchdog: ${watchdogResult.label}`,
70
+ `Watchdog LaunchAgent: ${watchdogResult.plistPath}`,
71
+ ]
72
+ : []),
45
73
  ].join("\n")}\n`);
46
74
  });
47
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { collectStatusReport } from "../../modules/status/index.js";
2
+ import { collectStatusReport, } from "../../modules/status/index.js";
3
3
  import { findDefaultConfigPath, resolveBuilderConfig } from "../command-helpers.js";
4
4
  export function registerStatusCommand(program) {
5
5
  program
@@ -30,36 +30,143 @@ export function registerStatusCommand(program) {
30
30
  process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
31
31
  return;
32
32
  }
33
- const lines = [
34
- `Generated: ${report.generatedAt}`,
35
- `Config: ${report.builderConfigPath ?? "(missing)"}`,
36
- `Binary: ${report.runtime.singBoxBinary ?? "(unresolved)"}${report.runtime.binarySource ? ` [${report.runtime.binarySource}]` : ""}`,
37
- `Mode: ${report.runtime.mode ?? "(unknown)"}`,
38
- `Desktop runtime: ${report.runtime.desktopProfile ?? "none"} label=${report.runtime.runtimeLabel} installed=${String(report.runtime.launchAgentInstalled)}${report.runtime.launchAgentLoaded !== undefined
39
- ? ` loaded=${String(report.runtime.launchAgentLoaded)}`
40
- : ""}${report.runtime.systemProxyActive !== undefined
41
- ? ` system-proxy=${String(report.runtime.systemProxyActive)}`
42
- : ""}${report.runtime.tunInterfacePresent !== undefined
43
- ? ` tun=${String(report.runtime.tunInterfacePresent)}`
44
- : ""}`,
45
- `Process: ${report.runtime.processRunning ? "running" : "stopped"}${report.runtime.processIds.length > 0 ? ` (${report.runtime.processIds.join(", ")})` : ""}`,
46
- `Live config: ${report.config.livePath ?? "(unset)"}${report.config.liveExists ? " [present]" : " [missing]"}`,
47
- `Schedule: ${report.scheduler.label} installed=${String(report.scheduler.installed)}${report.scheduler.loaded !== undefined ? ` loaded=${String(report.scheduler.loaded)}` : ""}`,
48
- "Listeners:",
49
- ...report.runtime.listeners.map((listener) => `- ${listener.tag}: ${listener.listen}:${listener.port} ${listener.active ? "active" : "inactive"}`),
50
- "Transactions:",
51
- report.history.lastTransactionId
52
- ? `- ${report.history.lastTransactionId} ${report.history.lastTransactionStatus ?? "unknown"} ${report.history.lastTransactionAt ?? ""}`.trim()
53
- : "- (none)",
54
- "Diagnostics:",
55
- ...(report.diagnostics.length > 0
56
- ? report.diagnostics.map((diagnostic) => `- [${diagnostic.level}] ${diagnostic.message}`)
57
- : ["- [info] No immediate problems detected."]),
58
- ];
59
- process.stdout.write(`${lines.join("\n")}\n`);
33
+ process.stdout.write(renderStatusOutput(report));
60
34
  });
61
35
  }
62
36
  function resolvePath(filePath) {
63
37
  return filePath.startsWith("/") ? filePath : path.resolve(process.cwd(), filePath);
64
38
  }
39
+ function formatProxyEndpoint(endpoint) {
40
+ return `${endpoint.host}:${endpoint.port}`;
41
+ }
42
+ function formatSystemProxyServices(services) {
43
+ if (services.length === 0) {
44
+ return "unknown";
45
+ }
46
+ const enabledServices = services.filter((service) => service.enabled);
47
+ if (enabledServices.length === 0) {
48
+ return "inactive";
49
+ }
50
+ return enabledServices
51
+ .map((service) => `${service.kind}=${formatSystemProxyService(service)}`)
52
+ .join(", ");
53
+ }
54
+ function formatSystemProxyService(service) {
55
+ if (service.host && typeof service.port === "number") {
56
+ return `${service.host}:${service.port}`;
57
+ }
58
+ return "(incomplete)";
59
+ }
60
+ function renderStatusOutput(report) {
61
+ const lines = [
62
+ "Runtime snapshot: current sing-box, proxy, schedule, and recent publish state.",
63
+ "",
64
+ ...renderSection("Context", [
65
+ `generated: ${report.generatedAt}`,
66
+ `config: ${report.builderConfigPath ?? "(missing)"}`,
67
+ ]),
68
+ "",
69
+ ...renderSection("Summary", buildStatusSummaryLines(report)),
70
+ "",
71
+ ...renderSection("Runtime", buildRuntimeLines(report)),
72
+ "",
73
+ ...renderSection("Config & Schedule", buildConfigAndScheduleLines(report)),
74
+ "",
75
+ ...renderSection("Recent Publish", [formatLatestTransaction(report)]),
76
+ "",
77
+ ...renderSection("Diagnostics", report.diagnostics.length > 0
78
+ ? report.diagnostics.map((diagnostic) => `[${diagnostic.level}] ${diagnostic.message}`)
79
+ : ["[info] No immediate problems detected."]),
80
+ ];
81
+ return `${lines.join("\n")}\n`;
82
+ }
83
+ function buildStatusSummaryLines(report) {
84
+ const lines = [
85
+ `runtime: ${formatProcessSummary(report)}`,
86
+ `desktop-profile: ${report.runtime.desktopProfile ?? "none"}`,
87
+ ];
88
+ if (report.runtime.systemProxy) {
89
+ lines.push(`proxy: state=${report.runtime.systemProxy.state}${report.runtime.systemProxy.drift !== undefined
90
+ ? `, drift=${String(report.runtime.systemProxy.drift)}`
91
+ : ""}`);
92
+ }
93
+ if (report.runtime.watchdog) {
94
+ lines.push(`watchdog: ${formatWatchdogSummary(report)}`);
95
+ }
96
+ lines.push(`latest-transaction: ${formatLatestTransaction(report)}`);
97
+ return lines;
98
+ }
99
+ function buildRuntimeLines(report) {
100
+ const lines = [
101
+ `binary: ${report.runtime.singBoxBinary ?? "(unresolved)"}${report.runtime.binarySource ? ` [${report.runtime.binarySource}]` : ""}`,
102
+ `mode: ${report.runtime.mode ?? "(unknown)"}`,
103
+ `desktop-runtime: ${report.runtime.desktopProfile ?? "none"} label=${report.runtime.runtimeLabel} installed=${String(report.runtime.launchAgentInstalled)}${report.runtime.launchAgentLoaded !== undefined
104
+ ? ` loaded=${String(report.runtime.launchAgentLoaded)}`
105
+ : ""}${report.runtime.systemProxyActive !== undefined
106
+ ? ` system-proxy=${String(report.runtime.systemProxyActive)}`
107
+ : ""}${report.runtime.tunInterfacePresent !== undefined
108
+ ? ` tun=${String(report.runtime.tunInterfacePresent)}`
109
+ : ""}`,
110
+ `process: ${formatProcessSummary(report)}`,
111
+ ...report.runtime.listeners.map((listener) => `listener ${listener.tag}: ${listener.listen}:${listener.port} ${listener.active ? "active" : "inactive"}`),
112
+ ];
113
+ if (report.runtime.systemProxy) {
114
+ lines.push(`system-proxy: state=${report.runtime.systemProxy.state}${report.runtime.systemProxy.drift !== undefined
115
+ ? ` drift=${String(report.runtime.systemProxy.drift)}`
116
+ : ""} expected=${formatProxyEndpoint(report.runtime.systemProxy.expected)} actual=${formatSystemProxyServices(report.runtime.systemProxy.actual)}`);
117
+ if (report.runtime.systemProxy.nextAction) {
118
+ lines.push(`proxy-hint: ${report.runtime.systemProxy.nextAction}`);
119
+ }
120
+ }
121
+ if (report.runtime.watchdog) {
122
+ lines.push(`watchdog: enabled=${String(report.runtime.watchdog.enabled)} label=${report.runtime.watchdog.label} installed=${String(report.runtime.watchdog.launchAgentInstalled)}${report.runtime.watchdog.launchAgentLoaded !== undefined
123
+ ? ` loaded=${String(report.runtime.watchdog.launchAgentLoaded)}`
124
+ : ""} interval=${report.runtime.watchdog.intervalSeconds}s${report.runtime.watchdog.lastResult
125
+ ? ` last-result=${report.runtime.watchdog.lastResult}`
126
+ : ""}${report.runtime.watchdog.lastRecoveryAction
127
+ ? ` last-action=${report.runtime.watchdog.lastRecoveryAction}`
128
+ : ""}${report.runtime.watchdog.lastTrigger
129
+ ? ` last-trigger=${report.runtime.watchdog.lastTrigger}`
130
+ : ""}${report.runtime.watchdog.lastCheckedAt
131
+ ? ` last-recorded=${report.runtime.watchdog.lastCheckedAt}`
132
+ : ""}${report.runtime.watchdog.lastReassertAt
133
+ ? ` last-reassert=${report.runtime.watchdog.lastReassertAt}`
134
+ : ""}${report.runtime.watchdog.lastRestartAt
135
+ ? ` last-restart=${report.runtime.watchdog.lastRestartAt}`
136
+ : ""}`);
137
+ if (report.runtime.watchdog.lastMessage) {
138
+ lines.push(`watchdog-message: ${report.runtime.watchdog.lastMessage}`);
139
+ }
140
+ if (report.runtime.watchdog.lastError) {
141
+ lines.push(`watchdog-error: ${report.runtime.watchdog.lastError}`);
142
+ }
143
+ }
144
+ return lines;
145
+ }
146
+ function buildConfigAndScheduleLines(report) {
147
+ return [
148
+ `live-config: ${report.config.livePath ?? "(unset)"}${report.config.liveExists ? " [present]" : " [missing]"}`,
149
+ `schedule: ${report.scheduler.label} installed=${String(report.scheduler.installed)}${report.scheduler.loaded !== undefined ? ` loaded=${String(report.scheduler.loaded)}` : ""}`,
150
+ ];
151
+ }
152
+ function formatProcessSummary(report) {
153
+ return report.runtime.processRunning
154
+ ? `running${report.runtime.processIds.length > 0 ? ` (${report.runtime.processIds.join(", ")})` : ""}`
155
+ : "stopped";
156
+ }
157
+ function formatWatchdogSummary(report) {
158
+ const watchdog = report.runtime.watchdog;
159
+ if (!watchdog) {
160
+ return "disabled";
161
+ }
162
+ return `${watchdog.enabled ? "enabled" : "disabled"}${watchdog.lastResult ? `, last-result=${watchdog.lastResult}` : ""}${watchdog.lastRecoveryAction ? `, last-action=${watchdog.lastRecoveryAction}` : ""}`;
163
+ }
164
+ function formatLatestTransaction(report) {
165
+ return report.history.lastTransactionId
166
+ ? `${report.history.lastTransactionId} ${report.history.lastTransactionStatus ?? "unknown"} ${report.history.lastTransactionAt ?? ""}`.trim()
167
+ : "(none)";
168
+ }
169
+ function renderSection(title, items) {
170
+ return [`${title}:`, ...items.map((item) => `- ${item}`)];
171
+ }
65
172
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import path from "node:path";
2
2
  import { defaultRuntimeLaunchAgentLabel, removeDesktopRuntimeAgent, } from "../../modules/desktop-runtime/index.js";
3
+ import { defaultRuntimeWatchdogLaunchAgentLabel, removeRuntimeWatchdogAgent, } from "../../modules/runtime-watchdog/index.js";
3
4
  import { resolveBuilderConfig } from "../command-helpers.js";
4
5
  export function registerStopCommand(program) {
5
6
  program
@@ -11,6 +12,8 @@ export function registerStopCommand(program) {
11
12
  .option("--no-unload", "remove the LaunchAgent file without calling launchctl bootout")
12
13
  .action(async (options) => {
13
14
  const builderConfig = await resolveBuilderConfig(options);
15
+ const watchdogLabel = builderConfig?.runtime.desktop.watchdog.launchAgentLabel ??
16
+ defaultRuntimeWatchdogLaunchAgentLabel;
14
17
  const plistPath = await removeDesktopRuntimeAgent({
15
18
  label: options.label ??
16
19
  builderConfig?.runtime.desktop.launchAgentLabel ??
@@ -20,7 +23,22 @@ export function registerStopCommand(program) {
20
23
  : {}),
21
24
  unload: options.unload !== false,
22
25
  });
23
- process.stdout.write(`Stopped desktop runtime LaunchAgent: ${plistPath}\n`);
26
+ const watchdogPlistPath = builderConfig?.runtime.desktop.profile === "system-proxy" &&
27
+ builderConfig.runtime.desktop.watchdog.enabled
28
+ ? await removeRuntimeWatchdogAgent({
29
+ label: watchdogLabel,
30
+ ...(options.launchAgentsDir
31
+ ? { launchAgentsDir: resolvePath(options.launchAgentsDir) }
32
+ : {}),
33
+ unload: options.unload !== false,
34
+ })
35
+ : undefined;
36
+ process.stdout.write(`${[
37
+ `Stopped desktop runtime LaunchAgent: ${plistPath}`,
38
+ ...(watchdogPlistPath
39
+ ? [`Stopped runtime watchdog LaunchAgent: ${watchdogPlistPath}`]
40
+ : []),
41
+ ].join("\n")}\n`);
24
42
  });
25
43
  }
26
44
  function resolvePath(filePath) {
@@ -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,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;SACtD,MAAM,CAAC,4BAA4B,EAAE,iCAAiC,CAAC;SACvE,MAAM,CAAC,aAAa,EAAE,+DAA+D,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;YAChD,KAAK,EACH,OAAO,CAAC,KAAK;gBACb,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB;gBAC/C,8BAA8B;YAChC,GAAG,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAC3D,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;SACjC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,SAAS,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACP,CAAC;AASD,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/cli/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,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,0DAA0D,CAAC;SACvE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;SACtD,MAAM,CAAC,4BAA4B,EAAE,iCAAiC,CAAC;SACvE,MAAM,CAAC,aAAa,EAAE,+DAA+D,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;QAC5C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,aAAa,GACjB,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;YACxD,sCAAsC,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;YAChD,KAAK,EACH,OAAO,CAAC,KAAK;gBACb,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB;gBAC/C,8BAA8B;YAChC,GAAG,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;gBAC3D,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;SACjC,CAAC,CAAC;QACH,MAAM,iBAAiB,GACrB,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,cAAc;YACzD,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO;YAC5C,CAAC,CAAC,MAAM,0BAA0B,CAAC;gBAC/B,KAAK,EAAE,aAAa;gBACpB,GAAG,CAAC,OAAO,CAAC,eAAe;oBACzB,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;oBAC3D,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;aACjC,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEhB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG;YACD,wCAAwC,SAAS,EAAE;YACnD,GAAG,CAAC,iBAAiB;gBACnB,CAAC,CAAC,CAAC,yCAAyC,iBAAiB,EAAE,CAAC;gBAChE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AASD,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrF,CAAC"}
@@ -2,9 +2,10 @@ import { runAuthorFlow } from "./author.js";
2
2
  export function registerUseCommand(program) {
3
3
  const command = program
4
4
  .command("use")
5
- .description("Change routing policy with one sentence and apply it.")
5
+ .description("Patch routing policy with one sentence and apply it.")
6
6
  .argument("<prompt>", "one-sentence routing intent")
7
7
  .option("-c, --config <path>", "path to builder config YAML")
8
+ .option("--replace", "replace the authored policy set instead of patching it")
8
9
  .option("--preview", "print diffs without writing any files")
9
10
  .option("--diff", "print Intent IR and config diffs without writing any files")
10
11
  .option("--emit-intent-ir", "print the generated Intent IR and exit without writing files")
@@ -22,6 +23,7 @@ export function registerUseCommand(program) {
22
23
  execArg: [],
23
24
  label: "org.singbox-iac.update",
24
25
  ...(options.config ? { config: options.config } : {}),
26
+ authoringMode: options.replace ? "replace" : "patch",
25
27
  ...(options.preview ? { preview: true } : {}),
26
28
  ...(options.diff ? { diff: true } : {}),
27
29
  ...(options.emitIntentIr ? { emitIntentIr: true } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/cli/commands/use.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/cli/commands/use.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -6,16 +6,18 @@ import { registerApplyCommand } from "./commands/apply.js";
6
6
  import { registerAuthorCommand } from "./commands/author.js";
7
7
  import { registerBuildCommand } from "./commands/build.js";
8
8
  import { registerCheckCommand } from "./commands/check.js";
9
+ import { registerDiagnoseCommand } from "./commands/diagnose.js";
9
10
  import { registerDoctorCommand } from "./commands/doctor.js";
10
11
  import { registerGoCommand } from "./commands/go.js";
11
12
  import { registerHistoryCommand } from "./commands/history.js";
12
13
  import { registerInitCommand } from "./commands/init.js";
13
14
  import { registerProxifierCommand } from "./commands/proxifier.js";
14
- import { registerQuickstartCommand } from "./commands/quickstart.js";
15
15
  import { registerReloadCommand } from "./commands/reload.js";
16
16
  import { registerRestartCommand } from "./commands/restart.js";
17
17
  import { registerRollbackCommand } from "./commands/rollback.js";
18
+ import { registerRuleSetsCommand } from "./commands/rulesets.js";
18
19
  import { registerRunCommand } from "./commands/run.js";
20
+ import { registerRuntimeWatchdogCommand } from "./commands/runtime-watchdog.js";
19
21
  import { registerScheduleCommand } from "./commands/schedule.js";
20
22
  import { registerSetupCommand } from "./commands/setup.js";
21
23
  import { registerStartCommand } from "./commands/start.js";
@@ -39,10 +41,12 @@ export function createProgram() {
39
41
  " singbox-iac update",
40
42
  "",
41
43
  "Health/debug:",
44
+ " singbox-iac doctor",
45
+ " singbox-iac diagnose",
42
46
  " singbox-iac status",
43
47
  " singbox-iac start | stop | restart",
44
48
  "",
45
- "Advanced commands: quickstart, setup, author, build, verify, proxifier, schedule",
49
+ "Power-user commands remain available via `singbox-iac help <command>` and the docs.",
46
50
  ].join("\n"));
47
51
  registerGoCommand(program);
48
52
  registerUseCommand(program);
@@ -53,15 +57,17 @@ export function createProgram() {
53
57
  registerStartCommand(program);
54
58
  registerStopCommand(program);
55
59
  registerRestartCommand(program);
56
- registerQuickstartCommand(program);
57
60
  registerAuthorCommand(program);
58
61
  registerBuildCommand(program);
59
62
  registerCheckCommand(program);
60
63
  registerApplyCommand(program);
61
64
  registerHistoryCommand(program);
62
65
  registerRunCommand(program);
66
+ registerRuleSetsCommand(program);
67
+ registerRuntimeWatchdogCommand(program);
63
68
  registerRollbackCommand(program);
64
69
  registerVerifyCommand(program);
70
+ registerDiagnoseCommand(program);
65
71
  registerDoctorCommand(program);
66
72
  registerProxifierCommand(program);
67
73
  registerReloadCommand(program);
@@ -88,15 +94,17 @@ function hideAdvancedCommands(program) {
88
94
  "start",
89
95
  "stop",
90
96
  "restart",
91
- "quickstart",
92
97
  "author",
93
98
  "build",
94
99
  "check",
95
100
  "apply",
96
101
  "history",
97
102
  "run",
103
+ "runtime-watchdog",
104
+ "rulesets",
98
105
  "rollback",
99
106
  "verify",
107
+ "diagnose",
100
108
  "doctor",
101
109
  "proxifier",
102
110
  "reload",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,19 @@ export declare const builderConfigSchema: z.ZodObject<{
83
83
  interfaceName?: string | undefined;
84
84
  addresses?: string[] | undefined;
85
85
  }>>;
86
+ watchdog: z.ZodDefault<z.ZodObject<{
87
+ enabled: z.ZodDefault<z.ZodBoolean>;
88
+ intervalSeconds: z.ZodDefault<z.ZodNumber>;
89
+ launchAgentLabel: z.ZodDefault<z.ZodString>;
90
+ }, "strip", z.ZodTypeAny, {
91
+ enabled: boolean;
92
+ intervalSeconds: number;
93
+ launchAgentLabel: string;
94
+ }, {
95
+ enabled?: boolean | undefined;
96
+ intervalSeconds?: number | undefined;
97
+ launchAgentLabel?: string | undefined;
98
+ }>>;
86
99
  }, "strip", z.ZodTypeAny, {
87
100
  tun: {
88
101
  autoRoute: boolean;
@@ -90,8 +103,13 @@ export declare const builderConfigSchema: z.ZodObject<{
90
103
  addresses: string[];
91
104
  interfaceName?: string | undefined;
92
105
  };
93
- profile: "none" | "system-proxy" | "tun";
94
106
  launchAgentLabel: string;
107
+ profile: "none" | "system-proxy" | "tun";
108
+ watchdog: {
109
+ enabled: boolean;
110
+ intervalSeconds: number;
111
+ launchAgentLabel: string;
112
+ };
95
113
  }, {
96
114
  tun?: {
97
115
  autoRoute?: boolean | undefined;
@@ -99,8 +117,13 @@ export declare const builderConfigSchema: z.ZodObject<{
99
117
  interfaceName?: string | undefined;
100
118
  addresses?: string[] | undefined;
101
119
  } | undefined;
102
- profile?: "none" | "system-proxy" | "tun" | undefined;
103
120
  launchAgentLabel?: string | undefined;
121
+ profile?: "none" | "system-proxy" | "tun" | undefined;
122
+ watchdog?: {
123
+ enabled?: boolean | undefined;
124
+ intervalSeconds?: number | undefined;
125
+ launchAgentLabel?: string | undefined;
126
+ } | undefined;
104
127
  }>>;
105
128
  }, "strip", z.ZodTypeAny, {
106
129
  checkCommand: string;
@@ -124,8 +147,13 @@ export declare const builderConfigSchema: z.ZodObject<{
124
147
  addresses: string[];
125
148
  interfaceName?: string | undefined;
126
149
  };
127
- profile: "none" | "system-proxy" | "tun";
128
150
  launchAgentLabel: string;
151
+ profile: "none" | "system-proxy" | "tun";
152
+ watchdog: {
153
+ enabled: boolean;
154
+ intervalSeconds: number;
155
+ launchAgentLabel: string;
156
+ };
129
157
  };
130
158
  }, {
131
159
  checkCommand: string;
@@ -149,8 +177,13 @@ export declare const builderConfigSchema: z.ZodObject<{
149
177
  interfaceName?: string | undefined;
150
178
  addresses?: string[] | undefined;
151
179
  } | undefined;
152
- profile?: "none" | "system-proxy" | "tun" | undefined;
153
180
  launchAgentLabel?: string | undefined;
181
+ profile?: "none" | "system-proxy" | "tun" | undefined;
182
+ watchdog?: {
183
+ enabled?: boolean | undefined;
184
+ intervalSeconds?: number | undefined;
185
+ launchAgentLabel?: string | undefined;
186
+ } | undefined;
154
187
  } | undefined;
155
188
  }>;
156
189
  listeners: z.ZodObject<{
@@ -479,8 +512,13 @@ export declare const builderConfigSchema: z.ZodObject<{
479
512
  addresses: string[];
480
513
  interfaceName?: string | undefined;
481
514
  };
482
- profile: "none" | "system-proxy" | "tun";
483
515
  launchAgentLabel: string;
516
+ profile: "none" | "system-proxy" | "tun";
517
+ watchdog: {
518
+ enabled: boolean;
519
+ intervalSeconds: number;
520
+ launchAgentLabel: string;
521
+ };
484
522
  };
485
523
  };
486
524
  listeners: {
@@ -591,8 +629,13 @@ export declare const builderConfigSchema: z.ZodObject<{
591
629
  interfaceName?: string | undefined;
592
630
  addresses?: string[] | undefined;
593
631
  } | undefined;
594
- profile?: "none" | "system-proxy" | "tun" | undefined;
595
632
  launchAgentLabel?: string | undefined;
633
+ profile?: "none" | "system-proxy" | "tun" | undefined;
634
+ watchdog?: {
635
+ enabled?: boolean | undefined;
636
+ intervalSeconds?: number | undefined;
637
+ launchAgentLabel?: string | undefined;
638
+ } | undefined;
596
639
  } | undefined;
597
640
  };
598
641
  listeners: {
@@ -71,11 +71,23 @@ const desktopTunRuntimeSchema = z
71
71
  strictRoute: false,
72
72
  addresses: ["172.19.0.1/30", "fdfe:dcba:9876::1/126"],
73
73
  });
74
+ const desktopRuntimeWatchdogSchema = z
75
+ .object({
76
+ enabled: z.boolean().default(true),
77
+ intervalSeconds: z.number().int().positive().default(60),
78
+ launchAgentLabel: z.string().min(1).default("org.singbox-iac.runtime.watchdog"),
79
+ })
80
+ .default({
81
+ enabled: true,
82
+ intervalSeconds: 60,
83
+ launchAgentLabel: "org.singbox-iac.runtime.watchdog",
84
+ });
74
85
  const desktopRuntimeSchema = z
75
86
  .object({
76
87
  profile: desktopRuntimeProfileSchema.default("system-proxy"),
77
88
  launchAgentLabel: z.string().min(1).default("org.singbox-iac.runtime"),
78
89
  tun: desktopTunRuntimeSchema,
90
+ watchdog: desktopRuntimeWatchdogSchema,
79
91
  })
80
92
  .default({
81
93
  profile: "system-proxy",
@@ -85,6 +97,11 @@ const desktopRuntimeSchema = z
85
97
  strictRoute: false,
86
98
  addresses: ["172.19.0.1/30", "fdfe:dcba:9876::1/126"],
87
99
  },
100
+ watchdog: {
101
+ enabled: true,
102
+ intervalSeconds: 60,
103
+ launchAgentLabel: "org.singbox-iac.runtime.watchdog",
104
+ },
88
105
  });
89
106
  export const builderConfigSchema = z.object({
90
107
  version: z.literal(1),