dsh-web-search-pro 0.2.0 → 0.2.1

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/CHANGELOG.md +15 -0
  2. package/README.md +75 -6
  3. package/assets/skills/dsh-web-search-pro/SKILL.md +1 -1
  4. package/assets/skills/dsh-web-search-pro/references/sources.md +11 -2
  5. package/catalog/sources.v1.json +20 -12
  6. package/lib/actions/search.js +5 -4
  7. package/lib/actions/search.js.map +1 -1
  8. package/lib/actions/sources.js +42 -25
  9. package/lib/actions/sources.js.map +1 -1
  10. package/lib/cli/builtin-specs.js +306 -0
  11. package/lib/cli/builtin-specs.js.map +1 -0
  12. package/lib/cli/chain.js +192 -0
  13. package/lib/cli/chain.js.map +1 -0
  14. package/lib/cli/chains-spec.js +98 -0
  15. package/lib/cli/chains-spec.js.map +1 -0
  16. package/lib/cli/engine.js +83 -0
  17. package/lib/cli/engine.js.map +1 -0
  18. package/lib/cli/opencli.js +105 -0
  19. package/lib/cli/opencli.js.map +1 -0
  20. package/lib/cli/probe.js +128 -0
  21. package/lib/cli/probe.js.map +1 -0
  22. package/lib/cli/runner.js +374 -0
  23. package/lib/cli/runner.js.map +1 -0
  24. package/lib/cli/spec.js +416 -0
  25. package/lib/cli/spec.js.map +1 -0
  26. package/lib/client/SettingsCard.js +1 -1
  27. package/lib/client/SettingsCard.js.map +1 -1
  28. package/lib/client/form-specs.js +2 -0
  29. package/lib/client/form-specs.js.map +1 -1
  30. package/lib/client/form.js +14 -3
  31. package/lib/client/form.js.map +1 -1
  32. package/lib/client/locales.js +4 -0
  33. package/lib/client/locales.js.map +1 -1
  34. package/lib/client/validators.js +15 -0
  35. package/lib/client/validators.js.map +1 -1
  36. package/lib/client.js +1425 -3
  37. package/lib/client.js.map +1 -1
  38. package/lib/config.js +4 -0
  39. package/lib/config.js.map +1 -1
  40. package/lib/deps.js +109 -102
  41. package/lib/deps.js.map +1 -1
  42. package/lib/engine-error.js +19 -0
  43. package/lib/engine-error.js.map +1 -0
  44. package/lib/engines.js +31 -114
  45. package/lib/engines.js.map +1 -1
  46. package/lib/pipeline/candidates.js.map +1 -1
  47. package/lib/pipeline/run.js +4 -2
  48. package/lib/pipeline/run.js.map +1 -1
  49. package/lib/providers/builtin.js +10 -14
  50. package/lib/providers/builtin.js.map +1 -1
  51. package/lib/providers/platforms.js +114 -55
  52. package/lib/providers/platforms.js.map +1 -1
  53. package/lib/providers/registry.js.map +1 -1
  54. package/lib/router.js +63 -6
  55. package/lib/router.js.map +1 -1
  56. package/lib/types/cli/builtin-specs.d.ts +30 -0
  57. package/lib/types/cli/chain.d.ts +83 -0
  58. package/lib/types/cli/chains-spec.d.ts +39 -0
  59. package/lib/types/cli/engine.d.ts +43 -0
  60. package/lib/types/cli/opencli.d.ts +38 -0
  61. package/lib/types/cli/probe.d.ts +53 -0
  62. package/lib/types/cli/runner.d.ts +87 -0
  63. package/lib/types/cli/spec.d.ts +176 -0
  64. package/lib/types/client/form-specs.d.ts +1 -1
  65. package/lib/types/client/locales.d.ts +4 -0
  66. package/lib/types/client/validators.d.ts +6 -0
  67. package/lib/types/config.d.ts +11 -0
  68. package/lib/types/deps.d.ts +25 -23
  69. package/lib/types/engine-error.d.ts +12 -0
  70. package/lib/types/engines.d.ts +16 -9
  71. package/lib/types/index.d.ts +4 -0
  72. package/lib/types/pipeline/candidates.d.ts +2 -0
  73. package/lib/types/pipeline/run.d.ts +2 -1
  74. package/lib/types/providers/platforms.d.ts +15 -3
  75. package/lib/types/providers/registry.d.ts +3 -0
  76. package/lib/types/router.d.ts +13 -0
  77. package/lib/types/util.d.ts +6 -1
  78. package/lib/util.js +7 -3
  79. package/lib/util.js.map +1 -1
  80. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-specs.js","sourceRoot":"","sources":["../../src/cli/builtin-specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Platform backend chains (dev-plan M12): every platform provider resolves an ORDERED chain of backends - a standalone CLI
3
+ * spec (xhs, rdt, zhihu, twitter, bili, yt-dlp, omnireach, gh, ...), the standalone OpenCLI (`opencli`), the dsh-browser
4
+ * OpenCLI bridge (`browser-opencli`), dsh-browser's rendered search page (`browser-search`), or the plugin's REST client
5
+ * (`rest`). The order is configurable (`platformBackends`). A backend that is missing, incompatible or not logged in is
6
+ * skipped with its reason; the provider is unavailable only when the whole chain is, and its error names what to install
7
+ * or run. Readiness is local: no search, no login.
8
+ * @module web-search-pro/cli/chain
9
+ */
10
+ import { githubCodeEngine, githubEngine, githubIssuesEngine, opencliEngine, playwrightPlatformEngine, } from "../engines.js";
11
+ import { browserGap } from "../browser-access.js";
12
+ import { BUILTIN_CLI_SPECS } from "./builtin-specs.js";
13
+ import { backendServes, CHAIN_PLATFORMS, DEFAULT_CHAINS, OPENCLI_SITE_OF } from "./chains-spec.js";
14
+ import { cliSpecEngine, disabledBySettings, probeError, specReadiness } from "./engine.js";
15
+ import { listOpencliSites, OPENCLI_PROBE, opencliSearchSpec } from "./opencli.js";
16
+ import { cachedProbe, probeCli } from "./probe.js";
17
+ import { CliAdapterError, runCliSearchDetailed } from "./runner.js";
18
+ import { resolveCliAdapters } from "./spec.js";
19
+ export { DEFAULT_CHAINS, CHAIN_PLATFORMS };
20
+ /** All specs a chain may use: the built-ins by id and the user's `cliAdapters` as `custom-cli:<id>`. */
21
+ export function allSpecs(config) {
22
+ const specs = new Map(BUILTIN_CLI_SPECS.map(spec => [spec.id, spec]));
23
+ const user = resolveCliAdapters(config.cliAdapters);
24
+ for (const [id, spec] of user.specs)
25
+ specs.set('custom-cli:' + id, spec);
26
+ return { specs, diagnostics: user.diagnostics };
27
+ }
28
+ const fromSpec = (r) => ({
29
+ ready: r.ready, installation: r.installation, ...r.version ? { version: r.version } : {}, ...r.credential ? { credential: r.credential } : {}, ...r.reason ? { reason: r.reason } : {},
30
+ ...r.code !== 'ok' ? { code: r.code } : {},
31
+ });
32
+ function specLeg(id, spec, platform, ctx) {
33
+ return {
34
+ id, kind: id.startsWith('custom-cli:') ? 'custom-cli' : 'cli', label: spec.bins[0],
35
+ engine: cliSpecEngine(spec, platform, ctx.deps, { id, label: spec.bins[0] }),
36
+ readiness: async () => fromSpec(await specReadiness(spec, ctx.deps)),
37
+ verification: spec.verification?.status ?? 'unverified',
38
+ };
39
+ }
40
+ function opencliLeg(platform, ctx) {
41
+ const site = OPENCLI_SITE_OF[platform];
42
+ const engine = {
43
+ id: 'opencli',
44
+ backend: 'opencli',
45
+ label: 'OpenCLI (standalone)',
46
+ available: () => !disabledBySettings({ id: 'opencli' }, ctx.deps) && (cachedProbe(OPENCLI_PROBE)?.state ?? 'detected') === 'detected',
47
+ async search(query, count, signal) {
48
+ const off = disabledBySettings({ id: 'opencli' }, ctx.deps);
49
+ if (off)
50
+ throw new CliAdapterError(off, 'CLI_NOT_FOUND');
51
+ const probe = await probeCli(OPENCLI_PROBE);
52
+ const failure = probe.state === 'detected' ? undefined : probeError(OPENCLI_PROBE, probe);
53
+ if (failure)
54
+ throw failure;
55
+ const listed = await listOpencliSites();
56
+ const entry = listed.sites?.get(site);
57
+ if (!entry)
58
+ throw new CliAdapterError(listed.problem ?? 'opencli has no read `search` command for the site ' + site + ' (opencli list)', 'CLI_CONTRACT_MISMATCH', 'run `opencli list` to see the sites your version supports');
59
+ const spec = opencliSearchSpec(platform, entry);
60
+ if (!spec)
61
+ throw new CliAdapterError('opencli site ' + site + ' cannot be used by this adapter', 'CLI_CONTRACT_MISMATCH');
62
+ const { sources, skipped } = await runCliSearchDetailed(spec, { query, count, signal }, { platform, bin: probe.path ?? 'opencli' });
63
+ return { sources, via: 'opencli', backend: 'opencli', ...skipped ? { notes: [skipped + ' result' + (skipped === 1 ? '' : 's') + ' without a link skipped'] } : {} };
64
+ },
65
+ };
66
+ return {
67
+ id: 'opencli', kind: 'opencli', label: 'OpenCLI (standalone)', engine, verification: 'contract-only',
68
+ async readiness() {
69
+ const off = disabledBySettings({ id: 'opencli' }, ctx.deps);
70
+ if (off)
71
+ return { ready: false, installation: 'missing', reason: 'opencli: ' + off, code: 'disabled' };
72
+ const probe = await probeCli(OPENCLI_PROBE);
73
+ if (probe.state !== 'detected')
74
+ return { ready: false, installation: probe.state, ...probe.version ? { version: probe.version } : {}, reason: 'opencli: ' + (probe.reason ?? 'not installed') + (probe.state === 'missing' ? '' : ''), code: probe.state === 'missing' ? 'cli_missing' : 'cli_incompatible' };
75
+ const listed = await listOpencliSites();
76
+ const entry = listed.sites?.get(site);
77
+ if (!entry)
78
+ return { ready: false, installation: 'detected', ...probe.version ? { version: probe.version } : {}, reason: 'opencli: ' + (listed.problem ?? 'no read `search` command for the site ' + site + ' in `opencli list`'), code: 'unsupported' };
79
+ return { ready: true, installation: 'detected', ...probe.version ? { version: probe.version } : {}, ...entry.strategy === 'public' ? { credential: 'not_required' } : {} };
80
+ },
81
+ };
82
+ }
83
+ function browserOpencliLeg(platform, ctx) {
84
+ const engine = { ...opencliEngine(platform, ctx.deps), backend: 'browser-opencli' };
85
+ return {
86
+ id: 'browser-opencli', kind: 'browser-opencli', label: 'dsh-browser OpenCLI', engine, verification: 'unverified',
87
+ async readiness() {
88
+ const gap = browserGap(ctx.deps.browser, 'opencli', 'platform ' + platform);
89
+ const off = !ctx.deps.enableCli ? 'CLI backends are disabled in settings (enableCliBackends)' : !ctx.deps.opencliEnabled ? 'the OpenCLI backend is disabled in settings (opencliEnabled)' : undefined;
90
+ const reason = gap ?? off;
91
+ const installation = !ctx.deps.browser ? 'missing' : gap ? 'incompatible' : 'detected';
92
+ return reason ? { ready: false, installation, reason: 'browser-opencli: ' + reason, code: gap ? 'browser_missing' : 'disabled' } : { ready: true, installation };
93
+ },
94
+ };
95
+ }
96
+ function browserSearchLeg(platform, ctx) {
97
+ const engine = { ...playwrightPlatformEngine(platform, ctx.deps), backend: 'browser-search' };
98
+ return {
99
+ id: 'browser-search', kind: 'browser-search', label: 'dsh-browser search page', engine, verification: 'unverified',
100
+ async readiness() {
101
+ const gap = browserGap(ctx.deps.browser, 'searchResults', 'platform ' + platform);
102
+ const bound = ctx.config.browserBindings?.[platform]?.authProfile;
103
+ return gap
104
+ ? { ready: false, installation: !ctx.deps.browser ? 'missing' : 'incompatible', ...bound ? { credential: 'configured' } : {}, reason: 'browser-search: ' + gap, code: 'browser_missing' }
105
+ : { ready: true, installation: 'detected', ...bound ? { credential: 'configured' } : {} };
106
+ },
107
+ };
108
+ }
109
+ const REST_ENGINES = { github: githubEngine, 'github-issues': githubIssuesEngine, 'github-code': githubCodeEngine };
110
+ function restLeg(platform, ctx) {
111
+ const engine = { ...REST_ENGINES[platform](ctx.deps), backend: 'rest' };
112
+ return {
113
+ id: 'rest', kind: 'rest', label: 'GitHub REST API', engine, verification: 'live',
114
+ async readiness() {
115
+ const ready = engine.available();
116
+ return ready
117
+ ? { ready, installation: 'not_required', credential: (ctx.deps.githubToken?.length ?? 0) > 0 ? 'configured' : 'not_required' }
118
+ : { ready, installation: 'not_required', credential: 'missing', reason: 'rest: GitHub code search requires authentication: set $GITHUB_TOKEN (or config githubToken)', code: 'not_logged_in' };
119
+ },
120
+ };
121
+ }
122
+ /** The chain of one platform: the configured (`platformBackends`) or default order, each id turned into a leg or into a diagnostic. */
123
+ export function resolveChain(platform, ctx) {
124
+ const { specs } = allSpecs(ctx.config);
125
+ const configured = ctx.config.platformBackends?.[platform];
126
+ const ids = configured ?? DEFAULT_CHAINS[platform] ?? (platform.startsWith('custom-cli:') ? [platform] : []);
127
+ const legs = [];
128
+ const diagnostics = [];
129
+ const skip = (id, why) => { diagnostics.push('platformBackends.' + platform + ': "' + id + '" ' + why); };
130
+ const serving = new Map([...specs].map(([id, spec]) => [id, spec.platforms]));
131
+ for (const id of ids) {
132
+ if (legs.some(leg => leg.id === id))
133
+ continue;
134
+ const served = backendServes(id, platform, serving);
135
+ if (!served.ok) {
136
+ skip(id, served.why ?? 'cannot serve this platform');
137
+ continue;
138
+ }
139
+ if (id === 'opencli')
140
+ legs.push(opencliLeg(platform, ctx));
141
+ else if (id === 'browser-opencli')
142
+ legs.push(browserOpencliLeg(platform, ctx));
143
+ else if (id === 'browser-search')
144
+ legs.push(browserSearchLeg(platform, ctx));
145
+ else if (id === 'rest')
146
+ legs.push(restLeg(platform, ctx));
147
+ else
148
+ legs.push(specLeg(id, specs.get(id), platform, ctx));
149
+ }
150
+ return { legs, diagnostics };
151
+ }
152
+ /** The credential state a chain reports: its first ready leg's; else `configured` when any leg has one (a binding counts), else `missing` when a leg lacks one. */
153
+ function credentialOf(ready, all) {
154
+ if (ready)
155
+ return ready;
156
+ return all.includes('configured') ? 'configured' : all.includes('missing') ? 'missing' : undefined;
157
+ }
158
+ /** Local readiness of a whole chain (one probe per leg, cached). */
159
+ export async function chainReport(platform, ctx) {
160
+ const { legs, diagnostics } = resolveChain(platform, ctx);
161
+ const checked = await Promise.all(legs.map(async (leg) => ({ leg, r: await leg.readiness().catch((error) => ({ ready: false, installation: 'missing', reason: leg.id + ': ' + (error instanceof Error ? error.message : String(error)), code: 'unsupported' })) })));
162
+ const entries = checked.map(({ leg, r }, index) => ({
163
+ id: leg.id, kind: leg.kind, label: leg.label, order: index + 1, state: r.ready ? 'ready' : 'skipped', installation: r.installation,
164
+ ...r.version ? { version: r.version } : {}, ...r.credential ? { credential: r.credential } : {}, ...r.reason ? { reason: r.reason } : {}, verification: leg.verification,
165
+ }));
166
+ const firstReady = checked.find(c => c.r.ready);
167
+ const rank = { detected: 3, incompatible: 2, not_required: 3, missing: 1 };
168
+ const best = checked.map(c => c.r).sort((a, b) => rank[b.installation] - rank[a.installation])[0];
169
+ const credentials = checked.map(c => c.r.credential);
170
+ const skipped = checked.filter(c => !c.r.ready);
171
+ const confirmed = checked.find(c => c.r.ready && (c.r.credential === 'configured' || c.r.credential === 'not_required'));
172
+ const state = confirmed ? 'ready' : firstReady ? 'login_unverified' : skipped.some(c => c.r.credential === 'missing') ? 'needs_login' : 'unavailable';
173
+ const unverified = checked.filter(c => c.r.ready && c.r.credential === undefined);
174
+ return {
175
+ entries,
176
+ available: !!firstReady,
177
+ state,
178
+ installation: firstReady ? firstReady.r.installation : best?.installation ?? 'missing',
179
+ ...credentialOf(firstReady?.r.credential, credentials) ? { credential: credentialOf(firstReady?.r.credential, credentials) } : {},
180
+ ...!firstReady ? {
181
+ reason: legs.length
182
+ ? 'no usable backend: ' + skipped.map(c => c.r.reason ?? c.leg.id + ' unavailable').join('; ')
183
+ : 'no usable backend: ' + (diagnostics.join('; ') || 'the chain is empty'),
184
+ diagnosticCode: skipped[0]?.r.code ?? 'no_backend',
185
+ } : {
186
+ ...state === 'login_unverified' ? { reason: 'login not verified: ' + unverified.map(c => c.leg.id).join(', ') + ' will use your own session, which cannot be checked locally' + (skipped.length ? '; skipped: ' + skipped.map(c => c.r.reason ?? c.leg.id + ' unavailable').join('; ') : '') } : {},
187
+ diagnosticCode: ['browser-opencli', 'browser-search', 'opencli'].includes(firstReady.leg.kind) || (firstReady.r.credential === undefined && firstReady.leg.kind !== 'rest') ? 'login_unverified' : 'ok',
188
+ },
189
+ diagnostics,
190
+ };
191
+ }
192
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/cli/chain.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAqB,aAAa,EAAE,wBAAwB,GAC/G,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAA;AAC9G,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,WAAW,CAAA;AAInE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAkC1C,wGAAwG;AACxG,MAAM,UAAU,QAAQ,CAAC,MAA2C;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAyB,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC7F,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACnD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,aAAa,GAAG,EAAE,EAAE,IAAI,CAAC,CAAA;IACxE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAA;AACjD,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,CAAgB,EAAgB,EAAE,CAAC,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;IACtL,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;CAC3C,CAAC,CAAA;AAEF,SAAS,OAAO,CAAC,EAAU,EAAE,IAAoB,EAAE,QAAgB,EAAE,GAAiB;IACpF,OAAO;QACL,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE;QACnF,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,CAAC;QAC7E,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACpE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,YAAY;KACxD,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB,EAAE,GAAiB;IACrD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAE,CAAA;IACvC,MAAM,MAAM,GAAW;QACrB,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,sBAAsB;QAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC,KAAK,UAAU;QACrI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM;YAC/B,MAAM,GAAG,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,GAAG;gBAAE,MAAM,IAAI,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;YACxD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAA;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;YACzF,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAA;YAC1B,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAA;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACrC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,IAAI,oDAAoD,GAAG,IAAI,GAAG,iBAAiB,EAAE,uBAAuB,EAAE,2DAA2D,CAAC,CAAA;YAC9N,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAC/C,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,eAAe,CAAC,eAAe,GAAG,IAAI,GAAG,iCAAiC,EAAE,uBAAuB,CAAC,CAAA;YACzH,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAA;YACnI,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,GAAG,SAAS,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QACrK,CAAC;KACF,CAAA;IACD,OAAO;QACL,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe;QACpG,KAAK,CAAC,SAAS;YACb,MAAM,GAAG,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,GAAG;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;YACtG,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAA;YAC3C,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAA;YAC7S,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAA;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACrC,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,wCAAwC,GAAG,IAAI,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;YACxP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,cAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QACrL,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,GAAiB;IAC5D,MAAM,MAAM,GAAW,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC3F,OAAO;QACL,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;QAChH,KAAK,CAAC,SAAS;YACb,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAA;YAC3E,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,SAAS,CAAA;YACrM,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAA;YACzB,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAuB,CAAC,CAAC,CAAC,UAAmB,CAAA;YACjH,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;QAClK,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,GAAiB;IAC3D,MAAM,MAAM,GAAW,EAAE,GAAG,wBAAwB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAA;IACrG,OAAO;QACL,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY;QAClH,KAAK,CAAC,SAAS;YACb,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAA;YACjF,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;YACjE,OAAO,GAAG;gBACR,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE;gBAClM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QACtG,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,YAAY,GAA2D,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAA;AAE3K,SAAS,OAAO,CAAC,QAAgB,EAAE,GAAiB;IAClD,MAAM,MAAM,GAAW,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IAChF,OAAO;QACL,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;QAChF,KAAK,CAAC,SAAS;YACb,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;YAChC,OAAO,KAAK;gBACV,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EAAE;gBAC9H,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,6FAA6F,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;QAClM,CAAC;KACF,CAAA;AACH,CAAC;AAED,uIAAuI;AACvI,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,GAAiB;IAC9D,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;IAC1D,MAAM,GAAG,GAAG,UAAU,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5G,MAAM,IAAI,GAAe,EAAE,CAAA;IAC3B,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,GAAW,EAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,GAAG,KAAK,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA,CAAC,CAAC,CAAA;IAC9H,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAU,CAAC,CAAC,CAAA;IACtF,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;YAAE,SAAQ;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACnD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAClF,IAAI,EAAE,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;aACrD,IAAI,EAAE,KAAK,iBAAiB;YAAE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;aACzE,IAAI,EAAE,KAAK,gBAAgB;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;aACvE,IAAI,EAAE,KAAK,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;;YACpD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;AAC9B,CAAC;AAoCD,mKAAmK;AACnK,SAAS,YAAY,CAAC,KAAiC,EAAE,GAA0C;IACjG,IAAI,KAAK;QAAE,OAAO,KAAK,CAAA;IACvB,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AACpG,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAiB;IACnE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzR,MAAM,OAAO,GAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACtE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY;QAClI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY;KACzK,CAAC,CAAC,CAAA;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAW,CAAA;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjG,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,cAAc,CAAC,CAAC,CAAA;IACxH,MAAM,KAAK,GAAe,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAA;IACjK,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAA;IACjF,OAAO;QACL,OAAO;QACP,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,KAAK;QACL,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,IAAI,SAAS;QACtF,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QAClI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACjB,CAAC,CAAC,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9F,CAAC,CAAC,qBAAqB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC;YAC5E,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,YAAY;SACnD,CAAC,CAAC,CAAC;YACF,GAAG,KAAK,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,sBAAsB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,6DAA6D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACnS,cAAc,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI;SACxM;QACD,WAAW;KACZ,CAAA;AACH,CAAC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * The static facts of the platform backend chains (dev-plan M12), free of Node imports so the settings card validates
3
+ * `platformBackends` with the same code the server resolves it with: the default chain of each platform, which backend
4
+ * ids exist and which platforms each can serve.
5
+ * @module web-search-pro/cli/chains-spec
6
+ */
7
+ import { BUILTIN_CLI_SPECS } from "./builtin-specs.js";
8
+ import { platformBackendProblems, resolveCliAdapters } from "./spec.js";
9
+ /** The default chain of each platform: first usable backend answers, empty or failing ones fall through in order. */
10
+ export const DEFAULT_CHAINS = {
11
+ xiaohongshu: ['opencli', 'xhs', 'browser-opencli'],
12
+ reddit: ['rdt', 'opencli', 'browser-opencli'],
13
+ twitter: ['twitter', 'opencli', 'browser-opencli'],
14
+ zhihu: ['zhihu', 'browser-search'],
15
+ bilibili: ['bili'],
16
+ youtube: ['yt-dlp'],
17
+ github: ['rest', 'gh'],
18
+ 'github-issues': ['rest', 'gh'],
19
+ 'github-code': ['rest', 'gh'],
20
+ wechat: ['omnireach', 'wx-search-cli'],
21
+ omnireach: ['omnireach'],
22
+ tanso: ['tanso'],
23
+ instagram: ['browser-opencli'],
24
+ facebook: ['browser-opencli'],
25
+ weibo: ['browser-search'],
26
+ douban: ['browser-search'],
27
+ tieba: ['browser-search'],
28
+ douyin: ['browser-search'],
29
+ kuaishou: ['browser-search'],
30
+ };
31
+ /** Platforms whose provider is a chain (everything in the default table). */
32
+ export const CHAIN_PLATFORMS = Object.keys(DEFAULT_CHAINS);
33
+ /** Platform -> site of the standalone OpenCLI (`opencli <site> search`). */
34
+ export const OPENCLI_SITE_OF = {
35
+ xiaohongshu: 'xiaohongshu', twitter: 'twitter', reddit: 'reddit', instagram: 'instagram', facebook: 'facebook',
36
+ zhihu: 'zhihu', weibo: 'weibo', douban: 'douban', tieba: 'tieba', douyin: 'douyin', bilibili: 'bilibili', youtube: 'youtube', wechat: 'weixin',
37
+ };
38
+ /** Platforms the dsh-browser OpenCLI bridge has a site adapter for (pinned to engines.ts by a test). */
39
+ export const BROWSER_OPENCLI_PLATFORMS = ['xiaohongshu', 'twitter', 'reddit', 'instagram', 'facebook'];
40
+ /** Platforms with a built-in rendered-search-page spec in dsh-browser's searchResults (pinned to platform-search.ts by a test). */
41
+ export const BROWSER_SEARCH_PLATFORMS = ['zhihu', 'weibo', 'douban', 'tieba', 'douyin', 'kuaishou'];
42
+ /** Platforms the plugin's own REST client serves. */
43
+ export const REST_PLATFORMS = ['github', 'github-issues', 'github-code'];
44
+ /** Backend ids that are not CLI specs. */
45
+ export const FIXED_BACKENDS = ['opencli', 'browser-opencli', 'browser-search', 'rest'];
46
+ /**
47
+ * Whether backend `id` can serve `platform`. `specPlatforms` maps a CLI spec id (built-in, or `custom-cli:<id>` of the user)
48
+ * to the platforms it lists; a user spec serves any platform its chain names.
49
+ */
50
+ export function backendServes(id, platform, specPlatforms) {
51
+ if (id === 'opencli')
52
+ return OPENCLI_SITE_OF[platform] ? { ok: true } : { ok: false, why: 'has no site for platform ' + platform };
53
+ if (id === 'browser-opencli')
54
+ return BROWSER_OPENCLI_PLATFORMS.includes(platform) ? { ok: true } : { ok: false, why: 'does not serve platform ' + platform };
55
+ if (id === 'browser-search')
56
+ return BROWSER_SEARCH_PLATFORMS.includes(platform) ? { ok: true } : { ok: false, why: 'does not serve platform ' + platform };
57
+ if (id === 'rest')
58
+ return REST_PLATFORMS.includes(platform) ? { ok: true } : { ok: false, why: 'does not serve platform ' + platform };
59
+ const platforms = specPlatforms.get(id);
60
+ if (!platforms)
61
+ return { ok: false, why: 'is not a known backend (built-in ids: ' + [...specPlatforms.keys()].filter(k => !k.startsWith('custom-cli:')).join(', ') + ', ' + FIXED_BACKENDS.join(', ') + ')' };
62
+ if (!id.startsWith('custom-cli:') && !platforms.includes(platform))
63
+ return { ok: false, why: 'does not serve platform ' + platform + ' (it serves ' + platforms.join(', ') + ')' };
64
+ return { ok: true };
65
+ }
66
+ /** The CLI specs a chain may name: the built-ins by id and the user's valid `cliAdapters` as `custom-cli:<id>`. */
67
+ export function specPlatformsOf(cliAdapters) {
68
+ const platforms = new Map(BUILTIN_CLI_SPECS.map(spec => [spec.id, spec.platforms]));
69
+ const user = resolveCliAdapters(cliAdapters);
70
+ for (const [id, spec] of user.specs)
71
+ platforms.set('custom-cli:' + id, spec.platforms);
72
+ return { platforms, diagnostics: user.diagnostics };
73
+ }
74
+ /**
75
+ * Every problem of the `platformBackends` setting (shape, unknown platform, unknown or foreign backend id) given the
76
+ * `cliAdapters` setting. The settings card and `sources.status` both call this.
77
+ */
78
+ export function platformBackendIssues(platformBackends, cliAdapters) {
79
+ const shape = platformBackendProblems(platformBackends);
80
+ if (shape.length || !platformBackends || typeof platformBackends !== 'object')
81
+ return shape;
82
+ const { platforms } = specPlatformsOf(cliAdapters);
83
+ const known = new Set([...CHAIN_PLATFORMS, ...[...platforms.keys()].filter(id => id.startsWith('custom-cli:'))]);
84
+ const out = [];
85
+ for (const [platform, ids] of Object.entries(platformBackends)) {
86
+ if (!known.has(platform)) {
87
+ out.push('platformBackends.' + platform + ': no such platform with a backend chain (known: ' + [...known].join(', ') + ')');
88
+ continue;
89
+ }
90
+ for (const id of ids) {
91
+ const served = backendServes(id, platform, platforms);
92
+ if (!served.ok)
93
+ out.push('platformBackends.' + platform + ': "' + id + '" ' + served.why);
94
+ }
95
+ }
96
+ return out;
97
+ }
98
+ //# sourceMappingURL=chains-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains-spec.js","sourceRoot":"","sources":["../../src/cli/chains-spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * The Engine of a CLI adapter spec (dev-plan M12): one search leg that probes the command's contract (cached), then runs
3
+ * the spec through the shared runner. `available()` is synchronous and local (settings gates plus the probe cache);
4
+ * every failure reaches the caller as a structured error naming what to install or run.
5
+ * @module web-search-pro/cli/engine
6
+ */
7
+ import { CliAdapterError, loginHint, missingEnv, runCliSearchDetailed, savedLoginPresent } from "./runner.js";
8
+ import { cachedProbe, probeCli } from "./probe.js";
9
+ /** Settings that gate a spec on top of `enableCliBackends` (twitter-cli kept its own `agentReachEnabled` switch). */
10
+ const SETTING_GATE = {
11
+ twitter: { key: 'agentReachEnabled', label: 'the twitter-cli backend is disabled in settings (agentReachEnabled)' },
12
+ };
13
+ /** Why a spec is switched off by settings, or undefined when it may run. */
14
+ export function disabledBySettings(spec, deps) {
15
+ if (!deps.enableCli)
16
+ return 'CLI backends are disabled in settings (enableCliBackends)';
17
+ const gate = SETTING_GATE[spec.id];
18
+ return gate && !deps[gate.key] ? gate.label : undefined;
19
+ }
20
+ /** The probe verdict as the structured error a search would raise, or undefined when the command is usable. */
21
+ export function probeError(spec, probe) {
22
+ if (probe.state === 'detected')
23
+ return undefined;
24
+ if (probe.state === 'missing')
25
+ return new CliAdapterError('the ' + spec.bins[0] + ' command is not installed: install it (' + spec.packageNote + ')', 'CLI_NOT_FOUND', 'install: ' + spec.packageNote);
26
+ return new CliAdapterError(spec.bins[0] + ' is installed but does not match this adapter: ' + (probe.reason ?? 'contract mismatch'), 'CLI_CONTRACT_MISMATCH', 'a different program with the same name, or a version the adapter does not know: check `sources.deps`');
27
+ }
28
+ export function cliSpecEngine(spec, platform, deps, options = {}) {
29
+ return {
30
+ id: options.id ?? spec.id,
31
+ backend: options.id ?? spec.id,
32
+ label: options.label ?? spec.bins[0],
33
+ available: () => {
34
+ if (disabledBySettings(spec, deps))
35
+ return false;
36
+ // Before the first probe the command is assumed present; the search itself probes and reports.
37
+ return options.run ? true : (cachedProbe(spec)?.state ?? 'detected') === 'detected';
38
+ },
39
+ async search(query, count, signal) {
40
+ const why = disabledBySettings(spec, deps);
41
+ if (why)
42
+ throw new CliAdapterError(why, 'CLI_NOT_FOUND', undefined, false);
43
+ let bin = spec.bins[0];
44
+ if (!options.run) {
45
+ const probe = await probeCli(spec);
46
+ const failure = probeError(spec, probe);
47
+ if (failure)
48
+ throw failure;
49
+ bin = probe.path ?? bin;
50
+ }
51
+ const runOptions = {
52
+ platform, bin,
53
+ ...options.run ? { run: options.run } : {},
54
+ ...options.env ? { env: options.env } : {},
55
+ ...options.home ? { home: options.home } : {},
56
+ ...options.skipCredentialGate ? { skipCredentialGate: true } : {},
57
+ };
58
+ const { sources, skipped } = await runCliSearchDetailed(spec, { query, count, signal }, runOptions);
59
+ return { sources, via: options.id ?? spec.id, backend: options.id ?? spec.id, ...skipped ? { notes: [skipped + ' result' + (skipped === 1 ? '' : 's') + ' without a link skipped'] } : {} };
60
+ },
61
+ };
62
+ }
63
+ /** Local readiness of one spec: settings, contract probe, then the credentials it needs. Never runs a search. */
64
+ export async function specReadiness(spec, deps, options = {}) {
65
+ const off = disabledBySettings(spec, deps);
66
+ if (off)
67
+ return { ready: false, installation: 'missing', credential: 'not_required', reason: spec.id + ': ' + off, code: 'disabled' };
68
+ const probe = await probeCli(spec);
69
+ const base = { installation: probe.state, ...probe.version ? { version: probe.version } : {}, ...probe.path ? { path: probe.path } : {} };
70
+ if (probe.state === 'missing')
71
+ return { ...base, ready: false, installation: 'missing', credential: 'not_required', reason: spec.id + ': ' + (probe.reason ?? 'not installed'), code: 'cli_missing' };
72
+ if (probe.state === 'incompatible')
73
+ return { ...base, ready: false, installation: 'incompatible', credential: 'not_required', reason: spec.id + ': ' + (probe.reason ?? 'contract mismatch'), code: 'cli_incompatible' };
74
+ const missing = missingEnv(spec, options.env);
75
+ if (missing.length)
76
+ return { ...base, ready: false, installation: 'detected', credential: 'missing', reason: spec.id + ': ' + missing.join(' / ') + ' not set (' + loginHint(spec) + ')', code: 'not_logged_in' };
77
+ const saved = savedLoginPresent(spec, options);
78
+ if (saved === false)
79
+ return { ...base, ready: false, installation: 'detected', credential: 'missing', reason: spec.id + ': no saved login (' + loginHint(spec) + ')', code: 'not_logged_in' };
80
+ const credential = saved === true || (spec.env.required?.length ?? 0) > 0 ? 'configured' : spec.needsLogin ? undefined : 'not_required';
81
+ return { ...base, ready: true, installation: 'detected', ...credential ? { credential } : {}, code: 'ok' };
82
+ }
83
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/cli/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Standalone OpenCLI (dev-plan M12): the `opencli` command the user installed themselves, which drives their own Chrome
3
+ * through its Browser Bridge, independent of the dsh-browser plugin. It has one command per site and the plugin only
4
+ * calls `<site> search`, and only for sites that `opencli list -f json` itself reports with a read-access `search`
5
+ * command taking a positional query (the catalog is the tool's own, so a site without search, such as douyin or v2ex,
6
+ * is never assumed to have one). The list is a local call: no browser, no login.
7
+ * @module web-search-pro/cli/opencli
8
+ */
9
+ import { runCli } from "../util.js";
10
+ import { buildCliEnv } from "./runner.js";
11
+ import { findOnPath } from "./probe.js";
12
+ import { validateCliAdapterSpec } from "./spec.js";
13
+ export { OPENCLI_SITE_OF } from "./chains-spec.js";
14
+ /** The command that proves this is the OpenCLI whose `list` output the adapter understands. Verified on 1.8.8. */
15
+ export const OPENCLI_PROBE = {
16
+ id: 'opencli',
17
+ bins: ['opencli'],
18
+ packageNote: 'OpenCLI (npm i -g @jackwener/opencli; needs its Browser Bridge extension in your own Chrome)',
19
+ probe: { versionArgs: ['--version'], minVersion: '1.8.0', helpArgs: ['list', '--help'], mustContain: ['--format', 'json'] },
20
+ env: {},
21
+ };
22
+ /** Sites with a read `search` command taking a positional query, from the JSON of `opencli list -f json`. Pure. */
23
+ export function parseOpencliList(json) {
24
+ const rows = JSON.parse(json);
25
+ if (!Array.isArray(rows))
26
+ throw new Error('opencli list did not return an array');
27
+ const sites = new Map();
28
+ const logins = new Set();
29
+ for (const row of rows)
30
+ if (row && typeof row.site === 'string' && row.name === 'login')
31
+ logins.add(row.site);
32
+ for (const row of rows) {
33
+ if (!row || typeof row.site !== 'string' || row.name !== 'search' || row.access !== 'read' || !Array.isArray(row.args))
34
+ continue;
35
+ const args = row.args;
36
+ if (!args.some(a => a.positional === true && a.name === 'query') && !args.some(a => a.positional === true))
37
+ continue;
38
+ sites.set(row.site, {
39
+ site: row.site,
40
+ strategy: typeof row.strategy === 'string' ? row.strategy : 'cookie',
41
+ browser: row.browser === true,
42
+ hasLimit: args.some(a => a.name === 'limit'),
43
+ ...logins.has(row.site) ? { loginCommand: 'opencli ' + row.site + ' login' } : {},
44
+ });
45
+ }
46
+ return sites;
47
+ }
48
+ const cache = new Map();
49
+ export function clearOpencliCache() { cache.clear(); }
50
+ /** The searchable sites of the installed OpenCLI (cached 5 minutes); `undefined` when the command cannot be listed. */
51
+ export async function listOpencliSites(options = {}) {
52
+ const found = findOnPath('opencli');
53
+ if (!found)
54
+ return { problem: 'opencli not found on PATH' };
55
+ const now = options.now ?? Date.now;
56
+ const key = found + '\u0000' + (process.env.PATH ?? '');
57
+ const hit = cache.get(key);
58
+ if (!options.force && hit && now() - hit.at <= (options.ttlMs ?? 300_000))
59
+ return { sites: hit.sites };
60
+ const run = options.run ?? runCli;
61
+ const res = await run(found, ['list', '-f', 'json'], { timeoutMs: 20_000, signal: undefined, env: buildCliEnv({ env: {} }), cleanEnv: true, maxOutput: 16 * 1024 * 1024, outputEncoding: 'utf-8' });
62
+ if (res.code !== 0 || res.truncated)
63
+ return { problem: res.truncated ? 'opencli list output exceeded the size cap' : 'opencli list failed with exit ' + res.code };
64
+ try {
65
+ const sites = parseOpencliList(res.stdout);
66
+ cache.set(key, { at: now(), sites });
67
+ return { sites };
68
+ }
69
+ catch (error) {
70
+ return { problem: 'opencli list returned an unexpected payload: ' + (error instanceof Error ? error.message : String(error)) };
71
+ }
72
+ }
73
+ /** Generic field mapping over the columns OpenCLI commands emit (rank, title, url, summary, ...). */
74
+ const FIELDS = {
75
+ url: ['url', 'link', 'href', 'projectUrl', 'item_url'],
76
+ title: ['title', 'name', 'text', 'desc', 'label'],
77
+ snippet: ['summary', 'snippet', 'description', 'desc', 'content', 'selftext', 'abstract', 'author', 'user'],
78
+ publishedAt: ['published_at', 'publish_time', 'created_at', 'date', 'time', 'published', 'postTime'],
79
+ };
80
+ const NOT_LOGGED_IN = ['not logged in', 'login required', 'please log in', 'please login', 'sign in', 'auth_required', 'requires login', '未登录', '请先登录'];
81
+ /** The spec that runs `opencli <site> search` for one platform, or undefined when the generated spec is invalid (a site named like a write command). */
82
+ export function opencliSearchSpec(platform, entry) {
83
+ const spec = {
84
+ id: 'opencli',
85
+ bins: ['opencli'],
86
+ packageNote: OPENCLI_PROBE.packageNote,
87
+ platforms: [platform],
88
+ probe: OPENCLI_PROBE.probe,
89
+ allowedSubcommands: ['list', entry.site, 'search'],
90
+ search: {
91
+ argv: [entry.site, 'search', '{query}', ...entry.hasLimit ? ['--limit', '{count}'] : [], '-f', 'json'],
92
+ maxCount: 20,
93
+ output: { format: 'json', stripTags: true, fields: { url: [...FIELDS.url], title: [...FIELDS.title], snippet: [...FIELDS.snippet], publishedAt: [...FIELDS.publishedAt] } },
94
+ notLoggedInPatterns: NOT_LOGGED_IN,
95
+ },
96
+ env: {},
97
+ needsLogin: entry.strategy !== 'public',
98
+ ...entry.strategy !== 'public' ? { login: { command: entry.loginCommand ?? 'opencli doctor' } } : {},
99
+ timeoutMs: 60_000,
100
+ maxOutputBytes: 8 * 1024 * 1024,
101
+ verification: { status: 'contract-only', version: '1.8.8', date: '2026-10-06', note: 'command table from `opencli list -f json`; -f json is the documented output option; no site search was run (they use your Chrome sessions)' },
102
+ };
103
+ return validateCliAdapterSpec(spec, 'builtin').ok ? spec : undefined;
104
+ }
105
+ //# sourceMappingURL=opencli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencli.js","sourceRoot":"","sources":["../../src/cli/opencli.ts"],"names":[],"mappings":"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"}