dsh-web-search-pro 0.2.1 → 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.
Files changed (258) hide show
  1. package/CHANGELOG.md +164 -0
  2. package/README.md +154 -58
  3. package/assets/skills/dsh-web-search-pro/SKILL.md +13 -12
  4. package/assets/skills/dsh-web-search-pro/references/config.md +36 -0
  5. package/assets/skills/dsh-web-search-pro/references/sources.md +13 -7
  6. package/assets/skills/dsh-web-search-pro/references/troubleshooting.md +3 -1
  7. package/catalog/sources.v1.json +16 -14
  8. package/lib/actions/approval.js +50 -1
  9. package/lib/actions/approval.js.map +1 -1
  10. package/lib/actions/config.js +274 -0
  11. package/lib/actions/config.js.map +1 -0
  12. package/lib/actions/errors.js +8 -1
  13. package/lib/actions/errors.js.map +1 -1
  14. package/lib/actions/format.js +10 -0
  15. package/lib/actions/format.js.map +1 -1
  16. package/lib/actions/index-view.js +2 -2
  17. package/lib/actions/index-view.js.map +1 -1
  18. package/lib/actions/read.js +7 -3
  19. package/lib/actions/read.js.map +1 -1
  20. package/lib/actions/registry.js +3 -1
  21. package/lib/actions/registry.js.map +1 -1
  22. package/lib/actions/run.js +2 -2
  23. package/lib/actions/run.js.map +1 -1
  24. package/lib/actions/schema.js +18 -0
  25. package/lib/actions/schema.js.map +1 -1
  26. package/lib/actions/search.js +7 -2
  27. package/lib/actions/search.js.map +1 -1
  28. package/lib/actions/sources.js +76 -18
  29. package/lib/actions/sources.js.map +1 -1
  30. package/lib/actions/types.js +19 -1
  31. package/lib/actions/types.js.map +1 -1
  32. package/lib/browser-access.js +25 -0
  33. package/lib/browser-access.js.map +1 -1
  34. package/lib/catalog/recommend.js +11 -3
  35. package/lib/catalog/recommend.js.map +1 -1
  36. package/lib/catalog/schema.js +3 -1
  37. package/lib/catalog/schema.js.map +1 -1
  38. package/lib/cli/builtin-specs.js +57 -22
  39. package/lib/cli/builtin-specs.js.map +1 -1
  40. package/lib/cli/chain.js +13 -12
  41. package/lib/cli/chain.js.map +1 -1
  42. package/lib/cli/chains-spec.js +31 -11
  43. package/lib/cli/chains-spec.js.map +1 -1
  44. package/lib/cli/engine.js +19 -3
  45. package/lib/cli/engine.js.map +1 -1
  46. package/lib/cli/opencli-sites.js +83 -0
  47. package/lib/cli/opencli-sites.js.map +1 -0
  48. package/lib/cli/opencli.js +65 -17
  49. package/lib/cli/opencli.js.map +1 -1
  50. package/lib/cli/probe.js +1 -1
  51. package/lib/cli/probe.js.map +1 -1
  52. package/lib/cli/runner.js +217 -27
  53. package/lib/cli/runner.js.map +1 -1
  54. package/lib/cli/spec.js +100 -20
  55. package/lib/cli/spec.js.map +1 -1
  56. package/lib/cli/time-text.js +79 -0
  57. package/lib/cli/time-text.js.map +1 -0
  58. package/lib/cli/trial.js +57 -0
  59. package/lib/cli/trial.js.map +1 -0
  60. package/lib/client/SettingsCard.js +14 -32
  61. package/lib/client/SettingsCard.js.map +1 -1
  62. package/lib/client/agent-mark.js +27 -0
  63. package/lib/client/agent-mark.js.map +1 -0
  64. package/lib/client/card-frame.js +118 -0
  65. package/lib/client/card-frame.js.map +1 -0
  66. package/lib/client/cli-form.js +257 -0
  67. package/lib/client/cli-form.js.map +1 -0
  68. package/lib/client/field-docs.js +130 -0
  69. package/lib/client/field-docs.js.map +1 -0
  70. package/lib/client/field-keys.js +81 -0
  71. package/lib/client/field-keys.js.map +1 -0
  72. package/lib/client/field-rows.js +71 -0
  73. package/lib/client/field-rows.js.map +1 -0
  74. package/lib/client/fill.js +3 -0
  75. package/lib/client/fill.js.map +1 -0
  76. package/lib/client/form-specs.js +13 -1
  77. package/lib/client/form-specs.js.map +1 -1
  78. package/lib/client/form.js +282 -24
  79. package/lib/client/form.js.map +1 -1
  80. package/lib/client/group-advanced.js +23 -0
  81. package/lib/client/group-advanced.js.map +1 -0
  82. package/lib/client/group-agent.js +28 -0
  83. package/lib/client/group-agent.js.map +1 -0
  84. package/lib/client/group-cli.js +136 -0
  85. package/lib/client/group-cli.js.map +1 -0
  86. package/lib/client/group-common.js +29 -0
  87. package/lib/client/group-common.js.map +1 -0
  88. package/lib/client/group-judge.js +67 -0
  89. package/lib/client/group-judge.js.map +1 -0
  90. package/lib/client/group-order.js +201 -0
  91. package/lib/client/group-order.js.map +1 -0
  92. package/lib/client/group-runtime.js +33 -0
  93. package/lib/client/group-runtime.js.map +1 -0
  94. package/lib/client/group-sources.js +83 -0
  95. package/lib/client/group-sources.js.map +1 -0
  96. package/lib/client/groups-basic.js +36 -0
  97. package/lib/client/groups-basic.js.map +1 -0
  98. package/lib/client/index.js.map +1 -1
  99. package/lib/client/json-list.js +50 -0
  100. package/lib/client/json-list.js.map +1 -0
  101. package/lib/client/locales.js +666 -219
  102. package/lib/client/locales.js.map +1 -1
  103. package/lib/client/order.js +192 -0
  104. package/lib/client/order.js.map +1 -0
  105. package/lib/client/overlay-ops.js +46 -0
  106. package/lib/client/overlay-ops.js.map +1 -0
  107. package/lib/client/sources-table.js +1 -0
  108. package/lib/client/sources-table.js.map +1 -1
  109. package/lib/client/styles.js +74 -47
  110. package/lib/client/styles.js.map +1 -1
  111. package/lib/client/text-view.js +98 -0
  112. package/lib/client/text-view.js.map +1 -0
  113. package/lib/client/ui-kit.js +120 -0
  114. package/lib/client/ui-kit.js.map +1 -0
  115. package/lib/client/validators.js +8 -1
  116. package/lib/client/validators.js.map +1 -1
  117. package/lib/client.js +7313 -1571
  118. package/lib/client.js.map +1 -1
  119. package/lib/config-fillers.js +53 -0
  120. package/lib/config-fillers.js.map +1 -0
  121. package/lib/config-groups.js +49 -0
  122. package/lib/config-groups.js.map +1 -0
  123. package/lib/config.js +84 -108
  124. package/lib/config.js.map +1 -1
  125. package/lib/default-chain.js +66 -0
  126. package/lib/default-chain.js.map +1 -0
  127. package/lib/deps.js +1 -1
  128. package/lib/deps.js.map +1 -1
  129. package/lib/engines.js +3 -3
  130. package/lib/engines.js.map +1 -1
  131. package/lib/fetch.js +23 -4
  132. package/lib/fetch.js.map +1 -1
  133. package/lib/index.js +30 -5
  134. package/lib/index.js.map +1 -1
  135. package/lib/overlay-types.js +88 -0
  136. package/lib/overlay-types.js.map +1 -0
  137. package/lib/overlay.js +683 -0
  138. package/lib/overlay.js.map +1 -0
  139. package/lib/pipeline/candidates.js +27 -1
  140. package/lib/pipeline/candidates.js.map +1 -1
  141. package/lib/pipeline/compile.js +63 -0
  142. package/lib/pipeline/compile.js.map +1 -1
  143. package/lib/pipeline/confidence.js +64 -0
  144. package/lib/pipeline/confidence.js.map +1 -0
  145. package/lib/pipeline/fusion.js +50 -3
  146. package/lib/pipeline/fusion.js.map +1 -1
  147. package/lib/pipeline/plan.js +2 -2
  148. package/lib/pipeline/plan.js.map +1 -1
  149. package/lib/pipeline/render.js +20 -2
  150. package/lib/pipeline/render.js.map +1 -1
  151. package/lib/pipeline/run.js +17 -5
  152. package/lib/pipeline/run.js.map +1 -1
  153. package/lib/pipeline/sources-spec.js +19 -3
  154. package/lib/pipeline/sources-spec.js.map +1 -1
  155. package/lib/providers/builtin.js +3 -0
  156. package/lib/providers/builtin.js.map +1 -1
  157. package/lib/providers/deepseek.js +348 -0
  158. package/lib/providers/deepseek.js.map +1 -0
  159. package/lib/providers/http.js.map +1 -1
  160. package/lib/providers/keyed-meta.js +7 -0
  161. package/lib/providers/keyed-meta.js.map +1 -1
  162. package/lib/providers/platforms.js +18 -17
  163. package/lib/providers/platforms.js.map +1 -1
  164. package/lib/providers/registry.js.map +1 -1
  165. package/lib/restart.js +47 -0
  166. package/lib/restart.js.map +1 -0
  167. package/lib/router.js +145 -26
  168. package/lib/router.js.map +1 -1
  169. package/lib/rpc-types.js +15 -0
  170. package/lib/rpc-types.js.map +1 -0
  171. package/lib/rpc.js +85 -0
  172. package/lib/rpc.js.map +1 -0
  173. package/lib/tools.js +10 -4
  174. package/lib/tools.js.map +1 -1
  175. package/lib/types/actions/approval.d.ts +11 -0
  176. package/lib/types/actions/config.d.ts +54 -0
  177. package/lib/types/actions/format.d.ts +9 -2
  178. package/lib/types/actions/run.d.ts +1 -0
  179. package/lib/types/actions/schema.d.ts +7 -1
  180. package/lib/types/actions/sources.d.ts +29 -3
  181. package/lib/types/actions/types.d.ts +28 -2
  182. package/lib/types/browser-access.d.ts +17 -0
  183. package/lib/types/catalog/recommend.d.ts +4 -0
  184. package/lib/types/catalog/schema.d.ts +2 -0
  185. package/lib/types/cli/builtin-specs.d.ts +11 -3
  186. package/lib/types/cli/chains-spec.d.ts +12 -3
  187. package/lib/types/cli/engine.d.ts +10 -3
  188. package/lib/types/cli/opencli-sites.d.ts +24 -0
  189. package/lib/types/cli/opencli.d.ts +42 -3
  190. package/lib/types/cli/runner.d.ts +47 -8
  191. package/lib/types/cli/spec.d.ts +101 -8
  192. package/lib/types/cli/time-text.d.ts +12 -0
  193. package/lib/types/cli/trial.d.ts +19 -0
  194. package/lib/types/client/SettingsCard.d.ts +17 -1
  195. package/lib/types/client/agent-mark.d.ts +22 -0
  196. package/lib/types/client/card-frame.d.ts +35 -0
  197. package/lib/types/client/cli-form.d.ts +97 -0
  198. package/lib/types/client/field-docs.d.ts +15 -0
  199. package/lib/types/client/field-keys.d.ts +41 -0
  200. package/lib/types/client/field-rows.d.ts +70 -0
  201. package/lib/types/client/fill.d.ts +2 -0
  202. package/lib/types/client/form-specs.d.ts +12 -3
  203. package/lib/types/client/form.d.ts +79 -1
  204. package/lib/types/client/group-advanced.d.ts +9 -0
  205. package/lib/types/client/group-agent.d.ts +20 -0
  206. package/lib/types/client/group-cli.d.ts +52 -0
  207. package/lib/types/client/group-common.d.ts +12 -0
  208. package/lib/types/client/group-judge.d.ts +17 -0
  209. package/lib/types/client/group-order.d.ts +26 -0
  210. package/lib/types/client/group-runtime.d.ts +15 -0
  211. package/lib/types/client/group-sources.d.ts +46 -0
  212. package/lib/types/client/groups-basic.d.ts +18 -0
  213. package/lib/types/client/index.d.ts +8 -0
  214. package/lib/types/client/json-list.d.ts +21 -0
  215. package/lib/types/client/locales.d.ts +1079 -200
  216. package/lib/types/client/order.d.ts +102 -0
  217. package/lib/types/client/overlay-ops.d.ts +37 -0
  218. package/lib/types/client/styles.d.ts +56 -41
  219. package/lib/types/client/text-view.d.ts +22 -0
  220. package/lib/types/client/ui-kit.d.ts +200 -0
  221. package/lib/types/config-fillers.d.ts +9 -0
  222. package/lib/types/config-groups.d.ts +23 -0
  223. package/lib/types/config.d.ts +263 -225
  224. package/lib/types/default-chain.d.ts +63 -0
  225. package/lib/types/engines.d.ts +29 -1
  226. package/lib/types/fetch.d.ts +12 -3
  227. package/lib/types/index.d.ts +164 -150
  228. package/lib/types/overlay-types.d.ts +98 -0
  229. package/lib/types/overlay.d.ts +141 -0
  230. package/lib/types/pipeline/candidates.d.ts +17 -0
  231. package/lib/types/pipeline/compile.d.ts +11 -0
  232. package/lib/types/pipeline/confidence.d.ts +35 -0
  233. package/lib/types/pipeline/fusion.d.ts +23 -1
  234. package/lib/types/pipeline/render.d.ts +16 -0
  235. package/lib/types/pipeline/run.d.ts +2 -1
  236. package/lib/types/pipeline/sources-spec.d.ts +5 -2
  237. package/lib/types/pipeline/types.d.ts +37 -0
  238. package/lib/types/providers/deepseek.d.ts +130 -0
  239. package/lib/types/providers/http.d.ts +2 -1
  240. package/lib/types/providers/keyed-meta.d.ts +5 -0
  241. package/lib/types/providers/registry.d.ts +7 -0
  242. package/lib/types/restart.d.ts +52 -0
  243. package/lib/types/router.d.ts +57 -10
  244. package/lib/types/rpc-types.d.ts +79 -0
  245. package/lib/types/rpc.d.ts +41 -0
  246. package/lib/types/tools.d.ts +6 -0
  247. package/lib/types/util.d.ts +10 -0
  248. package/lib/util.js +10 -1
  249. package/lib/util.js.map +1 -1
  250. package/package.json +50 -42
  251. package/scripts/check-client-bundle.mjs +1 -1
  252. package/scripts/cli-login-check.mjs +214 -0
  253. package/lib/client/RubricEditor.js +0 -47
  254. package/lib/client/RubricEditor.js.map +0 -1
  255. package/lib/client/fields.js +0 -31
  256. package/lib/client/fields.js.map +0 -1
  257. package/lib/types/client/RubricEditor.d.ts +0 -6
  258. package/lib/types/client/fields.d.ts +0 -65
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The default engine order of a plain search, as a pure function: the router uses it to decide the order, and the settings
3
+ * card's status summary uses the same code to show the chain a search would try first, so the two cannot disagree.
4
+ * No imports: the client bundle includes this file.
5
+ * @module web-search-pro/default-chain
6
+ */
7
+ /** The default `engines` list. A list equal to it is "not customised": the default rule for common ("常用") sources applies to it. */
8
+ export declare const DEFAULT_ENGINES: readonly string[];
9
+ export interface ChainInput {
10
+ /** The configured `engines` (route ids). */
11
+ engines: readonly string[];
12
+ /** `sources.priority` (route ids). */
13
+ priority?: readonly string[];
14
+ /** `sources.disabled` (route ids). */
15
+ disabled?: readonly string[];
16
+ /** Common ("常用") sources whose key resolves, best first. */
17
+ commonReady?: readonly string[];
18
+ /** `evidence.sourcePolicy === 'anonymous-only'`: a paid common source is never added. */
19
+ anonymousOnly?: boolean;
20
+ }
21
+ /**
22
+ * Order of the configured chain: `sources.disabled` removed, `sources.priority` ids that are in the list first, then the common
23
+ * sources whose key resolves (only while `engines` is the default list; a list the user wrote keeps its order and the position
24
+ * it gave a common source), then the rest. Throws when everything is disabled.
25
+ */
26
+ export declare function effectiveChain(input: ChainInput): string[];
27
+ /** One reason the effective chain differs from the `engines` list as written. */
28
+ export type ChainReason =
29
+ /** `sources.disabled` removed these from the list. */
30
+ {
31
+ kind: 'disabled';
32
+ ids: string[];
33
+ }
34
+ /** `sources.priority` moved these to the front. */
35
+ | {
36
+ kind: 'priority';
37
+ ids: string[];
38
+ }
39
+ /** The default rule put these ready common ("常用") sources in front of the list. */
40
+ | {
41
+ kind: 'common';
42
+ ids: string[];
43
+ }
44
+ /** `evidence.sourcePolicy: anonymous-only` kept these ready common sources out (they need a key). */
45
+ | {
46
+ kind: 'anonymous-only';
47
+ ids: string[];
48
+ }
49
+ /** The list is the user's own, so these ready common sources are not added (they keep their place only if the list names them). */
50
+ | {
51
+ kind: 'own-list';
52
+ ids: string[];
53
+ };
54
+ export interface ChainExplanation {
55
+ /** What a plain search would try, in order ({@link effectiveChain}); undefined when everything is disabled. */
56
+ chain: string[] | undefined;
57
+ reasons: ChainReason[];
58
+ }
59
+ /**
60
+ * {@link effectiveChain} plus why it differs from the list: the preview of the settings card says it in one sentence per reason, so
61
+ * a person who sees `deepseek` first in a list that does not begin with it knows which rule did that. Same inputs, same rule.
62
+ */
63
+ export declare function explainChain(input: ChainInput): ChainExplanation;
@@ -11,10 +11,27 @@ import { type BrowserMethod } from './browser-access.ts';
11
11
  import type { CustomPlatformSpec } from './config.ts';
12
12
  import { type ExaSearchRequest } from './exa-client.ts';
13
13
  import { EngineError } from './engine-error.ts';
14
+ /**
15
+ * A source row as an engine returns it: the host's `WebSearchSource` plus the provider's own quality signals, when it has any
16
+ * (DeepSeek Search: `rerank_score` 0..3 and `authority` 0..4). They travel with the row as source metadata and are one small
17
+ * fusion signal (pipeline/fusion.ts); no engine is required to set them.
18
+ */
19
+ export interface EngineSource extends WebSearchSource {
20
+ /** The provider's relevance / authority / freshness rank score, 0..3 (higher is better). */
21
+ readonly rerankScore?: number;
22
+ /** The provider's source-authority grade, 0..4 (unknown = absent). */
23
+ readonly authority?: number;
24
+ /** The user-defined CLI that returned the row (`custom-cli:echo`): set by the adapter, shown with the result. */
25
+ readonly via?: string;
26
+ /** The honest label of a user-defined source ("user-defined, not verified by the plugin"). */
27
+ readonly tag?: string;
28
+ /** The source's confidence (0..1), below 1 only: set by the router from the spec / `sources.confidence`, never by an engine. */
29
+ readonly confidence?: number;
30
+ }
14
31
  export interface SearchOutcome {
15
32
  /** Provider-generated answer/summary text, when any. */
16
33
  content?: string;
17
- sources: WebSearchSource[];
34
+ sources: EngineSource[];
18
35
  /** Id of the concrete backend that answered (a platform provider with a fallback chain names the leg that ran). */
19
36
  via?: string;
20
37
  /** The backend id of the platform chain that answered (`bili`, `browser-opencli`), for display and history. */
@@ -29,6 +46,8 @@ export interface Engine {
29
46
  backend?: string;
30
47
  /** Cheap local availability check; must not do network I/O. */
31
48
  available(): boolean;
49
+ /** Why `available()` is false, when the engine knows (a platform chain quotes it in its fall-through note instead of "unavailable"). */
50
+ unavailableReason?(): string | undefined;
32
51
  /** Browser-service method this engine depends on (dsh-browser is optional). */
33
52
  needsBrowser?: BrowserMethod;
34
53
  search(query: string, count: number, signal?: AbortSignal, options?: EngineSearchOptions): Promise<SearchOutcome>;
@@ -41,6 +60,8 @@ export interface EngineSearchOptions {
41
60
  include?: string[];
42
61
  exclude?: string[];
43
62
  };
63
+ /** The caller's original question or need (DeepSeek Search `ori_question`, cut to 128 characters by the engine); absent = none sent. */
64
+ originalQuestion?: string;
44
65
  /** Lower bound of the publication date (ISO 8601), compiled from a hard time_window; the engine maps it to its native filter. */
45
66
  since?: string;
46
67
  /** Domain lists compiled from hard site / exclude_site constraints (keyed sources that take them as request fields). */
@@ -81,6 +102,8 @@ export interface EngineDeps {
81
102
  usage?: UsageRecorder;
82
103
  /** Test seam: replaces the global fetch of API clients that accept one. */
83
104
  fetchImpl?: typeof fetch;
105
+ /** Test seam: waits between retries of the engines that retry (DeepSeek); resolves early on abort. Default: a real timer. */
106
+ sleep?: (ms: number, signal?: AbortSignal) => Promise<void>;
84
107
  /** Test seam: replaces the DNS lookup of the SSRF check. */
85
108
  lookup?: (hostname: string) => Promise<{
86
109
  address: string;
@@ -100,6 +123,11 @@ export interface EngineDeps {
100
123
  anysearchApiKey?: string;
101
124
  /** GitHub API token (config githubToken / $GITHUB_TOKEN / $GH_TOKEN). */
102
125
  githubToken?: string;
126
+ /**
127
+ * Credential variables of the CLI adapters by the name the tool reads (`TWITTER_AUTH_TOKEN`, `TWITTER_CT0`), resolved by the router:
128
+ * config literal -> credentials ref -> process environment. Handed to a command only through its environment, never in argv.
129
+ */
130
+ cliEnv?: Readonly<Record<string, string>>;
103
131
  enableCli: boolean;
104
132
  opencliEnabled: boolean;
105
133
  agentReachEnabled: boolean;
@@ -8,7 +8,8 @@ import type { ResolvedConfig } from './config.ts';
8
8
  import type { BrowserService } from './browser-service.ts';
9
9
  import { type BrowserGetter } from './browser-access.ts';
10
10
  import type { ExtractRule } from './extract.ts';
11
- export type FetchMode = 'auto' | 'jina' | 'http' | 'playwright';
11
+ import { type DeepSeekFetchAccess } from './providers/deepseek.ts';
12
+ export type FetchMode = 'auto' | 'jina' | 'http' | 'playwright' | 'deepseek';
12
13
  export interface FetchOptions {
13
14
  mode: FetchMode;
14
15
  signal: AbortSignal | undefined;
@@ -63,7 +64,7 @@ export declare function detectShellPage(text: string): boolean;
63
64
  export type PageClass = 'content' | 'shell' | 'login_wall' | 'captcha' | 'js_shell' | 'error';
64
65
  /** One backend attempt of a fetch, in order (recorded in the result and in the stored fetch detail). */
65
66
  export interface FetchAttempt {
66
- source: 'jina' | 'http' | 'playwright';
67
+ source: 'jina' | 'http' | 'playwright' | 'deepseek';
67
68
  class: PageClass;
68
69
  chars?: number;
69
70
  detail?: string;
@@ -82,14 +83,20 @@ export declare function classifyPage(text: string, meta?: {
82
83
  export declare function normalizeUrl(raw: string): string;
83
84
  /** All rules: user (DB) first, then built-ins; user rules win on ties. */
84
85
  export declare function mergedRules(store: Store): ExtractRule[];
86
+ /**
87
+ * The DeepSeek Fetch API access for a call: key, endpoint, ledger. Resolved per call by the router (settings literal -> DSH credentials ->
88
+ * process environment); undefined = no key. Test seams (`fetchImpl`, `lookup`, `sleep`) ride along on the returned object.
89
+ */
90
+ export type DeepSeekFetchAccessProvider = () => Promise<Pick<DeepSeekFetchAccess, 'apiKey' | 'baseUrl' | 'usage' | 'fetchImpl' | 'lookup' | 'sleep' | 'allowProxyFakeIp'> | undefined>;
85
91
  export declare class FetchService {
86
92
  private readonly store;
87
93
  private readonly config;
94
+ private readonly deepseek?;
88
95
  private readonly memory;
89
96
  /** In-flight de-duplication of identical non-fresh fetches (C3). */
90
97
  private readonly flights;
91
98
  private readonly getBrowser;
92
- constructor(store: Store, config: ResolvedConfig | (() => ResolvedConfig), browser?: BrowserService | BrowserGetter);
99
+ constructor(store: Store, config: ResolvedConfig | (() => ResolvedConfig), browser?: BrowserService | BrowserGetter, deepseek?: DeepSeekFetchAccessProvider | undefined);
93
100
  private cfg;
94
101
  /** True when the optional browser can render right now (enabled in config and the service has render()). */
95
102
  private canRender;
@@ -98,5 +105,7 @@ export declare class FetchService {
98
105
  private runFetch;
99
106
  private fetchJina;
100
107
  private fetchHttp;
108
+ /** One page through the DeepSeek Fetch API. 403 / 404 are DeepSeek's own verdicts (see `DeepSeekFetchError`), never the target page's status. */
109
+ private fetchDeepSeek;
101
110
  private fetchPlaywright;
102
111
  }
@@ -29,103 +29,16 @@ declare const _default: {
29
29
  name: string;
30
30
  inject: string[];
31
31
  Config: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
32
- dbPath: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
33
- toolSurface: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
34
- ttlSeconds: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
35
- memoryCacheEntries: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
36
- rrfConstant: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
37
- freshnessBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
38
- freshnessDays: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
39
- authorityBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
40
- authorityDomains: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
41
32
  searchMaxResults: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
42
- fetchDefaultChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
43
- exaContentsPerUrlChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
44
- exaContentsTotalChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
45
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
33
+ parallelEngines: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
34
+ toolSurface: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
46
35
  allowProxyFakeIp: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
36
+ deepseekFetch: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
47
37
  engines: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
48
- parallelEngines: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
49
- exaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
50
- exaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
51
- jinaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
52
- jinaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
53
- bochaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
54
- bochaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
55
- bochaBaseUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
56
- bochaSummary: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
57
- searxngUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
58
- openalexMailto: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
59
- keyedSources: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
60
- apiKey?: string | null | undefined;
61
- apiKeyEnv?: string | null | undefined;
62
- baseUrl?: string | null | undefined;
63
- } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
64
- apiKey: import("@deepseek-ai/schemastery").default<string, string, "plain">;
65
- apiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "plain">;
66
- baseUrl: import("@deepseek-ai/schemastery").default<string, string, "plain">;
67
- }>>, string>>, "volatile">;
68
- githubToken: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
69
- githubTokenEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
70
- enableCliBackends: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
71
- opencliEnabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
72
- agentReachEnabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
73
- providerId: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
74
- registerProvider: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
75
- provider: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
76
- evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
77
- deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
78
- }>>, Schemastery.ObjectT<NoInfer<{
79
- evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
80
- deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
81
- }>>, "plain">;
82
- platformRules: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
83
- item?: string | null | undefined;
84
- title?: string | null | undefined;
85
- link?: string | null | undefined;
86
- text?: string | null | undefined;
87
- } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
88
- item: import("@deepseek-ai/schemastery").default<string, string, "plain">;
89
- title: import("@deepseek-ai/schemastery").default<string, string, "plain">;
90
- link: import("@deepseek-ai/schemastery").default<string, string, "plain">;
91
- text: import("@deepseek-ai/schemastery").default<string, string, "plain">;
92
- }>>, string>>, "volatile">;
93
- customPlatforms: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
94
- name?: string | null | undefined;
95
- url?: string | null | undefined;
96
- item?: string | null | undefined;
97
- title?: string | null | undefined;
98
- link?: string | null | undefined;
99
- text?: string | null | undefined;
100
- cookie?: string | null | undefined;
101
- } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
102
- name: import("@deepseek-ai/schemastery").default<string, string, "plain">;
103
- url: import("@deepseek-ai/schemastery").default<string, string, "plain">;
104
- item: import("@deepseek-ai/schemastery").default<string, string, "plain">;
105
- title: import("@deepseek-ai/schemastery").default<string, string, "plain">;
106
- link: import("@deepseek-ai/schemastery").default<string, string, "plain">;
107
- text: import("@deepseek-ai/schemastery").default<string, string, "plain">;
108
- cookie: import("@deepseek-ai/schemastery").default<string, string, "plain">;
109
- }>>, string>>, "volatile">;
110
- browserBindings: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
111
- authProfile?: string | null | undefined;
112
- rulePack?: string | null | undefined;
113
- } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
114
- authProfile: import("@deepseek-ai/schemastery").default<string, string, "plain">;
115
- rulePack: import("@deepseek-ai/schemastery").default<string, string, "plain">;
116
- }>>, string>>, "volatile">;
117
- platformBackends: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, "volatile">;
118
- cliAdapters: import("@deepseek-ai/schemastery").default<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">;
119
- playwright: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
120
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
121
- snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "plain">;
122
- }>>, Schemastery.ObjectT<NoInfer<{
123
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
124
- snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "plain">;
125
- }>>, "plain">;
126
38
  sources: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
127
39
  priority: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
128
40
  disabled: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
41
+ confidence: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
129
42
  budget: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
130
43
  total?: number | null | undefined;
131
44
  daily?: number | null | undefined;
@@ -136,6 +49,7 @@ declare const _default: {
136
49
  }>>, Schemastery.ObjectT<NoInfer<{
137
50
  priority: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
138
51
  disabled: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
52
+ confidence: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
139
53
  budget: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
140
54
  total?: number | null | undefined;
141
55
  daily?: number | null | undefined;
@@ -144,6 +58,29 @@ declare const _default: {
144
58
  daily: import("@deepseek-ai/schemastery").default<number, number, "plain">;
145
59
  }>>, string>>, "volatile">;
146
60
  }>>, "plain">;
61
+ platformBackends: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, "volatile">;
62
+ keyedSources: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
63
+ apiKey?: string | null | undefined;
64
+ apiKeyEnv?: string | null | undefined;
65
+ baseUrl?: string | null | undefined;
66
+ } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
67
+ apiKey: import("@deepseek-ai/schemastery").default<string, string, "plain">;
68
+ apiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "plain">;
69
+ baseUrl: import("@deepseek-ai/schemastery").default<string, string, "plain">;
70
+ }>>, string>>, "volatile">;
71
+ exaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
72
+ exaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
73
+ jinaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
74
+ jinaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
75
+ bochaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
76
+ bochaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
77
+ bochaBaseUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
78
+ bochaSummary: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
79
+ githubToken: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
80
+ githubTokenEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
81
+ searxngUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
82
+ openalexMailto: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
83
+ cliAdapters: import("@deepseek-ai/schemastery").default<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">;
147
84
  evidence: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
148
85
  scorer: import("@deepseek-ai/schemastery").default<"jev" | "rule", "jev" | "rule", "volatile-defined">;
149
86
  jevMode: import("@deepseek-ai/schemastery").default<"off" | "shadow" | "control" | "hybrid", "off" | "shadow" | "control" | "hybrid", "volatile-defined">;
@@ -487,85 +424,50 @@ declare const _default: {
487
424
  }>>, string>, "plain">;
488
425
  }>>>, "volatile">;
489
426
  }>>, "plain">;
490
- verbose: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
491
- }>>, Schemastery.ObjectT<NoInfer<{
492
- dbPath: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
493
- toolSurface: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
494
- ttlSeconds: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
495
- memoryCacheEntries: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
496
- rrfConstant: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
497
- freshnessBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
498
- freshnessDays: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
499
- authorityBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
500
- authorityDomains: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
501
- searchMaxResults: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
502
427
  fetchDefaultChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
503
428
  exaContentsPerUrlChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
504
429
  exaContentsTotalChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
505
- timeoutMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
506
- allowProxyFakeIp: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
507
- engines: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
508
- parallelEngines: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
509
- exaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
510
- exaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
511
- jinaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
512
- jinaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
513
- bochaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
514
- bochaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
515
- bochaBaseUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
516
- bochaSummary: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
517
- searxngUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
518
- openalexMailto: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
519
- keyedSources: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
520
- apiKey?: string | null | undefined;
521
- apiKeyEnv?: string | null | undefined;
522
- baseUrl?: string | null | undefined;
523
- } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
524
- apiKey: import("@deepseek-ai/schemastery").default<string, string, "plain">;
525
- apiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "plain">;
526
- baseUrl: import("@deepseek-ai/schemastery").default<string, string, "plain">;
527
- }>>, string>>, "volatile">;
528
- githubToken: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
529
- githubTokenEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
530
430
  enableCliBackends: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
531
431
  opencliEnabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
532
432
  agentReachEnabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
533
- providerId: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
534
- registerProvider: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
535
- provider: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
536
- evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
537
- deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
433
+ twitterAuthToken: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
434
+ twitterAuthTokenEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
435
+ twitterCt0: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
436
+ twitterCt0Env: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
437
+ playwright: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
438
+ enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
439
+ snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
538
440
  }>>, Schemastery.ObjectT<NoInfer<{
539
- evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
540
- deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
441
+ enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
442
+ snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
541
443
  }>>, "plain">;
542
- platformRules: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
444
+ customPlatforms: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
445
+ name?: string | null | undefined;
446
+ url?: string | null | undefined;
543
447
  item?: string | null | undefined;
544
448
  title?: string | null | undefined;
545
449
  link?: string | null | undefined;
546
450
  text?: string | null | undefined;
451
+ cookie?: string | null | undefined;
547
452
  } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
453
+ name: import("@deepseek-ai/schemastery").default<string, string, "plain">;
454
+ url: import("@deepseek-ai/schemastery").default<string, string, "plain">;
548
455
  item: import("@deepseek-ai/schemastery").default<string, string, "plain">;
549
456
  title: import("@deepseek-ai/schemastery").default<string, string, "plain">;
550
457
  link: import("@deepseek-ai/schemastery").default<string, string, "plain">;
551
458
  text: import("@deepseek-ai/schemastery").default<string, string, "plain">;
459
+ cookie: import("@deepseek-ai/schemastery").default<string, string, "plain">;
552
460
  }>>, string>>, "volatile">;
553
- customPlatforms: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
554
- name?: string | null | undefined;
555
- url?: string | null | undefined;
461
+ platformRules: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
556
462
  item?: string | null | undefined;
557
463
  title?: string | null | undefined;
558
464
  link?: string | null | undefined;
559
465
  text?: string | null | undefined;
560
- cookie?: string | null | undefined;
561
466
  } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
562
- name: import("@deepseek-ai/schemastery").default<string, string, "plain">;
563
- url: import("@deepseek-ai/schemastery").default<string, string, "plain">;
564
467
  item: import("@deepseek-ai/schemastery").default<string, string, "plain">;
565
468
  title: import("@deepseek-ai/schemastery").default<string, string, "plain">;
566
469
  link: import("@deepseek-ai/schemastery").default<string, string, "plain">;
567
470
  text: import("@deepseek-ai/schemastery").default<string, string, "plain">;
568
- cookie: import("@deepseek-ai/schemastery").default<string, string, "plain">;
569
471
  }>>, string>>, "volatile">;
570
472
  browserBindings: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
571
473
  authProfile?: string | null | undefined;
@@ -574,18 +476,36 @@ declare const _default: {
574
476
  authProfile: import("@deepseek-ai/schemastery").default<string, string, "plain">;
575
477
  rulePack: import("@deepseek-ai/schemastery").default<string, string, "plain">;
576
478
  }>>, string>>, "volatile">;
577
- platformBackends: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, "volatile">;
578
- cliAdapters: import("@deepseek-ai/schemastery").default<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">;
579
- playwright: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
580
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
581
- snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "plain">;
479
+ providerId: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
480
+ registerProvider: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
481
+ provider: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
482
+ evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
483
+ deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
582
484
  }>>, Schemastery.ObjectT<NoInfer<{
583
- enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
584
- snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "plain">;
485
+ evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
486
+ deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
585
487
  }>>, "plain">;
488
+ timeoutMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
489
+ ttlSeconds: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
490
+ memoryCacheEntries: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
491
+ rrfConstant: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
492
+ freshnessBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
493
+ freshnessDays: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
494
+ authorityBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
495
+ authorityDomains: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
496
+ dbPath: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
497
+ verbose: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
498
+ }>>, Schemastery.ObjectT<NoInfer<{
499
+ searchMaxResults: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
500
+ parallelEngines: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
501
+ toolSurface: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
502
+ allowProxyFakeIp: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
503
+ deepseekFetch: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
504
+ engines: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
586
505
  sources: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
587
506
  priority: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
588
507
  disabled: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
508
+ confidence: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
589
509
  budget: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
590
510
  total?: number | null | undefined;
591
511
  daily?: number | null | undefined;
@@ -596,6 +516,7 @@ declare const _default: {
596
516
  }>>, Schemastery.ObjectT<NoInfer<{
597
517
  priority: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
598
518
  disabled: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile">;
519
+ confidence: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<number, string>>, "volatile">;
599
520
  budget: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
600
521
  total?: number | null | undefined;
601
522
  daily?: number | null | undefined;
@@ -604,6 +525,29 @@ declare const _default: {
604
525
  daily: import("@deepseek-ai/schemastery").default<number, number, "plain">;
605
526
  }>>, string>>, "volatile">;
606
527
  }>>, "plain">;
528
+ platformBackends: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<string[], string>>, "volatile">;
529
+ keyedSources: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
530
+ apiKey?: string | null | undefined;
531
+ apiKeyEnv?: string | null | undefined;
532
+ baseUrl?: string | null | undefined;
533
+ } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
534
+ apiKey: import("@deepseek-ai/schemastery").default<string, string, "plain">;
535
+ apiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "plain">;
536
+ baseUrl: import("@deepseek-ai/schemastery").default<string, string, "plain">;
537
+ }>>, string>>, "volatile">;
538
+ exaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
539
+ exaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
540
+ jinaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
541
+ jinaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
542
+ bochaApiKey: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
543
+ bochaApiKeyEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
544
+ bochaBaseUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
545
+ bochaSummary: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
546
+ githubToken: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
547
+ githubTokenEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
548
+ searxngUrl: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
549
+ openalexMailto: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
550
+ cliAdapters: import("@deepseek-ai/schemastery").default<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">;
607
551
  evidence: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
608
552
  scorer: import("@deepseek-ai/schemastery").default<"jev" | "rule", "jev" | "rule", "volatile-defined">;
609
553
  jevMode: import("@deepseek-ai/schemastery").default<"off" | "shadow" | "control" | "hybrid", "off" | "shadow" | "control" | "hybrid", "volatile-defined">;
@@ -947,6 +891,76 @@ declare const _default: {
947
891
  }>>, string>, "plain">;
948
892
  }>>>, "volatile">;
949
893
  }>>, "plain">;
894
+ fetchDefaultChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
895
+ exaContentsPerUrlChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
896
+ exaContentsTotalChars: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
897
+ enableCliBackends: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
898
+ opencliEnabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
899
+ agentReachEnabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
900
+ twitterAuthToken: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
901
+ twitterAuthTokenEnv: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
902
+ twitterCt0: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
903
+ twitterCt0Env: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
904
+ playwright: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
905
+ enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
906
+ snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
907
+ }>>, Schemastery.ObjectT<NoInfer<{
908
+ enabled: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
909
+ snapshotDir: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
910
+ }>>, "plain">;
911
+ customPlatforms: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
912
+ name?: string | null | undefined;
913
+ url?: string | null | undefined;
914
+ item?: string | null | undefined;
915
+ title?: string | null | undefined;
916
+ link?: string | null | undefined;
917
+ text?: string | null | undefined;
918
+ cookie?: string | null | undefined;
919
+ } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
920
+ name: import("@deepseek-ai/schemastery").default<string, string, "plain">;
921
+ url: import("@deepseek-ai/schemastery").default<string, string, "plain">;
922
+ item: import("@deepseek-ai/schemastery").default<string, string, "plain">;
923
+ title: import("@deepseek-ai/schemastery").default<string, string, "plain">;
924
+ link: import("@deepseek-ai/schemastery").default<string, string, "plain">;
925
+ text: import("@deepseek-ai/schemastery").default<string, string, "plain">;
926
+ cookie: import("@deepseek-ai/schemastery").default<string, string, "plain">;
927
+ }>>, string>>, "volatile">;
928
+ platformRules: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
929
+ item?: string | null | undefined;
930
+ title?: string | null | undefined;
931
+ link?: string | null | undefined;
932
+ text?: string | null | undefined;
933
+ } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
934
+ item: import("@deepseek-ai/schemastery").default<string, string, "plain">;
935
+ title: import("@deepseek-ai/schemastery").default<string, string, "plain">;
936
+ link: import("@deepseek-ai/schemastery").default<string, string, "plain">;
937
+ text: import("@deepseek-ai/schemastery").default<string, string, "plain">;
938
+ }>>, string>>, "volatile">;
939
+ browserBindings: import("@deepseek-ai/schemastery").default<NoInfer<import("@deepseek-ai/cosmokit").Dict<{
940
+ authProfile?: string | null | undefined;
941
+ rulePack?: string | null | undefined;
942
+ } & import("@deepseek-ai/cosmokit").Dict, string>>, NoInfer<import("@deepseek-ai/cosmokit").Dict<Schemastery.ObjectT<NoInfer<{
943
+ authProfile: import("@deepseek-ai/schemastery").default<string, string, "plain">;
944
+ rulePack: import("@deepseek-ai/schemastery").default<string, string, "plain">;
945
+ }>>, string>>, "volatile">;
946
+ providerId: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
947
+ registerProvider: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
948
+ provider: import("@deepseek-ai/schemastery").default<Schemastery.ObjectS<NoInfer<{
949
+ evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
950
+ deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
951
+ }>>, Schemastery.ObjectT<NoInfer<{
952
+ evidence: import("@deepseek-ai/schemastery").default<string, string, "volatile-defined">;
953
+ deadlineMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
954
+ }>>, "plain">;
955
+ timeoutMs: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
956
+ ttlSeconds: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
957
+ memoryCacheEntries: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
958
+ rrfConstant: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
959
+ freshnessBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
960
+ freshnessDays: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
961
+ authorityBoost: import("@deepseek-ai/schemastery").default<number, number, "volatile-defined">;
962
+ authorityDomains: import("@deepseek-ai/schemastery").default<NoInfer<string[]>, NoInfer<string[]>, "volatile-defined">;
963
+ dbPath: import("@deepseek-ai/schemastery").default<string, string, "volatile">;
950
964
  verbose: import("@deepseek-ai/schemastery").default<boolean, boolean, "volatile-defined">;
951
965
  }>>, "plain">;
952
966
  apply: typeof apply;