@singbox-iac/cli 0.1.16 → 0.1.18

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 (113) hide show
  1. package/README-en.md +70 -19
  2. package/README.md +75 -23
  3. package/dist/cli/commands/apply.js +3 -0
  4. package/dist/cli/commands/apply.js.map +1 -1
  5. package/dist/cli/commands/author.d.ts +2 -0
  6. package/dist/cli/commands/author.js +49 -19
  7. package/dist/cli/commands/author.js.map +1 -1
  8. package/dist/cli/commands/build.js +39 -13
  9. package/dist/cli/commands/build.js.map +1 -1
  10. package/dist/cli/commands/diagnose.d.ts +2 -0
  11. package/dist/cli/commands/diagnose.js +122 -0
  12. package/dist/cli/commands/diagnose.js.map +1 -0
  13. package/dist/cli/commands/doctor.js +21 -1
  14. package/dist/cli/commands/doctor.js.map +1 -1
  15. package/dist/cli/commands/proxifier.js +13 -4
  16. package/dist/cli/commands/proxifier.js.map +1 -1
  17. package/dist/cli/commands/reload.js +1 -0
  18. package/dist/cli/commands/reload.js.map +1 -1
  19. package/dist/cli/commands/restart.js +71 -7
  20. package/dist/cli/commands/restart.js.map +1 -1
  21. package/dist/cli/commands/rollback.js +1 -0
  22. package/dist/cli/commands/rollback.js.map +1 -1
  23. package/dist/cli/commands/rulesets.d.ts +2 -0
  24. package/dist/cli/commands/rulesets.js +125 -0
  25. package/dist/cli/commands/rulesets.js.map +1 -0
  26. package/dist/cli/commands/runtime-watchdog.d.ts +2 -0
  27. package/dist/cli/commands/runtime-watchdog.js +45 -0
  28. package/dist/cli/commands/runtime-watchdog.js.map +1 -0
  29. package/dist/cli/commands/setup.js +40 -14
  30. package/dist/cli/commands/setup.js.map +1 -1
  31. package/dist/cli/commands/start.js +56 -5
  32. package/dist/cli/commands/start.js.map +1 -1
  33. package/dist/cli/commands/status.js +140 -28
  34. package/dist/cli/commands/status.js.map +1 -1
  35. package/dist/cli/commands/stop.js +28 -5
  36. package/dist/cli/commands/stop.js.map +1 -1
  37. package/dist/cli/commands/use.js +3 -1
  38. package/dist/cli/commands/use.js.map +1 -1
  39. package/dist/cli/commands/verify.js +1 -1
  40. package/dist/cli/commands/verify.js.map +1 -1
  41. package/dist/cli/index.js +12 -4
  42. package/dist/cli/index.js.map +1 -1
  43. package/dist/config/schema.d.ts +222 -35
  44. package/dist/config/schema.js +80 -1
  45. package/dist/config/schema.js.map +1 -1
  46. package/dist/domain/dns-plan.d.ts +11 -1
  47. package/dist/domain/intent.d.ts +2 -2
  48. package/dist/domain/verification-plan.d.ts +3 -3
  49. package/dist/modules/authoring/index.js +26 -9
  50. package/dist/modules/authoring/index.js.map +1 -1
  51. package/dist/modules/build/index.d.ts +4 -1
  52. package/dist/modules/build/index.js +17 -4
  53. package/dist/modules/build/index.js.map +1 -1
  54. package/dist/modules/bundle-registry/index.d.ts +52 -0
  55. package/dist/modules/bundle-registry/index.js +691 -0
  56. package/dist/modules/bundle-registry/index.js.map +1 -0
  57. package/dist/modules/compiler/index.js +79 -12
  58. package/dist/modules/compiler/index.js.map +1 -1
  59. package/dist/modules/desktop-runtime/index.d.ts +36 -0
  60. package/dist/modules/desktop-runtime/index.js +154 -12
  61. package/dist/modules/desktop-runtime/index.js.map +1 -1
  62. package/dist/modules/diagnostics/index.d.ts +28 -0
  63. package/dist/modules/diagnostics/index.js +306 -0
  64. package/dist/modules/diagnostics/index.js.map +1 -0
  65. package/dist/modules/dns-plan/index.js +73 -12
  66. package/dist/modules/dns-plan/index.js.map +1 -1
  67. package/dist/modules/intent/index.js +2 -2
  68. package/dist/modules/intent/index.js.map +1 -1
  69. package/dist/modules/layered-authoring/index.d.ts +45 -0
  70. package/dist/modules/layered-authoring/index.js +549 -0
  71. package/dist/modules/layered-authoring/index.js.map +1 -0
  72. package/dist/modules/manager/index.d.ts +3 -1
  73. package/dist/modules/manager/index.js +26 -1
  74. package/dist/modules/manager/index.js.map +1 -1
  75. package/dist/modules/natural-language/index.d.ts +8 -5
  76. package/dist/modules/natural-language/index.js +74 -69
  77. package/dist/modules/natural-language/index.js.map +1 -1
  78. package/dist/modules/proxifier/index.d.ts +1 -14
  79. package/dist/modules/proxifier/index.js +13 -143
  80. package/dist/modules/proxifier/index.js.map +1 -1
  81. package/dist/modules/rule-set-catalog/index.d.ts +25 -0
  82. package/dist/modules/rule-set-catalog/index.js +135 -0
  83. package/dist/modules/rule-set-catalog/index.js.map +1 -0
  84. package/dist/modules/runtime-mode/index.d.ts +1 -1
  85. package/dist/modules/runtime-mode/index.js +0 -5
  86. package/dist/modules/runtime-mode/index.js.map +1 -1
  87. package/dist/modules/runtime-watchdog/index.d.ts +73 -0
  88. package/dist/modules/runtime-watchdog/index.js +532 -0
  89. package/dist/modules/runtime-watchdog/index.js.map +1 -0
  90. package/dist/modules/status/index.d.ts +57 -0
  91. package/dist/modules/status/index.js +307 -31
  92. package/dist/modules/status/index.js.map +1 -1
  93. package/dist/modules/system-proxy/index.d.ts +31 -0
  94. package/dist/modules/system-proxy/index.js +164 -0
  95. package/dist/modules/system-proxy/index.js.map +1 -0
  96. package/dist/modules/update/index.js +3 -1
  97. package/dist/modules/update/index.js.map +1 -1
  98. package/dist/modules/verification/index.d.ts +5 -5
  99. package/dist/modules/verification/index.js +93 -12
  100. package/dist/modules/verification/index.js.map +1 -1
  101. package/dist/modules/verification-plan/index.js +13 -4
  102. package/dist/modules/verification-plan/index.js.map +1 -1
  103. package/docs/agent-context.md +131 -0
  104. package/docs/natural-language-authoring.md +106 -1
  105. package/docs/proxifier-onboarding.md +15 -4
  106. package/docs/rule-templates.md +2 -0
  107. package/docs/runtime-modes.md +84 -0
  108. package/docs/runtime-on-macos.md +59 -4
  109. package/examples/builder.config.yaml +60 -0
  110. package/package.json +3 -2
  111. package/dist/cli/commands/quickstart.d.ts +0 -2
  112. package/dist/cli/commands/quickstart.js +0 -54
  113. package/dist/cli/commands/quickstart.js.map +0 -1
@@ -71,36 +71,147 @@ export declare const builderConfigSchema: z.ZodObject<{
71
71
  autoRoute: z.ZodDefault<z.ZodBoolean>;
72
72
  strictRoute: z.ZodDefault<z.ZodBoolean>;
73
73
  interfaceName: z.ZodOptional<z.ZodString>;
74
+ dnsMode: z.ZodDefault<z.ZodEnum<["real-ip", "fake-ip"]>>;
75
+ launchDaemonLabel: z.ZodDefault<z.ZodString>;
74
76
  addresses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
77
+ processRouting: z.ZodDefault<z.ZodObject<{
78
+ enabled: z.ZodDefault<z.ZodBoolean>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ enabled: boolean;
81
+ }, {
82
+ enabled?: boolean | undefined;
83
+ }>>;
84
+ fakeIp: z.ZodDefault<z.ZodObject<{
85
+ inet4Range: z.ZodDefault<z.ZodString>;
86
+ inet6Range: z.ZodDefault<z.ZodString>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ inet4Range: string;
89
+ inet6Range: string;
90
+ }, {
91
+ inet4Range?: string | undefined;
92
+ inet6Range?: string | undefined;
93
+ }>>;
94
+ cache: z.ZodDefault<z.ZodObject<{
95
+ enabled: z.ZodDefault<z.ZodBoolean>;
96
+ path: z.ZodDefault<z.ZodString>;
97
+ storeFakeIp: z.ZodDefault<z.ZodBoolean>;
98
+ }, "strip", z.ZodTypeAny, {
99
+ enabled: boolean;
100
+ path: string;
101
+ storeFakeIp: boolean;
102
+ }, {
103
+ enabled?: boolean | undefined;
104
+ path?: string | undefined;
105
+ storeFakeIp?: boolean | undefined;
106
+ }>>;
75
107
  }, "strip", z.ZodTypeAny, {
76
108
  autoRoute: boolean;
77
109
  strictRoute: boolean;
110
+ dnsMode: "real-ip" | "fake-ip";
111
+ launchDaemonLabel: string;
78
112
  addresses: string[];
113
+ processRouting: {
114
+ enabled: boolean;
115
+ };
116
+ fakeIp: {
117
+ inet4Range: string;
118
+ inet6Range: string;
119
+ };
120
+ cache: {
121
+ enabled: boolean;
122
+ path: string;
123
+ storeFakeIp: boolean;
124
+ };
79
125
  interfaceName?: string | undefined;
80
126
  }, {
81
127
  autoRoute?: boolean | undefined;
82
128
  strictRoute?: boolean | undefined;
83
129
  interfaceName?: string | undefined;
130
+ dnsMode?: "real-ip" | "fake-ip" | undefined;
131
+ launchDaemonLabel?: string | undefined;
84
132
  addresses?: string[] | undefined;
133
+ processRouting?: {
134
+ enabled?: boolean | undefined;
135
+ } | undefined;
136
+ fakeIp?: {
137
+ inet4Range?: string | undefined;
138
+ inet6Range?: string | undefined;
139
+ } | undefined;
140
+ cache?: {
141
+ enabled?: boolean | undefined;
142
+ path?: string | undefined;
143
+ storeFakeIp?: boolean | undefined;
144
+ } | undefined;
145
+ }>>;
146
+ watchdog: z.ZodDefault<z.ZodObject<{
147
+ enabled: z.ZodDefault<z.ZodBoolean>;
148
+ intervalSeconds: z.ZodDefault<z.ZodNumber>;
149
+ launchAgentLabel: z.ZodDefault<z.ZodString>;
150
+ }, "strip", z.ZodTypeAny, {
151
+ enabled: boolean;
152
+ intervalSeconds: number;
153
+ launchAgentLabel: string;
154
+ }, {
155
+ enabled?: boolean | undefined;
156
+ intervalSeconds?: number | undefined;
157
+ launchAgentLabel?: string | undefined;
85
158
  }>>;
86
159
  }, "strip", z.ZodTypeAny, {
87
160
  tun: {
88
161
  autoRoute: boolean;
89
162
  strictRoute: boolean;
163
+ dnsMode: "real-ip" | "fake-ip";
164
+ launchDaemonLabel: string;
90
165
  addresses: string[];
166
+ processRouting: {
167
+ enabled: boolean;
168
+ };
169
+ fakeIp: {
170
+ inet4Range: string;
171
+ inet6Range: string;
172
+ };
173
+ cache: {
174
+ enabled: boolean;
175
+ path: string;
176
+ storeFakeIp: boolean;
177
+ };
91
178
  interfaceName?: string | undefined;
92
179
  };
93
- profile: "none" | "system-proxy" | "tun";
94
180
  launchAgentLabel: string;
181
+ profile: "none" | "system-proxy" | "tun";
182
+ watchdog: {
183
+ enabled: boolean;
184
+ intervalSeconds: number;
185
+ launchAgentLabel: string;
186
+ };
95
187
  }, {
96
188
  tun?: {
97
189
  autoRoute?: boolean | undefined;
98
190
  strictRoute?: boolean | undefined;
99
191
  interfaceName?: string | undefined;
192
+ dnsMode?: "real-ip" | "fake-ip" | undefined;
193
+ launchDaemonLabel?: string | undefined;
100
194
  addresses?: string[] | undefined;
195
+ processRouting?: {
196
+ enabled?: boolean | undefined;
197
+ } | undefined;
198
+ fakeIp?: {
199
+ inet4Range?: string | undefined;
200
+ inet6Range?: string | undefined;
201
+ } | undefined;
202
+ cache?: {
203
+ enabled?: boolean | undefined;
204
+ path?: string | undefined;
205
+ storeFakeIp?: boolean | undefined;
206
+ } | undefined;
101
207
  } | undefined;
102
- profile?: "none" | "system-proxy" | "tun" | undefined;
103
208
  launchAgentLabel?: string | undefined;
209
+ profile?: "none" | "system-proxy" | "tun" | undefined;
210
+ watchdog?: {
211
+ enabled?: boolean | undefined;
212
+ intervalSeconds?: number | undefined;
213
+ launchAgentLabel?: string | undefined;
214
+ } | undefined;
104
215
  }>>;
105
216
  }, "strip", z.ZodTypeAny, {
106
217
  checkCommand: string;
@@ -121,11 +232,30 @@ export declare const builderConfigSchema: z.ZodObject<{
121
232
  tun: {
122
233
  autoRoute: boolean;
123
234
  strictRoute: boolean;
235
+ dnsMode: "real-ip" | "fake-ip";
236
+ launchDaemonLabel: string;
124
237
  addresses: string[];
238
+ processRouting: {
239
+ enabled: boolean;
240
+ };
241
+ fakeIp: {
242
+ inet4Range: string;
243
+ inet6Range: string;
244
+ };
245
+ cache: {
246
+ enabled: boolean;
247
+ path: string;
248
+ storeFakeIp: boolean;
249
+ };
125
250
  interfaceName?: string | undefined;
126
251
  };
127
- profile: "none" | "system-proxy" | "tun";
128
252
  launchAgentLabel: string;
253
+ profile: "none" | "system-proxy" | "tun";
254
+ watchdog: {
255
+ enabled: boolean;
256
+ intervalSeconds: number;
257
+ launchAgentLabel: string;
258
+ };
129
259
  };
130
260
  }, {
131
261
  checkCommand: string;
@@ -147,10 +277,29 @@ export declare const builderConfigSchema: z.ZodObject<{
147
277
  autoRoute?: boolean | undefined;
148
278
  strictRoute?: boolean | undefined;
149
279
  interfaceName?: string | undefined;
280
+ dnsMode?: "real-ip" | "fake-ip" | undefined;
281
+ launchDaemonLabel?: string | undefined;
150
282
  addresses?: string[] | undefined;
283
+ processRouting?: {
284
+ enabled?: boolean | undefined;
285
+ } | undefined;
286
+ fakeIp?: {
287
+ inet4Range?: string | undefined;
288
+ inet6Range?: string | undefined;
289
+ } | undefined;
290
+ cache?: {
291
+ enabled?: boolean | undefined;
292
+ path?: string | undefined;
293
+ storeFakeIp?: boolean | undefined;
294
+ } | undefined;
151
295
  } | undefined;
152
- profile?: "none" | "system-proxy" | "tun" | undefined;
153
296
  launchAgentLabel?: string | undefined;
297
+ profile?: "none" | "system-proxy" | "tun" | undefined;
298
+ watchdog?: {
299
+ enabled?: boolean | undefined;
300
+ intervalSeconds?: number | undefined;
301
+ launchAgentLabel?: string | undefined;
302
+ } | undefined;
154
303
  } | undefined;
155
304
  }>;
156
305
  listeners: z.ZodObject<{
@@ -375,19 +524,19 @@ export declare const builderConfigSchema: z.ZodObject<{
375
524
  id: z.ZodString;
376
525
  name: z.ZodString;
377
526
  url: z.ZodString;
378
- inbound: z.ZodEnum<["in-mixed", "in-proxifier"]>;
527
+ inbound: z.ZodEnum<["in-mixed", "in-proxifier", "in-tun"]>;
379
528
  expectedOutbound: z.ZodString;
380
529
  }, "strip", z.ZodTypeAny, {
381
530
  id: string;
382
531
  name: string;
383
532
  url: string;
384
- inbound: "in-mixed" | "in-proxifier";
533
+ inbound: "in-mixed" | "in-proxifier" | "in-tun";
385
534
  expectedOutbound: string;
386
535
  }, {
387
536
  id: string;
388
537
  name: string;
389
538
  url: string;
390
- inbound: "in-mixed" | "in-proxifier";
539
+ inbound: "in-mixed" | "in-proxifier" | "in-tun";
391
540
  expectedOutbound: string;
392
541
  }>, "many">;
393
542
  }, "strip", z.ZodTypeAny, {
@@ -395,7 +544,7 @@ export declare const builderConfigSchema: z.ZodObject<{
395
544
  id: string;
396
545
  name: string;
397
546
  url: string;
398
- inbound: "in-mixed" | "in-proxifier";
547
+ inbound: "in-mixed" | "in-proxifier" | "in-tun";
399
548
  expectedOutbound: string;
400
549
  }[];
401
550
  }, {
@@ -403,7 +552,7 @@ export declare const builderConfigSchema: z.ZodObject<{
403
552
  id: string;
404
553
  name: string;
405
554
  url: string;
406
- inbound: "in-mixed" | "in-proxifier";
555
+ inbound: "in-mixed" | "in-proxifier" | "in-tun";
407
556
  expectedOutbound: string;
408
557
  }[];
409
558
  }>;
@@ -446,17 +595,6 @@ export declare const builderConfigSchema: z.ZodObject<{
446
595
  timeoutMs?: number | undefined;
447
596
  }>>;
448
597
  }, "strip", z.ZodTypeAny, {
449
- version: 1;
450
- subscription: {
451
- format: "base64-lines";
452
- url: string;
453
- protocols: "trojan"[];
454
- };
455
- output: {
456
- stagingPath: string;
457
- livePath: string;
458
- backupPath: string;
459
- };
460
598
  runtime: {
461
599
  checkCommand: string;
462
600
  reload: {
@@ -476,13 +614,43 @@ export declare const builderConfigSchema: z.ZodObject<{
476
614
  tun: {
477
615
  autoRoute: boolean;
478
616
  strictRoute: boolean;
617
+ dnsMode: "real-ip" | "fake-ip";
618
+ launchDaemonLabel: string;
479
619
  addresses: string[];
620
+ processRouting: {
621
+ enabled: boolean;
622
+ };
623
+ fakeIp: {
624
+ inet4Range: string;
625
+ inet6Range: string;
626
+ };
627
+ cache: {
628
+ enabled: boolean;
629
+ path: string;
630
+ storeFakeIp: boolean;
631
+ };
480
632
  interfaceName?: string | undefined;
481
633
  };
482
- profile: "none" | "system-proxy" | "tun";
483
634
  launchAgentLabel: string;
635
+ profile: "none" | "system-proxy" | "tun";
636
+ watchdog: {
637
+ enabled: boolean;
638
+ intervalSeconds: number;
639
+ launchAgentLabel: string;
640
+ };
484
641
  };
485
642
  };
643
+ version: 1;
644
+ subscription: {
645
+ format: "base64-lines";
646
+ url: string;
647
+ protocols: "trojan"[];
648
+ };
649
+ output: {
650
+ stagingPath: string;
651
+ livePath: string;
652
+ backupPath: string;
653
+ };
486
654
  listeners: {
487
655
  mixed: {
488
656
  enabled: boolean;
@@ -541,7 +709,7 @@ export declare const builderConfigSchema: z.ZodObject<{
541
709
  id: string;
542
710
  name: string;
543
711
  url: string;
544
- inbound: "in-mixed" | "in-proxifier";
712
+ inbound: "in-mixed" | "in-proxifier" | "in-tun";
545
713
  expectedOutbound: string;
546
714
  }[];
547
715
  };
@@ -558,17 +726,6 @@ export declare const builderConfigSchema: z.ZodObject<{
558
726
  } | undefined;
559
727
  };
560
728
  }, {
561
- version: 1;
562
- subscription: {
563
- format: "base64-lines";
564
- url: string;
565
- protocols: "trojan"[];
566
- };
567
- output: {
568
- stagingPath: string;
569
- livePath: string;
570
- backupPath: string;
571
- };
572
729
  runtime: {
573
730
  checkCommand: string;
574
731
  reload: {
@@ -589,12 +746,42 @@ export declare const builderConfigSchema: z.ZodObject<{
589
746
  autoRoute?: boolean | undefined;
590
747
  strictRoute?: boolean | undefined;
591
748
  interfaceName?: string | undefined;
749
+ dnsMode?: "real-ip" | "fake-ip" | undefined;
750
+ launchDaemonLabel?: string | undefined;
592
751
  addresses?: string[] | undefined;
752
+ processRouting?: {
753
+ enabled?: boolean | undefined;
754
+ } | undefined;
755
+ fakeIp?: {
756
+ inet4Range?: string | undefined;
757
+ inet6Range?: string | undefined;
758
+ } | undefined;
759
+ cache?: {
760
+ enabled?: boolean | undefined;
761
+ path?: string | undefined;
762
+ storeFakeIp?: boolean | undefined;
763
+ } | undefined;
593
764
  } | undefined;
594
- profile?: "none" | "system-proxy" | "tun" | undefined;
595
765
  launchAgentLabel?: string | undefined;
766
+ profile?: "none" | "system-proxy" | "tun" | undefined;
767
+ watchdog?: {
768
+ enabled?: boolean | undefined;
769
+ intervalSeconds?: number | undefined;
770
+ launchAgentLabel?: string | undefined;
771
+ } | undefined;
596
772
  } | undefined;
597
773
  };
774
+ version: 1;
775
+ subscription: {
776
+ format: "base64-lines";
777
+ url: string;
778
+ protocols: "trojan"[];
779
+ };
780
+ output: {
781
+ stagingPath: string;
782
+ livePath: string;
783
+ backupPath: string;
784
+ };
598
785
  listeners: {
599
786
  mixed: {
600
787
  enabled: boolean;
@@ -653,7 +840,7 @@ export declare const builderConfigSchema: z.ZodObject<{
653
840
  id: string;
654
841
  name: string;
655
842
  url: string;
656
- inbound: "in-mixed" | "in-proxifier";
843
+ inbound: "in-mixed" | "in-proxifier" | "in-tun";
657
844
  expectedOutbound: string;
658
845
  }[];
659
846
  };
@@ -1,3 +1,5 @@
1
+ import { homedir } from "node:os";
2
+ import path from "node:path";
1
3
  import { z } from "zod";
2
4
  const listenerSchema = z.object({
3
5
  enabled: z.boolean(),
@@ -20,7 +22,7 @@ const verificationScenarioSchema = z.object({
20
22
  id: z.string().min(1),
21
23
  name: z.string().min(1),
22
24
  url: z.string().url(),
23
- inbound: z.enum(["in-mixed", "in-proxifier"]),
25
+ inbound: z.enum(["in-mixed", "in-proxifier", "in-tun"]),
24
26
  expectedOutbound: z.string().min(1),
25
27
  });
26
28
  const authoringSchema = z
@@ -61,21 +63,79 @@ const desktopTunRuntimeSchema = z
61
63
  autoRoute: z.boolean().default(true),
62
64
  strictRoute: z.boolean().default(false),
63
65
  interfaceName: z.string().min(1).optional(),
66
+ dnsMode: z.enum(["real-ip", "fake-ip"]).default("fake-ip"),
67
+ launchDaemonLabel: z.string().min(1).default("org.singbox-iac.runtime.tun"),
64
68
  addresses: z
65
69
  .array(z.string().min(1))
66
70
  .min(1)
67
71
  .default(["172.19.0.1/30", "fdfe:dcba:9876::1/126"]),
72
+ processRouting: z
73
+ .object({
74
+ enabled: z.boolean().default(true),
75
+ })
76
+ .default({
77
+ enabled: true,
78
+ }),
79
+ fakeIp: z
80
+ .object({
81
+ inet4Range: z.string().min(1).default("198.18.0.0/15"),
82
+ inet6Range: z.string().min(1).default("fc00::/18"),
83
+ })
84
+ .default({
85
+ inet4Range: "198.18.0.0/15",
86
+ inet6Range: "fc00::/18",
87
+ }),
88
+ cache: z
89
+ .object({
90
+ enabled: z.boolean().default(true),
91
+ path: z
92
+ .string()
93
+ .min(1)
94
+ .default(path.join(homedir(), ".config", "singbox-iac", "runtime", "tun-cache.db")),
95
+ storeFakeIp: z.boolean().default(true),
96
+ })
97
+ .default({
98
+ enabled: true,
99
+ path: path.join(homedir(), ".config", "singbox-iac", "runtime", "tun-cache.db"),
100
+ storeFakeIp: true,
101
+ }),
68
102
  })
69
103
  .default({
70
104
  autoRoute: true,
71
105
  strictRoute: false,
106
+ dnsMode: "fake-ip",
107
+ launchDaemonLabel: "org.singbox-iac.runtime.tun",
72
108
  addresses: ["172.19.0.1/30", "fdfe:dcba:9876::1/126"],
109
+ processRouting: {
110
+ enabled: true,
111
+ },
112
+ fakeIp: {
113
+ inet4Range: "198.18.0.0/15",
114
+ inet6Range: "fc00::/18",
115
+ },
116
+ cache: {
117
+ enabled: true,
118
+ path: path.join(homedir(), ".config", "singbox-iac", "runtime", "tun-cache.db"),
119
+ storeFakeIp: true,
120
+ },
121
+ });
122
+ const desktopRuntimeWatchdogSchema = z
123
+ .object({
124
+ enabled: z.boolean().default(true),
125
+ intervalSeconds: z.number().int().positive().default(60),
126
+ launchAgentLabel: z.string().min(1).default("org.singbox-iac.runtime.watchdog"),
127
+ })
128
+ .default({
129
+ enabled: true,
130
+ intervalSeconds: 60,
131
+ launchAgentLabel: "org.singbox-iac.runtime.watchdog",
73
132
  });
74
133
  const desktopRuntimeSchema = z
75
134
  .object({
76
135
  profile: desktopRuntimeProfileSchema.default("system-proxy"),
77
136
  launchAgentLabel: z.string().min(1).default("org.singbox-iac.runtime"),
78
137
  tun: desktopTunRuntimeSchema,
138
+ watchdog: desktopRuntimeWatchdogSchema,
79
139
  })
80
140
  .default({
81
141
  profile: "system-proxy",
@@ -83,7 +143,26 @@ const desktopRuntimeSchema = z
83
143
  tun: {
84
144
  autoRoute: true,
85
145
  strictRoute: false,
146
+ dnsMode: "fake-ip",
147
+ launchDaemonLabel: "org.singbox-iac.runtime.tun",
86
148
  addresses: ["172.19.0.1/30", "fdfe:dcba:9876::1/126"],
149
+ processRouting: {
150
+ enabled: true,
151
+ },
152
+ fakeIp: {
153
+ inet4Range: "198.18.0.0/15",
154
+ inet6Range: "fc00::/18",
155
+ },
156
+ cache: {
157
+ enabled: true,
158
+ path: path.join(homedir(), ".config", "singbox-iac", "runtime", "tun-cache.db"),
159
+ storeFakeIp: true,
160
+ },
161
+ },
162
+ watchdog: {
163
+ enabled: true,
164
+ intervalSeconds: 60,
165
+ launchAgentLabel: "org.singbox-iac.runtime.watchdog",
87
166
  },
88
167
  });
89
168
  export const builderConfigSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  export interface DnsPlanServer {
2
- readonly type: "local" | "tcp";
2
+ readonly type: "local" | "tcp" | "udp" | "fakeip";
3
3
  readonly tag: string;
4
4
  readonly server?: string;
5
5
  readonly serverPort?: number;
6
6
  readonly preferGo?: boolean;
7
+ readonly inet4Range?: string;
8
+ readonly inet6Range?: string;
7
9
  }
8
10
  export interface DnsPlanRule {
9
11
  readonly match: {
10
12
  readonly domain?: readonly string[];
11
13
  readonly domainSuffix?: readonly string[];
12
14
  readonly ruleSet?: readonly string[];
15
+ readonly queryType?: readonly string[];
13
16
  };
14
17
  readonly resolvers: readonly string[];
15
18
  }
@@ -24,4 +27,11 @@ export interface DNSPlan {
24
27
  readonly fakeIpFilter: readonly string[];
25
28
  readonly localHosts?: Record<string, string>;
26
29
  readonly strategy: "prefer_ipv4" | "prefer_ipv6";
30
+ readonly reverseMapping: boolean;
31
+ readonly independentCache?: boolean;
32
+ readonly cacheFile?: {
33
+ readonly enabled: boolean;
34
+ readonly path: string;
35
+ readonly storeFakeIp: boolean;
36
+ };
27
37
  }
@@ -35,10 +35,10 @@ export interface IntentProcessMatch {
35
35
  export interface IntentProcessPolicy {
36
36
  readonly name?: string;
37
37
  readonly match: IntentProcessMatch;
38
- readonly inbound: "in-proxifier" | "in-default";
38
+ readonly capture: "process-aware";
39
39
  readonly outboundGroup: string;
40
40
  readonly verify?: {
41
- readonly expectProxyHit?: boolean;
41
+ readonly expectCaptureHit?: boolean;
42
42
  };
43
43
  }
44
44
  export interface IntentLocalOverride {
@@ -8,14 +8,14 @@ export interface VerificationPlan {
8
8
  readonly id: string;
9
9
  readonly name: string;
10
10
  readonly target: string;
11
- readonly inbound: "in-mixed" | "in-proxifier";
11
+ readonly inbound: "in-mixed" | "in-proxifier" | "in-tun";
12
12
  readonly expectedOutboundGroup: string;
13
13
  readonly expectedRuleHint?: string;
14
14
  }[];
15
15
  readonly egressChecks: readonly {
16
16
  readonly id: string;
17
17
  readonly target: string;
18
- readonly inbound: "in-mixed" | "in-proxifier";
18
+ readonly inbound: "in-mixed" | "in-proxifier" | "in-tun";
19
19
  readonly expectedOutboundGroup: string;
20
20
  readonly expectedCountry?: readonly string[];
21
21
  readonly expectedASN?: readonly string[];
@@ -23,7 +23,7 @@ export interface VerificationPlan {
23
23
  readonly appChecks: readonly {
24
24
  readonly id: string;
25
25
  readonly app: string;
26
- readonly expectedInbound: "in-proxifier" | "in-default";
26
+ readonly expectedCaptureBackend: "proxifier" | "native-process" | "fallback";
27
27
  readonly expectedOutboundGroup: string;
28
28
  }[];
29
29
  readonly protocolChecks: readonly {