dsh-web-search-pro 0.2.0 → 0.2.3
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 +179 -0
- package/README.md +197 -32
- package/assets/skills/dsh-web-search-pro/SKILL.md +14 -13
- package/assets/skills/dsh-web-search-pro/references/config.md +36 -0
- package/assets/skills/dsh-web-search-pro/references/sources.md +19 -4
- package/assets/skills/dsh-web-search-pro/references/troubleshooting.md +3 -1
- package/catalog/sources.v1.json +22 -12
- 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 +12 -6
- package/lib/actions/search.js.map +1 -1
- package/lib/actions/sources.js +116 -41
- 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 +341 -0
- package/lib/cli/builtin-specs.js.map +1 -0
- package/lib/cli/chain.js +193 -0
- package/lib/cli/chain.js.map +1 -0
- package/lib/cli/chains-spec.js +118 -0
- package/lib/cli/chains-spec.js.map +1 -0
- package/lib/cli/engine.js +99 -0
- package/lib/cli/engine.js.map +1 -0
- package/lib/cli/opencli-sites.js +83 -0
- package/lib/cli/opencli-sites.js.map +1 -0
- package/lib/cli/opencli.js +153 -0
- package/lib/cli/opencli.js.map +1 -0
- package/lib/cli/probe.js +128 -0
- package/lib/cli/probe.js.map +1 -0
- package/lib/cli/runner.js +564 -0
- package/lib/cli/runner.js.map +1 -0
- package/lib/cli/spec.js +496 -0
- package/lib/cli/spec.js.map +1 -0
- 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 +15 -1
- package/lib/client/form-specs.js.map +1 -1
- package/lib/client/form.js +296 -27
- 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 -215
- 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 +22 -0
- package/lib/client/validators.js.map +1 -1
- package/lib/client.js +9151 -1987
- 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 +87 -107
- 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 +109 -102
- package/lib/deps.js.map +1 -1
- package/lib/engine-error.js +19 -0
- package/lib/engine-error.js.map +1 -0
- package/lib/engines.js +32 -115
- package/lib/engines.js.map +1 -1
- package/lib/fetch.js +23 -4
- package/lib/fetch.js.map +1 -1
- package/lib/index.js +30 -5
- 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 +21 -7
- 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 +13 -14
- 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 +118 -58
- 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 +203 -27
- 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 +85 -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 +38 -0
- package/lib/types/cli/chain.d.ts +83 -0
- package/lib/types/cli/chains-spec.d.ts +48 -0
- package/lib/types/cli/engine.d.ts +50 -0
- package/lib/types/cli/opencli-sites.d.ts +24 -0
- package/lib/types/cli/opencli.d.ts +77 -0
- package/lib/types/cli/probe.d.ts +53 -0
- package/lib/types/cli/runner.d.ts +126 -0
- package/lib/types/cli/spec.d.ts +269 -0
- 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 -196
- 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/client/validators.d.ts +6 -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 +265 -216
- package/lib/types/default-chain.d.ts +63 -0
- package/lib/types/deps.d.ts +25 -23
- package/lib/types/engine-error.d.ts +12 -0
- package/lib/types/engines.d.ts +45 -10
- package/lib/types/fetch.d.ts +12 -3
- package/lib/types/index.d.ts +164 -146
- package/lib/types/overlay-types.d.ts +98 -0
- package/lib/types/overlay.d.ts +141 -0
- package/lib/types/pipeline/candidates.d.ts +19 -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 +3 -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/platforms.d.ts +15 -3
- package/lib/types/providers/registry.d.ts +10 -0
- package/lib/types/restart.d.ts +52 -0
- package/lib/types/router.d.ts +69 -9
- package/lib/types/rpc-types.d.ts +79 -0
- package/lib/types/rpc.d.ts +41 -0
- package/lib/types/tools.d.ts +6 -0
- package/lib/types/util.d.ts +16 -1
- package/lib/util.js +17 -4
- package/lib/util.js.map +1 -1
- package/package.json +51 -43
- package/scripts/check-client-bundle.mjs +1 -1
- package/scripts/cli-login-check.mjs +214 -0
- 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,119 +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>;
|
|
217
|
-
/**
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
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;
|
|
237
|
+
/**
|
|
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.
|
|
241
|
+
*/
|
|
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;
|
|
228
254
|
verbose: boolean;
|
|
229
255
|
}
|
|
256
|
+
export { DEFAULT_ENGINES };
|
|
257
|
+
import { DEFAULT_ENGINES } from './default-chain.ts';
|
|
230
258
|
export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
231
|
-
dbPath: z<string, string, "volatile">;
|
|
232
|
-
toolSurface: z<string, string, "volatile-defined">;
|
|
233
|
-
ttlSeconds: z<number, number, "volatile-defined">;
|
|
234
|
-
memoryCacheEntries: z<number, number, "volatile-defined">;
|
|
235
|
-
rrfConstant: z<number, number, "volatile-defined">;
|
|
236
|
-
freshnessBoost: z<number, number, "volatile-defined">;
|
|
237
|
-
freshnessDays: z<number, number, "volatile-defined">;
|
|
238
|
-
authorityBoost: z<number, number, "volatile-defined">;
|
|
239
|
-
authorityDomains: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
240
259
|
searchMaxResults: z<number, number, "volatile-defined">;
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
exaContentsTotalChars: z<number, number, "volatile-defined">;
|
|
244
|
-
timeoutMs: z<number, number, "volatile-defined">;
|
|
260
|
+
parallelEngines: z<boolean, boolean, "volatile-defined">;
|
|
261
|
+
toolSurface: z<string, string, "volatile-defined">;
|
|
245
262
|
allowProxyFakeIp: z<boolean, boolean, "volatile-defined">;
|
|
263
|
+
deepseekFetch: z<boolean, boolean, "volatile-defined">;
|
|
246
264
|
engines: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
247
|
-
parallelEngines: z<boolean, boolean, "volatile-defined">;
|
|
248
|
-
exaApiKey: z<string, string, "volatile">;
|
|
249
|
-
exaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
250
|
-
jinaApiKey: z<string, string, "volatile">;
|
|
251
|
-
jinaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
252
|
-
bochaApiKey: z<string, string, "volatile">;
|
|
253
|
-
bochaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
254
|
-
bochaBaseUrl: z<string, string, "volatile-defined">;
|
|
255
|
-
bochaSummary: z<boolean, boolean, "volatile-defined">;
|
|
256
|
-
searxngUrl: z<string, string, "volatile">;
|
|
257
|
-
openalexMailto: z<string, string, "volatile">;
|
|
258
|
-
keyedSources: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
259
|
-
apiKey?: string | null | undefined;
|
|
260
|
-
apiKeyEnv?: string | null | undefined;
|
|
261
|
-
baseUrl?: string | null | undefined;
|
|
262
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
263
|
-
apiKey: z<string, string, "plain">;
|
|
264
|
-
apiKeyEnv: z<string, string, "plain">;
|
|
265
|
-
baseUrl: z<string, string, "plain">;
|
|
266
|
-
}>>, string>>, "volatile">;
|
|
267
|
-
githubToken: z<string, string, "volatile">;
|
|
268
|
-
githubTokenEnv: z<string, string, "volatile-defined">;
|
|
269
|
-
enableCliBackends: z<boolean, boolean, "volatile-defined">;
|
|
270
|
-
opencliEnabled: z<boolean, boolean, "volatile-defined">;
|
|
271
|
-
agentReachEnabled: z<boolean, boolean, "volatile-defined">;
|
|
272
|
-
providerId: z<string, string, "volatile-defined">;
|
|
273
|
-
registerProvider: z<boolean, boolean, "volatile-defined">;
|
|
274
|
-
provider: z<Schemastery.ObjectS<NoInfer<{
|
|
275
|
-
evidence: z<string, string, "volatile-defined">;
|
|
276
|
-
deadlineMs: z<number, number, "volatile-defined">;
|
|
277
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
278
|
-
evidence: z<string, string, "volatile-defined">;
|
|
279
|
-
deadlineMs: z<number, number, "volatile-defined">;
|
|
280
|
-
}>>, "plain">;
|
|
281
|
-
platformRules: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
282
|
-
item?: string | null | undefined;
|
|
283
|
-
title?: string | null | undefined;
|
|
284
|
-
link?: string | null | undefined;
|
|
285
|
-
text?: string | null | undefined;
|
|
286
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
287
|
-
item: z<string, string, "plain">;
|
|
288
|
-
title: z<string, string, "plain">;
|
|
289
|
-
link: z<string, string, "plain">;
|
|
290
|
-
text: z<string, string, "plain">;
|
|
291
|
-
}>>, string>>, "volatile">;
|
|
292
|
-
customPlatforms: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
293
|
-
name?: string | null | undefined;
|
|
294
|
-
url?: string | null | undefined;
|
|
295
|
-
item?: string | null | undefined;
|
|
296
|
-
title?: string | null | undefined;
|
|
297
|
-
link?: string | null | undefined;
|
|
298
|
-
text?: string | null | undefined;
|
|
299
|
-
cookie?: string | null | undefined;
|
|
300
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
301
|
-
name: z<string, string, "plain">;
|
|
302
|
-
url: z<string, string, "plain">;
|
|
303
|
-
item: z<string, string, "plain">;
|
|
304
|
-
title: z<string, string, "plain">;
|
|
305
|
-
link: z<string, string, "plain">;
|
|
306
|
-
text: z<string, string, "plain">;
|
|
307
|
-
cookie: z<string, string, "plain">;
|
|
308
|
-
}>>, string>>, "volatile">;
|
|
309
|
-
browserBindings: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
310
|
-
authProfile?: string | null | undefined;
|
|
311
|
-
rulePack?: string | null | undefined;
|
|
312
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
313
|
-
authProfile: z<string, string, "plain">;
|
|
314
|
-
rulePack: z<string, string, "plain">;
|
|
315
|
-
}>>, string>>, "volatile">;
|
|
316
|
-
playwright: z<Schemastery.ObjectS<NoInfer<{
|
|
317
|
-
enabled: z<boolean, boolean, "volatile-defined">;
|
|
318
|
-
snapshotDir: z<string, string, "plain">;
|
|
319
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
320
|
-
enabled: z<boolean, boolean, "volatile-defined">;
|
|
321
|
-
snapshotDir: z<string, string, "plain">;
|
|
322
|
-
}>>, "plain">;
|
|
323
265
|
sources: z<Schemastery.ObjectS<NoInfer<{
|
|
324
266
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
325
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">;
|
|
326
269
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
327
270
|
total?: number | null | undefined;
|
|
328
271
|
daily?: number | null | undefined;
|
|
@@ -333,6 +276,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
333
276
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
334
277
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
335
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">;
|
|
336
280
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
337
281
|
total?: number | null | undefined;
|
|
338
282
|
daily?: number | null | undefined;
|
|
@@ -341,6 +285,29 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
341
285
|
daily: z<number, number, "plain">;
|
|
342
286
|
}>>, string>>, "volatile">;
|
|
343
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">;
|
|
344
311
|
evidence: z<Schemastery.ObjectS<NoInfer<{
|
|
345
312
|
scorer: z<"jev" | "rule", "jev" | "rule", "volatile-defined">;
|
|
346
313
|
jevMode: z<"off" | "shadow" | "control" | "hybrid", "off" | "shadow" | "control" | "hybrid", "volatile-defined">;
|
|
@@ -684,85 +651,50 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
684
651
|
}>>, string>, "plain">;
|
|
685
652
|
}>>>, "volatile">;
|
|
686
653
|
}>>, "plain">;
|
|
687
|
-
verbose: z<boolean, boolean, "volatile-defined">;
|
|
688
|
-
}>>, Schemastery.ObjectT<NoInfer<{
|
|
689
|
-
dbPath: z<string, string, "volatile">;
|
|
690
|
-
toolSurface: z<string, string, "volatile-defined">;
|
|
691
|
-
ttlSeconds: z<number, number, "volatile-defined">;
|
|
692
|
-
memoryCacheEntries: z<number, number, "volatile-defined">;
|
|
693
|
-
rrfConstant: z<number, number, "volatile-defined">;
|
|
694
|
-
freshnessBoost: z<number, number, "volatile-defined">;
|
|
695
|
-
freshnessDays: z<number, number, "volatile-defined">;
|
|
696
|
-
authorityBoost: z<number, number, "volatile-defined">;
|
|
697
|
-
authorityDomains: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
698
|
-
searchMaxResults: z<number, number, "volatile-defined">;
|
|
699
654
|
fetchDefaultChars: z<number, number, "volatile-defined">;
|
|
700
655
|
exaContentsPerUrlChars: z<number, number, "volatile-defined">;
|
|
701
656
|
exaContentsTotalChars: z<number, number, "volatile-defined">;
|
|
702
|
-
timeoutMs: z<number, number, "volatile-defined">;
|
|
703
|
-
allowProxyFakeIp: z<boolean, boolean, "volatile-defined">;
|
|
704
|
-
engines: z<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
|
|
705
|
-
parallelEngines: z<boolean, boolean, "volatile-defined">;
|
|
706
|
-
exaApiKey: z<string, string, "volatile">;
|
|
707
|
-
exaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
708
|
-
jinaApiKey: z<string, string, "volatile">;
|
|
709
|
-
jinaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
710
|
-
bochaApiKey: z<string, string, "volatile">;
|
|
711
|
-
bochaApiKeyEnv: z<string, string, "volatile-defined">;
|
|
712
|
-
bochaBaseUrl: z<string, string, "volatile-defined">;
|
|
713
|
-
bochaSummary: z<boolean, boolean, "volatile-defined">;
|
|
714
|
-
searxngUrl: z<string, string, "volatile">;
|
|
715
|
-
openalexMailto: z<string, string, "volatile">;
|
|
716
|
-
keyedSources: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
717
|
-
apiKey?: string | null | undefined;
|
|
718
|
-
apiKeyEnv?: string | null | undefined;
|
|
719
|
-
baseUrl?: string | null | undefined;
|
|
720
|
-
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
721
|
-
apiKey: z<string, string, "plain">;
|
|
722
|
-
apiKeyEnv: z<string, string, "plain">;
|
|
723
|
-
baseUrl: z<string, string, "plain">;
|
|
724
|
-
}>>, string>>, "volatile">;
|
|
725
|
-
githubToken: z<string, string, "volatile">;
|
|
726
|
-
githubTokenEnv: z<string, string, "volatile-defined">;
|
|
727
657
|
enableCliBackends: z<boolean, boolean, "volatile-defined">;
|
|
728
658
|
opencliEnabled: z<boolean, boolean, "volatile-defined">;
|
|
729
659
|
agentReachEnabled: z<boolean, boolean, "volatile-defined">;
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
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">;
|
|
735
667
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
736
|
-
|
|
737
|
-
|
|
668
|
+
enabled: z<boolean, boolean, "volatile-defined">;
|
|
669
|
+
snapshotDir: z<string, string, "volatile">;
|
|
738
670
|
}>>, "plain">;
|
|
739
|
-
|
|
671
|
+
customPlatforms: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
672
|
+
name?: string | null | undefined;
|
|
673
|
+
url?: string | null | undefined;
|
|
740
674
|
item?: string | null | undefined;
|
|
741
675
|
title?: string | null | undefined;
|
|
742
676
|
link?: string | null | undefined;
|
|
743
677
|
text?: string | null | undefined;
|
|
678
|
+
cookie?: string | null | undefined;
|
|
744
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">;
|
|
745
682
|
item: z<string, string, "plain">;
|
|
746
683
|
title: z<string, string, "plain">;
|
|
747
684
|
link: z<string, string, "plain">;
|
|
748
685
|
text: z<string, string, "plain">;
|
|
686
|
+
cookie: z<string, string, "plain">;
|
|
749
687
|
}>>, string>>, "volatile">;
|
|
750
|
-
|
|
751
|
-
name?: string | null | undefined;
|
|
752
|
-
url?: string | null | undefined;
|
|
688
|
+
platformRules: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
753
689
|
item?: string | null | undefined;
|
|
754
690
|
title?: string | null | undefined;
|
|
755
691
|
link?: string | null | undefined;
|
|
756
692
|
text?: string | null | undefined;
|
|
757
|
-
cookie?: string | null | undefined;
|
|
758
693
|
} & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
|
|
759
|
-
name: z<string, string, "plain">;
|
|
760
|
-
url: z<string, string, "plain">;
|
|
761
694
|
item: z<string, string, "plain">;
|
|
762
695
|
title: z<string, string, "plain">;
|
|
763
696
|
link: z<string, string, "plain">;
|
|
764
697
|
text: z<string, string, "plain">;
|
|
765
|
-
cookie: z<string, string, "plain">;
|
|
766
698
|
}>>, string>>, "volatile">;
|
|
767
699
|
browserBindings: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
768
700
|
authProfile?: string | null | undefined;
|
|
@@ -771,16 +703,36 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
771
703
|
authProfile: z<string, string, "plain">;
|
|
772
704
|
rulePack: z<string, string, "plain">;
|
|
773
705
|
}>>, string>>, "volatile">;
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
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">;
|
|
777
711
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
778
|
-
|
|
779
|
-
|
|
712
|
+
evidence: z<string, string, "volatile-defined">;
|
|
713
|
+
deadlineMs: z<number, number, "volatile-defined">;
|
|
780
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">;
|
|
781
732
|
sources: z<Schemastery.ObjectS<NoInfer<{
|
|
782
733
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
783
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">;
|
|
784
736
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
785
737
|
total?: number | null | undefined;
|
|
786
738
|
daily?: number | null | undefined;
|
|
@@ -791,6 +743,7 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
791
743
|
}>>, Schemastery.ObjectT<NoInfer<{
|
|
792
744
|
priority: z<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
|
|
793
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">;
|
|
794
747
|
budget: z<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
|
|
795
748
|
total?: number | null | undefined;
|
|
796
749
|
daily?: number | null | undefined;
|
|
@@ -799,6 +752,29 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
799
752
|
daily: z<number, number, "plain">;
|
|
800
753
|
}>>, string>>, "volatile">;
|
|
801
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">;
|
|
802
778
|
evidence: z<Schemastery.ObjectS<NoInfer<{
|
|
803
779
|
scorer: z<"jev" | "rule", "jev" | "rule", "volatile-defined">;
|
|
804
780
|
jevMode: z<"off" | "shadow" | "control" | "hybrid", "off" | "shadow" | "control" | "hybrid", "volatile-defined">;
|
|
@@ -1142,6 +1118,76 @@ export declare const Config: z<Schemastery.ObjectS<NoInfer<{
|
|
|
1142
1118
|
}>>, string>, "plain">;
|
|
1143
1119
|
}>>>, "volatile">;
|
|
1144
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">;
|
|
1145
1191
|
verbose: z<boolean, boolean, "volatile-defined">;
|
|
1146
1192
|
}>>, "plain">;
|
|
1147
1193
|
export interface ResolvedConfig extends Config {
|
|
@@ -1152,10 +1198,15 @@ export interface ResolvedConfig extends Config {
|
|
|
1152
1198
|
jinaApiKey?: string;
|
|
1153
1199
|
jinaApiKeyEnv: string;
|
|
1154
1200
|
githubTokenEnv: string;
|
|
1201
|
+
twitterAuthToken?: string;
|
|
1202
|
+
twitterAuthTokenEnv: string;
|
|
1203
|
+
twitterCt0?: string;
|
|
1204
|
+
twitterCt0Env: string;
|
|
1155
1205
|
bochaApiKey?: string;
|
|
1156
1206
|
bochaApiKeyEnv: string;
|
|
1157
1207
|
bochaBaseUrl: string;
|
|
1158
1208
|
bochaSummary: boolean;
|
|
1209
|
+
deepseekFetch: boolean;
|
|
1159
1210
|
searxngUrl?: string;
|
|
1160
1211
|
openalexMailto?: string;
|
|
1161
1212
|
keyedSources?: Config['keyedSources'];
|
|
@@ -1166,8 +1217,6 @@ export interface ResolvedConfig extends Config {
|
|
|
1166
1217
|
}
|
|
1167
1218
|
/** Default database path under the harness home. */
|
|
1168
1219
|
export declare function defaultDbPath(): string;
|
|
1169
|
-
export
|
|
1170
|
-
export declare function normalizeRubrics<T>(rubrics: T): T;
|
|
1171
|
-
export declare function normalizeCoverage<T>(coverage: T): T;
|
|
1220
|
+
export { normalizeJudge, normalizeRubrics, normalizeCoverage } from './config-fillers.ts';
|
|
1172
1221
|
/** Resolve a fully-defaulted config from user input. Unwraps volatile fields (schemastery `Volatile<T>`) into plain values so consumers never see the wrapper. */
|
|
1173
1222
|
export declare function resolveConfig(config: Config): ResolvedConfig;
|