dsh-web-search-pro 0.2.1 → 0.2.4
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/CHANGELOG.md +227 -0
- package/README.en.md +117 -0
- package/README.md +72 -578
- package/assets/skills/dsh-web-search-pro/SKILL.md +13 -12
- package/assets/skills/dsh-web-search-pro/references/config.md +36 -0
- package/assets/skills/dsh-web-search-pro/references/sources.md +13 -7
- package/assets/skills/dsh-web-search-pro/references/troubleshooting.md +3 -1
- package/catalog/sources.v1.json +16 -14
- package/lib/actions/approval.js +50 -1
- package/lib/actions/approval.js.map +1 -1
- package/lib/actions/config.js +274 -0
- package/lib/actions/config.js.map +1 -0
- package/lib/actions/errors.js +8 -1
- package/lib/actions/errors.js.map +1 -1
- package/lib/actions/format.js +10 -0
- package/lib/actions/format.js.map +1 -1
- package/lib/actions/index-view.js +2 -2
- package/lib/actions/index-view.js.map +1 -1
- package/lib/actions/read.js +7 -3
- package/lib/actions/read.js.map +1 -1
- package/lib/actions/registry.js +3 -1
- package/lib/actions/registry.js.map +1 -1
- package/lib/actions/run.js +2 -2
- package/lib/actions/run.js.map +1 -1
- package/lib/actions/schema.js +18 -0
- package/lib/actions/schema.js.map +1 -1
- package/lib/actions/search.js +7 -2
- package/lib/actions/search.js.map +1 -1
- package/lib/actions/sources.js +76 -18
- package/lib/actions/sources.js.map +1 -1
- package/lib/actions/types.js +19 -1
- package/lib/actions/types.js.map +1 -1
- package/lib/browser-access.js +25 -0
- package/lib/browser-access.js.map +1 -1
- package/lib/catalog/recommend.js +11 -3
- package/lib/catalog/recommend.js.map +1 -1
- package/lib/catalog/schema.js +3 -1
- package/lib/catalog/schema.js.map +1 -1
- package/lib/cli/builtin-specs.js +57 -22
- package/lib/cli/builtin-specs.js.map +1 -1
- package/lib/cli/chain.js +13 -12
- package/lib/cli/chain.js.map +1 -1
- package/lib/cli/chains-spec.js +31 -11
- package/lib/cli/chains-spec.js.map +1 -1
- package/lib/cli/engine.js +19 -3
- package/lib/cli/engine.js.map +1 -1
- package/lib/cli/opencli-sites.js +83 -0
- package/lib/cli/opencli-sites.js.map +1 -0
- package/lib/cli/opencli.js +65 -17
- package/lib/cli/opencli.js.map +1 -1
- package/lib/cli/probe.js +1 -1
- package/lib/cli/probe.js.map +1 -1
- package/lib/cli/runner.js +217 -27
- package/lib/cli/runner.js.map +1 -1
- package/lib/cli/spec.js +100 -20
- package/lib/cli/spec.js.map +1 -1
- package/lib/cli/time-text.js +79 -0
- package/lib/cli/time-text.js.map +1 -0
- package/lib/cli/trial.js +57 -0
- package/lib/cli/trial.js.map +1 -0
- package/lib/client/SettingsCard.js +14 -32
- package/lib/client/SettingsCard.js.map +1 -1
- package/lib/client/agent-mark.js +27 -0
- package/lib/client/agent-mark.js.map +1 -0
- package/lib/client/card-frame.js +118 -0
- package/lib/client/card-frame.js.map +1 -0
- package/lib/client/cli-form.js +257 -0
- package/lib/client/cli-form.js.map +1 -0
- package/lib/client/field-docs.js +130 -0
- package/lib/client/field-docs.js.map +1 -0
- package/lib/client/field-keys.js +81 -0
- package/lib/client/field-keys.js.map +1 -0
- package/lib/client/field-rows.js +71 -0
- package/lib/client/field-rows.js.map +1 -0
- package/lib/client/fill.js +3 -0
- package/lib/client/fill.js.map +1 -0
- package/lib/client/form-specs.js +13 -1
- package/lib/client/form-specs.js.map +1 -1
- package/lib/client/form.js +282 -24
- package/lib/client/form.js.map +1 -1
- package/lib/client/group-advanced.js +23 -0
- package/lib/client/group-advanced.js.map +1 -0
- package/lib/client/group-agent.js +28 -0
- package/lib/client/group-agent.js.map +1 -0
- package/lib/client/group-cli.js +136 -0
- package/lib/client/group-cli.js.map +1 -0
- package/lib/client/group-common.js +29 -0
- package/lib/client/group-common.js.map +1 -0
- package/lib/client/group-judge.js +67 -0
- package/lib/client/group-judge.js.map +1 -0
- package/lib/client/group-order.js +201 -0
- package/lib/client/group-order.js.map +1 -0
- package/lib/client/group-runtime.js +33 -0
- package/lib/client/group-runtime.js.map +1 -0
- package/lib/client/group-sources.js +83 -0
- package/lib/client/group-sources.js.map +1 -0
- package/lib/client/groups-basic.js +36 -0
- package/lib/client/groups-basic.js.map +1 -0
- package/lib/client/index.js.map +1 -1
- package/lib/client/json-list.js +50 -0
- package/lib/client/json-list.js.map +1 -0
- package/lib/client/locales.js +666 -219
- package/lib/client/locales.js.map +1 -1
- package/lib/client/order.js +192 -0
- package/lib/client/order.js.map +1 -0
- package/lib/client/overlay-ops.js +46 -0
- package/lib/client/overlay-ops.js.map +1 -0
- package/lib/client/sources-table.js +1 -0
- package/lib/client/sources-table.js.map +1 -1
- package/lib/client/styles.js +74 -47
- package/lib/client/styles.js.map +1 -1
- package/lib/client/text-view.js +98 -0
- package/lib/client/text-view.js.map +1 -0
- package/lib/client/ui-kit.js +120 -0
- package/lib/client/ui-kit.js.map +1 -0
- package/lib/client/validators.js +8 -1
- package/lib/client/validators.js.map +1 -1
- package/lib/client.js +7313 -1571
- package/lib/client.js.map +1 -1
- package/lib/config-fillers.js +53 -0
- package/lib/config-fillers.js.map +1 -0
- package/lib/config-groups.js +49 -0
- package/lib/config-groups.js.map +1 -0
- package/lib/config.js +84 -108
- package/lib/config.js.map +1 -1
- package/lib/default-chain.js +66 -0
- package/lib/default-chain.js.map +1 -0
- package/lib/deps.js +1 -1
- package/lib/deps.js.map +1 -1
- package/lib/engines.js +3 -3
- package/lib/engines.js.map +1 -1
- package/lib/fetch.js +23 -4
- package/lib/fetch.js.map +1 -1
- package/lib/fiber-config.js +5 -0
- package/lib/fiber-config.js.map +1 -0
- package/lib/index.js +36 -7
- package/lib/index.js.map +1 -1
- package/lib/overlay-types.js +88 -0
- package/lib/overlay-types.js.map +1 -0
- package/lib/overlay.js +683 -0
- package/lib/overlay.js.map +1 -0
- package/lib/pipeline/candidates.js +27 -1
- package/lib/pipeline/candidates.js.map +1 -1
- package/lib/pipeline/compile.js +63 -0
- package/lib/pipeline/compile.js.map +1 -1
- package/lib/pipeline/confidence.js +64 -0
- package/lib/pipeline/confidence.js.map +1 -0
- package/lib/pipeline/fusion.js +50 -3
- package/lib/pipeline/fusion.js.map +1 -1
- package/lib/pipeline/plan.js +2 -2
- package/lib/pipeline/plan.js.map +1 -1
- package/lib/pipeline/render.js +20 -2
- package/lib/pipeline/render.js.map +1 -1
- package/lib/pipeline/run.js +17 -5
- package/lib/pipeline/run.js.map +1 -1
- package/lib/pipeline/sources-spec.js +19 -3
- package/lib/pipeline/sources-spec.js.map +1 -1
- package/lib/providers/builtin.js +3 -0
- package/lib/providers/builtin.js.map +1 -1
- package/lib/providers/deepseek.js +348 -0
- package/lib/providers/deepseek.js.map +1 -0
- package/lib/providers/http.js.map +1 -1
- package/lib/providers/keyed-meta.js +7 -0
- package/lib/providers/keyed-meta.js.map +1 -1
- package/lib/providers/platforms.js +18 -17
- package/lib/providers/platforms.js.map +1 -1
- package/lib/providers/registry.js.map +1 -1
- package/lib/restart.js +47 -0
- package/lib/restart.js.map +1 -0
- package/lib/router.js +145 -26
- package/lib/router.js.map +1 -1
- package/lib/rpc-types.js +15 -0
- package/lib/rpc-types.js.map +1 -0
- package/lib/rpc.js +118 -0
- package/lib/rpc.js.map +1 -0
- package/lib/tools.js +10 -4
- package/lib/tools.js.map +1 -1
- package/lib/types/actions/approval.d.ts +11 -0
- package/lib/types/actions/config.d.ts +54 -0
- package/lib/types/actions/format.d.ts +9 -2
- package/lib/types/actions/run.d.ts +1 -0
- package/lib/types/actions/schema.d.ts +7 -1
- package/lib/types/actions/sources.d.ts +29 -3
- package/lib/types/actions/types.d.ts +28 -2
- package/lib/types/browser-access.d.ts +17 -0
- package/lib/types/catalog/recommend.d.ts +4 -0
- package/lib/types/catalog/schema.d.ts +2 -0
- package/lib/types/cli/builtin-specs.d.ts +11 -3
- package/lib/types/cli/chains-spec.d.ts +12 -3
- package/lib/types/cli/engine.d.ts +10 -3
- package/lib/types/cli/opencli-sites.d.ts +24 -0
- package/lib/types/cli/opencli.d.ts +42 -3
- package/lib/types/cli/runner.d.ts +47 -8
- package/lib/types/cli/spec.d.ts +101 -8
- package/lib/types/cli/time-text.d.ts +12 -0
- package/lib/types/cli/trial.d.ts +19 -0
- package/lib/types/client/SettingsCard.d.ts +17 -1
- package/lib/types/client/agent-mark.d.ts +22 -0
- package/lib/types/client/card-frame.d.ts +35 -0
- package/lib/types/client/cli-form.d.ts +97 -0
- package/lib/types/client/field-docs.d.ts +15 -0
- package/lib/types/client/field-keys.d.ts +41 -0
- package/lib/types/client/field-rows.d.ts +70 -0
- package/lib/types/client/fill.d.ts +2 -0
- package/lib/types/client/form-specs.d.ts +12 -3
- package/lib/types/client/form.d.ts +79 -1
- package/lib/types/client/group-advanced.d.ts +9 -0
- package/lib/types/client/group-agent.d.ts +20 -0
- package/lib/types/client/group-cli.d.ts +52 -0
- package/lib/types/client/group-common.d.ts +12 -0
- package/lib/types/client/group-judge.d.ts +17 -0
- package/lib/types/client/group-order.d.ts +26 -0
- package/lib/types/client/group-runtime.d.ts +15 -0
- package/lib/types/client/group-sources.d.ts +46 -0
- package/lib/types/client/groups-basic.d.ts +18 -0
- package/lib/types/client/index.d.ts +8 -0
- package/lib/types/client/json-list.d.ts +21 -0
- package/lib/types/client/locales.d.ts +1079 -200
- package/lib/types/client/order.d.ts +102 -0
- package/lib/types/client/overlay-ops.d.ts +37 -0
- package/lib/types/client/styles.d.ts +56 -41
- package/lib/types/client/text-view.d.ts +22 -0
- package/lib/types/client/ui-kit.d.ts +200 -0
- package/lib/types/config-fillers.d.ts +9 -0
- package/lib/types/config-groups.d.ts +23 -0
- package/lib/types/config.d.ts +263 -225
- package/lib/types/default-chain.d.ts +63 -0
- package/lib/types/engines.d.ts +29 -1
- package/lib/types/fetch.d.ts +12 -3
- package/lib/types/fiber-config.d.ts +18 -0
- package/lib/types/index.d.ts +164 -150
- package/lib/types/overlay-types.d.ts +98 -0
- package/lib/types/overlay.d.ts +141 -0
- package/lib/types/pipeline/candidates.d.ts +17 -0
- package/lib/types/pipeline/compile.d.ts +11 -0
- package/lib/types/pipeline/confidence.d.ts +35 -0
- package/lib/types/pipeline/fusion.d.ts +23 -1
- package/lib/types/pipeline/render.d.ts +16 -0
- package/lib/types/pipeline/run.d.ts +2 -1
- package/lib/types/pipeline/sources-spec.d.ts +5 -2
- package/lib/types/pipeline/types.d.ts +37 -0
- package/lib/types/providers/deepseek.d.ts +130 -0
- package/lib/types/providers/http.d.ts +2 -1
- package/lib/types/providers/keyed-meta.d.ts +5 -0
- package/lib/types/providers/registry.d.ts +7 -0
- package/lib/types/restart.d.ts +52 -0
- package/lib/types/router.d.ts +57 -10
- package/lib/types/rpc-types.d.ts +79 -0
- package/lib/types/rpc.d.ts +74 -0
- package/lib/types/tools.d.ts +6 -0
- package/lib/types/util.d.ts +10 -0
- package/lib/util.js +10 -1
- package/lib/util.js.map +1 -1
- package/package.json +53 -44
- package/scripts/check-client-bundle.mjs +1 -1
- package/scripts/check-docs-links.mjs +107 -0
- package/scripts/cli-login-check.mjs +214 -0
- package/LOGIN.md +0 -161
- package/lib/client/RubricEditor.js +0 -47
- package/lib/client/RubricEditor.js.map +0 -1
- package/lib/client/fields.js +0 -31
- package/lib/client/fields.js.map +0 -1
- package/lib/types/client/RubricEditor.d.ts +0 -6
- package/lib/types/client/fields.d.ts +0 -65
package/lib/types/config.d.ts
CHANGED
|
@@ -104,6 +104,12 @@ export interface SourcesConfig {
|
|
|
104
104
|
priority?: string[];
|
|
105
105
|
/** Source ids the automatic plan and the configured `engines` list never use (an explicit `engines` / `platform` in a call still can). */
|
|
106
106
|
disabled?: string[];
|
|
107
|
+
/**
|
|
108
|
+
* Confidence (0..1) per source id, including the platform backends of a chain (`xhs`, `browser-search`, `custom-cli:<id>`).
|
|
109
|
+
* Built-in sources have 1; a custom CLI has the `confidence` of its spec (default 0.5) unless it is set here. It scales the
|
|
110
|
+
* source's weight in rank fusion a little (pipeline/confidence.ts) and is printed with its results; 1 changes nothing.
|
|
111
|
+
*/
|
|
112
|
+
confidence?: Record<string, number>;
|
|
107
113
|
/**
|
|
108
114
|
* Optional request caps per source id, counted in the usage ledger (persistent, atomic): `total` over all time, `daily` per
|
|
109
115
|
* calendar day (time zone of `evidence.budget`). No source has a cap unless it is set here. An exhausted source is skipped
|
|
@@ -113,50 +119,38 @@ export interface SourcesConfig {
|
|
|
113
119
|
budget?: Record<string, SourceBudgetInput>;
|
|
114
120
|
}
|
|
115
121
|
export interface Config {
|
|
116
|
-
/** SQLite database path; defaults to $DSH_HOME/data/web-search-pro/store.db */
|
|
117
|
-
dbPath?: string;
|
|
118
|
-
/** Cache freshness window in seconds. */
|
|
119
|
-
ttlSeconds: number;
|
|
120
|
-
/** In-process LRU entry cap (hot queries resolve without touching SQLite). */
|
|
121
|
-
memoryCacheEntries: number;
|
|
122
|
-
/** Reciprocal Rank Fusion constant for multi-engine merging. */
|
|
123
|
-
rrfConstant: number;
|
|
124
|
-
/**
|
|
125
|
-
* Recency bonus, as a fraction (0..1) of ONE TOP-RANK STEP on the normalised
|
|
126
|
-
* fusion scale (pipeline/fusion.ts): added once per URL, so even at 1 a fresh
|
|
127
|
-
* result gains about one rank position, and at the default it is a tie-breaker.
|
|
128
|
-
*/
|
|
129
|
-
freshnessBoost: number;
|
|
130
|
-
/** Days over which the recency bonus decays to zero. */
|
|
131
|
-
freshnessDays: number;
|
|
132
|
-
/**
|
|
133
|
-
* Authority-domain bonus, same scale and once-per-URL rule as `freshnessBoost`:
|
|
134
|
-
* it cannot lift a rank-10 result over a rank-1 result of the same engine.
|
|
135
|
-
*/
|
|
136
|
-
authorityBoost: number;
|
|
137
|
-
/** Extra authority domains (beyond the built-in .edu/.gov/.org and the curated list). */
|
|
138
|
-
authorityDomains: string[];
|
|
139
122
|
/** Default cap on returned sources per search. */
|
|
140
123
|
searchMaxResults: number;
|
|
141
|
-
/**
|
|
142
|
-
|
|
143
|
-
* continued with `offset`; the ctx.web fetch provider (which cannot be told a size) uses twice this.
|
|
144
|
-
*/
|
|
145
|
-
fetchDefaultChars: number;
|
|
146
|
-
/** `read.contents`: output cap per URL (characters). */
|
|
147
|
-
exaContentsPerUrlChars: number;
|
|
148
|
-
/** `read.contents`: output cap over all URLs of one call (characters); shared fairly between them. */
|
|
149
|
-
exaContentsTotalChars: number;
|
|
124
|
+
/** Query all requested engines in parallel and merge. */
|
|
125
|
+
parallelEngines: boolean;
|
|
150
126
|
/** Tool surface: `indexed` (default) keeps only web_index / web_call in context; `flat` registers one tool per action. Applied at startup. */
|
|
151
127
|
toolSurface?: ToolSurface;
|
|
152
|
-
/** Cooperative per-call timeout budget in ms. */
|
|
153
|
-
timeoutMs: number;
|
|
154
128
|
/** Trust Clash/TUN fake-IP DNS answers (198.18/15, fdfe:dcba:9876::/64, 2001:2::/48) while retaining all other SSRF checks. */
|
|
155
129
|
allowProxyFakeIp: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Let `read.fetch` use the DeepSeek Fetch API ($0.75 per 1,000 successful requests) as a backend, after the free ones and before the
|
|
132
|
+
* browser, in `mode: auto`, and accept `mode: deepseek`. Uses the same key as DeepSeek Search (`keyedSources.deepseek`). Off by default: it spends money.
|
|
133
|
+
*/
|
|
134
|
+
deepseekFetch: boolean;
|
|
156
135
|
/** Ordered engine list for search.run. */
|
|
157
136
|
engines: string[];
|
|
158
|
-
/**
|
|
159
|
-
|
|
137
|
+
/** Source preferences and request budgets (dev-plan M11a). */
|
|
138
|
+
sources?: SourcesConfig;
|
|
139
|
+
/**
|
|
140
|
+
* Ordered backend chain per platform (dev-plan M12): backend ids such as `xhs`, `opencli` (standalone OpenCLI), `browser-opencli`
|
|
141
|
+
* (dsh-browser), `browser-search`, `rest`, `gh`, `custom-cli:<id>`. A platform not listed uses its default chain.
|
|
142
|
+
*/
|
|
143
|
+
platformBackends?: Record<string, string[]>;
|
|
144
|
+
/**
|
|
145
|
+
* Keyed search sources by route id (`tavily`, `brave`, `linkup`, `serper`, `metaso`, `zhipu`, `baidu-qianfan`): the key literal,
|
|
146
|
+
* the credentials ref / environment variable name (default e.g. TAVILY_API_KEY), and an optional endpoint base override.
|
|
147
|
+
* A source without a key is `credential: missing` and not executable.
|
|
148
|
+
*/
|
|
149
|
+
keyedSources?: Record<string, {
|
|
150
|
+
apiKey?: string;
|
|
151
|
+
apiKeyEnv?: string;
|
|
152
|
+
baseUrl?: string;
|
|
153
|
+
}>;
|
|
160
154
|
/** Exa API key (falls back to $EXA_API_KEY / credentials ref). */
|
|
161
155
|
exaApiKey?: string;
|
|
162
156
|
/** Credential/env reference for the Exa key; defaults to EXA_API_KEY. */
|
|
@@ -173,36 +167,50 @@ export interface Config {
|
|
|
173
167
|
bochaBaseUrl?: string;
|
|
174
168
|
/** Ask Bocha for its longer per-page summary (default true). */
|
|
175
169
|
bochaSummary?: boolean;
|
|
170
|
+
/** GitHub API token for the REST search engines (falls back to $GITHUB_TOKEN / $GH_TOKEN / credentials ref). */
|
|
171
|
+
githubToken?: string;
|
|
172
|
+
/** Credential/env reference for the GitHub token; defaults to GITHUB_TOKEN. */
|
|
173
|
+
githubTokenEnv?: string;
|
|
176
174
|
/** Self-hosted SearXNG instance URL (JSON format enabled); the `searxng` engine is available only when set. No public instance is built in. */
|
|
177
175
|
searxngUrl?: string;
|
|
178
176
|
/** Contact address put in the User-Agent of OpenAlex requests (etiquette; optional). */
|
|
179
177
|
openalexMailto?: string;
|
|
178
|
+
/** User-defined CLI adapter specs by id (validated like the built-in ones; invalid entries are ignored with a diagnostic in sources.status). */
|
|
179
|
+
cliAdapters?: Record<string, Record<string, unknown>>;
|
|
180
|
+
/** Evidence pipeline (S6 scoring). */
|
|
181
|
+
evidence?: Partial<EvidenceConfig>;
|
|
180
182
|
/**
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
* A source without a key is `credential: missing` and not executable.
|
|
183
|
+
* Default output cap (characters) of one `read.fetch` call. Longer pages are cut here and
|
|
184
|
+
* continued with `offset`; the ctx.web fetch provider (which cannot be told a size) uses twice this.
|
|
184
185
|
*/
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
/** GitHub API token for the REST search engines (falls back to $GITHUB_TOKEN / $GH_TOKEN / credentials ref). */
|
|
191
|
-
githubToken?: string;
|
|
192
|
-
/** Credential/env reference for the GitHub token; defaults to GITHUB_TOKEN. */
|
|
193
|
-
githubTokenEnv?: string;
|
|
186
|
+
fetchDefaultChars: number;
|
|
187
|
+
/** `read.contents`: output cap per URL (characters). */
|
|
188
|
+
exaContentsPerUrlChars: number;
|
|
189
|
+
/** `read.contents`: output cap over all URLs of one call (characters); shared fairly between them. */
|
|
190
|
+
exaContentsTotalChars: number;
|
|
194
191
|
/** Allow CLI backends (bili / yt-dlp / opencli / agent-reach). */
|
|
195
192
|
enableCliBackends: boolean;
|
|
196
193
|
/** Allow opencli browser-session backends. */
|
|
197
194
|
opencliEnabled: boolean;
|
|
198
195
|
/** Allow agent-reach backends. */
|
|
199
196
|
agentReachEnabled: boolean;
|
|
200
|
-
/**
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
|
|
197
|
+
/** twitter-cli `auth_token` cookie (falls back to the credentials ref / $TWITTER_AUTH_TOKEN). Handed to the twitter command only through its environment. */
|
|
198
|
+
twitterAuthToken?: string;
|
|
199
|
+
/** Credential/env reference for the twitter auth token; defaults to TWITTER_AUTH_TOKEN. */
|
|
200
|
+
twitterAuthTokenEnv?: string;
|
|
201
|
+
/** twitter-cli `ct0` cookie (falls back to the credentials ref / $TWITTER_CT0). */
|
|
202
|
+
twitterCt0?: string;
|
|
203
|
+
/** Credential/env reference for the twitter ct0 cookie; defaults to TWITTER_CT0. */
|
|
204
|
+
twitterCt0Env?: string;
|
|
205
|
+
/** Snapshot options. The browser runtime itself (channel/headless/storageStatePath) is provided by the dsh-browser plugin via the `browser` service. */
|
|
206
|
+
playwright: {
|
|
207
|
+
/** Gate the playwright fallback backend in read.fetch. */
|
|
208
|
+
enabled: boolean;
|
|
209
|
+
/** Directory for read.snapshot artifacts; defaults to <dbDir>/snapshots. */
|
|
210
|
+
snapshotDir?: string;
|
|
211
|
+
};
|
|
212
|
+
/** User-defined custom platform search: url template + selectors + optional cookie. */
|
|
213
|
+
customPlatforms?: Record<string, CustomPlatformSpec>;
|
|
206
214
|
/** Per-platform search-page selector overrides (item/title/link/text). Overrides built-in specs. */
|
|
207
215
|
platformRules?: Record<string, {
|
|
208
216
|
item: string;
|
|
@@ -210,128 +218,54 @@ export interface Config {
|
|
|
210
218
|
link: string;
|
|
211
219
|
text?: string;
|
|
212
220
|
}>;
|
|
213
|
-
/** User-defined custom platform search: url template + selectors + optional cookie. */
|
|
214
|
-
customPlatforms?: Record<string, CustomPlatformSpec>;
|
|
215
221
|
/** Per-platform binding to domain-scoped dsh-browser auth/rule profiles. */
|
|
216
222
|
browserBindings?: Record<string, BrowserBinding>;
|
|
223
|
+
/** Provider id registered into ctx.web for the built-in web_search tool. */
|
|
224
|
+
providerId: string;
|
|
225
|
+
/** Register the ctx.web provider (set DSH_WEB_SEARCH_PROVIDER to use it). */
|
|
226
|
+
registerProvider: boolean;
|
|
227
|
+
/** ctx.web provider route: evidence pack inside the built-in web_search (only when this plugin is the selected provider). */
|
|
228
|
+
provider?: Partial<ProviderSettings>;
|
|
229
|
+
/** Cooperative per-call timeout budget in ms. */
|
|
230
|
+
timeoutMs: number;
|
|
231
|
+
/** Cache freshness window in seconds. */
|
|
232
|
+
ttlSeconds: number;
|
|
233
|
+
/** In-process LRU entry cap (hot queries resolve without touching SQLite). */
|
|
234
|
+
memoryCacheEntries: number;
|
|
235
|
+
/** Reciprocal Rank Fusion constant for multi-engine merging. */
|
|
236
|
+
rrfConstant: number;
|
|
217
237
|
/**
|
|
218
|
-
*
|
|
219
|
-
* (
|
|
238
|
+
* Recency bonus, as a fraction (0..1) of ONE TOP-RANK STEP on the normalised
|
|
239
|
+
* fusion scale (pipeline/fusion.ts): added once per URL, so even at 1 a fresh
|
|
240
|
+
* result gains about one rank position, and at the default it is a tie-breaker.
|
|
220
241
|
*/
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
|
|
233
|
-
/** Evidence pipeline (S6 scoring). */
|
|
234
|
-
evidence?: Partial<EvidenceConfig>;
|
|
242
|
+
freshnessBoost: number;
|
|
243
|
+
/** Days over which the recency bonus decays to zero. */
|
|
244
|
+
freshnessDays: number;
|
|
245
|
+
/**
|
|
246
|
+
* Authority-domain bonus, same scale and once-per-URL rule as `freshnessBoost`:
|
|
247
|
+
* it cannot lift a rank-10 result over a rank-1 result of the same engine.
|
|
248
|
+
*/
|
|
249
|
+
authorityBoost: number;
|
|
250
|
+
/** Extra authority domains (beyond the built-in .edu/.gov/.org and the curated list). */
|
|
251
|
+
authorityDomains: string[];
|
|
252
|
+
/** SQLite database path; defaults to $DSH_HOME/data/web-search-pro/store.db */
|
|
253
|
+
dbPath?: string;
|
|
235
254
|
verbose: boolean;
|
|
236
255
|
}
|
|
256
|
+
export { DEFAULT_ENGINES };
|
|
257
|
+
import { DEFAULT_ENGINES } from './default-chain.ts';
|
|
237
258
|
export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
238
|
-
dbPath: z<string, string, "volatile">;
|
|
239
|
-
toolSurface: z<string, string, "volatile-defined">;
|
|
240
|
-
ttlSeconds: z<number, number, "volatile-defined">;
|
|
241
|
-
memoryCacheEntries: z<number, number, "volatile-defined">;
|
|
242
|
-
rrfConstant: z<number, number, "volatile-defined">;
|
|
243
|
-
freshnessBoost: z<number, number, "volatile-defined">;
|
|
244
|
-
freshnessDays: z<number, number, "volatile-defined">;
|
|
245
|
-
authorityBoost: z<number, number, "volatile-defined">;
|
|
246
|
-
authorityDomains: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
247
259
|
searchMaxResults: z<number, number, "volatile-defined">;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
exaContentsTotalChars: z<number, number, "volatile-defined">;
|
|
251
|
-
timeoutMs: z<number, number, "volatile-defined">;
|
|
260
|
+
parallelEngines: z<boolean, boolean, "volatile-defined">;
|
|
261
|
+
toolSurface: z<string, string, "volatile-defined">;
|
|
252
262
|
allowProxyFakeIp: z<boolean, boolean, "volatile-defined">;
|
|
263
|
+
deepseekFetch: z<boolean, boolean, "volatile-defined">;
|
|
253
264
|
engines: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
254
|
-
parallelEngines: z<boolean, boolean, "volatile-defined">;
|
|
255
|
-
exaApiKey: z<string, string, "volatile">;
|
|
256
|
-
exaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
257
|
-
jinaApiKey: z<string, string, "volatile">;
|
|
258
|
-
jinaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
259
|
-
bochaApiKey: z<string, string, "volatile">;
|
|
260
|
-
bochaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
261
|
-
bochaBaseUrl: z<string, string, "volatile-defined">;
|
|
262
|
-
bochaSummary: z<boolean, boolean, "volatile-defined">;
|
|
263
|
-
searxngUrl: z<string, string, "volatile">;
|
|
264
|
-
openalexMailto: z<string, string, "volatile">;
|
|
265
|
-
keyedSources: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
266
|
-
apiKey?: string | null | undefined;
|
|
267
|
-
apiKeyEnv?: string | null | undefined;
|
|
268
|
-
baseUrl?: string | null | undefined;
|
|
269
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
270
|
-
apiKey: z<string, string, "plain">;
|
|
271
|
-
apiKeyEnv: z<string, string, "plain">;
|
|
272
|
-
baseUrl: z<string, string, "plain">;
|
|
273
|
-
}>>, string>>, "volatile">;
|
|
274
|
-
githubToken: z<string, string, "volatile">;
|
|
275
|
-
githubTokenEnv: z<string, string, "volatile-defined">;
|
|
276
|
-
enableCliBackends: z<boolean, boolean, "volatile-defined">;
|
|
277
|
-
opencliEnabled: z<boolean, boolean, "volatile-defined">;
|
|
278
|
-
agentReachEnabled: z<boolean, boolean, "volatile-defined">;
|
|
279
|
-
providerId: z<string, string, "volatile-defined">;
|
|
280
|
-
registerProvider: z<boolean, boolean, "volatile-defined">;
|
|
281
|
-
provider: z<Schemastery.ObjectS<NoInfer<{
|
|
282
|
-
evidence: z<string, string, "volatile-defined">;
|
|
283
|
-
deadlineMs: z<number, number, "volatile-defined">;
|
|
284
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
285
|
-
evidence: z<string, string, "volatile-defined">;
|
|
286
|
-
deadlineMs: z<number, number, "volatile-defined">;
|
|
287
|
-
}>>, "plain">;
|
|
288
|
-
platformRules: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
289
|
-
item?: string | null | undefined;
|
|
290
|
-
title?: string | null | undefined;
|
|
291
|
-
link?: string | null | undefined;
|
|
292
|
-
text?: string | null | undefined;
|
|
293
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
294
|
-
item: z<string, string, "plain">;
|
|
295
|
-
title: z<string, string, "plain">;
|
|
296
|
-
link: z<string, string, "plain">;
|
|
297
|
-
text: z<string, string, "plain">;
|
|
298
|
-
}>>, string>>, "volatile">;
|
|
299
|
-
customPlatforms: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
300
|
-
name?: string | null | undefined;
|
|
301
|
-
url?: string | null | undefined;
|
|
302
|
-
item?: string | null | undefined;
|
|
303
|
-
title?: string | null | undefined;
|
|
304
|
-
link?: string | null | undefined;
|
|
305
|
-
text?: string | null | undefined;
|
|
306
|
-
cookie?: string | null | undefined;
|
|
307
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
308
|
-
name: z<string, string, "plain">;
|
|
309
|
-
url: z<string, string, "plain">;
|
|
310
|
-
item: z<string, string, "plain">;
|
|
311
|
-
title: z<string, string, "plain">;
|
|
312
|
-
link: z<string, string, "plain">;
|
|
313
|
-
text: z<string, string, "plain">;
|
|
314
|
-
cookie: z<string, string, "plain">;
|
|
315
|
-
}>>, string>>, "volatile">;
|
|
316
|
-
browserBindings: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
317
|
-
authProfile?: string | null | undefined;
|
|
318
|
-
rulePack?: string | null | undefined;
|
|
319
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
320
|
-
authProfile: z<string, string, "plain">;
|
|
321
|
-
rulePack: z<string, string, "plain">;
|
|
322
|
-
}>>, string>>, "volatile">;
|
|
323
|
-
platformBackends: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, "volatile">;
|
|
324
|
-
cliAdapters: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<import("@deepseek-ai/cosmokit").Dict<any, string>, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<import("@deepseek-ai/cosmokit").Dict<any, string>, string>>, "volatile">;
|
|
325
|
-
playwright: z<Schemastery.ObjectS<NoInfer<{
|
|
326
|
-
enabled: z<boolean, boolean, "volatile-defined">;
|
|
327
|
-
snapshotDir: z<string, string, "plain">;
|
|
328
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
329
|
-
enabled: z<boolean, boolean, "volatile-defined">;
|
|
330
|
-
snapshotDir: z<string, string, "plain">;
|
|
331
|
-
}>>, "plain">;
|
|
332
265
|
sources: z<Schemastery.ObjectS<NoInfer<{
|
|
333
266
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
334
267
|
disabled: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
268
|
+
confidence: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
|
|
335
269
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
336
270
|
total?: number | null | undefined;
|
|
337
271
|
daily?: number | null | undefined;
|
|
@@ -342,6 +276,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
342
276
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
343
277
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
344
278
|
disabled: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
279
|
+
confidence: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
|
|
345
280
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
346
281
|
total?: number | null | undefined;
|
|
347
282
|
daily?: number | null | undefined;
|
|
@@ -350,6 +285,29 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
350
285
|
daily: z<number, number, "plain">;
|
|
351
286
|
}>>, string>>, "volatile">;
|
|
352
287
|
}>>, "plain">;
|
|
288
|
+
platformBackends: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, "volatile">;
|
|
289
|
+
keyedSources: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
290
|
+
apiKey?: string | null | undefined;
|
|
291
|
+
apiKeyEnv?: string | null | undefined;
|
|
292
|
+
baseUrl?: string | null | undefined;
|
|
293
|
+
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
294
|
+
apiKey: z<string, string, "plain">;
|
|
295
|
+
apiKeyEnv: z<string, string, "plain">;
|
|
296
|
+
baseUrl: z<string, string, "plain">;
|
|
297
|
+
}>>, string>>, "volatile">;
|
|
298
|
+
exaApiKey: z<string, string, "volatile">;
|
|
299
|
+
exaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
300
|
+
jinaApiKey: z<string, string, "volatile">;
|
|
301
|
+
jinaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
302
|
+
bochaApiKey: z<string, string, "volatile">;
|
|
303
|
+
bochaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
304
|
+
bochaBaseUrl: z<string, string, "volatile-defined">;
|
|
305
|
+
bochaSummary: z<boolean, boolean, "volatile-defined">;
|
|
306
|
+
githubToken: z<string, string, "volatile">;
|
|
307
|
+
githubTokenEnv: z<string, string, "volatile-defined">;
|
|
308
|
+
searxngUrl: z<string, string, "volatile">;
|
|
309
|
+
openalexMailto: z<string, string, "volatile">;
|
|
310
|
+
cliAdapters: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<import("@deepseek-ai/cosmokit").Dict<any, string>, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<import("@deepseek-ai/cosmokit").Dict<any, string>, string>>, "volatile">;
|
|
353
311
|
evidence: z<Schemastery.ObjectS<NoInfer<{
|
|
354
312
|
scorer: z<"jev" | "rule", "jev" | "rule", "volatile-defined">;
|
|
355
313
|
jevMode: z<"off" | "shadow" | "control" | "hybrid", "off" | "shadow" | "control" | "hybrid", "volatile-defined">;
|
|
@@ -693,85 +651,50 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
693
651
|
}>>, string>, "plain">;
|
|
694
652
|
}>>>, "volatile">;
|
|
695
653
|
}>>, "plain">;
|
|
696
|
-
verbose: z<boolean, boolean, "volatile-defined">;
|
|
697
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
698
|
-
dbPath: z<string, string, "volatile">;
|
|
699
|
-
toolSurface: z<string, string, "volatile-defined">;
|
|
700
|
-
ttlSeconds: z<number, number, "volatile-defined">;
|
|
701
|
-
memoryCacheEntries: z<number, number, "volatile-defined">;
|
|
702
|
-
rrfConstant: z<number, number, "volatile-defined">;
|
|
703
|
-
freshnessBoost: z<number, number, "volatile-defined">;
|
|
704
|
-
freshnessDays: z<number, number, "volatile-defined">;
|
|
705
|
-
authorityBoost: z<number, number, "volatile-defined">;
|
|
706
|
-
authorityDomains: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
707
|
-
searchMaxResults: z<number, number, "volatile-defined">;
|
|
708
654
|
fetchDefaultChars: z<number, number, "volatile-defined">;
|
|
709
655
|
exaContentsPerUrlChars: z<number, number, "volatile-defined">;
|
|
710
656
|
exaContentsTotalChars: z<number, number, "volatile-defined">;
|
|
711
|
-
timeoutMs: z<number, number, "volatile-defined">;
|
|
712
|
-
allowProxyFakeIp: z<boolean, boolean, "volatile-defined">;
|
|
713
|
-
engines: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
714
|
-
parallelEngines: z<boolean, boolean, "volatile-defined">;
|
|
715
|
-
exaApiKey: z<string, string, "volatile">;
|
|
716
|
-
exaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
717
|
-
jinaApiKey: z<string, string, "volatile">;
|
|
718
|
-
jinaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
719
|
-
bochaApiKey: z<string, string, "volatile">;
|
|
720
|
-
bochaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
721
|
-
bochaBaseUrl: z<string, string, "volatile-defined">;
|
|
722
|
-
bochaSummary: z<boolean, boolean, "volatile-defined">;
|
|
723
|
-
searxngUrl: z<string, string, "volatile">;
|
|
724
|
-
openalexMailto: z<string, string, "volatile">;
|
|
725
|
-
keyedSources: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
726
|
-
apiKey?: string | null | undefined;
|
|
727
|
-
apiKeyEnv?: string | null | undefined;
|
|
728
|
-
baseUrl?: string | null | undefined;
|
|
729
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
730
|
-
apiKey: z<string, string, "plain">;
|
|
731
|
-
apiKeyEnv: z<string, string, "plain">;
|
|
732
|
-
baseUrl: z<string, string, "plain">;
|
|
733
|
-
}>>, string>>, "volatile">;
|
|
734
|
-
githubToken: z<string, string, "volatile">;
|
|
735
|
-
githubTokenEnv: z<string, string, "volatile-defined">;
|
|
736
657
|
enableCliBackends: z<boolean, boolean, "volatile-defined">;
|
|
737
658
|
opencliEnabled: z<boolean, boolean, "volatile-defined">;
|
|
738
659
|
agentReachEnabled: z<boolean, boolean, "volatile-defined">;
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
660
|
+
twitterAuthToken: z<string, string, "volatile">;
|
|
661
|
+
twitterAuthTokenEnv: z<string, string, "volatile-defined">;
|
|
662
|
+
twitterCt0: z<string, string, "volatile">;
|
|
663
|
+
twitterCt0Env: z<string, string, "volatile-defined">;
|
|
664
|
+
playwright: z<Schemastery.ObjectS<NoInfer<{
|
|
665
|
+
enabled: z<boolean, boolean, "volatile-defined">;
|
|
666
|
+
snapshotDir: z<string, string, "volatile">;
|
|
744
667
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
745
|
-
|
|
746
|
-
|
|
668
|
+
enabled: z<boolean, boolean, "volatile-defined">;
|
|
669
|
+
snapshotDir: z<string, string, "volatile">;
|
|
747
670
|
}>>, "plain">;
|
|
748
|
-
|
|
671
|
+
customPlatforms: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
672
|
+
name?: string | null | undefined;
|
|
673
|
+
url?: string | null | undefined;
|
|
749
674
|
item?: string | null | undefined;
|
|
750
675
|
title?: string | null | undefined;
|
|
751
676
|
link?: string | null | undefined;
|
|
752
677
|
text?: string | null | undefined;
|
|
678
|
+
cookie?: string | null | undefined;
|
|
753
679
|
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
680
|
+
name: z<string, string, "plain">;
|
|
681
|
+
url: z<string, string, "plain">;
|
|
754
682
|
item: z<string, string, "plain">;
|
|
755
683
|
title: z<string, string, "plain">;
|
|
756
684
|
link: z<string, string, "plain">;
|
|
757
685
|
text: z<string, string, "plain">;
|
|
686
|
+
cookie: z<string, string, "plain">;
|
|
758
687
|
}>>, string>>, "volatile">;
|
|
759
|
-
|
|
760
|
-
name?: string | null | undefined;
|
|
761
|
-
url?: string | null | undefined;
|
|
688
|
+
platformRules: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
762
689
|
item?: string | null | undefined;
|
|
763
690
|
title?: string | null | undefined;
|
|
764
691
|
link?: string | null | undefined;
|
|
765
692
|
text?: string | null | undefined;
|
|
766
|
-
cookie?: string | null | undefined;
|
|
767
693
|
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
768
|
-
name: z<string, string, "plain">;
|
|
769
|
-
url: z<string, string, "plain">;
|
|
770
694
|
item: z<string, string, "plain">;
|
|
771
695
|
title: z<string, string, "plain">;
|
|
772
696
|
link: z<string, string, "plain">;
|
|
773
697
|
text: z<string, string, "plain">;
|
|
774
|
-
cookie: z<string, string, "plain">;
|
|
775
698
|
}>>, string>>, "volatile">;
|
|
776
699
|
browserBindings: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
777
700
|
authProfile?: string | null | undefined;
|
|
@@ -780,18 +703,36 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
780
703
|
authProfile: z<string, string, "plain">;
|
|
781
704
|
rulePack: z<string, string, "plain">;
|
|
782
705
|
}>>, string>>, "volatile">;
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
706
|
+
providerId: z<string, string, "volatile-defined">;
|
|
707
|
+
registerProvider: z<boolean, boolean, "volatile-defined">;
|
|
708
|
+
provider: z<Schemastery.ObjectS<NoInfer<{
|
|
709
|
+
evidence: z<string, string, "volatile-defined">;
|
|
710
|
+
deadlineMs: z<number, number, "volatile-defined">;
|
|
788
711
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
789
|
-
|
|
790
|
-
|
|
712
|
+
evidence: z<string, string, "volatile-defined">;
|
|
713
|
+
deadlineMs: z<number, number, "volatile-defined">;
|
|
791
714
|
}>>, "plain">;
|
|
715
|
+
timeoutMs: z<number, number, "volatile-defined">;
|
|
716
|
+
ttlSeconds: z<number, number, "volatile-defined">;
|
|
717
|
+
memoryCacheEntries: z<number, number, "volatile-defined">;
|
|
718
|
+
rrfConstant: z<number, number, "volatile-defined">;
|
|
719
|
+
freshnessBoost: z<number, number, "volatile-defined">;
|
|
720
|
+
freshnessDays: z<number, number, "volatile-defined">;
|
|
721
|
+
authorityBoost: z<number, number, "volatile-defined">;
|
|
722
|
+
authorityDomains: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
723
|
+
dbPath: z<string, string, "volatile">;
|
|
724
|
+
verbose: z<boolean, boolean, "volatile-defined">;
|
|
725
|
+
}>>, Schemastery.ObjectT<NoInfer<{
|
|
726
|
+
searchMaxResults: z<number, number, "volatile-defined">;
|
|
727
|
+
parallelEngines: z<boolean, boolean, "volatile-defined">;
|
|
728
|
+
toolSurface: z<string, string, "volatile-defined">;
|
|
729
|
+
allowProxyFakeIp: z<boolean, boolean, "volatile-defined">;
|
|
730
|
+
deepseekFetch: z<boolean, boolean, "volatile-defined">;
|
|
731
|
+
engines: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
792
732
|
sources: z<Schemastery.ObjectS<NoInfer<{
|
|
793
733
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
794
734
|
disabled: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
735
|
+
confidence: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
|
|
795
736
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
796
737
|
total?: number | null | undefined;
|
|
797
738
|
daily?: number | null | undefined;
|
|
@@ -802,6 +743,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
802
743
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
803
744
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
804
745
|
disabled: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
746
|
+
confidence: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
|
|
805
747
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
806
748
|
total?: number | null | undefined;
|
|
807
749
|
daily?: number | null | undefined;
|
|
@@ -810,6 +752,29 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
810
752
|
daily: z<number, number, "plain">;
|
|
811
753
|
}>>, string>>, "volatile">;
|
|
812
754
|
}>>, "plain">;
|
|
755
|
+
platformBackends: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, "volatile">;
|
|
756
|
+
keyedSources: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
757
|
+
apiKey?: string | null | undefined;
|
|
758
|
+
apiKeyEnv?: string | null | undefined;
|
|
759
|
+
baseUrl?: string | null | undefined;
|
|
760
|
+
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
761
|
+
apiKey: z<string, string, "plain">;
|
|
762
|
+
apiKeyEnv: z<string, string, "plain">;
|
|
763
|
+
baseUrl: z<string, string, "plain">;
|
|
764
|
+
}>>, string>>, "volatile">;
|
|
765
|
+
exaApiKey: z<string, string, "volatile">;
|
|
766
|
+
exaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
767
|
+
jinaApiKey: z<string, string, "volatile">;
|
|
768
|
+
jinaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
769
|
+
bochaApiKey: z<string, string, "volatile">;
|
|
770
|
+
bochaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
771
|
+
bochaBaseUrl: z<string, string, "volatile-defined">;
|
|
772
|
+
bochaSummary: z<boolean, boolean, "volatile-defined">;
|
|
773
|
+
githubToken: z<string, string, "volatile">;
|
|
774
|
+
githubTokenEnv: z<string, string, "volatile-defined">;
|
|
775
|
+
searxngUrl: z<string, string, "volatile">;
|
|
776
|
+
openalexMailto: z<string, string, "volatile">;
|
|
777
|
+
cliAdapters: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<import("@deepseek-ai/cosmokit").Dict<any, string>, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<import("@deepseek-ai/cosmokit").Dict<any, string>, string>>, "volatile">;
|
|
813
778
|
evidence: z<Schemastery.ObjectS<NoInfer<{
|
|
814
779
|
scorer: z<"jev" | "rule", "jev" | "rule", "volatile-defined">;
|
|
815
780
|
jevMode: z<"off" | "shadow" | "control" | "hybrid", "off" | "shadow" | "control" | "hybrid", "volatile-defined">;
|
|
@@ -1153,6 +1118,76 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
1153
1118
|
}>>, string>, "plain">;
|
|
1154
1119
|
}>>>, "volatile">;
|
|
1155
1120
|
}>>, "plain">;
|
|
1121
|
+
fetchDefaultChars: z<number, number, "volatile-defined">;
|
|
1122
|
+
exaContentsPerUrlChars: z<number, number, "volatile-defined">;
|
|
1123
|
+
exaContentsTotalChars: z<number, number, "volatile-defined">;
|
|
1124
|
+
enableCliBackends: z<boolean, boolean, "volatile-defined">;
|
|
1125
|
+
opencliEnabled: z<boolean, boolean, "volatile-defined">;
|
|
1126
|
+
agentReachEnabled: z<boolean, boolean, "volatile-defined">;
|
|
1127
|
+
twitterAuthToken: z<string, string, "volatile">;
|
|
1128
|
+
twitterAuthTokenEnv: z<string, string, "volatile-defined">;
|
|
1129
|
+
twitterCt0: z<string, string, "volatile">;
|
|
1130
|
+
twitterCt0Env: z<string, string, "volatile-defined">;
|
|
1131
|
+
playwright: z<Schemastery.ObjectS<NoInfer<{
|
|
1132
|
+
enabled: z<boolean, boolean, "volatile-defined">;
|
|
1133
|
+
snapshotDir: z<string, string, "volatile">;
|
|
1134
|
+
}>>, Schemastery.ObjectT<NoInfer<{
|
|
1135
|
+
enabled: z<boolean, boolean, "volatile-defined">;
|
|
1136
|
+
snapshotDir: z<string, string, "volatile">;
|
|
1137
|
+
}>>, "plain">;
|
|
1138
|
+
customPlatforms: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
1139
|
+
name?: string | null | undefined;
|
|
1140
|
+
url?: string | null | undefined;
|
|
1141
|
+
item?: string | null | undefined;
|
|
1142
|
+
title?: string | null | undefined;
|
|
1143
|
+
link?: string | null | undefined;
|
|
1144
|
+
text?: string | null | undefined;
|
|
1145
|
+
cookie?: string | null | undefined;
|
|
1146
|
+
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
1147
|
+
name: z<string, string, "plain">;
|
|
1148
|
+
url: z<string, string, "plain">;
|
|
1149
|
+
item: z<string, string, "plain">;
|
|
1150
|
+
title: z<string, string, "plain">;
|
|
1151
|
+
link: z<string, string, "plain">;
|
|
1152
|
+
text: z<string, string, "plain">;
|
|
1153
|
+
cookie: z<string, string, "plain">;
|
|
1154
|
+
}>>, string>>, "volatile">;
|
|
1155
|
+
platformRules: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
1156
|
+
item?: string | null | undefined;
|
|
1157
|
+
title?: string | null | undefined;
|
|
1158
|
+
link?: string | null | undefined;
|
|
1159
|
+
text?: string | null | undefined;
|
|
1160
|
+
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
1161
|
+
item: z<string, string, "plain">;
|
|
1162
|
+
title: z<string, string, "plain">;
|
|
1163
|
+
link: z<string, string, "plain">;
|
|
1164
|
+
text: z<string, string, "plain">;
|
|
1165
|
+
}>>, string>>, "volatile">;
|
|
1166
|
+
browserBindings: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
1167
|
+
authProfile?: string | null | undefined;
|
|
1168
|
+
rulePack?: string | null | undefined;
|
|
1169
|
+
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
1170
|
+
authProfile: z<string, string, "plain">;
|
|
1171
|
+
rulePack: z<string, string, "plain">;
|
|
1172
|
+
}>>, string>>, "volatile">;
|
|
1173
|
+
providerId: z<string, string, "volatile-defined">;
|
|
1174
|
+
registerProvider: z<boolean, boolean, "volatile-defined">;
|
|
1175
|
+
provider: z<Schemastery.ObjectS<NoInfer<{
|
|
1176
|
+
evidence: z<string, string, "volatile-defined">;
|
|
1177
|
+
deadlineMs: z<number, number, "volatile-defined">;
|
|
1178
|
+
}>>, Schemastery.ObjectT<NoInfer<{
|
|
1179
|
+
evidence: z<string, string, "volatile-defined">;
|
|
1180
|
+
deadlineMs: z<number, number, "volatile-defined">;
|
|
1181
|
+
}>>, "plain">;
|
|
1182
|
+
timeoutMs: z<number, number, "volatile-defined">;
|
|
1183
|
+
ttlSeconds: z<number, number, "volatile-defined">;
|
|
1184
|
+
memoryCacheEntries: z<number, number, "volatile-defined">;
|
|
1185
|
+
rrfConstant: z<number, number, "volatile-defined">;
|
|
1186
|
+
freshnessBoost: z<number, number, "volatile-defined">;
|
|
1187
|
+
freshnessDays: z<number, number, "volatile-defined">;
|
|
1188
|
+
authorityBoost: z<number, number, "volatile-defined">;
|
|
1189
|
+
authorityDomains: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
1190
|
+
dbPath: z<string, string, "volatile">;
|
|
1156
1191
|
verbose: z<boolean, boolean, "volatile-defined">;
|
|
1157
1192
|
}>>, "plain">;
|
|
1158
1193
|
export interface ResolvedConfig extends Config {
|
|
@@ -1163,10 +1198,15 @@ export interface ResolvedConfig extends Config {
|
|
|
1163
1198
|
jinaApiKey?: string;
|
|
1164
1199
|
jinaApiKeyEnv: string;
|
|
1165
1200
|
githubTokenEnv: string;
|
|
1201
|
+
twitterAuthToken?: string;
|
|
1202
|
+
twitterAuthTokenEnv: string;
|
|
1203
|
+
twitterCt0?: string;
|
|
1204
|
+
twitterCt0Env: string;
|
|
1166
1205
|
bochaApiKey?: string;
|
|
1167
1206
|
bochaApiKeyEnv: string;
|
|
1168
1207
|
bochaBaseUrl: string;
|
|
1169
1208
|
bochaSummary: boolean;
|
|
1209
|
+
deepseekFetch: boolean;
|
|
1170
1210
|
searxngUrl?: string;
|
|
1171
1211
|
openalexMailto?: string;
|
|
1172
1212
|
keyedSources?: Config['keyedSources'];
|
|
@@ -1177,8 +1217,6 @@ export interface ResolvedConfig extends Config {
|
|
|
1177
1217
|
}
|
|
1178
1218
|
/** Default database path under the harness home. */
|
|
1179
1219
|
export declare function defaultDbPath(): string;
|
|
1180
|
-
export
|
|
1181
|
-
export declare function normalizeRubrics<T>(rubrics: T): T;
|
|
1182
|
-
export declare function normalizeCoverage<T>(coverage: T): T;
|
|
1220
|
+
export { normalizeJudge, normalizeRubrics, normalizeCoverage } from './config-fillers.ts';
|
|
1183
1221
|
/** Resolve a fully-defaulted config from user input. Unwraps volatile fields (schemastery `Volatile<T>`) into plain values so consumers never see the wrapper. */
|
|
1184
1222
|
export declare function resolveConfig(config: Config): ResolvedConfig;
|