@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.
- package/README-en.md +70 -19
- package/README.md +75 -23
- package/dist/cli/commands/apply.js +3 -0
- package/dist/cli/commands/apply.js.map +1 -1
- package/dist/cli/commands/author.d.ts +2 -0
- package/dist/cli/commands/author.js +49 -19
- package/dist/cli/commands/author.js.map +1 -1
- package/dist/cli/commands/build.js +39 -13
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/diagnose.d.ts +2 -0
- package/dist/cli/commands/diagnose.js +122 -0
- package/dist/cli/commands/diagnose.js.map +1 -0
- package/dist/cli/commands/doctor.js +21 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/proxifier.js +13 -4
- package/dist/cli/commands/proxifier.js.map +1 -1
- package/dist/cli/commands/reload.js +1 -0
- package/dist/cli/commands/reload.js.map +1 -1
- package/dist/cli/commands/restart.js +71 -7
- package/dist/cli/commands/restart.js.map +1 -1
- package/dist/cli/commands/rollback.js +1 -0
- package/dist/cli/commands/rollback.js.map +1 -1
- package/dist/cli/commands/rulesets.d.ts +2 -0
- package/dist/cli/commands/rulesets.js +125 -0
- package/dist/cli/commands/rulesets.js.map +1 -0
- package/dist/cli/commands/runtime-watchdog.d.ts +2 -0
- package/dist/cli/commands/runtime-watchdog.js +45 -0
- package/dist/cli/commands/runtime-watchdog.js.map +1 -0
- package/dist/cli/commands/setup.js +40 -14
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/start.js +56 -5
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.js +140 -28
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/stop.js +28 -5
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/cli/commands/use.js +3 -1
- package/dist/cli/commands/use.js.map +1 -1
- package/dist/cli/commands/verify.js +1 -1
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/index.js +12 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/config/schema.d.ts +222 -35
- package/dist/config/schema.js +80 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/domain/dns-plan.d.ts +11 -1
- package/dist/domain/intent.d.ts +2 -2
- package/dist/domain/verification-plan.d.ts +3 -3
- package/dist/modules/authoring/index.js +26 -9
- package/dist/modules/authoring/index.js.map +1 -1
- package/dist/modules/build/index.d.ts +4 -1
- package/dist/modules/build/index.js +17 -4
- package/dist/modules/build/index.js.map +1 -1
- package/dist/modules/bundle-registry/index.d.ts +52 -0
- package/dist/modules/bundle-registry/index.js +691 -0
- package/dist/modules/bundle-registry/index.js.map +1 -0
- package/dist/modules/compiler/index.js +79 -12
- package/dist/modules/compiler/index.js.map +1 -1
- package/dist/modules/desktop-runtime/index.d.ts +36 -0
- package/dist/modules/desktop-runtime/index.js +154 -12
- package/dist/modules/desktop-runtime/index.js.map +1 -1
- package/dist/modules/diagnostics/index.d.ts +28 -0
- package/dist/modules/diagnostics/index.js +306 -0
- package/dist/modules/diagnostics/index.js.map +1 -0
- package/dist/modules/dns-plan/index.js +73 -12
- package/dist/modules/dns-plan/index.js.map +1 -1
- package/dist/modules/intent/index.js +2 -2
- package/dist/modules/intent/index.js.map +1 -1
- package/dist/modules/layered-authoring/index.d.ts +45 -0
- package/dist/modules/layered-authoring/index.js +549 -0
- package/dist/modules/layered-authoring/index.js.map +1 -0
- package/dist/modules/manager/index.d.ts +3 -1
- package/dist/modules/manager/index.js +26 -1
- package/dist/modules/manager/index.js.map +1 -1
- package/dist/modules/natural-language/index.d.ts +8 -5
- package/dist/modules/natural-language/index.js +74 -69
- package/dist/modules/natural-language/index.js.map +1 -1
- package/dist/modules/proxifier/index.d.ts +1 -14
- package/dist/modules/proxifier/index.js +13 -143
- package/dist/modules/proxifier/index.js.map +1 -1
- package/dist/modules/rule-set-catalog/index.d.ts +25 -0
- package/dist/modules/rule-set-catalog/index.js +135 -0
- package/dist/modules/rule-set-catalog/index.js.map +1 -0
- package/dist/modules/runtime-mode/index.d.ts +1 -1
- package/dist/modules/runtime-mode/index.js +0 -5
- package/dist/modules/runtime-mode/index.js.map +1 -1
- package/dist/modules/runtime-watchdog/index.d.ts +73 -0
- package/dist/modules/runtime-watchdog/index.js +532 -0
- package/dist/modules/runtime-watchdog/index.js.map +1 -0
- package/dist/modules/status/index.d.ts +57 -0
- package/dist/modules/status/index.js +307 -31
- package/dist/modules/status/index.js.map +1 -1
- package/dist/modules/system-proxy/index.d.ts +31 -0
- package/dist/modules/system-proxy/index.js +164 -0
- package/dist/modules/system-proxy/index.js.map +1 -0
- package/dist/modules/update/index.js +3 -1
- package/dist/modules/update/index.js.map +1 -1
- package/dist/modules/verification/index.d.ts +5 -5
- package/dist/modules/verification/index.js +93 -12
- package/dist/modules/verification/index.js.map +1 -1
- package/dist/modules/verification-plan/index.js +13 -4
- package/dist/modules/verification-plan/index.js.map +1 -1
- package/docs/agent-context.md +131 -0
- package/docs/natural-language-authoring.md +106 -1
- package/docs/proxifier-onboarding.md +15 -4
- package/docs/rule-templates.md +2 -0
- package/docs/runtime-modes.md +84 -0
- package/docs/runtime-on-macos.md +59 -4
- package/examples/builder.config.yaml +60 -0
- package/package.json +3 -2
- package/dist/cli/commands/quickstart.d.ts +0 -2
- package/dist/cli/commands/quickstart.js +0 -54
- package/dist/cli/commands/quickstart.js.map +0 -1
|
@@ -0,0 +1,691 @@
|
|
|
1
|
+
const genericProcessIntentAliases = [
|
|
2
|
+
"proxifier",
|
|
3
|
+
"进程级",
|
|
4
|
+
"独立入口",
|
|
5
|
+
"独立的入口",
|
|
6
|
+
"process-level",
|
|
7
|
+
"process level",
|
|
8
|
+
];
|
|
9
|
+
const siteBundleDefinitions = [
|
|
10
|
+
{
|
|
11
|
+
id: "notebooklm",
|
|
12
|
+
name: "NotebookLM",
|
|
13
|
+
aliases: ["notebooklm", "notebook lm"],
|
|
14
|
+
fallbackDomainSuffixes: ["notebooklm.google.com"],
|
|
15
|
+
verificationUrls: ["https://notebooklm.google.com/favicon.ico"],
|
|
16
|
+
tags: ["ai", "google"],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "openrouter",
|
|
20
|
+
name: "OpenRouter",
|
|
21
|
+
aliases: ["openrouter"],
|
|
22
|
+
fallbackDomainSuffixes: ["openrouter.ai"],
|
|
23
|
+
verificationUrls: ["https://openrouter.ai/favicon.ico"],
|
|
24
|
+
tags: ["ai"],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "perplexity",
|
|
28
|
+
name: "Perplexity",
|
|
29
|
+
aliases: ["perplexity"],
|
|
30
|
+
preferredRuleSetTags: ["geosite-perplexity"],
|
|
31
|
+
fallbackDomainSuffixes: ["perplexity.ai", "perplexity.com", "pplx.ai"],
|
|
32
|
+
verificationUrls: ["https://www.perplexity.ai/favicon.ico"],
|
|
33
|
+
tags: ["ai"],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: "chatgpt",
|
|
37
|
+
name: "ChatGPT",
|
|
38
|
+
aliases: ["chatgpt"],
|
|
39
|
+
preferredRuleSetTags: ["geosite-openai"],
|
|
40
|
+
fallbackDomainSuffixes: ["chatgpt.com", "oaistatic.com", "oaiusercontent.com"],
|
|
41
|
+
fallbackDomains: ["chat.openai.com.cdn.cloudflare.net", "api.statsig.com"],
|
|
42
|
+
verificationUrls: ["https://chatgpt.com/favicon.ico"],
|
|
43
|
+
tags: ["ai", "openai"],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: "openai",
|
|
47
|
+
name: "OpenAI",
|
|
48
|
+
aliases: ["openai", "openai api"],
|
|
49
|
+
preferredRuleSetTags: ["geosite-openai"],
|
|
50
|
+
fallbackDomainSuffixes: [
|
|
51
|
+
"openai.com",
|
|
52
|
+
"oaistatic.com",
|
|
53
|
+
"oaiusercontent.com",
|
|
54
|
+
"openaiapi-site.azureedge.net",
|
|
55
|
+
"openaicom.imgix.net",
|
|
56
|
+
],
|
|
57
|
+
fallbackDomains: [
|
|
58
|
+
"openai-api.arkoselabs.com",
|
|
59
|
+
"production-openaicom-storage.azureedge.net",
|
|
60
|
+
"openaicomproductionae4b.blob.core.windows.net",
|
|
61
|
+
],
|
|
62
|
+
verificationUrls: ["https://openai.com/favicon.ico"],
|
|
63
|
+
tags: ["ai"],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: "gemini",
|
|
67
|
+
name: "Gemini",
|
|
68
|
+
aliases: ["gemini", "google gemini"],
|
|
69
|
+
preferredRuleSetTags: ["geosite-google-gemini"],
|
|
70
|
+
fallbackDomainSuffixes: [
|
|
71
|
+
"gemini.google.com",
|
|
72
|
+
"generativelanguage.googleapis.com",
|
|
73
|
+
"proactivebackend-pa.googleapis.com",
|
|
74
|
+
"aisandbox-pa.googleapis.com",
|
|
75
|
+
"robinfrontend-pa.googleapis.com",
|
|
76
|
+
"alkalimakersuite-pa.clients6.google.com",
|
|
77
|
+
"alkalicore-pa.clients6.google.com",
|
|
78
|
+
"waa-pa.clients6.google.com",
|
|
79
|
+
],
|
|
80
|
+
fallbackDomains: ["ai.google.dev", "makersuite.google.com", "aistudio.google.com"],
|
|
81
|
+
verificationUrls: ["https://gemini.google.com/favicon.ico"],
|
|
82
|
+
tags: ["ai", "google"],
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "anthropic",
|
|
86
|
+
name: "Anthropic / Claude",
|
|
87
|
+
aliases: ["anthropic", "claude", "claude ai"],
|
|
88
|
+
preferredRuleSetTags: ["geosite-anthropic"],
|
|
89
|
+
fallbackDomainSuffixes: ["anthropic.com", "claude.ai"],
|
|
90
|
+
verificationUrls: ["https://claude.ai/favicon.ico"],
|
|
91
|
+
tags: ["ai"],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: "github",
|
|
95
|
+
name: "GitHub",
|
|
96
|
+
aliases: ["github", "github copilot"],
|
|
97
|
+
preferredRuleSetTags: ["geosite-github", "geosite-github-copilot"],
|
|
98
|
+
fallbackDomainSuffixes: ["github.com", "githubusercontent.com"],
|
|
99
|
+
verificationUrls: ["https://github.com/favicon.ico"],
|
|
100
|
+
tags: ["developer"],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: "google-services",
|
|
104
|
+
name: "Google Services",
|
|
105
|
+
aliases: ["google 服务", "google services"],
|
|
106
|
+
preferredRuleSetTags: ["geosite-google"],
|
|
107
|
+
fallbackDomainSuffixes: [
|
|
108
|
+
"google.com",
|
|
109
|
+
"googleapis.com",
|
|
110
|
+
"gstatic.com",
|
|
111
|
+
"googlevideo.com",
|
|
112
|
+
"1e100.net",
|
|
113
|
+
"appspot.com",
|
|
114
|
+
"gcr.io",
|
|
115
|
+
"gvt0.com",
|
|
116
|
+
"gvt1.com",
|
|
117
|
+
],
|
|
118
|
+
verificationUrls: ["https://www.google.com/favicon.ico"],
|
|
119
|
+
tags: ["google", "services"],
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
id: "apple-services",
|
|
123
|
+
name: "Apple Services",
|
|
124
|
+
aliases: ["apple 服务", "apple services", "icloud"],
|
|
125
|
+
preferredRuleSetTags: ["geosite-apple"],
|
|
126
|
+
fallbackDomainSuffixes: ["apple.com", "icloud.com", "mzstatic.com", "apple-dns.net"],
|
|
127
|
+
fallbackDomains: ["apple-relay.apple.com"],
|
|
128
|
+
verificationUrls: ["https://www.icloud.com/favicon.ico"],
|
|
129
|
+
tags: ["apple", "services"],
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
id: "google-stitch",
|
|
133
|
+
name: "Google Stitch",
|
|
134
|
+
aliases: ["google stitch", "stitch"],
|
|
135
|
+
fallbackDomainSuffixes: ["stitch.withgoogle.com"],
|
|
136
|
+
verificationUrls: ["https://stitch.withgoogle.com/favicon.ico"],
|
|
137
|
+
tags: ["google", "developer"],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: "google-tv",
|
|
141
|
+
name: "Google TV",
|
|
142
|
+
aliases: ["google tv"],
|
|
143
|
+
fallbackDomains: ["tv.youtube.com"],
|
|
144
|
+
verificationUrls: ["https://tv.youtube.com/favicon.ico"],
|
|
145
|
+
tags: ["video", "google"],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: "youtube",
|
|
149
|
+
name: "YouTube",
|
|
150
|
+
aliases: ["youtube"],
|
|
151
|
+
preferredRuleSetTags: ["geosite-youtube"],
|
|
152
|
+
fallbackDomainSuffixes: ["youtube.com", "youtu.be", "ytimg.com"],
|
|
153
|
+
verificationUrls: ["https://www.youtube.com/favicon.ico"],
|
|
154
|
+
tags: ["video"],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
id: "netflix",
|
|
158
|
+
name: "Netflix",
|
|
159
|
+
aliases: ["netflix"],
|
|
160
|
+
preferredRuleSetTags: ["geosite-netflix"],
|
|
161
|
+
fallbackDomainSuffixes: [
|
|
162
|
+
"netflix.com",
|
|
163
|
+
"netflix.net",
|
|
164
|
+
"nflxext.com",
|
|
165
|
+
"nflximg.com",
|
|
166
|
+
"nflximg.net",
|
|
167
|
+
"nflxso.net",
|
|
168
|
+
"nflxvideo.net",
|
|
169
|
+
"fast.com",
|
|
170
|
+
],
|
|
171
|
+
verificationUrls: ["https://www.netflix.com/favicon.ico"],
|
|
172
|
+
tags: ["video"],
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
id: "amazon-prime",
|
|
176
|
+
name: "Amazon Prime Video",
|
|
177
|
+
aliases: ["amazon prime", "prime video", "primevideo", "amazon video"],
|
|
178
|
+
preferredRuleSetTags: ["geosite-primevideo"],
|
|
179
|
+
fallbackDomainSuffixes: ["primevideo.com", "amazonvideo.com"],
|
|
180
|
+
verificationUrls: ["https://www.primevideo.com/favicon.ico"],
|
|
181
|
+
tags: ["video"],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
id: "disney-plus",
|
|
185
|
+
name: "Disney+",
|
|
186
|
+
aliases: ["disney+", "disney plus", "disneyplus"],
|
|
187
|
+
preferredRuleSetTags: ["geosite-disney"],
|
|
188
|
+
fallbackDomainSuffixes: [
|
|
189
|
+
"disneyplus.com",
|
|
190
|
+
"disney-plus.net",
|
|
191
|
+
"disneystreaming.com",
|
|
192
|
+
"bamgrid.com",
|
|
193
|
+
"dssott.com",
|
|
194
|
+
],
|
|
195
|
+
fallbackDomains: ["cdn.registerdisney.go.com"],
|
|
196
|
+
verificationUrls: ["https://www.disneyplus.com/favicon.ico"],
|
|
197
|
+
tags: ["video"],
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
id: "apple-tv",
|
|
201
|
+
name: "Apple TV",
|
|
202
|
+
aliases: ["apple tv"],
|
|
203
|
+
preferredRuleSetTags: ["geosite-apple-tvplus"],
|
|
204
|
+
fallbackDomainSuffixes: ["tv.apple.com"],
|
|
205
|
+
verificationUrls: ["https://tv.apple.com/favicon.ico"],
|
|
206
|
+
tags: ["video", "apple"],
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
id: "bilibili",
|
|
210
|
+
name: "Bilibili",
|
|
211
|
+
aliases: ["bilibili", "b站"],
|
|
212
|
+
preferredRuleSetTags: ["geosite-bilibili"],
|
|
213
|
+
fallbackDomainSuffixes: ["bilibili.com", "bilibili.tv"],
|
|
214
|
+
verificationUrls: ["https://www.bilibili.com/favicon.ico"],
|
|
215
|
+
tags: ["video", "cn"],
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: "iqiyi",
|
|
219
|
+
name: "iQIYI",
|
|
220
|
+
aliases: ["iqiyi", "爱奇艺"],
|
|
221
|
+
preferredRuleSetTags: ["geosite-iqiyi"],
|
|
222
|
+
fallbackDomainSuffixes: ["iqiyi.com", "iq.com"],
|
|
223
|
+
verificationUrls: ["https://www.iqiyi.com/favicon.ico"],
|
|
224
|
+
tags: ["video", "cn"],
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
id: "youku",
|
|
228
|
+
name: "Youku",
|
|
229
|
+
aliases: ["youku", "优酷"],
|
|
230
|
+
preferredRuleSetTags: ["geosite-youku"],
|
|
231
|
+
fallbackDomainSuffixes: ["youku.com"],
|
|
232
|
+
verificationUrls: ["https://www.youku.com/favicon.ico"],
|
|
233
|
+
tags: ["video", "cn"],
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
id: "mgtv",
|
|
237
|
+
name: "MGTV",
|
|
238
|
+
aliases: ["mgtv", "芒果tv", "芒果"],
|
|
239
|
+
fallbackDomainSuffixes: ["mgtv.com"],
|
|
240
|
+
verificationUrls: ["https://www.mgtv.com/favicon.ico"],
|
|
241
|
+
tags: ["video", "cn"],
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
id: "line",
|
|
245
|
+
name: "LINE",
|
|
246
|
+
aliases: ["line"],
|
|
247
|
+
preferredRuleSetTags: ["geosite-line"],
|
|
248
|
+
fallbackDomainSuffixes: [
|
|
249
|
+
"line.me",
|
|
250
|
+
"line.naver.jp",
|
|
251
|
+
"line-apps.com",
|
|
252
|
+
"line-cdn.net",
|
|
253
|
+
"line-scdn.net",
|
|
254
|
+
"lin.ee",
|
|
255
|
+
],
|
|
256
|
+
verificationUrls: ["https://line.me/favicon.ico"],
|
|
257
|
+
tags: ["social"],
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: "bbc",
|
|
261
|
+
name: "BBC",
|
|
262
|
+
aliases: ["bbc"],
|
|
263
|
+
preferredRuleSetTags: ["geosite-bbc"],
|
|
264
|
+
fallbackDomainSuffixes: ["bbc.co", "bbc.com"],
|
|
265
|
+
verificationUrls: ["https://www.bbc.com/favicon.ico"],
|
|
266
|
+
tags: ["media"],
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: "microsoft-services",
|
|
270
|
+
name: "Microsoft Services",
|
|
271
|
+
aliases: ["microsoft", "copilot microsoft", "bing copilot"],
|
|
272
|
+
preferredRuleSetTags: ["geosite-microsoft"],
|
|
273
|
+
fallbackDomainSuffixes: [
|
|
274
|
+
"bing.com",
|
|
275
|
+
"bing.net",
|
|
276
|
+
"live.com",
|
|
277
|
+
"live.net",
|
|
278
|
+
"msn.com",
|
|
279
|
+
"office.com",
|
|
280
|
+
"office.net",
|
|
281
|
+
"outlook.com",
|
|
282
|
+
"office365.com",
|
|
283
|
+
"onedrive.com",
|
|
284
|
+
"onenote.com",
|
|
285
|
+
"hotmail.com",
|
|
286
|
+
"msedge.net",
|
|
287
|
+
],
|
|
288
|
+
fallbackDomains: [
|
|
289
|
+
"api.msn.com",
|
|
290
|
+
"assets.msn.com",
|
|
291
|
+
"content.office.net",
|
|
292
|
+
"copilot.microsoft.com",
|
|
293
|
+
],
|
|
294
|
+
verificationUrls: ["https://www.bing.com/favicon.ico"],
|
|
295
|
+
tags: ["microsoft", "services"],
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
id: "xai",
|
|
299
|
+
name: "xAI / Grok",
|
|
300
|
+
aliases: ["xai", "grok"],
|
|
301
|
+
preferredRuleSetTags: ["geosite-xai"],
|
|
302
|
+
fallbackDomainSuffixes: ["x.ai", "grok.com"],
|
|
303
|
+
verificationUrls: ["https://x.ai/favicon.ico"],
|
|
304
|
+
tags: ["ai"],
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
id: "leetcode",
|
|
308
|
+
name: "LeetCode",
|
|
309
|
+
aliases: ["leetcode", "力扣"],
|
|
310
|
+
fallbackDomainSuffixes: ["leetcode.com"],
|
|
311
|
+
verificationUrls: ["https://leetcode.com/favicon.ico"],
|
|
312
|
+
tags: ["developer", "learning"],
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
id: "tradingview",
|
|
316
|
+
name: "TradingView",
|
|
317
|
+
aliases: ["tradingview", "trading view"],
|
|
318
|
+
fallbackDomainSuffixes: ["tradingview.com"],
|
|
319
|
+
verificationUrls: ["https://www.tradingview.com/favicon.ico"],
|
|
320
|
+
tags: ["finance", "tools"],
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
id: "typingmind",
|
|
324
|
+
name: "TypingMind",
|
|
325
|
+
aliases: ["typingmind", "typing mind"],
|
|
326
|
+
fallbackDomainSuffixes: ["typingmind.com"],
|
|
327
|
+
verificationUrls: ["https://www.typingmind.com/favicon.ico"],
|
|
328
|
+
tags: ["ai", "tools"],
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
id: "roam-research",
|
|
332
|
+
name: "Roam Research",
|
|
333
|
+
aliases: ["roam research", "roamresearch"],
|
|
334
|
+
fallbackDomainSuffixes: ["roamresearch.com"],
|
|
335
|
+
verificationUrls: ["https://roamresearch.com/favicon.ico"],
|
|
336
|
+
tags: ["notes", "tools"],
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
id: "todoist",
|
|
340
|
+
name: "Todoist",
|
|
341
|
+
aliases: ["todoist"],
|
|
342
|
+
fallbackDomainSuffixes: ["todoist.com"],
|
|
343
|
+
verificationUrls: ["https://todoist.com/favicon.ico"],
|
|
344
|
+
tags: ["productivity", "tools"],
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
id: "ifttt",
|
|
348
|
+
name: "IFTTT",
|
|
349
|
+
aliases: ["ifttt"],
|
|
350
|
+
fallbackDomainSuffixes: ["ifttt.com", "ift.tt"],
|
|
351
|
+
verificationUrls: ["https://ifttt.com/favicon.ico"],
|
|
352
|
+
tags: ["automation", "tools"],
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
id: "humble-bundle",
|
|
356
|
+
name: "Humble Bundle",
|
|
357
|
+
aliases: ["humble bundle", "humblebundle"],
|
|
358
|
+
fallbackDomainSuffixes: ["humblebundle.com"],
|
|
359
|
+
verificationUrls: ["https://www.humblebundle.com/favicon.ico"],
|
|
360
|
+
tags: ["gaming", "store"],
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
id: "fanatical",
|
|
364
|
+
name: "Fanatical",
|
|
365
|
+
aliases: ["fanatical"],
|
|
366
|
+
fallbackDomainSuffixes: ["fanatical.com"],
|
|
367
|
+
verificationUrls: ["https://www.fanatical.com/favicon.ico"],
|
|
368
|
+
tags: ["gaming", "store"],
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
id: "grindr",
|
|
372
|
+
name: "Grindr",
|
|
373
|
+
aliases: ["grindr"],
|
|
374
|
+
fallbackDomainSuffixes: ["grindr.com", "grindr.mobi"],
|
|
375
|
+
verificationUrls: ["https://www.grindr.com/favicon.ico"],
|
|
376
|
+
tags: ["social"],
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
id: "behance",
|
|
380
|
+
name: "Behance",
|
|
381
|
+
aliases: ["behance"],
|
|
382
|
+
fallbackDomainSuffixes: ["behance.net"],
|
|
383
|
+
verificationUrls: ["https://www.behance.net/favicon.ico"],
|
|
384
|
+
tags: ["design", "community"],
|
|
385
|
+
},
|
|
386
|
+
];
|
|
387
|
+
const processBundleDefinitionInputs = [
|
|
388
|
+
{
|
|
389
|
+
id: "antigravity",
|
|
390
|
+
name: "Antigravity",
|
|
391
|
+
description: "Google Antigravity desktop app, helpers, and language services.",
|
|
392
|
+
promptAliases: ["antigravity", "google antigravity", "google.antigravity"],
|
|
393
|
+
targetOutboundGroup: "Process-Proxy",
|
|
394
|
+
tags: ["ai", "desktop", "google"],
|
|
395
|
+
processMatchers: [
|
|
396
|
+
{ processName: "Antigravity.app" },
|
|
397
|
+
{ processName: "Antigravity" },
|
|
398
|
+
{ bundleId: "com.google.antigravity" },
|
|
399
|
+
{ processName: "*Antigravity*" },
|
|
400
|
+
{ processName: "language_server_macos_arm" },
|
|
401
|
+
{ processName: "antigravity-auto-updater" },
|
|
402
|
+
{ processName: "*antigravity*" },
|
|
403
|
+
],
|
|
404
|
+
notes: [
|
|
405
|
+
"Use this bundle when Antigravity or its language server does not honor the normal system proxy path.",
|
|
406
|
+
],
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
id: "cursor",
|
|
410
|
+
name: "Cursor",
|
|
411
|
+
description: "Cursor desktop app and helper processes.",
|
|
412
|
+
promptAliases: ["cursor"],
|
|
413
|
+
targetOutboundGroup: "Process-Proxy",
|
|
414
|
+
tags: ["developer", "desktop", "editor"],
|
|
415
|
+
processMatchers: [
|
|
416
|
+
{ processName: "Cursor" },
|
|
417
|
+
{ processName: "Cursor.app" },
|
|
418
|
+
{ processName: "Cursor Helper" },
|
|
419
|
+
{ processName: "cursor" },
|
|
420
|
+
{ processName: "*cursor*" },
|
|
421
|
+
],
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
id: "vscode",
|
|
425
|
+
name: "VS Code",
|
|
426
|
+
description: "Visual Studio Code desktop app, helper processes, and CLI entrypoints.",
|
|
427
|
+
promptAliases: ["vscode", "vs code", "visual studio code", "code helper"],
|
|
428
|
+
targetOutboundGroup: "Process-Proxy",
|
|
429
|
+
tags: ["developer", "desktop", "editor"],
|
|
430
|
+
processMatchers: [
|
|
431
|
+
{ processName: "Visual Studio Code" },
|
|
432
|
+
{ processName: "Code" },
|
|
433
|
+
{ processName: "Code Helper" },
|
|
434
|
+
{ bundleId: "com.microsoft.VSCode" },
|
|
435
|
+
{ processName: "code" },
|
|
436
|
+
],
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
id: "claude-code",
|
|
440
|
+
name: "Claude Code",
|
|
441
|
+
description: "Claude CLI and related coding-agent processes.",
|
|
442
|
+
promptAliases: ["claude code", "claude cli"],
|
|
443
|
+
targetOutboundGroup: "Process-Proxy",
|
|
444
|
+
tags: ["ai", "cli", "developer"],
|
|
445
|
+
processMatchers: [{ processName: "claude" }, { processName: "claude-code" }],
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
id: "gemini-cli",
|
|
449
|
+
name: "Gemini CLI",
|
|
450
|
+
description: "Gemini CLI and related local agent processes.",
|
|
451
|
+
promptAliases: ["gemini cli"],
|
|
452
|
+
targetOutboundGroup: "Process-Proxy",
|
|
453
|
+
tags: ["ai", "cli", "developer"],
|
|
454
|
+
processMatchers: [{ processName: "gemini" }, { processName: "gemini-cli" }],
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
id: "codex",
|
|
458
|
+
name: "Codex",
|
|
459
|
+
description: "Codex desktop or CLI agent processes.",
|
|
460
|
+
promptAliases: ["codex", "codex cli"],
|
|
461
|
+
targetOutboundGroup: "Process-Proxy",
|
|
462
|
+
tags: ["ai", "cli", "developer"],
|
|
463
|
+
processMatchers: [{ processName: "codex" }, { processName: "codex-cli" }],
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
id: "copilot-cli",
|
|
467
|
+
name: "Copilot CLI",
|
|
468
|
+
description: "GitHub Copilot CLI-style developer tooling processes.",
|
|
469
|
+
promptAliases: ["copilot cli", "copilot", "github copilot"],
|
|
470
|
+
targetOutboundGroup: "Process-Proxy",
|
|
471
|
+
tags: ["developer", "cli", "github"],
|
|
472
|
+
processMatchers: [
|
|
473
|
+
{ processName: "copilot" },
|
|
474
|
+
{ processName: "github-copilot" },
|
|
475
|
+
{ processName: "copilot-cli" },
|
|
476
|
+
],
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
id: "codebuddy",
|
|
480
|
+
name: "CodeBuddy",
|
|
481
|
+
description: "CodeBuddy / CBC local coding assistant CLIs.",
|
|
482
|
+
promptAliases: ["codebuddy", "cbc"],
|
|
483
|
+
targetOutboundGroup: "Process-Proxy",
|
|
484
|
+
tags: ["ai", "cli", "developer"],
|
|
485
|
+
processMatchers: [{ processName: "codebuddy" }, { processName: "cbc" }],
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
id: "opencode",
|
|
489
|
+
name: "OpenCode",
|
|
490
|
+
description: "OpenCode local coding agent CLI.",
|
|
491
|
+
promptAliases: ["opencode"],
|
|
492
|
+
targetOutboundGroup: "Process-Proxy",
|
|
493
|
+
tags: ["ai", "cli", "developer"],
|
|
494
|
+
processMatchers: [{ processName: "opencode" }],
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
id: "qoder",
|
|
498
|
+
name: "Qoder CLI",
|
|
499
|
+
description: "Qoder local coding assistant CLI.",
|
|
500
|
+
promptAliases: ["qoder", "qodercli"],
|
|
501
|
+
targetOutboundGroup: "Process-Proxy",
|
|
502
|
+
tags: ["ai", "cli", "developer"],
|
|
503
|
+
processMatchers: [{ processName: "qoder" }, { processName: "qodercli" }],
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
id: "trae",
|
|
507
|
+
name: "Trae",
|
|
508
|
+
description: "Trae local AI coding launcher and helper processes.",
|
|
509
|
+
promptAliases: ["trae"],
|
|
510
|
+
targetOutboundGroup: "Process-Proxy",
|
|
511
|
+
tags: ["ai", "developer", "tooling"],
|
|
512
|
+
processMatchers: [{ processName: "trae" }],
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
id: "developer-ai-cli",
|
|
516
|
+
name: "Developer AI CLI",
|
|
517
|
+
description: "A convenience bundle for common coding-agent and AI CLI tools.",
|
|
518
|
+
promptAliases: ["ai ide", "ai cli", "coding agent", "developer ai"],
|
|
519
|
+
targetOutboundGroup: "Process-Proxy",
|
|
520
|
+
tags: ["ai", "cli", "developer"],
|
|
521
|
+
processMatchers: [
|
|
522
|
+
{ processName: "claude" },
|
|
523
|
+
{ processName: "codex" },
|
|
524
|
+
{ processName: "gemini" },
|
|
525
|
+
{ processName: "codebuddy" },
|
|
526
|
+
{ processName: "cbc" },
|
|
527
|
+
{ processName: "opencode" },
|
|
528
|
+
{ processName: "qoder" },
|
|
529
|
+
{ processName: "qodercli" },
|
|
530
|
+
{ processName: "trae" },
|
|
531
|
+
],
|
|
532
|
+
notes: [
|
|
533
|
+
"Use this bundle when you want a single catch-all process list for developer AI tools.",
|
|
534
|
+
],
|
|
535
|
+
},
|
|
536
|
+
];
|
|
537
|
+
const processBundleDefinitions = processBundleDefinitionInputs.map((bundle) => ({
|
|
538
|
+
id: bundle.id,
|
|
539
|
+
name: bundle.name,
|
|
540
|
+
description: bundle.description,
|
|
541
|
+
promptAliases: bundle.promptAliases,
|
|
542
|
+
proxifierMatchers: bundle.processMatchers,
|
|
543
|
+
nativeMatchers: bundle.nativeMatchers ?? deriveNativeMatchers(bundle.processMatchers),
|
|
544
|
+
targetOutboundGroup: bundle.targetOutboundGroup,
|
|
545
|
+
tags: bundle.tags,
|
|
546
|
+
...(bundle.notes ? { notes: bundle.notes } : {}),
|
|
547
|
+
}));
|
|
548
|
+
export function listSiteBundles() {
|
|
549
|
+
return siteBundleDefinitions;
|
|
550
|
+
}
|
|
551
|
+
export function getSiteBundle(id) {
|
|
552
|
+
return siteBundleDefinitions.find((bundle) => bundle.id === id);
|
|
553
|
+
}
|
|
554
|
+
export function listProcessBundles() {
|
|
555
|
+
return processBundleDefinitions;
|
|
556
|
+
}
|
|
557
|
+
export function getProcessBundle(id) {
|
|
558
|
+
return processBundleDefinitions.find((bundle) => bundle.id === id);
|
|
559
|
+
}
|
|
560
|
+
export function resolveNativeProcessMatchersFromBundles(bundleIds) {
|
|
561
|
+
const resolved = [];
|
|
562
|
+
const seen = new Set();
|
|
563
|
+
for (const bundleId of bundleIds) {
|
|
564
|
+
const bundle = getProcessBundle(bundleId);
|
|
565
|
+
if (!bundle) {
|
|
566
|
+
continue;
|
|
567
|
+
}
|
|
568
|
+
for (const matcher of bundle.nativeMatchers) {
|
|
569
|
+
const key = JSON.stringify(matcher);
|
|
570
|
+
if (seen.has(key)) {
|
|
571
|
+
continue;
|
|
572
|
+
}
|
|
573
|
+
seen.add(key);
|
|
574
|
+
resolved.push(matcher);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
return resolved;
|
|
578
|
+
}
|
|
579
|
+
export function hasGenericProcessIntent(text) {
|
|
580
|
+
const normalized = normalizeText(text);
|
|
581
|
+
return genericProcessIntentAliases.some((alias) => normalized.includes(alias));
|
|
582
|
+
}
|
|
583
|
+
export function selectSiteBundlesFromText(text) {
|
|
584
|
+
const normalized = normalizeText(text);
|
|
585
|
+
return siteBundleDefinitions.filter((bundle) => bundle.aliases.some((alias) => normalized.includes(alias)));
|
|
586
|
+
}
|
|
587
|
+
export function selectProcessBundlesFromText(text) {
|
|
588
|
+
const normalized = normalizeText(text);
|
|
589
|
+
const selected = new Set();
|
|
590
|
+
if (hasGenericProcessIntent(normalized)) {
|
|
591
|
+
selected.add("developer-ai-cli");
|
|
592
|
+
selected.add("antigravity");
|
|
593
|
+
}
|
|
594
|
+
for (const bundle of processBundleDefinitions) {
|
|
595
|
+
if (bundle.promptAliases.some((alias) => normalized.includes(alias))) {
|
|
596
|
+
selected.add(bundle.id);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
return processBundleDefinitions.filter((bundle) => selected.has(bundle.id));
|
|
600
|
+
}
|
|
601
|
+
export function listBuiltInPreferredSiteRuleSetTags() {
|
|
602
|
+
const tags = new Set();
|
|
603
|
+
for (const bundle of siteBundleDefinitions) {
|
|
604
|
+
for (const tag of bundle.preferredRuleSetTags ?? []) {
|
|
605
|
+
tags.add(tag);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
return [...tags].sort();
|
|
609
|
+
}
|
|
610
|
+
export function resolveSiteBundleMatchers(bundles, activeRuleSetTags) {
|
|
611
|
+
const resolved = [];
|
|
612
|
+
for (const bundle of bundles) {
|
|
613
|
+
const preferredRuleSets = (bundle.preferredRuleSetTags ?? []).filter((tag) => activeRuleSetTags.has(tag));
|
|
614
|
+
if (preferredRuleSets.length > 0) {
|
|
615
|
+
resolved.push({
|
|
616
|
+
bundleId: bundle.id,
|
|
617
|
+
bundleName: bundle.name,
|
|
618
|
+
ruleSet: preferredRuleSets,
|
|
619
|
+
usedFallback: false,
|
|
620
|
+
});
|
|
621
|
+
continue;
|
|
622
|
+
}
|
|
623
|
+
if ((!bundle.fallbackDomains || bundle.fallbackDomains.length === 0) &&
|
|
624
|
+
(!bundle.fallbackDomainSuffixes || bundle.fallbackDomainSuffixes.length === 0)) {
|
|
625
|
+
continue;
|
|
626
|
+
}
|
|
627
|
+
resolved.push({
|
|
628
|
+
bundleId: bundle.id,
|
|
629
|
+
bundleName: bundle.name,
|
|
630
|
+
...(bundle.fallbackDomains && bundle.fallbackDomains.length > 0
|
|
631
|
+
? { domain: [...bundle.fallbackDomains] }
|
|
632
|
+
: {}),
|
|
633
|
+
...(bundle.fallbackDomainSuffixes && bundle.fallbackDomainSuffixes.length > 0
|
|
634
|
+
? { domainSuffix: [...bundle.fallbackDomainSuffixes] }
|
|
635
|
+
: {}),
|
|
636
|
+
usedFallback: true,
|
|
637
|
+
});
|
|
638
|
+
}
|
|
639
|
+
return resolved;
|
|
640
|
+
}
|
|
641
|
+
export function collectSiteBundleFallbackHosts(bundles) {
|
|
642
|
+
const domains = new Set();
|
|
643
|
+
for (const bundle of bundles) {
|
|
644
|
+
for (const domain of bundle.fallbackDomains ?? []) {
|
|
645
|
+
domains.add(domain);
|
|
646
|
+
}
|
|
647
|
+
for (const domain of bundle.fallbackDomainSuffixes ?? []) {
|
|
648
|
+
domains.add(domain);
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
return [...domains];
|
|
652
|
+
}
|
|
653
|
+
export function collectSiteBundleVerificationHosts(bundles) {
|
|
654
|
+
const hosts = new Set();
|
|
655
|
+
for (const bundle of bundles) {
|
|
656
|
+
for (const url of bundle.verificationUrls) {
|
|
657
|
+
try {
|
|
658
|
+
hosts.add(new URL(url).hostname.toLowerCase());
|
|
659
|
+
}
|
|
660
|
+
catch { }
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
return [...hosts];
|
|
664
|
+
}
|
|
665
|
+
function normalizeText(text) {
|
|
666
|
+
return text.toLowerCase();
|
|
667
|
+
}
|
|
668
|
+
function deriveNativeMatchers(matchers) {
|
|
669
|
+
const derived = [];
|
|
670
|
+
const seen = new Set();
|
|
671
|
+
for (const matcher of matchers) {
|
|
672
|
+
if (matcher.processName && !matcher.processName.includes("*")) {
|
|
673
|
+
const nativeMatcher = { processName: matcher.processName };
|
|
674
|
+
const key = JSON.stringify(nativeMatcher);
|
|
675
|
+
if (!seen.has(key)) {
|
|
676
|
+
seen.add(key);
|
|
677
|
+
derived.push(nativeMatcher);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
if (matcher.pathRegex) {
|
|
681
|
+
const nativeMatcher = { processPathRegex: matcher.pathRegex };
|
|
682
|
+
const key = JSON.stringify(nativeMatcher);
|
|
683
|
+
if (!seen.has(key)) {
|
|
684
|
+
seen.add(key);
|
|
685
|
+
derived.push(nativeMatcher);
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
return derived;
|
|
690
|
+
}
|
|
691
|
+
//# sourceMappingURL=index.js.map
|