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
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeepSeek Search and Fetch API (https://api-docs.deepseek.com/guides/search/, online since 2026-10-17): the "常用" (common) source of
|
|
3
|
+
* this plugin. Contract: `POST {base}/search` and `POST {base}/fetch`, `Authorization: Bearer <DeepSeek API key>`, JSON; the base is
|
|
4
|
+
* `https://api.deepseek.com/v1/tools`.
|
|
5
|
+
*
|
|
6
|
+
* - Search request: `query` (1-128 characters, with the operators `site:` `-site:` `-term` `"phrase"` `lang:` `after:` `before:`),
|
|
7
|
+
* `count` (1-50, default 10), `ori_question` (optional, the caller's original question, at most 128), `localization` (not sent),
|
|
8
|
+
* `need_content` (default false: `content` stays empty, we never ask for it). Response: `results[]` of `rerank_score` (0-3),
|
|
9
|
+
* `title`, `url`, `snippet` (about 100-200 characters, for display), `summary` (about 600-800 characters, written for a model),
|
|
10
|
+
* `content`, `site_name`, `site_icon`, `date` (RFC 3339 or null), `authority` (0-4, -1 unknown). An empty array is "no results".
|
|
11
|
+
* - Fetch request `url` (at most 8192 characters, http/https, no credentials); response `title` and `content` (Markdown).
|
|
12
|
+
* - Errors are OpenAI-shaped `{ error: { message, type, param, code } }`: 400, 401, 402 (balance), 403 (Fetch refused by the security
|
|
13
|
+
* policy), 404 (Fetch could not get usable content), 408, 413, 429, 500, 504. Both APIs are read-only: 408 / 429 / 5xx are retried
|
|
14
|
+
* after a wait, every other 4xx is not.
|
|
15
|
+
* - Billing: $0.75 per 1,000 SUCCESSFUL requests, for each endpoint. Only a 200 that yields a result is billed (empty results, failures
|
|
16
|
+
* and timeouts are not), and `count` does not change the price. Calls made through DeepSeek Harness / Claude Code / Codex server-side
|
|
17
|
+
* tools are free until 2026-11-01 00:00 Beijing time; the docs do not say whether a plugin calling the API directly is inside that
|
|
18
|
+
* window, so this plugin treats every call as billed. Limits per account: Search 100 QPS, Fetch 25 QPS plus a per-domain limit.
|
|
19
|
+
*
|
|
20
|
+
* Field mapping: `summary` (else `snippet`) -> `snippet` (the long excerpt the evidence pipeline gates and scores on), `date` ->
|
|
21
|
+
* `publishedAt`, `rerank_score` -> `rerankScore`, `authority` -> `authority` (source metadata; one small fusion signal, fusion.ts).
|
|
22
|
+
* The host's own `deepseek-search-api` provider maps only snippet and date.
|
|
23
|
+
* @module web-search-pro/providers/deepseek
|
|
24
|
+
*/
|
|
25
|
+
import { EngineError } from "../engines.js";
|
|
26
|
+
import { compileDeepSeek } from "../pipeline/compile.js";
|
|
27
|
+
import { emptyResults, errorMessage, isHttpUrl, keyOf, missingKeyMessage, snippetOf, textOf } from "./keyed.js";
|
|
28
|
+
import { KEYED_SOURCE_ENVS } from "./keyed-meta.js";
|
|
29
|
+
import { parseRetryAfter, requestProvider, safeDetail } from "./http.js";
|
|
30
|
+
export const DEEPSEEK_ROUTE_ID = 'deepseek';
|
|
31
|
+
export const DEEPSEEK_LABEL = 'DeepSeek Search';
|
|
32
|
+
export const DEEPSEEK_DEFAULT_BASE = 'https://api.deepseek.com/v1/tools';
|
|
33
|
+
export const DEEPSEEK_SEARCH_PATH = '/search';
|
|
34
|
+
export const DEEPSEEK_FETCH_PATH = '/fetch';
|
|
35
|
+
export const DEEPSEEK_KEY_ENV = 'DEEPSEEK_API_KEY';
|
|
36
|
+
/** Longest `query` / `ori_question` the API takes, in characters. */
|
|
37
|
+
export const DEEPSEEK_QUERY_CHARS = 128;
|
|
38
|
+
export const DEEPSEEK_MAX_COUNT = 50;
|
|
39
|
+
export const DEEPSEEK_DEFAULT_COUNT = 10;
|
|
40
|
+
/** The long excerpt kept per result (the API's `summary` is about 600-800 characters). */
|
|
41
|
+
export const DEEPSEEK_SNIPPET_CHARS = 1_000;
|
|
42
|
+
/** Longest URL the Fetch API takes. */
|
|
43
|
+
export const DEEPSEEK_FETCH_URL_CHARS = 8_192;
|
|
44
|
+
/** Usage-ledger provider names: requests counted, tokens n/a, price unknown to the plugin. */
|
|
45
|
+
export const DEEPSEEK_USAGE_SEARCH = 'deepseek-search';
|
|
46
|
+
export const DEEPSEEK_USAGE_FETCH = 'deepseek-fetch';
|
|
47
|
+
/** One try plus at most two retries of a 408 / 429 / 5xx answer. */
|
|
48
|
+
export const DEEPSEEK_MAX_ATTEMPTS = 3;
|
|
49
|
+
export const DEEPSEEK_RETRY_BASE_MS = 800;
|
|
50
|
+
/** A wait longer than this (a `Retry-After` of a minute) is not slept through: the failure carries it as the cooldown instead. */
|
|
51
|
+
export const DEEPSEEK_RETRY_WAIT_CAP_MS = 8_000;
|
|
52
|
+
const TIMEOUT_MS = 30_000;
|
|
53
|
+
const codePoints = (text) => [...text].length;
|
|
54
|
+
const cutCodePoints = (text, max) => [...text].slice(0, max).join('');
|
|
55
|
+
// ── query ───────────────────────────────────────────────────────────────────
|
|
56
|
+
/** Tokens the API reads as operators (kept whole when the query has to be cut): `site:`, `-site:`, `after:`, `before:`, `lang:`, `-term`. */
|
|
57
|
+
const OPERATOR = /^(?:-\S+|(?:site|after|before|lang):\S+)$/i;
|
|
58
|
+
/**
|
|
59
|
+
* The query as the API takes it: whitespace collapsed, at most 128 characters. A longer query keeps every operator token (a
|
|
60
|
+
* `site:` restriction or an exclusion is what the caller asked for) and `OR` between site operators, and loses the tail of the free
|
|
61
|
+
* text, at a word boundary when it has words and by character when it does not (Chinese). The caller says so in the result notes.
|
|
62
|
+
*/
|
|
63
|
+
export function fitQuery(raw) {
|
|
64
|
+
const text = raw.replace(/\s+/g, ' ').trim();
|
|
65
|
+
const from = codePoints(text);
|
|
66
|
+
if (from <= DEEPSEEK_QUERY_CHARS)
|
|
67
|
+
return { query: text, cut: false, from };
|
|
68
|
+
const tokens = text.split(' ');
|
|
69
|
+
const keep = tokens.map((t, i) => OPERATOR.test(t) || (t === 'OR' && (/^site:/i.test(tokens[i - 1] ?? '') || /^site:/i.test(tokens[i + 1] ?? ''))));
|
|
70
|
+
const ops = tokens.filter((_, i) => keep[i]);
|
|
71
|
+
const free = tokens.filter((_, i) => !keep[i]);
|
|
72
|
+
const opsText = ops.join(' ');
|
|
73
|
+
if (codePoints(opsText) >= DEEPSEEK_QUERY_CHARS)
|
|
74
|
+
return { query: cutCodePoints(text, DEEPSEEK_QUERY_CHARS).trim(), cut: true, from };
|
|
75
|
+
const room = DEEPSEEK_QUERY_CHARS - (ops.length ? codePoints(opsText) + 1 : 0);
|
|
76
|
+
const kept = [];
|
|
77
|
+
let used = 0;
|
|
78
|
+
for (const token of free) {
|
|
79
|
+
const need = codePoints(token) + (kept.length ? 1 : 0);
|
|
80
|
+
if (used + need > room)
|
|
81
|
+
break;
|
|
82
|
+
kept.push(token);
|
|
83
|
+
used += need;
|
|
84
|
+
}
|
|
85
|
+
let head = kept.join(' ');
|
|
86
|
+
if (!head && free.length)
|
|
87
|
+
head = cutCodePoints(free[0], room); // one long run without spaces (Chinese)
|
|
88
|
+
return { query: [head, opsText].filter(Boolean).join(' ').trim(), cut: true, from };
|
|
89
|
+
}
|
|
90
|
+
/** `ori_question`: whitespace collapsed and cut to 128 characters; undefined when nothing remains or it adds nothing to the query. */
|
|
91
|
+
export function originalQuestion(raw, query) {
|
|
92
|
+
const text = (raw ?? '').replace(/\s+/g, ' ').trim();
|
|
93
|
+
if (!text || text.toLowerCase() === query.replace(/\s+/g, ' ').trim().toLowerCase())
|
|
94
|
+
return undefined;
|
|
95
|
+
return cutCodePoints(text, DEEPSEEK_QUERY_CHARS).trim() || undefined;
|
|
96
|
+
}
|
|
97
|
+
export function deepseekSearchBody(query, count, question) {
|
|
98
|
+
return {
|
|
99
|
+
query,
|
|
100
|
+
count: Math.min(Math.max(Math.floor(count) || DEEPSEEK_DEFAULT_COUNT, 1), DEEPSEEK_MAX_COUNT),
|
|
101
|
+
need_content: false,
|
|
102
|
+
...question ? { ori_question: question } : {},
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// ── response ────────────────────────────────────────────────────────────────
|
|
106
|
+
/** The `summary` is Markdown and often opens with the page title as an H1; that line repeats the title field, so it is dropped. */
|
|
107
|
+
function withoutTitleHeading(summary, title) {
|
|
108
|
+
if (typeof summary !== 'string' || !title)
|
|
109
|
+
return summary;
|
|
110
|
+
const m = /^\s*#\s+([^\n]*)\n+/.exec(summary);
|
|
111
|
+
return m && m[1].trim() === title ? summary.slice(m[0].length) : summary;
|
|
112
|
+
}
|
|
113
|
+
/** Map `results[]`: summary (else snippet) as the excerpt, date -> publishedAt, rerank_score / authority as metadata. Rows without an http(s) URL are dropped. */
|
|
114
|
+
export function mapDeepSeekResults(results, count) {
|
|
115
|
+
const sources = [];
|
|
116
|
+
for (const r of results) {
|
|
117
|
+
const row = (r ?? {});
|
|
118
|
+
if (!isHttpUrl(row.url))
|
|
119
|
+
continue;
|
|
120
|
+
const title = textOf(row.title);
|
|
121
|
+
const snippet = snippetOf(withoutTitleHeading(row.summary, title)) ?? snippetOf(row.snippet);
|
|
122
|
+
const publishedAt = textOf(row.date); // RFC 3339 or null
|
|
123
|
+
const rerank = typeof row.rerank_score === 'number' && Number.isFinite(row.rerank_score) ? Math.min(Math.max(row.rerank_score, 0), 3) : undefined;
|
|
124
|
+
// `authority` is 0-4, -1 when unknown (unknown = absent: it must not read as the lowest grade).
|
|
125
|
+
const authority = typeof row.authority === 'number' && Number.isFinite(row.authority) && row.authority >= 0 ? Math.min(Math.round(row.authority), 4) : undefined;
|
|
126
|
+
sources.push({
|
|
127
|
+
url: row.url.trim(),
|
|
128
|
+
...title ? { title } : {},
|
|
129
|
+
...snippet ? { snippet } : {},
|
|
130
|
+
...publishedAt ? { publishedAt } : {},
|
|
131
|
+
...rerank !== undefined ? { rerankScore: rerank } : {},
|
|
132
|
+
...authority !== undefined ? { authority } : {},
|
|
133
|
+
});
|
|
134
|
+
if (sources.length >= count)
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
return sources;
|
|
138
|
+
}
|
|
139
|
+
/** Parse a 2xx Search body; an empty `results` array is ENGINE_EMPTY (the service works, nothing matched, and nothing was billed). */
|
|
140
|
+
export function parseDeepSeekSearch(json, count) {
|
|
141
|
+
if (json === null || typeof json !== 'object' || Array.isArray(json) || !Array.isArray(json.results)) {
|
|
142
|
+
throw new EngineError('DeepSeek Search returned an unprocessable response body', 'ENGINE_ERROR', true);
|
|
143
|
+
}
|
|
144
|
+
const sources = mapDeepSeekResults(json.results, count);
|
|
145
|
+
if (!sources.length)
|
|
146
|
+
throw emptyResults(DEEPSEEK_LABEL);
|
|
147
|
+
return sources;
|
|
148
|
+
}
|
|
149
|
+
// ── errors and retry ────────────────────────────────────────────────────────
|
|
150
|
+
/** Statuses the docs say to wait and retry: 408, 429 and 5xx. */
|
|
151
|
+
export const isRetryableStatus = (status) => status === 408 || status === 429 || status >= 500;
|
|
152
|
+
/**
|
|
153
|
+
* The error message of an OpenAI-shaped body, safe to show: the key (should it ever be echoed) and credential-looking values are
|
|
154
|
+
* redacted and the length is capped. The service's `request_id` (what DeepSeek support asks for) is returned apart, so a message can
|
|
155
|
+
* end with it instead of burying the cause.
|
|
156
|
+
*/
|
|
157
|
+
export function errorParts(json, key) {
|
|
158
|
+
const raw = json?.error?.message;
|
|
159
|
+
if (typeof raw !== 'string' || !raw.trim()) {
|
|
160
|
+
const message = errorMessage(json);
|
|
161
|
+
return { text: key ? message.split(key).join('[redacted]') : message };
|
|
162
|
+
}
|
|
163
|
+
const id = /request_id:\s*([0-9a-f-]{8,64})/i.exec(raw)?.[1];
|
|
164
|
+
const text = raw.replace(/\s*\(request_id:[^)]*\)/i, '');
|
|
165
|
+
return { text: safeDetail(key ? text.split(key).join('[redacted]') : text), ...id ? { id } : {} };
|
|
166
|
+
}
|
|
167
|
+
/** {@link errorParts} as one string: `message (request_id …)`. */
|
|
168
|
+
export function detailOf(json, key) {
|
|
169
|
+
const { text, id } = errorParts(json, key);
|
|
170
|
+
return text + (id ? ' (request_id ' + id + ')' : '');
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Status -> error contract for Search. 401 / 403 are `ENGINE_AUTH`; 402 is `ENGINE_QUOTA` with the balance wording (never retried,
|
|
174
|
+
* no cooldown: waiting does not refill a balance); 429 is `ENGINE_RATE_LIMIT` carrying `Retry-After`; 408 is a retryable
|
|
175
|
+
* `ENGINE_TIMEOUT`; 400 / 404 / 413 are bad requests (not retryable); 5xx is a retryable `ENGINE_ERROR`. Never contains the key.
|
|
176
|
+
*/
|
|
177
|
+
export function deepseekFailure(label, status, headers, json, key) {
|
|
178
|
+
const detail = detailOf(json, key);
|
|
179
|
+
const tail = detail ? ': ' + detail : '';
|
|
180
|
+
switch (status) {
|
|
181
|
+
case 401: return new EngineError(label + ' rejected the API key (HTTP 401' + tail + '): check the key under ' + (KEYED_SOURCE_ENVS[DEEPSEEK_ROUTE_ID] ?? [DEEPSEEK_KEY_ENV]).join(' / '), 'ENGINE_AUTH', false);
|
|
182
|
+
case 402: return new EngineError(label + ': the DeepSeek account balance is insufficient (HTTP 402, 余额不足' + tail + '). Top up the API balance at platform.deepseek.com and retry; only requests that return results are billed.', 'ENGINE_QUOTA', false);
|
|
183
|
+
case 403: return new EngineError(label + ' refused the request (HTTP 403' + tail + ')', 'ENGINE_AUTH', false);
|
|
184
|
+
case 408: return new EngineError(label + ' timed out reading the request (HTTP 408' + tail + ')', 'ENGINE_TIMEOUT', true);
|
|
185
|
+
case 413: return new EngineError(label + ' rejected the request as too large (HTTP 413' + tail + ')', 'ENGINE_ERROR', false);
|
|
186
|
+
case 429: {
|
|
187
|
+
const wait = parseRetryAfter(headers.get('retry-after'));
|
|
188
|
+
return new EngineError(label + ' rate limit (HTTP 429' + tail + (wait !== undefined ? '; retry after ' + Math.ceil(wait / 1000) + 's' : '') + ')', 'ENGINE_RATE_LIMIT', true, wait);
|
|
189
|
+
}
|
|
190
|
+
default:
|
|
191
|
+
if (status === 400 || status === 404 || status === 422 || (status > 400 && status < 500))
|
|
192
|
+
return new EngineError(label + ' rejected the request (HTTP ' + status + tail + ')', 'ENGINE_ERROR', false);
|
|
193
|
+
return new EngineError(label + ' API error (HTTP ' + status + tail + ')', 'ENGINE_ERROR', true);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/** Abort-aware wait. */
|
|
197
|
+
export function defaultSleep(ms, signal) {
|
|
198
|
+
return new Promise((resolve, reject) => {
|
|
199
|
+
if (signal?.aborted) {
|
|
200
|
+
reject(signal.reason ?? new DOMException('This operation was aborted', 'AbortError'));
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const timer = setTimeout(() => { signal?.removeEventListener('abort', onAbort); resolve(); }, ms);
|
|
204
|
+
const onAbort = () => { clearTimeout(timer); reject(signal.reason ?? new DOMException('This operation was aborted', 'AbortError')); };
|
|
205
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/** Wait before retry number `attempt` (1-based): the service's `Retry-After` when it gave one, else 0.8 s, 1.6 s. Undefined = not worth waiting (stop). */
|
|
209
|
+
export function retryWaitMs(res, attempt) {
|
|
210
|
+
const hinted = parseRetryAfter(res.headers.get('retry-after'));
|
|
211
|
+
const wait = hinted ?? DEEPSEEK_RETRY_BASE_MS * 2 ** (attempt - 1);
|
|
212
|
+
return wait > DEEPSEEK_RETRY_WAIT_CAP_MS ? undefined : wait;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* One POST with the documented retry policy: a 408 / 429 / 5xx answer is retried after a wait (at most {@link DEEPSEEK_MAX_ATTEMPTS}
|
|
216
|
+
* tries in all, never longer than {@link DEEPSEEK_RETRY_WAIT_CAP_MS} per wait); every other answer is returned at once. Retries are
|
|
217
|
+
* safe: both APIs are read-only and failed requests are not billed. Returns the final response (which may still be an error).
|
|
218
|
+
*/
|
|
219
|
+
export async function postWithRetry(label, url, key, body, transport, signal) {
|
|
220
|
+
const sleep = transport.sleep ?? defaultSleep;
|
|
221
|
+
for (let attempt = 1;; attempt++) {
|
|
222
|
+
const res = await requestProvider(label, url, {
|
|
223
|
+
deps: transport, signal, method: 'POST', redirect: 'error', timeoutMs: TIMEOUT_MS,
|
|
224
|
+
body: JSON.stringify(body),
|
|
225
|
+
headers: { 'content-type': 'application/json', 'accept': 'application/json', 'authorization': 'Bearer ' + key },
|
|
226
|
+
});
|
|
227
|
+
if (res.ok || !isRetryableStatus(res.status) || attempt >= DEEPSEEK_MAX_ATTEMPTS)
|
|
228
|
+
return res;
|
|
229
|
+
const wait = retryWaitMs(res, attempt);
|
|
230
|
+
if (wait === undefined)
|
|
231
|
+
return res;
|
|
232
|
+
await sleep(wait, signal);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// ── search engine ───────────────────────────────────────────────────────────
|
|
236
|
+
const baseOf = (deps) => (deps.sourceBaseUrls?.[DEEPSEEK_ROUTE_ID] ?? DEEPSEEK_DEFAULT_BASE).replace(/\/+$/, '');
|
|
237
|
+
export function deepseekEngine(deps) {
|
|
238
|
+
return {
|
|
239
|
+
id: DEEPSEEK_ROUTE_ID,
|
|
240
|
+
label: DEEPSEEK_LABEL,
|
|
241
|
+
available: () => keyOf(deps, DEEPSEEK_ROUTE_ID) !== undefined,
|
|
242
|
+
async search(query, count, signal, options) {
|
|
243
|
+
const key = keyOf(deps, DEEPSEEK_ROUTE_ID);
|
|
244
|
+
if (!key)
|
|
245
|
+
throw new EngineError(missingKeyMessage(DEEPSEEK_LABEL, DEEPSEEK_ROUTE_ID), 'ENGINE_UNAVAILABLE', false);
|
|
246
|
+
const fitted = fitQuery(query);
|
|
247
|
+
if (!fitted.query)
|
|
248
|
+
throw new EngineError(DEEPSEEK_LABEL + ' needs a non-empty query', 'ENGINE_ERROR', false);
|
|
249
|
+
const body = deepseekSearchBody(fitted.query, count, originalQuestion(options?.originalQuestion, fitted.query));
|
|
250
|
+
const res = await postWithRetry(DEEPSEEK_LABEL, baseOf(deps) + DEEPSEEK_SEARCH_PATH, key, body, deps, signal);
|
|
251
|
+
if (!res.ok)
|
|
252
|
+
throw deepseekFailure(DEEPSEEK_LABEL, res.status, res.headers, res.json, key);
|
|
253
|
+
if (res.json === undefined)
|
|
254
|
+
throw new EngineError(DEEPSEEK_LABEL + ' returned invalid JSON', 'ENGINE_ERROR', true);
|
|
255
|
+
const sources = parseDeepSeekSearch(res.json, count); // an empty answer throws ENGINE_EMPTY here: it was not billed, so it is not booked
|
|
256
|
+
// A 200 that yields results is a billed request.
|
|
257
|
+
try {
|
|
258
|
+
deps.usage?.record({ provider: DEEPSEEK_USAGE_SEARCH, protocol: 'search', requests: 1, note: 'tokens n/a, $0.75 per 1,000 successful requests' });
|
|
259
|
+
}
|
|
260
|
+
catch { /* the ledger is advisory */ }
|
|
261
|
+
const notes = fitted.cut ? ['deepseek: query cut from ' + fitted.from + ' to ' + codePoints(fitted.query) + ' characters (the API takes at most ' + DEEPSEEK_QUERY_CHARS + '); site:/-site:/after: operators were kept'] : [];
|
|
262
|
+
return { sources, ...notes.length ? { notes } : {} };
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
// ── fetch ───────────────────────────────────────────────────────────────────
|
|
267
|
+
/** A Fetch API failure. `code` names what DeepSeek did; none of them describes the TARGET page's own HTTP status. */
|
|
268
|
+
export class DeepSeekFetchError extends Error {
|
|
269
|
+
code;
|
|
270
|
+
retryable;
|
|
271
|
+
constructor(message, code, retryable = false) {
|
|
272
|
+
super(message);
|
|
273
|
+
this.code = code;
|
|
274
|
+
this.retryable = retryable;
|
|
275
|
+
this.name = 'DeepSeekFetchError';
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Status -> error for Fetch. 403 and 404 are DeepSeek's own verdicts (security policy; no usable content), and the message opens by
|
|
280
|
+
* saying so: it is not the target page's HTTP status. The request id comes last.
|
|
281
|
+
*/
|
|
282
|
+
export function deepseekFetchFailure(status, headers, json, key) {
|
|
283
|
+
const { text, id } = errorParts(json, key);
|
|
284
|
+
const tail = text ? ': ' + text : '';
|
|
285
|
+
const ref = id ? ' [request_id ' + id + ']' : '';
|
|
286
|
+
switch (status) {
|
|
287
|
+
case 403: return new DeepSeekFetchError('DeepSeek Fetch refused this URL under its security policy (DeepSeek\'s decision, not the target page\'s HTTP status; HTTP 403' + tail + ')' + ref, 'DEEPSEEK_FETCH_DENIED');
|
|
288
|
+
case 404: return new DeepSeekFetchError('DeepSeek Fetch got no usable content (DeepSeek\'s result, not the target page\'s HTTP status; HTTP 404' + tail + '). The URL may be unavailable, blocked, erroring, of an unsupported type or without extractable text.' + ref, 'DEEPSEEK_FETCH_NO_CONTENT');
|
|
289
|
+
case 401: return new DeepSeekFetchError('DeepSeek Fetch rejected the API key (HTTP 401' + tail + ')' + ref, 'DEEPSEEK_FETCH_AUTH');
|
|
290
|
+
case 402: return new DeepSeekFetchError('DeepSeek Fetch: the account balance is insufficient (HTTP 402, 余额不足' + tail + '). Top up the API balance at platform.deepseek.com.' + ref, 'DEEPSEEK_FETCH_QUOTA');
|
|
291
|
+
case 429: {
|
|
292
|
+
const wait = parseRetryAfter(headers.get('retry-after'));
|
|
293
|
+
return new DeepSeekFetchError('DeepSeek Fetch rate limit (HTTP 429' + tail + (wait !== undefined ? '; retry after ' + Math.ceil(wait / 1000) + 's' : '') + ')' + ref, 'DEEPSEEK_FETCH_RATE_LIMIT', true);
|
|
294
|
+
}
|
|
295
|
+
default: return new DeepSeekFetchError('DeepSeek Fetch error (HTTP ' + status + tail + ')' + ref, 'DEEPSEEK_FETCH_ERROR', isRetryableStatus(status));
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/** Read one page as Markdown through the Fetch API. Throws {@link DeepSeekFetchError} (or an EngineError for transport problems). */
|
|
299
|
+
export async function deepseekFetchPage(url, access, signal) {
|
|
300
|
+
if (url.length > DEEPSEEK_FETCH_URL_CHARS)
|
|
301
|
+
throw new DeepSeekFetchError('DeepSeek Fetch takes URLs of at most ' + DEEPSEEK_FETCH_URL_CHARS + ' characters', 'DEEPSEEK_FETCH_ERROR');
|
|
302
|
+
const base = (access.baseUrl ?? DEEPSEEK_DEFAULT_BASE).replace(/\/+$/, '');
|
|
303
|
+
const res = await postWithRetry('DeepSeek Fetch', base + DEEPSEEK_FETCH_PATH, access.apiKey, { url }, access, signal);
|
|
304
|
+
if (!res.ok)
|
|
305
|
+
throw deepseekFetchFailure(res.status, res.headers, res.json, access.apiKey);
|
|
306
|
+
const json = res.json;
|
|
307
|
+
if (!json || typeof json !== 'object' || typeof json.content !== 'string')
|
|
308
|
+
throw new DeepSeekFetchError('DeepSeek Fetch returned an unprocessable response body', 'DEEPSEEK_FETCH_ERROR', true);
|
|
309
|
+
if (!json.content.trim())
|
|
310
|
+
throw new DeepSeekFetchError('DeepSeek Fetch returned no content (not billed)', 'DEEPSEEK_FETCH_NO_CONTENT');
|
|
311
|
+
try {
|
|
312
|
+
access.usage?.record({ provider: DEEPSEEK_USAGE_FETCH, protocol: 'fetch', requests: 1, note: 'tokens n/a, $0.75 per 1,000 successful requests' });
|
|
313
|
+
}
|
|
314
|
+
catch { /* the ledger is advisory */ }
|
|
315
|
+
const title = textOf(json.title);
|
|
316
|
+
return { ...title ? { title: safeDetail(title, 300) } : {}, text: json.content };
|
|
317
|
+
}
|
|
318
|
+
// ── descriptor and adapter ──────────────────────────────────────────────────
|
|
319
|
+
export const DEEPSEEK_DESCRIPTOR = {
|
|
320
|
+
id: 'builtin:' + DEEPSEEK_ROUTE_ID,
|
|
321
|
+
aliases: [DEEPSEEK_ROUTE_ID],
|
|
322
|
+
label: DEEPSEEK_LABEL,
|
|
323
|
+
adapterVersion: '1',
|
|
324
|
+
contractVersion: 1,
|
|
325
|
+
operations: ['search'],
|
|
326
|
+
taskProfiles: ['general', 'news_fact', 'experience', 'compare', 'docs_code'],
|
|
327
|
+
languages: ['zh', 'en'],
|
|
328
|
+
regions: ['global', 'cn'],
|
|
329
|
+
resultKinds: ['web'],
|
|
330
|
+
requirements: [{ kind: 'key', id: 'deepseek-key', env: [...KEYED_SOURCE_ENVS[DEEPSEEK_ROUTE_ID] ?? [DEEPSEEK_KEY_ENV]], note: 'the DeepSeek API key (platform.deepseek.com)' }],
|
|
331
|
+
supportedFilters: ['site', 'exclude_site', 'exclude_term', 'time_window'],
|
|
332
|
+
costModel: { kind: 'metered', unit: 'request', note: '$0.75 per 1,000 successful requests (Search and Fetch each; empty results and failures are not billed, count does not change the price). Server-side calls through DeepSeek Harness / Claude Code / Codex are free until 2026-11-01 00:00 Beijing time; the docs do not say a plugin calling the API directly is inside that window, so treat it as billed. https://api-docs.deepseek.com/guides/search/ (read 2026-10-26)' },
|
|
333
|
+
costTier: 'paid',
|
|
334
|
+
priority: 5,
|
|
335
|
+
common: true,
|
|
336
|
+
verification: { live: true, note: 'verified live 2026-10-26 (8 Search + 4 Fetch requests, api.deepseek.com/v1/tools): result shape with summary / rerank_score / authority / date, site: / -site: / after: operators, the 128-character limit (HTTP 400), 401 and 404 error bodies, Fetch Markdown; the 403 Fetch refusal and the 408 / 429 / 5xx retries come from the documentation only' },
|
|
337
|
+
};
|
|
338
|
+
export const deepseekAdapter = {
|
|
339
|
+
descriptor: DEEPSEEK_DESCRIPTOR,
|
|
340
|
+
probeLocal({ deps }) {
|
|
341
|
+
return keyOf(deps, DEEPSEEK_ROUTE_ID)
|
|
342
|
+
? { available: true, installation: 'not_required', credential: 'configured' }
|
|
343
|
+
: { available: false, installation: 'not_required', credential: 'missing', reason: 'no DeepSeek API key (set $' + (KEYED_SOURCE_ENVS[DEEPSEEK_ROUTE_ID] ?? [DEEPSEEK_KEY_ENV]).join(' or $') + ', a DSH credentials ref, or the settings key field)', diagnosticCode: 'credential_missing' };
|
|
344
|
+
},
|
|
345
|
+
create: deps => deepseekEngine(deps),
|
|
346
|
+
compile: (task, now) => compileDeepSeek(task, DEEPSEEK_ROUTE_ID, now),
|
|
347
|
+
};
|
|
348
|
+
//# sourceMappingURL=deepseek.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/providers/deepseek.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/providers/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,qGAAqG;AACrG,MAAM,CAAC,MAAM,mBAAmB,GAAG,2FAA2F,CAAA;AAC9H,MAAM,UAAU,GAAG,MAAM,CAAA;AACzB,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/providers/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
/** Default environment variable names of each keyed source's API key, first one preferred (route id -> names). */
|
|
7
7
|
export const KEYED_SOURCE_ENVS = Object.freeze({
|
|
8
|
+
// DeepSeek Search / Fetch API (the account's API key, the same variable the host's own DeepSeek access uses).
|
|
9
|
+
deepseek: ['DEEPSEEK_API_KEY'],
|
|
8
10
|
tavily: ['TAVILY_API_KEY'],
|
|
9
11
|
brave: ['BRAVE_API_KEY'],
|
|
10
12
|
linkup: ['LINKUP_API_KEY'],
|
|
@@ -15,4 +17,9 @@ export const KEYED_SOURCE_ENVS = Object.freeze({
|
|
|
15
17
|
'baidu-qianfan': ['QIANFAN_API_KEY', 'BAIDU_API_KEY'],
|
|
16
18
|
});
|
|
17
19
|
export const KEYED_SOURCE_IDS = Object.freeze(Object.keys(KEYED_SOURCE_ENVS));
|
|
20
|
+
/**
|
|
21
|
+
* The "常用" (common) sources: a test pins this list to the registry descriptors that set `common: true`. Data only, for the
|
|
22
|
+
* settings panel (client bundle), which cannot import the descriptors.
|
|
23
|
+
*/
|
|
24
|
+
export const COMMON_SOURCE_IDS = Object.freeze(['deepseek']);
|
|
18
25
|
//# sourceMappingURL=keyed-meta.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyed-meta.js","sourceRoot":"","sources":["../../src/providers/keyed-meta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,kHAAkH;AAClH,MAAM,CAAC,MAAM,iBAAiB,GAAgD,MAAM,CAAC,MAAM,CAAC;IAC1F,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,yHAAyH;IACzH,eAAe,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC;CACtD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"keyed-meta.js","sourceRoot":"","sources":["../../src/providers/keyed-meta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,kHAAkH;AAClH,MAAM,CAAC,MAAM,iBAAiB,GAAgD,MAAM,CAAC,MAAM,CAAC;IAC1F,8GAA8G;IAC9G,QAAQ,EAAE,CAAC,kBAAkB,CAAC;IAC9B,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,MAAM,EAAE,CAAC,gBAAgB,CAAC;IAC1B,KAAK,EAAE,CAAC,eAAe,CAAC;IACxB,yHAAyH;IACzH,eAAe,EAAE,CAAC,iBAAiB,EAAE,eAAe,CAAC;CACtD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEhG;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA"}
|