@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
package/README.md CHANGED
@@ -62,7 +62,7 @@ flowchart LR
62
62
 
63
63
  ```mermaid
64
64
  flowchart TD
65
- A["用户提供订阅地址 + 一句话需求"] --> B["quickstart / setup --ready"]
65
+ A["用户提供订阅地址 + 一句话需求"] --> B["go"]
66
66
  B --> C["检测本地环境<br/>macOS / sing-box / Chrome / AI CLI"]
67
67
  C --> D["根据意图生成规则"]
68
68
  D --> E["同步本地 rule set"]
@@ -94,6 +94,22 @@ flowchart TD
94
94
 
95
95
  系统会把这些意图编译成内部规则,再进一步生成 `sing-box` 配置。
96
96
 
97
+ 现在内置了一个可维护的 bundle discovery 层:
98
+
99
+ - 站点 bundle
100
+ - 例如 `NotebookLM`、`Gemini`、`OpenRouter`、`Google Stitch`
101
+ - 进程 bundle
102
+ - 例如 `Antigravity`、`Cursor`、`VS Code`、`Codex`
103
+
104
+ 站点 bundle 现在走双轨:
105
+
106
+ - 优先使用当前 config 已启用的官方 `sing-geosite` rule-set tags
107
+ - 如果 upstream 没有对应 tag,或者当前 config 还没启用该 tag,就回退到内置维护的 fallback domains
108
+
109
+ 进程 bundle 则继续提供稳定的 `Proxifier` / `in-proxifier` 进程匹配元数据。
110
+
111
+ 这意味着多数情况下你不需要自己记住相关域名、官方 geosite tag,或辅助进程名。
112
+
97
113
  ### 2. 极简 DSL
98
114
 
99
115
  对于高级用户,仍然保留了一个极简 YAML DSL,用于补充少量例外规则,而不是逼用户手写整份 `sing-box` JSON。
@@ -170,9 +186,11 @@ singbox-iac update
170
186
  ```
171
187
 
172
188
  - `go`:第一次安装时使用,一条命令完成初始化、验证、发布和定时任务准备
173
- - `use`:以后需求变化时使用,一句话改策略并重新应用
189
+ - `use`:以后需求变化时使用,一句话 patch 现有策略并重新应用
174
190
  - `update`:日常更新订阅并自动在运行中的 `sing-box` 上生效
175
191
 
192
+ `use` 默认不会清空你之前的自然语言策略。它会在现有 authored intent 之上做 patch;只有显式传 `--replace` 时,才会把 authored policy set 整体替换掉。
193
+
176
194
  桌面运行和排障最常用的是:
177
195
 
178
196
  ```bash
@@ -180,34 +198,49 @@ singbox-iac start
180
198
  singbox-iac stop
181
199
  singbox-iac restart
182
200
  singbox-iac status
201
+ singbox-iac diagnose
183
202
  ```
184
203
 
185
204
  - `start`:以 macOS 专用 LaunchAgent 启动桌面运行时
186
205
  - `stop`:停止桌面运行时,并让 `sing-box` 释放系统代理或 TUN 资源
187
206
  - `restart`:重新拉起桌面运行时
188
207
  - `status`:汇总 live config、桌面运行时、系统代理 / TUN 状态、schedule 和最近一次事务
208
+ - `diagnose`:在 `status` 之上追加默认路由、系统 DNS 和代表性域名解析证据,适合排查“为什么现在网络还是不对”
189
209
 
190
210
  排障时优先用:
191
211
 
192
212
  ```bash
193
213
  singbox-iac status
214
+ singbox-iac diagnose
194
215
  ```
195
216
 
196
- 它会汇总当前 `sing-box` binary、live config、进程状态、监听端口、schedule 状态和最近一次发布事务。
217
+ `status` 适合看当前运行快照;`diagnose` 适合继续判断问题更像是运行时漂移、系统 DNS/默认路由异常,还是最近一次发布没有生效。
197
218
 
198
- 其余命令都可以理解为高级命令,主要用于调试、排障或更细粒度控制。
219
+ 其余命令都属于 power-user / 工程命令,主要用于拆流程、排障或更细粒度控制。
220
+
221
+ 例如:
222
+
223
+ ```bash
224
+ singbox-iac rulesets list --filter openai
225
+ ```
226
+
227
+ 这个隐藏命令可以查看:
228
+
229
+ - 当前 builder config 已启用哪些 `ruleSet` tags
230
+ - upstream 官方 `sing-geosite` / `sing-geoip` 当前有哪些 tags
231
+ - 内置 site bundle 会优先命中哪些官方 tags,哪些还会走 fallback
199
232
 
200
233
  `RuntimeMode` 是内部概念,不要求用户手动选择。当前 onboarding 和 `update` 会自动推断 `browser-proxy`、`process-proxy` 或 `headless-daemon`,并据此调整可见验证和运行时默认行为。详见 [docs/runtime-modes.md](./docs/runtime-modes.md)。
201
234
 
202
- ### 一步完成初始化
235
+ ### 首次初始化的默认路径
203
236
 
204
237
  ```bash
205
- singbox-iac quickstart \
206
- --subscription-url '你的机场订阅地址' \
207
- --prompt 'GitHub 这类开发类走香港,Antigravity 进程级走美国,Gemini 走新加坡,每30分钟自动更新'
238
+ singbox-iac go \
239
+ '你的机场订阅地址' \
240
+ 'GitHub 这类开发类走香港,Antigravity 进程级走美国,Gemini 走新加坡,每30分钟自动更新'
208
241
  ```
209
242
 
210
- `quickstart` 会自动:
243
+ `go` 会自动:
211
244
 
212
245
  - 生成 `~/.config/singbox-iac/builder.config.yaml`
213
246
  - 生成 `~/.config/singbox-iac/rules/custom.rules.yaml`
@@ -220,7 +253,7 @@ singbox-iac quickstart \
220
253
  - 发布 live config
221
254
  - 安装定时更新
222
255
 
223
- 如果你希望保留更细的步骤控制,也可以继续用:
256
+ 如果你希望保留更细的首启控制,再使用 power-user 的 `setup --ready`:
224
257
 
225
258
  ```bash
226
259
  singbox-iac setup \
@@ -229,11 +262,6 @@ singbox-iac setup \
229
262
  --ready
230
263
  ```
231
264
 
232
- `setup --ready` 和 `quickstart` 的主要区别是:
233
-
234
- - `quickstart` 更偏默认的一键上手
235
- - `setup --ready` 更适合你还想自己决定是否运行、是否开浏览器、是否写 Proxifier 辅助目录
236
-
237
265
  ### 前台运行测试
238
266
 
239
267
  ```bash
@@ -293,17 +321,28 @@ singbox-iac use 'GitHub 这类开发类都走香港,Gemini 走新加坡'
293
321
 
294
322
  对于大多数场景,不需要手写 `sing-box` JSON,也不需要理解 DSL。
295
323
 
324
+ `use` 的默认语义是 patch,而不是 replace:
325
+
326
+ - `singbox-iac use 'NotebookLM 走美国'`
327
+ - 在现有 authored intent 上追加或覆盖相关策略
328
+ - `singbox-iac use '所有开发类都走新加坡' --replace`
329
+ - 显式重建 authored policy set
330
+
331
+ 内部会同时维护两类文件:
332
+
333
+ - `rules.userRulesFile`
334
+ - 当前 compiler 真正消费的 merged YAML DSL
335
+ - 同目录下的 `*.authoring.yaml`
336
+ - layered authored state,用来保留 base intent 和后续 patch
337
+
296
338
  示例:
297
339
 
298
340
  ```bash
299
- singbox-iac author \
300
- --prompt 'GitHub 这类开发类都走香港出口,Antigravity 进程级都走独立入口并路由到美国节点,Gemini 都出口到新加坡'
341
+ singbox-iac use 'Google 服务和 GitHub 走香港,Amazon Prime 和 Apple TV 走新加坡,国内直连,每45分钟自动更新'
301
342
  ```
302
343
 
303
344
  ```bash
304
- singbox-iac author \
305
- --prompt 'Google 服务和 GitHub 走香港,Amazon Prime 和 Apple TV 走新加坡,国内直连,每45分钟自动更新' \
306
- --update
345
+ singbox-iac use 'NotebookLM 走美国,Cursor 走独立入口并出口到美国'
307
346
  ```
308
347
 
309
348
  作者层支持:
@@ -321,6 +360,14 @@ singbox-iac author \
321
360
  singbox-iac use 'GitHub 这类开发类都走香港,Gemini 走新加坡' --strict --diff
322
361
  ```
323
362
 
363
+ 如果你明确要放弃之前的一整套自然语言策略,再使用:
364
+
365
+ ```bash
366
+ singbox-iac use 'Google 服务和 GitHub 都走新加坡' --replace
367
+ ```
368
+
369
+ 如果你需要 preview、Intent IR、或分阶段 author/build/update 控制,再使用 power-user 的 `author`。详见 [docs/natural-language-authoring.md](./docs/natural-language-authoring.md)。
370
+
324
371
  ## Proxifier 上手
325
372
 
326
373
  如果你的 AI IDE、language server 或桌面应用不走系统代理,可以直接使用自动生成的 Proxifier 辅助目录:
@@ -387,20 +434,19 @@ singbox-iac proxifier bundles render antigravity
387
434
 
388
435
  当前项目不会把订阅地址自动上传到任何远端服务。除非你主动配置外部 AI CLI 或外部命令,否则默认作者层不依赖外部 API。
389
436
 
390
- ## 常用命令
437
+ ## Power-user / 工程命令
438
+
439
+ 除非你要拆开流水线、做深度排障或处理特殊集成,一般不需要直接用这些:
391
440
 
392
441
  ```bash
393
442
  singbox-iac init
394
443
  singbox-iac setup
395
- singbox-iac quickstart
396
444
  singbox-iac author
397
445
  singbox-iac build
398
446
  singbox-iac check
399
447
  singbox-iac apply
400
448
  singbox-iac run
401
449
  singbox-iac verify
402
- singbox-iac update
403
- singbox-iac doctor
404
450
  singbox-iac proxifier bundles
405
451
  singbox-iac proxifier bundles show antigravity
406
452
  singbox-iac proxifier bundles render antigravity
@@ -1,4 +1,5 @@
1
1
  import type { Command } from "commander";
2
+ import { type AuthoringWriteMode } from "../../modules/layered-authoring/index.js";
2
3
  export declare function registerAuthorCommand(program: Command): void;
3
4
  export declare function runAuthorFlow(options: AuthorCommandOptions): Promise<void>;
4
5
  interface AuthorCommandOptions {
@@ -29,5 +30,6 @@ interface AuthorCommandOptions {
29
30
  readonly logsDir?: string;
30
31
  readonly forceSchedule?: boolean;
31
32
  readonly load?: boolean;
33
+ readonly authoringMode?: AuthoringWriteMode;
32
34
  }
33
35
  export {};
@@ -1,6 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { generateAuthoringPlan } from "../../modules/authoring/index.js";
3
3
  import { buildConfigArtifact, resolveEffectiveIntent } from "../../modules/build/index.js";
4
+ import { applyLayeredAuthoringUpdate, materializeLayeredAuthoringState, resolveLayeredAuthoringPath, resolveLayeredAuthoringState, writeLayeredAuthoringState, } from "../../modules/layered-authoring/index.js";
4
5
  import { applyPlanToBuilderConfig, updateBuilderAuthoring, writeGeneratedRules, } from "../../modules/natural-language/index.js";
5
6
  import { generateAuthoringPreview } from "../../modules/preview/index.js";
6
7
  import { installLaunchdSchedule } from "../../modules/schedule/index.js";
@@ -62,15 +63,32 @@ export async function runAuthorFlow(options) {
62
63
  ...(options.strict ? { strict: true } : {}),
63
64
  });
64
65
  const plan = planResult.plan;
66
+ const authoringMode = options.authoringMode ?? "replace";
65
67
  const rulesPath = options.rulesOut
66
68
  ? resolvePath(options.rulesOut)
67
69
  : builderConfig.rules.userRulesFile;
70
+ const currentLayeredState = await resolveLayeredAuthoringState({
71
+ config: builderConfig,
72
+ });
73
+ const nextLayeredState = applyLayeredAuthoringUpdate({
74
+ current: currentLayeredState.state,
75
+ prompt: options.prompt,
76
+ plan,
77
+ mode: authoringMode,
78
+ appliedAt: new Date().toISOString(),
79
+ });
80
+ const nextResolvedLayeredState = materializeLayeredAuthoringState({
81
+ filePath: resolveLayeredAuthoringPath(rulesPath),
82
+ exists: true,
83
+ state: nextLayeredState,
84
+ });
85
+ const mergedPlan = nextResolvedLayeredState.mergedPlan;
68
86
  const effectiveConfig = applyPlanToBuilderConfig(builderConfig, {
69
87
  rulesPath,
70
- plan,
88
+ plan: mergedPlan,
71
89
  });
72
90
  if (options.emitIntentIr) {
73
- process.stdout.write(`${JSON.stringify(planResult.intent, null, 2)}\n`);
91
+ process.stdout.write(`${JSON.stringify(nextResolvedLayeredState.mergedIntent, null, 2)}\n`);
74
92
  return;
75
93
  }
76
94
  if (options.preview || options.diff) {
@@ -78,10 +96,10 @@ export async function runAuthorFlow(options) {
78
96
  const preview = await generateAuthoringPreview({
79
97
  configPath,
80
98
  config: builderConfig,
81
- plan,
99
+ plan: mergedPlan,
82
100
  rulesPath,
83
101
  currentIntent,
84
- proposedIntent: planResult.intent,
102
+ proposedIntent: nextResolvedLayeredState.mergedIntent,
85
103
  ...(options.subscriptionFile ? { subscriptionFile: options.subscriptionFile } : {}),
86
104
  ...(options.subscriptionUrl ? { subscriptionUrl: options.subscriptionUrl } : {}),
87
105
  buildStaging: !options.skipBuild,
@@ -89,19 +107,21 @@ export async function runAuthorFlow(options) {
89
107
  const lines = [
90
108
  `Config: ${configPath}`,
91
109
  `Rules: ${rulesPath}`,
110
+ `Authoring mode: ${authoringMode}`,
111
+ `Layered authoring: ${nextResolvedLayeredState.filePath}`,
92
112
  `Provider requested: ${planResult.providerRequested}`,
93
113
  `Provider used: ${planResult.providerUsed}`,
94
- `Templates: ${plan.templateIds.length > 0 ? plan.templateIds.join(", ") : "(none)"}`,
95
- `Generated rules: ${plan.beforeBuiltins.length + plan.afterBuiltins.length}`,
114
+ `Templates: ${mergedPlan.templateIds.length > 0 ? mergedPlan.templateIds.join(", ") : "(none)"}`,
115
+ `Generated rules: ${mergedPlan.beforeBuiltins.length + mergedPlan.afterBuiltins.length}`,
96
116
  `${options.diff ? "Diff" : "Preview"} mode: no files were written.`,
97
117
  ];
98
118
  if (planResult.ambiguities.length > 0) {
99
119
  lines.push(`Ambiguities detected: ${planResult.ambiguities.length}`);
100
120
  lines.push(...planResult.ambiguities.map((ambiguity) => `- ${ambiguity}`));
101
121
  }
102
- if (plan.notes.length > 0) {
103
- lines.push(`Notes: ${plan.notes.length}`);
104
- lines.push(...plan.notes.map((note) => `- ${note}`));
122
+ if (mergedPlan.notes.length > 0) {
123
+ lines.push(`Notes: ${mergedPlan.notes.length}`);
124
+ lines.push(...mergedPlan.notes.map((note) => `- ${note}`));
105
125
  }
106
126
  if (options.installSchedule) {
107
127
  lines.push("Schedule install: requested, but skipped in preview mode.");
@@ -128,33 +148,43 @@ export async function runAuthorFlow(options) {
128
148
  }
129
149
  await writeGeneratedRules({
130
150
  filePath: rulesPath,
131
- plan,
151
+ plan: mergedPlan,
152
+ });
153
+ await writeLayeredAuthoringState({
154
+ rulesPath,
155
+ state: nextLayeredState,
132
156
  });
133
157
  await updateBuilderAuthoring({
134
158
  configPath,
135
159
  rulesPath,
136
- ...(plan.scheduleIntervalMinutes ? { intervalMinutes: plan.scheduleIntervalMinutes } : {}),
137
- ...(plan.groupDefaults ? { groupDefaults: plan.groupDefaults } : {}),
138
- ...(plan.verificationOverrides ? { verificationOverrides: plan.verificationOverrides } : {}),
160
+ ...(mergedPlan.scheduleIntervalMinutes
161
+ ? { intervalMinutes: mergedPlan.scheduleIntervalMinutes }
162
+ : {}),
163
+ ...(mergedPlan.groupDefaults ? { groupDefaults: mergedPlan.groupDefaults } : {}),
164
+ ...(mergedPlan.verificationOverrides
165
+ ? { verificationOverrides: mergedPlan.verificationOverrides }
166
+ : {}),
139
167
  });
140
168
  const lines = [
141
169
  `Config: ${configPath}`,
142
170
  `Rules: ${rulesPath}`,
171
+ `Authoring mode: ${authoringMode}`,
172
+ `Layered authoring: ${nextResolvedLayeredState.filePath}`,
143
173
  `Provider requested: ${planResult.providerRequested}`,
144
174
  `Provider used: ${planResult.providerUsed}`,
145
- `Templates: ${plan.templateIds.length > 0 ? plan.templateIds.join(", ") : "(none)"}`,
146
- `Generated rules: ${plan.beforeBuiltins.length + plan.afterBuiltins.length}`,
175
+ `Templates: ${mergedPlan.templateIds.length > 0 ? mergedPlan.templateIds.join(", ") : "(none)"}`,
176
+ `Generated rules: ${mergedPlan.beforeBuiltins.length + mergedPlan.afterBuiltins.length}`,
147
177
  ];
148
178
  if (planResult.ambiguities.length > 0) {
149
179
  lines.push(`Ambiguities detected: ${planResult.ambiguities.length}`);
150
180
  lines.push(...planResult.ambiguities.map((ambiguity) => `- ${ambiguity}`));
151
181
  }
152
- if (plan.notes.length > 0) {
153
- lines.push(`Notes: ${plan.notes.length}`);
154
- lines.push(...plan.notes.map((note) => `- ${note}`));
182
+ if (mergedPlan.notes.length > 0) {
183
+ lines.push(`Notes: ${mergedPlan.notes.length}`);
184
+ lines.push(...mergedPlan.notes.map((note) => `- ${note}`));
155
185
  }
156
186
  if (options.installSchedule) {
157
- const intervalMinutes = plan.scheduleIntervalMinutes ?? effectiveConfig.schedule.intervalMinutes;
187
+ const intervalMinutes = mergedPlan.scheduleIntervalMinutes ?? effectiveConfig.schedule.intervalMinutes;
158
188
  const schedule = await installLaunchdSchedule({
159
189
  configPath,
160
190
  intervalMinutes,
@@ -1 +1 @@
1
- {"version":3,"file":"author.js","sourceRoot":"","sources":["../../../src/cli/commands/author.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"author.js","sourceRoot":"","sources":["../../../src/cli/commands/author.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAEL,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yDAAyD,CAAC;SACtE,cAAc,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;SACxE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,uBAAuB,EAAE,uDAAuD,CAAC;SACxF,MAAM,CAAC,0BAA0B,EAAE,oCAAoC,CAAC;SACxE,MAAM,CAAC,0BAA0B,EAAE,yCAAyC,CAAC;SAC7E,MAAM,CACL,kBAAkB,EAClB,qDAAqD,EACrD,aAAa,EACb,EAAE,CACH;SACA,MAAM,CAAC,oBAAoB,EAAE,uCAAuC,CAAC;SACrE,MAAM,CAAC,0BAA0B,EAAE,yCAAyC,CAAC;SAC7E,MAAM,CAAC,4BAA4B,EAAE,mDAAmD,CAAC;SACzF,MAAM,CAAC,WAAW,EAAE,4DAA4D,CAAC;SACjF,MAAM,CAAC,QAAQ,EAAE,2DAA2D,CAAC;SAC7E,MAAM,CAAC,kBAAkB,EAAE,8DAA8D,CAAC;SAC1F,MAAM,CAAC,UAAU,EAAE,gEAAgE,CAAC;SACpF,MAAM,CAAC,cAAc,EAAE,6CAA6C,CAAC;SACrE,MAAM,CAAC,UAAU,EAAE,mDAAmD,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,mEAAmE,CAAC;SAC5F,MAAM,CAAC,UAAU,EAAE,wDAAwD,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;SAC7E,MAAM,CAAC,sBAAsB,EAAE,iDAAiD,CAAC;SACjF,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC;SAC1D,MAAM,CAAC,qBAAqB,EAAE,gDAAgD,CAAC;SAC/E,MAAM,CAAC,oBAAoB,EAAE,wDAAwD,CAAC;SACtF,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;SACxE,MAAM,CAAC,4BAA4B,EAAE,iCAAiC,CAAC;SACvE,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;SAC7D,MAAM,CAAC,sBAAsB,EAAE,sDAAsD,CAAC;SACtF,MAAM,CAAC,WAAW,EAAE,2DAA2D,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,OAA6B,EAAE,EAAE;QAC9C,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpD,oBAAoB,CAAC,OAAO,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE;KACxF,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC;QAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,aAAa;QACrB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,SAAS,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ;QAChC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;IACtC,MAAM,mBAAmB,GAAG,MAAM,4BAA4B,CAAC;QAC7D,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;QACnD,OAAO,EAAE,mBAAmB,CAAC,KAAK;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI;QACJ,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IACH,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;QAChE,QAAQ,EAAE,2BAA2B,CAAC,SAAS,CAAC;QAChD,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,wBAAwB,CAAC,UAAU,CAAC;IACvD,MAAM,eAAe,GAAG,wBAAwB,CAAC,aAAa,EAAE;QAC9D,SAAS;QACT,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5F,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;YAC7C,UAAU;YACV,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,UAAU;YAChB,SAAS;YACT,aAAa;YACb,cAAc,EAAE,wBAAwB,CAAC,YAAY;YACrD,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,YAAY,EAAE,CAAC,OAAO,CAAC,SAAS;SACjC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG;YACZ,WAAW,UAAU,EAAE;YACvB,UAAU,SAAS,EAAE;YACrB,mBAAmB,aAAa,EAAE;YAClC,sBAAsB,wBAAwB,CAAC,QAAQ,EAAE;YACzD,uBAAuB,UAAU,CAAC,iBAAiB,EAAE;YACrD,kBAAkB,UAAU,CAAC,YAAY,EAAE;YAC3C,cAAc,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;YAChG,oBAAoB,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;YACxF,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,+BAA+B;SACpE,CAAC;QACF,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,yBAAyB,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,MAAM,mBAAmB,CAAC;QACxB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IACH,MAAM,0BAA0B,CAAC;QAC/B,SAAS;QACT,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC;IACH,MAAM,sBAAsB,CAAC;QAC3B,UAAU;QACV,SAAS;QACT,GAAG,CAAC,UAAU,CAAC,uBAAuB;YACpC,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,uBAAuB,EAAE;YACzD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,UAAU,CAAC,qBAAqB;YAClC,CAAC,CAAC,EAAE,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,EAAE;YAC7D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,WAAW,UAAU,EAAE;QACvB,UAAU,SAAS,EAAE;QACrB,mBAAmB,aAAa,EAAE;QAClC,sBAAsB,wBAAwB,CAAC,QAAQ,EAAE;QACzD,uBAAuB,UAAU,CAAC,iBAAiB,EAAE;QACrD,kBAAkB,UAAU,CAAC,YAAY,EAAE;QAC3C,cAAc,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAChG,oBAAoB,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE;KACzF,CAAC;IACF,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,yBAAyB,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,eAAe,GACnB,UAAU,CAAC,uBAAuB,IAAI,eAAe,CAAC,QAAQ,CAAC,eAAe,CAAC;QAEjF,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC;YAC5C,UAAU;YACV,eAAe;YACf,aAAa,EAAE,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACpD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,UAAU;gBACpB,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBACpD,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa;oBAClD,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE;oBACvE,CAAC,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,OAAO,CAAC,SAAS;gBACnB,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAClD,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY;oBACjD,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE;oBACrE,CAAC,CAAC,EAAE,CAAC;YACT,KAAK,EAAE,OAAO,CAAC,aAAa,KAAK,IAAI;YACrC,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,KAAK;SAC7B,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC;YACnC,MAAM,EAAE,eAAe;YACvB,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU;YAC3B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CACR,YAAY,CAAC,YAAY;YACvB,CAAC,CAAC,uBACE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAC5E,IAAI,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE;YAClD,CAAC,CAAC,6BAA6B,CAClC,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,SAAS,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,WAAW,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC;YACtC,MAAM,EAAE,eAAe;YACvB,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAiCD,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;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,QAA2B;IAC/D,OAAO,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { homedir } from "node:os";
2
2
  import path from "node:path";
3
3
  import { buildConfigArtifact } from "../../modules/build/index.js";
4
- import { defaultRuntimeLaunchAgentLabel } from "../../modules/desktop-runtime/index.js";
4
+ import { listBuiltInPreferredSiteRuleSetTags } from "../../modules/bundle-registry/index.js";
5
+ import { defaultRuntimeLaunchAgentLabel, defaultRuntimeWatchdogLaunchAgentLabel, } from "../../modules/desktop-runtime/index.js";
5
6
  import { resolveBuilderConfig } from "../command-helpers.js";
6
7
  export function registerBuildCommand(program) {
7
8
  program
@@ -63,6 +64,11 @@ async function resolveBuildConfig(options) {
63
64
  strictRoute: false,
64
65
  addresses: ["172.19.0.1/30", "fdfe:dcba:9876::1/126"],
65
66
  },
67
+ watchdog: {
68
+ enabled: true,
69
+ intervalSeconds: 60,
70
+ launchAgentLabel: defaultRuntimeWatchdogLaunchAgentLabel,
71
+ },
66
72
  },
67
73
  },
68
74
  listeners: {
@@ -77,18 +83,7 @@ async function resolveBuildConfig(options) {
77
83
  port: 39091,
78
84
  },
79
85
  },
80
- ruleSets: [
81
- localRuleSet("geosite-cn"),
82
- localRuleSet("geoip-cn"),
83
- localRuleSet("geosite-google"),
84
- localRuleSet("geosite-google-gemini"),
85
- localRuleSet("geosite-google-deepmind"),
86
- localRuleSet("geosite-anthropic"),
87
- localRuleSet("geosite-github"),
88
- localRuleSet("geosite-github-copilot"),
89
- localRuleSet("geosite-cursor"),
90
- localRuleSet("geosite-figma"),
91
- ],
86
+ ruleSets: defaultManagedRuleSetTags().map(localRuleSet),
92
87
  groups: {
93
88
  processProxy: {
94
89
  type: "selector",
@@ -171,6 +166,23 @@ async function resolveBuildConfig(options) {
171
166
  },
172
167
  };
173
168
  }
169
+ function defaultManagedRuleSetTags() {
170
+ return [
171
+ ...new Set([
172
+ "geosite-cn",
173
+ "geoip-cn",
174
+ "geosite-google",
175
+ "geosite-google-gemini",
176
+ "geosite-google-deepmind",
177
+ "geosite-anthropic",
178
+ "geosite-github",
179
+ "geosite-github-copilot",
180
+ "geosite-cursor",
181
+ "geosite-figma",
182
+ ...listBuiltInPreferredSiteRuleSetTags(),
183
+ ]),
184
+ ];
185
+ }
174
186
  function localRuleSet(tag) {
175
187
  return {
176
188
  tag,
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;SAC/D,MAAM,CAAC,4BAA4B,EAAE,mDAAmD,CAAC;SACzF,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;YACvC,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG;YACD,aAAa,MAAM,CAAC,SAAS,SAAS;YACtC,WAAW,MAAM,CAAC,UAAU,EAAE;YAC9B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa;SACrE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AASD,KAAK,UAAU,kBAAkB,CAAC,OAA4B;IAC5D,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC;QACV,YAAY,EAAE;YACZ,GAAG,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;YAClC,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;YACzE,QAAQ,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC;YACtE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,6BAA6B,CAAC;SACvE;QACD,OAAO,EAAE;YACP,YAAY,EAAE,mCAAmC;YACjD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,UAAU;gBACvB,MAAM,EAAE,KAAK;aACd;YACD,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE;gBACP,OAAO,EAAE,cAAc;gBACvB,gBAAgB,EAAE,8BAA8B;gBAChD,GAAG,EAAE;oBACH,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,KAAK;oBAClB,SAAS,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC;iBACtD;aACF;SACF;QACD,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,KAAK;aACZ;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,KAAK;aACZ;SACF;QACD,QAAQ,EAAE;YACR,YAAY,CAAC,YAAY,CAAC;YAC1B,YAAY,CAAC,UAAU,CAAC;YACxB,YAAY,CAAC,gBAAgB,CAAC;YAC9B,YAAY,CAAC,uBAAuB,CAAC;YACrC,YAAY,CAAC,yBAAyB,CAAC;YACvC,YAAY,CAAC,mBAAmB,CAAC;YACjC,YAAY,CAAC,gBAAgB,CAAC;YAC9B,YAAY,CAAC,wBAAwB,CAAC;YACtC,YAAY,CAAC,gBAAgB,CAAC;YAC9B,YAAY,CAAC,eAAe,CAAC;SAC9B;QACD,MAAM,EAAE;YACN,YAAY,EAAE;gBACZ,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;gBAClC,aAAa,EAAE,IAAI;gBACnB,kBAAkB,EAAE,QAAQ;aAC7B;YACD,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;YACpF,YAAY,EAAE;gBACZ,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;gBAClC,aAAa,EAAE,IAAI;aACpB;YACD,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;YAClF,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;SAChE;QACD,KAAK,EAAE;YACL,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC;SAChE;QACD,YAAY,EAAE;YACZ,SAAS,EAAE;gBACT;oBACE,EAAE,EAAE,0BAA0B;oBAC9B,IAAI,EAAE,yDAAyD;oBAC/D,GAAG,EAAE,oCAAoC;oBACzC,OAAO,EAAE,cAAc;oBACvB,gBAAgB,EAAE,eAAe;iBAClC;gBACD;oBACE,EAAE,EAAE,sBAAsB;oBAC1B,IAAI,EAAE,0DAA0D;oBAChE,GAAG,EAAE,sCAAsC;oBAC3C,OAAO,EAAE,cAAc;oBACvB,gBAAgB,EAAE,eAAe;iBAClC;gBACD;oBACE,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,iDAAiD;oBACvD,GAAG,EAAE,2CAA2C;oBAChD,OAAO,EAAE,UAAU;oBACnB,gBAAgB,EAAE,YAAY;iBAC/B;gBACD;oBACE,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,4BAA4B;oBAClC,GAAG,EAAE,gCAAgC;oBACrC,OAAO,EAAE,UAAU;oBACnB,gBAAgB,EAAE,QAAQ;iBAC3B;gBACD;oBACE,EAAE,EAAE,YAAY;oBAChB,IAAI,EAAE,qCAAqC;oBAC3C,GAAG,EAAE,iCAAiC;oBACtC,OAAO,EAAE,UAAU;oBACnB,gBAAgB,EAAE,QAAQ;iBAC3B;gBACD;oBACE,EAAE,EAAE,eAAe;oBACnB,IAAI,EAAE,4DAA4D;oBAClE,GAAG,EAAE,mCAAmC;oBACxC,OAAO,EAAE,UAAU;oBACnB,gBAAgB,EAAE,QAAQ;iBAC3B;gBACD;oBACE,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,2CAA2C;oBACjD,GAAG,EAAE,gCAAgC;oBACrC,OAAO,EAAE,UAAU;oBACnB,gBAAgB,EAAE,gBAAgB;iBACnC;aACF;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,EAAE;SACpB;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,IAAI;SAChB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAM/B,OAAO;QACL,GAAG;QACH,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,CAAC;KAC5E,CAAC;AACJ,CAAC"}
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 registerDiagnoseCommand(program: Command): void;
@@ -0,0 +1,120 @@
1
+ import path from "node:path";
2
+ import { collectDiagnosticsReport, } from "../../modules/diagnostics/index.js";
3
+ import { findDefaultConfigPath, resolveBuilderConfig } from "../command-helpers.js";
4
+ export function registerDiagnoseCommand(program) {
5
+ program
6
+ .command("diagnose")
7
+ .description("Summarize runtime, proxy, DNS, and local-network evidence.")
8
+ .option("-c, --config <path>", "path to builder config YAML")
9
+ .option("--sing-box-bin <path>", "path to sing-box binary")
10
+ .option("--launch-agents-dir <path>", "override LaunchAgents directory")
11
+ .option("--json", "print machine-readable JSON")
12
+ .action(async (options) => {
13
+ const config = await resolveBuilderConfig(options);
14
+ const configPath = options.config
15
+ ? resolvePath(options.config)
16
+ : await findDefaultConfigPath();
17
+ const report = await collectDiagnosticsReport({
18
+ ...(config ? { config } : {}),
19
+ ...(configPath ? { configPath } : {}),
20
+ ...(options.singBoxBin ? { singBoxBinary: resolvePath(options.singBoxBin) } : {}),
21
+ ...(options.launchAgentsDir
22
+ ? { launchAgentsDir: resolvePath(options.launchAgentsDir) }
23
+ : {}),
24
+ });
25
+ if (options.json) {
26
+ process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
27
+ return;
28
+ }
29
+ process.stdout.write(renderDiagnoseOutput(report));
30
+ });
31
+ }
32
+ function resolvePath(filePath) {
33
+ return filePath.startsWith("/") ? filePath : path.resolve(process.cwd(), filePath);
34
+ }
35
+ function renderDiagnoseOutput(report) {
36
+ const assessment = assessDiagnostics(report);
37
+ const lines = [
38
+ "Network triage: runtime summary plus local route, DNS, and domain-resolution evidence.",
39
+ "",
40
+ ...renderSection("Context", [
41
+ `generated: ${report.generatedAt}`,
42
+ `config: ${report.builderConfigPath ?? "(missing)"}`,
43
+ ]),
44
+ "",
45
+ ...renderSection("Summary", [
46
+ `checks: PASS ${report.summary.pass} WARN ${report.summary.warn} FAIL ${report.summary.fail}`,
47
+ `assessment: ${assessment.label}`,
48
+ ]),
49
+ "",
50
+ ...renderSection("Runtime Summary", selectChecks(report.checks, "runtime").map(formatCheckLine)),
51
+ "",
52
+ ...renderSection("Network Evidence", selectChecks(report.checks, "network").map(formatCheckLine)),
53
+ "",
54
+ ...renderSection("Suggested Next Step", assessment.nextSteps),
55
+ "",
56
+ ...renderSection("Status Diagnostics", report.status.diagnostics.length > 0
57
+ ? report.status.diagnostics.map((diagnostic) => `[${diagnostic.level}] ${diagnostic.message}`)
58
+ : ["[info] No status diagnostics were recorded."]),
59
+ ];
60
+ return `${lines.join("\n")}\n`;
61
+ }
62
+ function assessDiagnostics(report) {
63
+ const runtimeChecks = selectChecks(report.checks, "runtime");
64
+ const networkChecks = selectChecks(report.checks, "network");
65
+ const runtimeHasWarnings = runtimeChecks.some((check) => check.status !== "PASS") ||
66
+ report.status.diagnostics.some((diagnostic) => diagnostic.level !== "info");
67
+ const networkHasWarnings = networkChecks.some((check) => check.status !== "PASS");
68
+ if (report.summary.warn === 0 && report.summary.fail === 0) {
69
+ return {
70
+ label: "No immediate network issue detected.",
71
+ nextSteps: [
72
+ "No immediate action. If a specific app still fails, compare app-specific routing and re-run diagnose.",
73
+ ],
74
+ };
75
+ }
76
+ if (runtimeHasWarnings && !networkHasWarnings) {
77
+ return {
78
+ label: "Likely runtime drift or publish issue.",
79
+ nextSteps: [
80
+ report.status.runtime.systemProxy?.nextAction ??
81
+ "Reconcile runtime state first: run `singbox-iac status` or `singbox-iac restart`, then re-run diagnose.",
82
+ ],
83
+ };
84
+ }
85
+ if (!runtimeHasWarnings && networkHasWarnings) {
86
+ return {
87
+ label: "Likely local DNS / route issue.",
88
+ nextSteps: ["Inspect local DNS, router, VPN, or captive-portal state, then re-run diagnose."],
89
+ };
90
+ }
91
+ return {
92
+ label: "Mixed evidence across runtime and local network.",
93
+ nextSteps: [
94
+ report.status.runtime.systemProxy?.nextAction ??
95
+ "Fix runtime drift first, then re-run diagnose to see whether local DNS or route warnings remain.",
96
+ "If network warnings remain after the runtime is healthy, inspect local DNS, route, VPN, or captive-portal state.",
97
+ ],
98
+ };
99
+ }
100
+ function selectChecks(checks, scope) {
101
+ return checks.filter((check) => scope === "runtime" ? isRuntimeCheck(check.name) : isNetworkCheck(check.name));
102
+ }
103
+ function isRuntimeCheck(name) {
104
+ return (name === "runtime-process" ||
105
+ name.startsWith("listener:") ||
106
+ name === "system-proxy" ||
107
+ name === "live-config" ||
108
+ name === "schedule" ||
109
+ name === "latest-transaction");
110
+ }
111
+ function isNetworkCheck(name) {
112
+ return name === "default-route" || name === "system-dns" || name.startsWith("dns-probe:");
113
+ }
114
+ function formatCheckLine(check) {
115
+ return `[${check.status}] ${check.name}: ${check.details}`;
116
+ }
117
+ function renderSection(title, items) {
118
+ return [`${title}:`, ...(items.length > 0 ? items.map((item) => `- ${item}`) : ["- (none)"])];
119
+ }
120
+ //# sourceMappingURL=diagnose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../src/cli/commands/diagnose.ts"],"names":[],"mappings":"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"}