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
|
@@ -1,229 +1,1112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two dictionaries of the settings card. Each field has a label, a one-line hint (`<key>Hint`) and, where the explanation
|
|
3
|
+
* is longer, a `?` text (`<key>Help`); the keys are named in field-keys.ts. A test pins both dictionaries to the same keys and
|
|
4
|
+
* to every key the card asks for.
|
|
5
|
+
* @module web-search-pro/client/locales
|
|
6
|
+
*/
|
|
1
7
|
export declare const zh: {
|
|
2
8
|
readonly tab: "Web Search Pro";
|
|
3
9
|
readonly title: "Web Search Pro";
|
|
4
|
-
readonly description: "
|
|
5
|
-
readonly
|
|
6
|
-
readonly collapse: "收起";
|
|
7
|
-
readonly unsaved: "未保存";
|
|
10
|
+
readonly description: "搜索引擎、来源与 Key、评分模型、读取与缓存、平台规则";
|
|
11
|
+
readonly lang: "zh";
|
|
8
12
|
readonly readOnly: "当前设置文档为只读,无法保存修改。";
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
+
readonly unavailable: "设置暂时不可用:宿主没有提供这个插件的配置表单。";
|
|
14
|
+
readonly reset: "恢复默认";
|
|
15
|
+
readonly overridden: "已覆盖";
|
|
16
|
+
readonly overriddenCount: "{n} 项已覆盖";
|
|
17
|
+
readonly invalid: "输入值无效,请检查范围或格式。";
|
|
18
|
+
readonly invalidJson: "JSON 无效;必须是一个对象。";
|
|
19
|
+
readonly helpLabel: "更多说明";
|
|
20
|
+
readonly edit: "编辑";
|
|
21
|
+
readonly close: "关闭";
|
|
22
|
+
readonly done: "完成";
|
|
23
|
+
readonly emptyDefault: "(默认)";
|
|
24
|
+
readonly optionOff: "off";
|
|
25
|
+
readonly chipRemove: "移除";
|
|
26
|
+
readonly save: "保存";
|
|
27
|
+
readonly saving: "保存中…";
|
|
28
|
+
readonly discardChanges: "放弃修改";
|
|
29
|
+
readonly saveFailed: "Host 未接受全部修改;草稿已保留,请检查冲突或日志。";
|
|
30
|
+
readonly savebarClean: "没有未保存的修改";
|
|
31
|
+
readonly savebarDirty: "{n} 项未保存的修改";
|
|
32
|
+
readonly savebarInvalid: "有无效的输入,修正后才能保存";
|
|
33
|
+
readonly dialogStagesNote: "这里的修改先留在草稿里,点页面底部的“保存”才写入。";
|
|
34
|
+
readonly summaryTitle: "当前状态";
|
|
35
|
+
readonly summaryChain: "默认引擎链";
|
|
36
|
+
readonly summaryChainEmpty: "(空)";
|
|
37
|
+
readonly summaryKeys: "已配置 Key 的来源 {n}/{m}";
|
|
38
|
+
readonly summaryReady: "已就绪";
|
|
39
|
+
readonly summaryNoKey: "未配置 Key";
|
|
40
|
+
readonly summaryRouteOn: "内置 web 工具:经本插件";
|
|
41
|
+
readonly summaryRouteOff: "内置 web 工具:未接入";
|
|
42
|
+
readonly summaryJudge: "评分模型";
|
|
43
|
+
readonly summarySurface: "工具面";
|
|
44
|
+
readonly summaryWarnings: "{n} 条提示";
|
|
45
|
+
readonly summaryNoWarnings: "无提示";
|
|
46
|
+
readonly summaryDetails: "查看详情";
|
|
47
|
+
readonly warningsTitle: "需要注意的设置";
|
|
48
|
+
readonly warningsNone: "当前草稿没有校验提示。";
|
|
49
|
+
readonly unitMs: "毫秒";
|
|
50
|
+
readonly unitSeconds: "秒";
|
|
51
|
+
readonly unitChars: "字符";
|
|
52
|
+
readonly unitCount: "";
|
|
53
|
+
readonly unitTokens: "token";
|
|
54
|
+
readonly unitDays: "天";
|
|
55
|
+
readonly riskNetwork: "网络";
|
|
56
|
+
readonly riskBilled: "计费";
|
|
57
|
+
readonly riskModel: "调用模型";
|
|
58
|
+
readonly groupCommon: "常用";
|
|
59
|
+
readonly groupCommonSub: "默认引擎链、结果数、工具面、代理 fake-IP、DeepSeek 搜索";
|
|
60
|
+
readonly groupSources: "来源";
|
|
61
|
+
readonly groupSourcesSub: "排序策略与每个来源的 Key、地址、请求额度";
|
|
62
|
+
readonly groupReading: "读取与证据";
|
|
63
|
+
readonly groupReadingSub: "读页字数、补搜轮数、按语言自动选来源";
|
|
64
|
+
readonly groupJudge: "评分模型";
|
|
65
|
+
readonly groupJudgeSub: "可选的付费 / 本地模型与提示词(默认关闭)";
|
|
66
|
+
readonly groupRoute: "内置 web 工具路由";
|
|
67
|
+
readonly groupRouteSub: "让宿主内置 web_search / web_fetch 经过本插件";
|
|
68
|
+
readonly groupRuntime: "运行时与后端";
|
|
69
|
+
readonly groupRuntimeSub: "CLI / OpenCLI、Twitter 登录值、后端链、平台与浏览器绑定";
|
|
70
|
+
readonly groupNetwork: "网络与缓存";
|
|
71
|
+
readonly groupNetworkSub: "超时、缓存有效期、数据库路径、诊断日志";
|
|
72
|
+
readonly groupRanking: "排序加权";
|
|
73
|
+
readonly groupRankingSub: "多来源融合的排名常数与时效 / 权威加分(高级)";
|
|
74
|
+
readonly groupAdvanced: "高级:文本模式";
|
|
75
|
+
readonly groupAdvancedSub: "带注释的 YAML 视图,可复制";
|
|
76
|
+
readonly chainNow: "实际尝试顺序:";
|
|
77
|
+
readonly chainEmpty: "没有可用的引擎";
|
|
78
|
+
readonly commonDeepseekTitle: "DeepSeek 搜索 / 抓取(常用)";
|
|
79
|
+
readonly commonBadge: "常用";
|
|
80
|
+
readonly engines: "默认引擎链";
|
|
81
|
+
readonly enginesHint: "从上到下依次尝试;用箭头调整顺序。";
|
|
82
|
+
readonly enginesHelp: "例如 ddg、bing、exa、seam、jina。保持默认列表时,DeepSeek Key 就绪会把 deepseek 排最前;你自己写的列表按所写顺序,调用里的 engines 永远最优先。";
|
|
13
83
|
readonly searchMaxResults: "默认结果数";
|
|
14
|
-
readonly searchMaxResultsHint: "1–20
|
|
15
|
-
readonly timeoutMs: "超时预算(毫秒)";
|
|
16
|
-
readonly timeoutMsHint: "单次增强搜索的协作超时,至少 1000 毫秒。";
|
|
17
|
-
readonly fetchDefaultChars: "页面读取默认字数";
|
|
18
|
-
readonly fetchDefaultCharsHint: "read.fetch 单次输出上限(1000–500000);更长的页面用 offset 续读。";
|
|
19
|
-
readonly exaContentsPerUrlChars: "Exa 正文单 URL 上限";
|
|
20
|
-
readonly exaContentsPerUrlCharsHint: "read.contents 每个 URL 的输出字数上限,至少 500。";
|
|
21
|
-
readonly exaContentsTotalChars: "Exa 正文总上限";
|
|
22
|
-
readonly exaContentsTotalCharsHint: "read.contents 一次调用所有 URL 的输出字数总上限,至少 1000。";
|
|
84
|
+
readonly searchMaxResultsHint: "1–20;调用没写 count 时用。";
|
|
23
85
|
readonly parallelEngines: "并行融合多个引擎";
|
|
24
|
-
readonly parallelEnginesHint: "
|
|
25
|
-
readonly
|
|
26
|
-
readonly
|
|
27
|
-
readonly
|
|
28
|
-
readonly
|
|
29
|
-
readonly
|
|
30
|
-
readonly
|
|
31
|
-
readonly
|
|
32
|
-
readonly
|
|
33
|
-
readonly
|
|
34
|
-
readonly
|
|
35
|
-
readonly
|
|
86
|
+
readonly parallelEnginesHint: "同时查全部默认引擎并融合,而非依次回退。";
|
|
87
|
+
readonly toolSurface: "工具面";
|
|
88
|
+
readonly toolSurfaceHint: "模型看到的工具形态;启动时读取。";
|
|
89
|
+
readonly toolSurfaceHelp: "indexed:只暴露 web_index / web_call,常驻文本最少(默认)。flat:每个动作一个工具,仅用于对比和调试。改完需重启。";
|
|
90
|
+
readonly optIndexed: "indexed · 两个入口(默认)";
|
|
91
|
+
readonly optFlat: "flat · 每动作一个工具(调试)";
|
|
92
|
+
readonly allowProxyFakeIp: "允许代理 fake-IP DNS";
|
|
93
|
+
readonly allowProxyFakeIpHint: "Clash / TUN 下搜索报“fake-IP”时打开。";
|
|
94
|
+
readonly allowProxyFakeIpHelp: "开着 Clash / TUN 等代理时,若搜索报“地址被拦截 / 私网地址”,且域名被解析成 198.18.x.x,就打开它:只信任 fake-IP 段(198.18/15、fdfe:dcba:9876::/64、2001:2::/48),字面 IP、localhost 与其他私网仍被拒绝。";
|
|
95
|
+
readonly deepseekFetch: "用 DeepSeek Fetch 读取网页";
|
|
96
|
+
readonly deepseekFetchHint: "默认关闭;按请求计费。";
|
|
97
|
+
readonly deepseekFetchHelp: "开启后 read.fetch 在 Jina、直连都没拿到正文时,改用 DeepSeek Fetch API(每 1000 次成功请求 $0.75,空结果与失败不计费),之后才轮到浏览器渲染;也可显式用 mode=deepseek。与 DeepSeek 搜索共用同一个 Key。";
|
|
98
|
+
readonly strategyGroup: "来源策略";
|
|
99
|
+
readonly strategyNote: "顺序:调用里的 engines / platform 最优先 → 下面的“优先来源” → 你配置了 Key 的来源(“常用”的 DeepSeek 排最前)→ 匿名 / 免费默认。付费来源只在配置了 Key 才会用到。";
|
|
100
|
+
readonly sourcePolicy: "来源策略";
|
|
101
|
+
readonly sourcePolicyHint: "是否允许自动规划用需要 Key 的来源。";
|
|
102
|
+
readonly sourcePolicyHelp: "default:按上述顺序。anonymous-only:即使配置了 Key,自动规划也绝不使用需要 Key、账号或登录的来源(调用里明确指定的仍可用)。";
|
|
103
|
+
readonly optPolicyDefault: "default · 按顺序(默认)";
|
|
104
|
+
readonly optPolicyAnonymousOnly: "anonymous-only · 只用匿名来源";
|
|
105
|
+
readonly srcPriority: "优先来源";
|
|
106
|
+
readonly srcPriorityHint: "按顺序排最前的来源 id。";
|
|
107
|
+
readonly srcPriorityHelp: "仅限就绪且适合任务语言与 profile 的来源;例:deepseek, exa。留空 = 不指定。调用里的 engines 仍最优先。";
|
|
108
|
+
readonly srcDisabled: "停用来源";
|
|
109
|
+
readonly srcDisabledHint: "自动规划与默认引擎链都不再用它们。";
|
|
110
|
+
readonly srcDisabledHelp: "调用里明确指定的来源仍可用。想关掉按量计费的 DeepSeek 默认,就在这里写 deepseek。";
|
|
111
|
+
readonly sourcesListTitle: "需要 Key 或地址的来源";
|
|
112
|
+
readonly sourcesListHint: "点“编辑”设置 Key 引用名、Key、地址与请求额度;Key 写入 DSH Credentials,页面从不显示明文。";
|
|
113
|
+
readonly tierPaid: "付费";
|
|
114
|
+
readonly tierFree: "有免费额度";
|
|
115
|
+
readonly tierAnonymous: "免 Key";
|
|
116
|
+
readonly sourceConfigured: "已设置";
|
|
117
|
+
readonly sourceNotConfigured: "未设置";
|
|
118
|
+
readonly sourceMetaRef: "Key 引用名 {ref}";
|
|
119
|
+
readonly sourceMetaCapped: "已设请求上限";
|
|
120
|
+
readonly sourceMetaNoUrl: "未设置地址";
|
|
121
|
+
readonly sourceDialogTitle: "{name}";
|
|
122
|
+
readonly sourceResetAll: "恢复本项默认";
|
|
123
|
+
readonly sourceNoteDeepseek: "DeepSeek 搜索 / 抓取,“常用”来源:有 Key 时中英文都排第一。按请求计费:每 1000 次成功请求 $0.75,空结果与失败不计费;插件直接调用按会计费处理。与 DeepSeek 模型用同一个 DEEPSEEK_API_KEY。页面读取开关在“常用”组。";
|
|
124
|
+
readonly sourceNoteBocha: "博查:中文搜索,付费。账号没有搜索余额时返回 403。";
|
|
125
|
+
readonly sourceNoteExa: "Exa:有 Key 走原生 API;没有 Key 时可经 mcporter 的 MCP 回退。";
|
|
126
|
+
readonly sourceNoteJina: "Jina:搜索与页面读取;每个新 Key 有一次性免费额度。";
|
|
127
|
+
readonly sourceNoteGithub: "GitHub Token 可选,只用来提高 API 限额。";
|
|
128
|
+
readonly sourceNoteSearxng: "自建 SearXNG 实例(需开启 JSON 格式);设置地址后才有 searxng 来源,无内置公共实例。";
|
|
129
|
+
readonly sourceNoteKeyed: "填入 Key 引用名即可启用;没有 Key 前该来源不可用。地址只在使用代理或私有网关时覆盖。";
|
|
130
|
+
readonly keyedEnv: "Key 引用名";
|
|
131
|
+
readonly keyedEnvHint: "凭据 / 环境变量名;留空用默认:";
|
|
132
|
+
readonly keyedBaseUrl: "接口地址";
|
|
133
|
+
readonly keyedBaseUrlHint: "留空用内置地址;须为 http(s) URL。";
|
|
134
|
+
readonly keyedApiKey: "API Key";
|
|
135
|
+
readonly credentialWriteOnlyHint: "只写输入;留空不会覆盖已保存的密钥。";
|
|
136
|
+
readonly credentialReadOnlyHint: "当前凭据服务只读,无法在这里写入。";
|
|
137
|
+
readonly credentialChecking: "检查中…";
|
|
36
138
|
readonly credentialSet: "已配置";
|
|
37
139
|
readonly credentialUnset: "未配置";
|
|
38
|
-
readonly
|
|
39
|
-
readonly
|
|
40
|
-
readonly
|
|
41
|
-
readonly
|
|
42
|
-
readonly
|
|
43
|
-
readonly
|
|
44
|
-
readonly
|
|
45
|
-
readonly
|
|
46
|
-
readonly
|
|
47
|
-
readonly
|
|
48
|
-
readonly
|
|
49
|
-
readonly
|
|
50
|
-
readonly
|
|
51
|
-
readonly
|
|
52
|
-
readonly
|
|
53
|
-
readonly
|
|
54
|
-
readonly
|
|
55
|
-
readonly
|
|
56
|
-
readonly
|
|
57
|
-
readonly
|
|
58
|
-
readonly
|
|
59
|
-
readonly
|
|
60
|
-
readonly
|
|
61
|
-
readonly
|
|
62
|
-
readonly
|
|
63
|
-
readonly
|
|
64
|
-
readonly
|
|
65
|
-
readonly
|
|
66
|
-
readonly
|
|
67
|
-
readonly
|
|
68
|
-
readonly
|
|
69
|
-
readonly
|
|
70
|
-
readonly
|
|
71
|
-
readonly
|
|
72
|
-
readonly
|
|
73
|
-
readonly
|
|
74
|
-
readonly
|
|
75
|
-
readonly
|
|
76
|
-
readonly
|
|
77
|
-
readonly
|
|
78
|
-
readonly
|
|
79
|
-
readonly
|
|
80
|
-
readonly
|
|
81
|
-
readonly
|
|
82
|
-
readonly
|
|
83
|
-
readonly
|
|
84
|
-
readonly
|
|
85
|
-
readonly optIndexed: "indexed(默认)";
|
|
86
|
-
readonly optFlat: "flat(调试)";
|
|
87
|
-
readonly routeSection: "内置 web 工具路由";
|
|
88
|
-
readonly routeSectionHint: "让宿主内置的 web_search / web_fetch 经过本插件的证据管线。";
|
|
89
|
-
readonly providerEvidence: "内置 web_search 返回";
|
|
90
|
-
readonly providerEvidenceHint: "auto:返回证据包(失败或超时退回普通来源)。off:只返回来源列表,与旧行为一致。";
|
|
91
|
-
readonly optAuto: "auto(证据包)";
|
|
92
|
-
readonly optOff: "off(来源列表)";
|
|
93
|
-
readonly providerDeadlineMs: "证据运行期限(毫秒)";
|
|
94
|
-
readonly providerDeadlineMsHint: "一次内置 web_search 内证据管线的期限,到点返回已有结果;至少 100。";
|
|
95
|
-
readonly routeHelpTitle: "选中本插件还需要 profile patch";
|
|
96
|
-
readonly routeHelpIntro: "注册只是“可选”。宿主只在 web 条目写明 id 或它是唯一可用 provider 时才用它;在 $DSH_HOME/profiles/<profile>/cordis.patch.yml 中写:";
|
|
97
|
-
readonly routeHelpAfter: "也可只设环境变量 DSH_WEB_SEARCH_PROVIDER / DSH_WEB_FETCH_PROVIDER。不要只注册而不写 fetchProvider(宿主自带的 http 与本插件同时可用时 web_fetch 会报 AMBIGUOUS)。重启后用 web_call sources.status 查看 “ctx.web route” 一行。";
|
|
98
|
-
readonly evidenceSection: "证据管线";
|
|
99
|
-
readonly evidenceSectionHint: "来源选择、补搜轮数,以及读页与正文的输出上限。";
|
|
140
|
+
readonly bochaApiKeyEnv: "博查 Key 引用名";
|
|
141
|
+
readonly bochaApiKeyEnvHint: "凭据 / 环境变量名;留空用默认:BOCHA_SEARCH_API_KEY。";
|
|
142
|
+
readonly bochaBaseUrl: "博查接口地址";
|
|
143
|
+
readonly bochaBaseUrlHint: "默认 https://api.bocha.cn;须为 http(s) URL。";
|
|
144
|
+
readonly bochaSummary: "请求博查长摘要";
|
|
145
|
+
readonly bochaSummaryHint: "默认开启。";
|
|
146
|
+
readonly bochaSummaryHelp: "长摘要更利于证据评分;关闭可减少返回体。";
|
|
147
|
+
readonly exaApiKeyEnv: "Exa Key 引用名";
|
|
148
|
+
readonly exaApiKeyEnvHint: "凭据 / 环境变量名;留空用默认:EXA_API_KEY。";
|
|
149
|
+
readonly jinaApiKeyEnv: "Jina Key 引用名";
|
|
150
|
+
readonly jinaApiKeyEnvHint: "凭据 / 环境变量名;留空用默认:JINA_API_KEY。";
|
|
151
|
+
readonly githubTokenEnv: "GitHub Token 引用名";
|
|
152
|
+
readonly githubTokenEnvHint: "凭据 / 环境变量名;留空用默认:GITHUB_TOKEN。";
|
|
153
|
+
readonly searxngUrl: "SearXNG 地址";
|
|
154
|
+
readonly searxngUrlHint: "自建实例的 http(s) 地址。";
|
|
155
|
+
readonly openalexMailto: "OpenAlex 联系邮箱";
|
|
156
|
+
readonly openalexMailtoHint: "写进请求的 User-Agent,礼貌性,可留空。";
|
|
157
|
+
readonly reqBudgetGroup: "请求额度(可选)";
|
|
158
|
+
readonly reqBudgetNote: "为这个来源设请求上限,计入用量账本(重启后仍有效);用完后它被跳过并回退到其他来源,不是错误。默认没有上限。";
|
|
159
|
+
readonly reqTotal: "总量上限";
|
|
160
|
+
readonly reqTotalHint: "累计最多请求次数;留空 = 不限。";
|
|
161
|
+
readonly reqTotalHelp: "例:博查账号有 1000 次,可设总量 1000、每日 50。已用 / 剩余见 web_call sources.status。";
|
|
162
|
+
readonly reqDaily: "每日上限";
|
|
163
|
+
readonly reqDailyHint: "每个自然日最多次数;留空 = 不限。";
|
|
164
|
+
readonly reqDailyHelp: "日界线取评分用量上限里的时区。已用 / 剩余见 web_call sources.status。";
|
|
165
|
+
readonly anonymousTitle: "匿名来源(无需 Key)";
|
|
166
|
+
readonly anonymousHint: "参考表,不代表此刻可用";
|
|
167
|
+
readonly anonymousName: "来源";
|
|
168
|
+
readonly anonymousUse: "用途";
|
|
169
|
+
readonly sourcesStatusLine: "各来源的实时就绪状态(安装、Key、最近一次成功)由 web_call sources.status 显示。";
|
|
170
|
+
readonly srcUseDdg: "通用网页,默认首选";
|
|
171
|
+
readonly srcUseBing: "通用网页,与 DuckDuckGo 互补";
|
|
172
|
+
readonly srcUseWikipedia: "百科事实,中英文";
|
|
173
|
+
readonly srcUseHackernews: "英文技术讨论与经验";
|
|
174
|
+
readonly srcUseStackexchange: "编程问答(Stack Overflow)";
|
|
175
|
+
readonly srcUseOpenalex: "学术论文索引";
|
|
176
|
+
readonly srcUseSemanticscholar: "学术论文;匿名额度常被占满";
|
|
177
|
+
readonly srcUseAnysearch: "匿名通用搜索,额度有限";
|
|
178
|
+
readonly srcUseArxiv: "预印本论文";
|
|
179
|
+
readonly srcUsePubmed: "生物医学文献";
|
|
180
|
+
readonly srcUseV2ex: "中文社区讨论";
|
|
181
|
+
readonly fetchDefaultChars: "页面读取默认字数";
|
|
182
|
+
readonly fetchDefaultCharsHint: "read.fetch 单次上限,1000–500000。";
|
|
183
|
+
readonly exaContentsPerUrlChars: "Exa 正文单 URL 上限";
|
|
184
|
+
readonly exaContentsPerUrlCharsHint: "read.contents 每个 URL,至少 500。";
|
|
185
|
+
readonly exaContentsTotalChars: "Exa 正文总上限";
|
|
186
|
+
readonly exaContentsTotalCharsHint: "read.contents 一次调用总计,至少 1000。";
|
|
100
187
|
readonly evAutoProviders: "按语言自动选来源";
|
|
101
|
-
readonly evAutoProvidersHint: "
|
|
188
|
+
readonly evAutoProvidersHint: "擅长任务语言的就绪来源排到前面。";
|
|
189
|
+
readonly evAutoProvidersHelp: "就绪且擅长任务语言的来源(DeepSeek、博查、Exa 等)排到 profile 表前;关闭则完全按表与 engines。";
|
|
102
190
|
readonly evMaxRounds: "最多检索轮数";
|
|
103
|
-
readonly evMaxRoundsHint: "1 = 不补搜;默认 2
|
|
191
|
+
readonly evMaxRoundsHint: "1 = 不补搜;默认 2。";
|
|
104
192
|
readonly evMaxQueries: "每任务最多搜索请求";
|
|
105
|
-
readonly evMaxQueriesHint: "
|
|
193
|
+
readonly evMaxQueriesHint: "含全部轮次;默认 4。";
|
|
106
194
|
readonly evidenceNote: "保底保留条数(minKeep,3)与证据包字符预算是插件内置默认或每次调用的参数(search.run 的 budget),没有配置项。";
|
|
107
|
-
readonly judgeSection: "评分模型";
|
|
108
|
-
readonly judgeSectionHint: "可选的付费 / 本地模型:参与 S6 评分与 S8 覆盖判定。默认关闭;开启前请确认 Key 与用量上限。";
|
|
109
|
-
readonly judgeGroupModel: "评分";
|
|
110
|
-
readonly judgeGroupCoverage: "覆盖判定";
|
|
111
|
-
readonly judgeGroupBudget: "用量上限";
|
|
112
|
-
readonly judgeGroupProviders: "自定义 provider";
|
|
113
195
|
readonly judgeMode: "评分模式";
|
|
114
|
-
readonly judgeModeHint: "off
|
|
115
|
-
readonly
|
|
116
|
-
readonly
|
|
117
|
-
readonly
|
|
118
|
-
readonly
|
|
119
|
-
readonly hybridBorderlineHint: "规则评分为 1 的对也交给模型;成本约翻倍。";
|
|
196
|
+
readonly judgeModeHint: "默认 off:不调用任何模型。";
|
|
197
|
+
readonly judgeModeHelp: "off 不调用;shadow 只记录对照;control 由模型决定;hybrid 规则为主、模型复评跨语言(及边界)对。同时写入旧键 jevMode / scorer。开启前请确认 Key 与用量上限。";
|
|
198
|
+
readonly optShadow: "shadow · 只观察";
|
|
199
|
+
readonly optControl: "control · 模型决定";
|
|
200
|
+
readonly optHybrid: "hybrid · 混合";
|
|
120
201
|
readonly judgeProvider: "评分 provider";
|
|
121
|
-
readonly judgeProviderHint: "默认 bocha-jev
|
|
202
|
+
readonly judgeProviderHint: "默认 bocha-jev;预设与自定义 id 可选。";
|
|
203
|
+
readonly hybridBorderline: "hybrid:边界对也复评";
|
|
204
|
+
readonly hybridBorderlineHint: "成本约翻倍。";
|
|
205
|
+
readonly hybridBorderlineHelp: "规则评分为 1 的对也交给模型。";
|
|
122
206
|
readonly maxJevQuestions: "每次搜索最多提问数";
|
|
123
|
-
readonly maxJevQuestionsHint: "
|
|
207
|
+
readonly maxJevQuestionsHint: "(需求, 文本块)对上限,默认 64。";
|
|
124
208
|
readonly allowLlm: "允许 llm 协议";
|
|
125
|
-
readonly allowLlmHint: "默认关闭;llm 协议的 provider
|
|
126
|
-
readonly
|
|
127
|
-
readonly
|
|
209
|
+
readonly allowLlmHint: "默认关闭;llm 协议的 provider 要先开它。";
|
|
210
|
+
readonly allowLlmHelp: "通用 LLM 调用会消耗 token;只在确实要用 llm 协议的 provider 时打开。";
|
|
211
|
+
readonly judgeGroupCoverage: "覆盖判定";
|
|
212
|
+
readonly judgeGroupCoverageHint: "模型判断摘录是否够答";
|
|
213
|
+
readonly judgeGroupBudget: "用量上限";
|
|
214
|
+
readonly judgeGroupBudgetHint: "单次与每日 token";
|
|
215
|
+
readonly judgeGroupProviders: "自定义评分 provider";
|
|
128
216
|
readonly coverageMode: "覆盖判定模式";
|
|
129
|
-
readonly coverageModeHint: "off
|
|
217
|
+
readonly coverageModeHint: "默认 off;不随评分模式开启。";
|
|
218
|
+
readonly coverageModeHelp: "off(默认);shadow 记录概率;control 把弱支持降级为缺口。";
|
|
130
219
|
readonly coverageProvider: "覆盖判定 provider";
|
|
131
|
-
readonly coverageProviderHint: "默认同评分 provider
|
|
220
|
+
readonly coverageProviderHint: "默认同评分 provider。";
|
|
132
221
|
readonly thresholdWeak: "弱阈值";
|
|
133
|
-
readonly thresholdWeakHint: "
|
|
222
|
+
readonly thresholdWeakHint: "概率低于它判为弱;留空用校准值。";
|
|
223
|
+
readonly thresholdWeakHelp: "留空时用随插件发布的、仅对 bocha-jev + cover.sufficient v1 校准过的值。两个阈值要同时填写,弱 ≤ 覆盖。";
|
|
134
224
|
readonly thresholdCovered: "覆盖阈值";
|
|
135
|
-
readonly thresholdCoveredHint: "
|
|
136
|
-
readonly budgetPerSearch: "
|
|
137
|
-
readonly budgetPerSearchHint: "默认 60000
|
|
138
|
-
readonly budgetDaily: "
|
|
139
|
-
readonly budgetDailyHint: "默认 1000000
|
|
225
|
+
readonly thresholdCoveredHint: "概率不低于它判为覆盖。";
|
|
226
|
+
readonly budgetPerSearch: "单次搜索输入上限";
|
|
227
|
+
readonly budgetPerSearchHint: "默认 60000;0 = 不调用。";
|
|
228
|
+
readonly budgetDaily: "每日输入上限";
|
|
229
|
+
readonly budgetDailyHint: "默认 1000000。";
|
|
140
230
|
readonly budgetTimezone: "日界时区";
|
|
141
|
-
readonly budgetTimezoneHint: "IANA
|
|
142
|
-
readonly budgetProviders: "按 provider
|
|
143
|
-
readonly budgetProvidersHint: "
|
|
144
|
-
readonly
|
|
145
|
-
readonly
|
|
231
|
+
readonly budgetTimezoneHint: "IANA 名称;留空用系统时区。";
|
|
232
|
+
readonly budgetProviders: "按 provider 的上限";
|
|
233
|
+
readonly budgetProvidersHint: "JSON;与全局上限取更严者。";
|
|
234
|
+
readonly judgeProviders: "自定义 provider";
|
|
235
|
+
readonly judgeProvidersHint: "JSON;按 id 定义协议、地址、模型、keyRef。";
|
|
236
|
+
readonly rubricsTitle: "提示词(rubric)";
|
|
237
|
+
readonly rubricNotes: "评分与覆盖判定向模型提的问题文本。覆盖必须换新版本号;改动会改变问题哈希,旧缓存不再复用;无效的覆盖会被忽略。";
|
|
146
238
|
readonly rubricActive: "生效版本";
|
|
147
|
-
readonly rubricBuiltin: "内置";
|
|
148
239
|
readonly rubricOverrideOn: "已覆盖";
|
|
149
|
-
readonly rubricCreate: "
|
|
240
|
+
readonly rubricCreate: "从默认文本开始覆盖";
|
|
150
241
|
readonly rubricRestore: "恢复默认";
|
|
242
|
+
readonly rubricDialogTitle: "编辑提示词:{name}";
|
|
151
243
|
readonly rubricVersion: "版本号";
|
|
152
|
-
readonly rubricVersionHint: "字母数字与 . _ -,至多 32
|
|
244
|
+
readonly rubricVersionHint: "字母数字与 . _ -,至多 32 字符,须不同于内置。";
|
|
153
245
|
readonly rubricInstructions: "提示词模板";
|
|
154
|
-
readonly rubricInstructionsHint: "
|
|
155
|
-
readonly rubricCriteria: "
|
|
156
|
-
readonly rubricCriteriaHint: "
|
|
246
|
+
readonly rubricInstructionsHint: "只能用该 rubric 允许的变量,且含必需变量。";
|
|
247
|
+
readonly rubricCriteria: "评分等级";
|
|
248
|
+
readonly rubricCriteriaHint: "每行一级,由低到高;仅评分类,2–10 级。";
|
|
157
249
|
readonly rubricMaxState: "任务描述字符上限";
|
|
158
250
|
readonly rubricMaxStateHint: "20–2000。";
|
|
159
251
|
readonly rubricMaxCandidate: "候选文本字符上限";
|
|
160
252
|
readonly rubricMaxCandidateHint: "100–8000。";
|
|
161
253
|
readonly rubricUnknown: "设置里有不对应任何内置 rubric 的覆盖,会被忽略:";
|
|
162
|
-
readonly
|
|
163
|
-
readonly
|
|
164
|
-
readonly
|
|
165
|
-
readonly
|
|
166
|
-
readonly
|
|
167
|
-
readonly
|
|
168
|
-
readonly
|
|
169
|
-
readonly
|
|
170
|
-
readonly
|
|
171
|
-
readonly
|
|
172
|
-
readonly
|
|
173
|
-
readonly
|
|
174
|
-
readonly
|
|
175
|
-
readonly
|
|
176
|
-
readonly
|
|
177
|
-
readonly
|
|
178
|
-
readonly
|
|
179
|
-
readonly
|
|
180
|
-
readonly
|
|
181
|
-
readonly
|
|
182
|
-
readonly
|
|
183
|
-
readonly
|
|
184
|
-
readonly
|
|
185
|
-
readonly
|
|
186
|
-
readonly
|
|
187
|
-
readonly
|
|
188
|
-
readonly
|
|
189
|
-
readonly
|
|
190
|
-
readonly
|
|
191
|
-
readonly
|
|
192
|
-
readonly
|
|
193
|
-
readonly
|
|
194
|
-
readonly
|
|
195
|
-
readonly
|
|
196
|
-
readonly
|
|
197
|
-
readonly
|
|
198
|
-
readonly
|
|
199
|
-
readonly
|
|
200
|
-
readonly
|
|
201
|
-
readonly
|
|
202
|
-
readonly
|
|
203
|
-
readonly
|
|
204
|
-
readonly
|
|
205
|
-
readonly
|
|
254
|
+
readonly promptDefaultCol: "默认";
|
|
255
|
+
readonly promptMineCol: "我的覆盖";
|
|
256
|
+
readonly promptEmptyIsDefault: "留空 = 用默认";
|
|
257
|
+
readonly promptStateDefault: "默认";
|
|
258
|
+
readonly jsonEntries: "{n} 项";
|
|
259
|
+
readonly jsonDialogTitle: "编辑:{name}";
|
|
260
|
+
readonly jsonDialogHint: "这是一个 JSON 对象;校验与服务端用同一套规则。";
|
|
261
|
+
readonly registerProvider: "注册为 ctx.web provider";
|
|
262
|
+
readonly registerProviderHint: "让内置 web_search / web_fetch 可经本插件。";
|
|
263
|
+
readonly registerProviderHelp: "启动时生效。注册只是“可选”:宿主只在 web 条目写明 id 或它是唯一可用 provider 时才用它,还需要下面的 profile patch。";
|
|
264
|
+
readonly providerId: "Provider ID";
|
|
265
|
+
readonly providerIdHint: "被 web 条目或环境变量引用的稳定 id。";
|
|
266
|
+
readonly providerEvidence: "内置 web_search 返回";
|
|
267
|
+
readonly providerEvidenceHint: "auto:证据包;off:只返回来源列表。";
|
|
268
|
+
readonly optAuto: "auto · 证据包(默认)";
|
|
269
|
+
readonly optOff: "off · 来源列表";
|
|
270
|
+
readonly providerDeadlineMs: "证据运行期限";
|
|
271
|
+
readonly providerDeadlineMsHint: "到点返回已有结果,至少 100。";
|
|
272
|
+
readonly routeOffNote: "未注册:内置 web_search / web_fetch 不经过本插件。";
|
|
273
|
+
readonly routeHelpTitle: "选中本插件还需要 profile patch";
|
|
274
|
+
readonly routeHelpFoldHint: "写进 cordis.patch.yml";
|
|
275
|
+
readonly routeHelpIntro: "在 $DSH_HOME/profiles/<profile>/cordis.patch.yml 中写:";
|
|
276
|
+
readonly routeHelpAfter: "也可只设环境变量 DSH_WEB_SEARCH_PROVIDER / DSH_WEB_FETCH_PROVIDER。不要只注册而不写 fetchProvider(宿主自带的 http 与本插件同时可用时 web_fetch 会报 AMBIGUOUS)。重启后用 web_call sources.status 查看 “ctx.web route” 一行。";
|
|
277
|
+
readonly enableCliBackends: "启用 CLI 后端";
|
|
278
|
+
readonly enableCliBackendsHint: "bili、yt-dlp、OpenCLI、Agent Reach 等。";
|
|
279
|
+
readonly enableCliBackendsHelp: "允许本机 CLI 后端;关闭后这些平台后端都不会被运行。";
|
|
280
|
+
readonly opencliEnabled: "启用 OpenCLI";
|
|
281
|
+
readonly opencliEnabledHint: "经 Chrome Browser Bridge 用站点适配器。";
|
|
282
|
+
readonly opencliEnabledHelp: "允许通过已连接的 Chrome Browser Bridge 使用站点适配器。";
|
|
283
|
+
readonly agentReachEnabled: "启用 Agent Reach";
|
|
284
|
+
readonly agentReachEnabledHint: "兼容 Agent Reach 的外部后端。";
|
|
285
|
+
readonly agentReachEnabledHelp: "允许兼容 Agent Reach 的外部搜索后端。";
|
|
286
|
+
readonly runtimeLoginTitle: "登录值";
|
|
287
|
+
readonly runtimeBackendsTitle: "后端(JSON)";
|
|
288
|
+
readonly runtimePlatformsTitle: "平台与浏览器(JSON)";
|
|
289
|
+
readonly twitterGroup: "Twitter / X(twitter-cli)";
|
|
290
|
+
readonly twitterGroupHint: "twitter-cli 需要 auth_token 与 ct0;只通过子进程环境变量传给命令。";
|
|
291
|
+
readonly twitterPartial: "只配了一个";
|
|
292
|
+
readonly twitterAuthTokenEnv: "auth_token 引用名";
|
|
293
|
+
readonly twitterAuthTokenEnvHint: "凭据 / 环境变量名;默认 TWITTER_AUTH_TOKEN。";
|
|
294
|
+
readonly twitterCt0Env: "ct0 引用名";
|
|
295
|
+
readonly twitterCt0EnvHint: "凭据 / 环境变量名;默认 TWITTER_CT0。";
|
|
296
|
+
readonly twitterAuthToken: "Twitter auth_token";
|
|
297
|
+
readonly twitterCt0: "Twitter ct0";
|
|
298
|
+
readonly playwright: "Playwright 设置";
|
|
299
|
+
readonly playwrightHint: "JSON;浏览器渲染回退与截图目录。";
|
|
300
|
+
readonly platformBackends: "平台后端顺序";
|
|
301
|
+
readonly platformBackendsHint: "JSON;每个平台依次尝试的后端。";
|
|
302
|
+
readonly cliAdapters: "自定义 CLI 适配";
|
|
303
|
+
readonly cliAdaptersHint: "JSON;按 id 定义只读 CLI 适配规格。";
|
|
304
|
+
readonly customPlatforms: "自定义平台";
|
|
305
|
+
readonly customPlatformsHint: "JSON;搜索 URL 与选择器,登录态走浏览器绑定。";
|
|
306
|
+
readonly platformRules: "平台选择器覆盖";
|
|
307
|
+
readonly platformRulesHint: "JSON;按平台设 item / title / link 选择器。";
|
|
308
|
+
readonly browserBindings: "浏览器绑定";
|
|
309
|
+
readonly browserBindingsHint: "JSON;平台绑定到 dsh-browser 登录 profile 与规则包。";
|
|
310
|
+
readonly timeoutMs: "超时预算";
|
|
311
|
+
readonly timeoutMsHint: "单次增强搜索,至少 1000。";
|
|
312
|
+
readonly timeoutMsHelp: "单次增强搜索的协作超时;证据运行另有自己的期限。";
|
|
313
|
+
readonly ttlSeconds: "缓存有效期";
|
|
314
|
+
readonly ttlSecondsHint: "0 = 每次都视为过期。";
|
|
315
|
+
readonly ttlSecondsHelp: "缓存的搜索与页面保持新鲜多久;改动立即对新请求生效。";
|
|
316
|
+
readonly memoryCacheEntries: "内存缓存条目";
|
|
317
|
+
readonly memoryCacheEntriesHint: "进程内 LRU 容量,至少 1。";
|
|
318
|
+
readonly dbPath: "SQLite 路径";
|
|
319
|
+
readonly dbPathHint: "留空 = 插件默认路径。";
|
|
320
|
+
readonly verbose: "详细诊断日志";
|
|
321
|
+
readonly verboseHint: "写入加载标记并输出更多诊断。";
|
|
322
|
+
readonly rrfConstant: "RRF 常数";
|
|
323
|
+
readonly rrfConstantHint: "多来源融合的排名平滑常数 k。";
|
|
324
|
+
readonly rrfConstantHelp: "融合分 = Σ 1/(k + 名次);k 越大,名次差距的影响越小。默认 60。";
|
|
325
|
+
readonly freshnessBoost: "时效加权";
|
|
326
|
+
readonly freshnessBoostHint: "0–1,占一个名次的比例。";
|
|
327
|
+
readonly freshnessBoostHelp: "近期结果的加分,占同一来源相邻两名分差的比例;每个 URL 只加一次。加分合计不会让第 10 名超过第 1 名。";
|
|
328
|
+
readonly freshnessDays: "时效衰减天数";
|
|
329
|
+
readonly freshnessDaysHint: "多少天内衰减到 0。";
|
|
330
|
+
readonly authorityBoost: "权威域名加权";
|
|
331
|
+
readonly authorityBoostHint: "0–1,占一个名次的比例。";
|
|
332
|
+
readonly authorityBoostHelp: "权威域名(github.com、wikipedia.org、.edu / .gov / .org 与下面的额外域名)的加分。";
|
|
333
|
+
readonly authorityDomains: "额外权威域名";
|
|
334
|
+
readonly authorityDomainsHint: "不带协议和路径。";
|
|
335
|
+
readonly rankingNote: "来源自带的 rerank_score / authority(DeepSeek)另有一项很小的加分(0.3 个名次),不在这里配置。";
|
|
336
|
+
readonly textViewTitle: "设置文本";
|
|
337
|
+
readonly textViewHint: "当前草稿的设置(不含密钥),每个键前有注释:用途、取值、默认值、风险。";
|
|
338
|
+
readonly textViewCopy: "复制";
|
|
339
|
+
readonly textViewCopied: "已复制";
|
|
340
|
+
readonly textViewNote: "这是控件的只读视图:想改设置请用上面的控件;注释行以 # 开头,被读取时忽略。";
|
|
341
|
+
readonly groupOrder: "搜索顺序";
|
|
342
|
+
readonly groupOrderSub: "通用搜索与每个平台的后端尝试顺序";
|
|
343
|
+
readonly groupCli: "自定义 CLI";
|
|
344
|
+
readonly groupCliSub: "加入你自己的只读命令行工具";
|
|
345
|
+
readonly orderEnginesTitle: "通用搜索顺序";
|
|
346
|
+
readonly orderListLabel: "引擎顺序";
|
|
347
|
+
readonly orderAdd: "添加来源…";
|
|
348
|
+
readonly orderAddLabel: "添加来源";
|
|
349
|
+
readonly orderRestore: "恢复默认顺序";
|
|
350
|
+
readonly orderEmpty: "列表是空的:至少要留一个来源。";
|
|
351
|
+
readonly orderUp: "上移";
|
|
352
|
+
readonly orderDown: "下移";
|
|
353
|
+
readonly orderRemove: "移除";
|
|
354
|
+
readonly orderConfidenceOf: "{name} 的置信度";
|
|
355
|
+
readonly orderConfidenceBadge: "置信度 {c}";
|
|
356
|
+
readonly orderConfidenceDefault: "默认 {c}";
|
|
357
|
+
readonly orderConfidenceLabel: "置信度";
|
|
358
|
+
readonly orderConfidenceEdit: "点一下修改置信度";
|
|
359
|
+
readonly orderConfidenceHelp: "只在多个来源融合排名时略微降低它的权重;1 = 不调整。";
|
|
360
|
+
readonly orderPlatformFilter: "按平台名或 id 过滤…";
|
|
361
|
+
readonly orderPlatformFilterLabel: "过滤平台";
|
|
362
|
+
readonly orderPlatformFound: "匹配 {n} / {total} 个平台";
|
|
363
|
+
readonly orderPlatformNone: "没有匹配的平台。";
|
|
364
|
+
readonly orderPlatformsMore: "显示其余 {n} 个平台";
|
|
365
|
+
readonly orderPlatformsMoreHint: "先列改过的、有自定义 CLI 的和常用的";
|
|
366
|
+
readonly stateReady: "就绪";
|
|
367
|
+
readonly stateNoKey: "缺 Key";
|
|
368
|
+
readonly stateNoUrl: "未设地址";
|
|
369
|
+
readonly stateNotReady: "未就绪";
|
|
370
|
+
readonly stateUnknown: "未知来源";
|
|
371
|
+
readonly stateSpecOk: "规格合法";
|
|
372
|
+
readonly stateSpecBad: "规格有问题";
|
|
373
|
+
readonly stateNoSpec: "没有这个自定义 CLI";
|
|
374
|
+
readonly kindCustom: "自定义";
|
|
375
|
+
readonly kindSeam: "宿主内置";
|
|
376
|
+
readonly orderWhy: "为什么和列表不同:";
|
|
377
|
+
readonly orderWhySame: "与上面的列表一致。";
|
|
378
|
+
readonly orderWhyCommon: "{ids} 配置了 Key,默认规则把它放在列表前面。";
|
|
379
|
+
readonly orderWhyDisabled: "sources.disabled 排除了 {ids}。";
|
|
380
|
+
readonly orderWhyPriority: "sources.priority 把 {ids} 提到了前面。";
|
|
381
|
+
readonly orderWhyAnonymous: "只用免费来源(anonymous-only),{ids} 不会自动加入。";
|
|
382
|
+
readonly orderWhyOwn: "这是你自己写的顺序,{ids} 不会自动加入。";
|
|
383
|
+
readonly orderWhyNone: "所有引擎都被停用,没有可尝试的来源。";
|
|
384
|
+
readonly orderRulesTitle: "三者的关系";
|
|
385
|
+
readonly orderRulesNote: "调用里显式给的 engines 最优先;其次是上面这份列表;“来源”里的 sources.priority / sources.disabled 再对它调整(停用的去掉,优先的提前);最后才是默认规则(DeepSeek 有 Key 时排最前)。";
|
|
386
|
+
readonly orderRulesLink: "去“来源”里设置";
|
|
387
|
+
readonly orderPriorityNow: "优先:{ids}";
|
|
388
|
+
readonly orderDisabledNow: "停用:{ids}";
|
|
389
|
+
readonly orderNone: "无";
|
|
390
|
+
readonly orderPlatformsTitle: "平台后端顺序";
|
|
391
|
+
readonly orderPlatformsNote: "每个平台按顺序尝试这些后端,前一个不可用或失败就落到下一个。没改过的显示内置默认链。";
|
|
392
|
+
readonly orderDefaultBadge: "默认";
|
|
393
|
+
readonly platformDialogTitle: "{name} 的后端顺序";
|
|
394
|
+
readonly platformDialogNote: "改动写入 platformBackends 里这个平台的一项;“恢复默认”删掉这一项,回到内置链。";
|
|
395
|
+
readonly platformChainBad: "platformBackends 的 JSON 当前无效:先在“高级”里改好,再用这里编辑。";
|
|
396
|
+
readonly platformEmpty: "这条链是空的,平台没有后端可用。";
|
|
397
|
+
readonly platformAddNone: "没有可再加入的后端";
|
|
398
|
+
readonly backendUnknown: "未知后端";
|
|
399
|
+
readonly cliIntroNote: "只读保证和内置适配一样:参数模板逐个 token,不经 shell;写入 / 登录类命令、读 Cookie 的参数会被拒绝;输出和超时有上限。结果带“用户自定义,未经插件验证”的标签和置信度。";
|
|
400
|
+
readonly cliAdd: "新增自定义 CLI";
|
|
401
|
+
readonly cliAddExample: "用 echo 做示例";
|
|
402
|
+
readonly cliEmpty: "还没有自定义 CLI。";
|
|
403
|
+
readonly cliCopy: "复制";
|
|
404
|
+
readonly cliDelete: "删除";
|
|
405
|
+
readonly cliPurposeEngine: "通用引擎";
|
|
406
|
+
readonly cliPurposePlatforms: "平台 {list}";
|
|
407
|
+
readonly cliPurposeNone: "未设用途";
|
|
408
|
+
readonly cliDeleteNote: "删除会在保存后生效;引用它的引擎列表或平台链需要一并改掉。";
|
|
409
|
+
readonly cliDialogNew: "新增自定义 CLI";
|
|
410
|
+
readonly cliDialogEdit: "编辑 {id}";
|
|
411
|
+
readonly cliDialogNote: "表单和下面的 JSON 是同一份规格的两种视图,校验用的是服务端的函数。点“完成”把它放进草稿,保存后才生效。";
|
|
412
|
+
readonly cliCancel: "取消";
|
|
413
|
+
readonly cliApply: "完成";
|
|
414
|
+
readonly cliId: "ID";
|
|
415
|
+
readonly cliIdHint: "小写字母、数字、. _ -;保存后不能改。";
|
|
416
|
+
readonly cliBin: "命令";
|
|
417
|
+
readonly cliBinHint: "PATH 上的命令名,不能是路径。";
|
|
418
|
+
readonly cliArgv: "参数模板";
|
|
419
|
+
readonly cliArgvHint: "每个参数一格;不经 shell。";
|
|
420
|
+
readonly cliArgvNote: "占位符:{query} 查询,{count} 结果数,{terms} 把查询按词拆成多个参数。至少要有 {query}(或 {terms})。以 - 开头的写法按参数处理,子命令写在前面。";
|
|
421
|
+
readonly cliArgvAdd: "添加参数";
|
|
422
|
+
readonly cliArgvRemove: "删除参数";
|
|
423
|
+
readonly cliArgvToken: "参数 {n}";
|
|
424
|
+
readonly cliAllowed: "允许的子命令";
|
|
425
|
+
readonly cliAllowedHint: "自动从参数模板推出。";
|
|
426
|
+
readonly cliAllowedNone: "(没有子命令)";
|
|
427
|
+
readonly cliFormat: "输出格式";
|
|
428
|
+
readonly cliFormatHint: "工具打印的结果是什么格式。";
|
|
429
|
+
readonly cliWhole: "整段输出";
|
|
430
|
+
readonly cliWholeHint: "不写字段映射:把 stdout 整体当一条结果。";
|
|
431
|
+
readonly cliWholeNote: "标题是“适配名: 查询”,链接是占位的 cli://<id>?q=…,文本超出上限会截断并写明。这条结果出现在普通搜索里,但不是网页:证据模式不会抓取它,只把它列为来源。";
|
|
432
|
+
readonly cliWholeMax: "最多字符数";
|
|
433
|
+
readonly cliWholeMaxHint: "200–8000;留空 2000。";
|
|
434
|
+
readonly cliItemsPath: "结果数组路径";
|
|
435
|
+
readonly cliItemsPathHint: "例:data.items;留空 = 根数组。";
|
|
436
|
+
readonly cliLinesMode: "文本行方式";
|
|
437
|
+
readonly cliLinesModeHint: "一行一个结果的两种写法。";
|
|
438
|
+
readonly cliOptUrlLines: "url-lines · 含链接的行";
|
|
439
|
+
readonly cliOptTsv: "tsv · 制表符分隔的列";
|
|
440
|
+
readonly cliColumns: "列名";
|
|
441
|
+
readonly cliColumnsHint: "逗号分隔,例:id, title, link。";
|
|
442
|
+
readonly cliFields: "字段映射";
|
|
443
|
+
readonly cliFieldsNote: "每个结果字段填一个点路径,指向工具输出里的一条结果。URL 必填,必须是 http(s) 链接。";
|
|
444
|
+
readonly cliFieldUrl: "URL";
|
|
445
|
+
readonly cliFieldTitle: "标题";
|
|
446
|
+
readonly cliFieldSnippet: "摘要";
|
|
447
|
+
readonly cliFieldPublishedAt: "时间";
|
|
448
|
+
readonly cliFieldUrlHint: "例:link 或 data.url";
|
|
449
|
+
readonly cliFieldTitleHint: "例:title";
|
|
450
|
+
readonly cliFieldSnippetHint: "例:summary";
|
|
451
|
+
readonly cliFieldPublishedAtHint: "例:published_at";
|
|
452
|
+
readonly cliFieldComplex: "较复杂的映射,在 JSON 视图里改";
|
|
453
|
+
readonly cliTimeout: "超时";
|
|
454
|
+
readonly cliTimeoutHint: "1000–180000 毫秒。";
|
|
455
|
+
readonly cliPurpose: "用途";
|
|
456
|
+
readonly cliEngine: "作为通用搜索引擎";
|
|
457
|
+
readonly cliEngineHint: "可加入“通用搜索顺序”,参与融合与去重。";
|
|
458
|
+
readonly cliPlatforms: "服务的平台";
|
|
459
|
+
readonly cliPlatformsHint: "可加入这些平台的后端顺序。";
|
|
460
|
+
readonly cliPlatformUnknown: "没有这个平台的后端链";
|
|
461
|
+
readonly cliPlatformsAdd: "平台 id,回车添加";
|
|
462
|
+
readonly cliConfidenceLabel: "置信度";
|
|
463
|
+
readonly cliConfidenceHint: "0–1;留空 0.5。";
|
|
464
|
+
readonly cliConfidenceNote: "置信度只在多个来源融合排名时让它的权重略低,并随结果显示;1 不改变任何东西。也可以在“搜索顺序”的列表里按来源覆盖。";
|
|
465
|
+
readonly cliAdvanced: "高级";
|
|
466
|
+
readonly cliPackageNote: "安装说明";
|
|
467
|
+
readonly cliPackageNoteHint: "缺这个命令时给用户看。";
|
|
468
|
+
readonly cliHelpArgs: "帮助命令";
|
|
469
|
+
readonly cliHelpArgsHint: "空格分隔,例:search --help";
|
|
470
|
+
readonly cliMustContain: "帮助里必须出现";
|
|
471
|
+
readonly cliMustContainHint: "用来确认命令是对的程序。";
|
|
472
|
+
readonly cliMaxOutput: "输出上限";
|
|
473
|
+
readonly cliMaxOutputHint: "1024–16777216 字节。";
|
|
474
|
+
readonly unitBytes: "字节";
|
|
475
|
+
readonly cliJson: "查看 JSON";
|
|
476
|
+
readonly cliJsonNote: "直接改整份规格;合法的修改会同步回上面的表单。";
|
|
477
|
+
readonly cliJsonBad: "JSON 无法解析:{why}";
|
|
478
|
+
readonly cliProblems: "这份规格有问题";
|
|
479
|
+
readonly cliValid: "规格合法。";
|
|
480
|
+
readonly cliApplyBlocked: "规格有问题时不能放进草稿。";
|
|
481
|
+
readonly cliTrial: "试运行";
|
|
482
|
+
readonly cliTrialNote: "真的运行一次:先探测命令(版本和帮助),再用示例查询搜索一次;只读,不登录,不保存任何东西。";
|
|
483
|
+
readonly cliTrialQuery: "示例查询";
|
|
484
|
+
readonly cliTrialQueryDefault: "hello";
|
|
485
|
+
readonly cliTrialRun: "运行一次";
|
|
486
|
+
readonly cliTrialRunning: "运行中…";
|
|
487
|
+
readonly cliTrialUnavailable: "当前宿主没有给插件开通道,这里无法试运行。保存后用 web_call 的 sources.status 看是否就绪,用 search.run 搜一次。";
|
|
488
|
+
readonly cliTrialInvalid: "规格有问题,先修正再试运行。";
|
|
489
|
+
readonly cliTrialOk: "运行成功:解析出 {n} 条,显示前 {m} 条,用时 {ms} ms。";
|
|
490
|
+
readonly cliTrialFailed: "没有成功(停在“{stage}”):";
|
|
491
|
+
readonly cliTrialStageDisabled: "被设置关闭";
|
|
492
|
+
readonly cliTrialStageValidate: "校验";
|
|
493
|
+
readonly cliTrialStageProbe: "探测命令";
|
|
494
|
+
readonly cliTrialStageSearch: "搜索";
|
|
495
|
+
readonly cliTrialRaw: "工具原话";
|
|
496
|
+
readonly cliTrialResults: "解析出的结果";
|
|
497
|
+
readonly cliTrialHint: "建议:{hint}";
|
|
498
|
+
readonly cliTrialLabel: "用户自定义,未经插件验证";
|
|
499
|
+
readonly cliTrialRpcFailed: "试运行没有完成:{why}";
|
|
500
|
+
readonly chainEdit: "编辑顺序 →";
|
|
501
|
+
readonly advancedRawTitle: "原始 JSON";
|
|
502
|
+
readonly advancedRawHint: "平台后端顺序和自定义 CLI 的整段 JSON";
|
|
503
|
+
readonly cliOutput: "输出";
|
|
504
|
+
readonly restartBadge: "重启插件后生效";
|
|
505
|
+
readonly restartBadgeSnapshot: "快照目录:重启插件后生效";
|
|
506
|
+
readonly restartWhyToolSurface: "工具(web_index + web_call,或每个动作一个工具)在插件启动时注册,改了要重启插件才会换。";
|
|
507
|
+
readonly restartWhyPlaywright: "快照目录在插件启动时确定;playwright.enabled 则即时生效。";
|
|
508
|
+
readonly restartWhyProviderId: "注册到宿主时就给定了 provider id,改了要重启插件。";
|
|
509
|
+
readonly restartWhyRegisterProvider: "是否注册 ctx.web provider 在插件启动时决定,改了要重启插件。";
|
|
510
|
+
readonly restartWhyTimeoutMs: "每个动作的截止时间和宿主工具上限在启动时定下,改了要重启插件(搜索内部的协作超时预算则即时生效)。";
|
|
511
|
+
readonly restartWhyMemoryCacheEntries: "进程内缓存在启动时按这个容量创建,改了要重启插件。";
|
|
512
|
+
readonly restartWhyDbPath: "数据库(和 agent 修改文件)在启动时打开,改路径要重启插件;旧路径里的数据不会自动搬过去。";
|
|
513
|
+
readonly restartWhyVerbose: "加载标记在启动时写入,改了要重启插件。";
|
|
514
|
+
readonly savebarRestart: "其中 {fields} 要重启插件后才生效。";
|
|
515
|
+
readonly summaryPendingRestart: "待重启 {n} 项";
|
|
516
|
+
readonly pendingRestartLine: "待重启:当前生效 {running},配置为 {configured}";
|
|
517
|
+
readonly pendingEmpty: "(空)";
|
|
518
|
+
readonly groupAgent: "agent 修改";
|
|
519
|
+
readonly groupAgentSub: "agent 经 config.* 做的修改:实时生效,不改你的配置";
|
|
520
|
+
readonly agentBadge: "agent 修改";
|
|
521
|
+
readonly agentTip: "agent 设为 {value}(你的配置里是 {baseline})· {reason} · {at} · {who}";
|
|
522
|
+
readonly agentNoReason: "(没有记录原因)";
|
|
523
|
+
readonly agentActorAgent: "agent";
|
|
524
|
+
readonly agentActorUser: "你(面板)";
|
|
525
|
+
readonly agentAdopt: "采纳到配置";
|
|
526
|
+
readonly agentRevoke: "撤销";
|
|
527
|
+
readonly agentRevokeAll: "全部撤销";
|
|
528
|
+
readonly agentRefresh: "刷新";
|
|
529
|
+
readonly agentRefreshing: "读取中…";
|
|
530
|
+
readonly agentNow: "生效:";
|
|
531
|
+
readonly agentConfigHolds: "你的配置:";
|
|
532
|
+
readonly agentCount: "{n} 项";
|
|
533
|
+
readonly agentNote: "agent 用 config.* 动作改的搜索顺序、来源规则、置信度、平台后端和自定义 CLI 放在一个单独的覆盖文件里,立刻生效,不会改动你的配置。“采纳到配置”把值写进你的配置(和下面的保存一样是一次原子写入)再撤销这条覆盖;“撤销”直接丢弃它。每次修改都记了原因,并留有审计记录。";
|
|
534
|
+
readonly agentEmpty: "agent 没有做过修改。";
|
|
535
|
+
readonly agentLoading: "正在读取…";
|
|
536
|
+
readonly agentNotLoaded: "还没有读取。点“刷新”。";
|
|
537
|
+
readonly agentUnavailable: "读不到 agent 修改:宿主没有提供这个插件的私有通道,或插件版本较旧。agent 仍可用 config.inspect 查看。";
|
|
538
|
+
readonly agentInvalid: "覆盖文件被整体忽略(插件按你的配置运行):{problem} 点“全部撤销”可把坏文件挪开并重新开始。";
|
|
539
|
+
readonly agentAdoptFailed: "没能写入配置(宿主没有接受),覆盖保持不变。";
|
|
540
|
+
readonly agentAdoptHalf: "值已写进配置,但撤销覆盖没成功:{why} 刷新后可手动撤销。";
|
|
541
|
+
readonly agentRevokeFailed: "撤销失败:{why}";
|
|
542
|
+
readonly agentFile: "覆盖文件 {file} · 版本 {revision}";
|
|
543
|
+
readonly agentAuditTitle: "最近的审计记录({n})";
|
|
544
|
+
readonly agentAuditHint: "每次修改的原因、时间和前后值";
|
|
545
|
+
readonly agentAuditEmpty: "还没有记录。";
|
|
546
|
+
readonly agentKindEngines: "引擎顺序";
|
|
547
|
+
readonly agentKindPriority: "优先来源 sources.priority";
|
|
548
|
+
readonly agentKindDisabled: "停用来源 sources.disabled";
|
|
549
|
+
readonly agentKindConfidence: "置信度";
|
|
550
|
+
readonly agentKindPlatform: "平台后端顺序";
|
|
551
|
+
readonly agentKindCli: "自定义 CLI";
|
|
552
|
+
readonly summaryAgent: "agent 修改 {n} 项";
|
|
553
|
+
readonly summaryAgentOpen: "查看";
|
|
554
|
+
readonly agentCliTitle: "agent 添加的 CLI";
|
|
555
|
+
readonly agentCliNote: "这些 CLI 只在覆盖文件里,不在上面的列表里。";
|
|
556
|
+
readonly orderAgentChain: "加上 agent 的修改后实际尝试顺序:";
|
|
557
|
+
readonly orderAgentChainNone: "加上 agent 的修改后没有可用的引擎(全部被停用)。";
|
|
558
|
+
readonly agentNeedsCli: "用到了只存在于覆盖层的自定义 CLI:{ids}。采纳时请连这个 CLI 一起采纳,否则你的配置会引用一个它没有定义的 CLI。";
|
|
559
|
+
};
|
|
560
|
+
export declare const en: {
|
|
561
|
+
readonly tab: "Web Search Pro";
|
|
562
|
+
readonly title: "Web Search Pro";
|
|
563
|
+
readonly description: "Search engines, sources and keys, scoring model, reading and cache, platform rules";
|
|
564
|
+
readonly lang: "en";
|
|
565
|
+
readonly readOnly: "The settings document is read-only, so changes cannot be saved.";
|
|
566
|
+
readonly unavailable: "Settings are unavailable: the host serves no configuration form for this plugin.";
|
|
567
|
+
readonly reset: "Restore default";
|
|
568
|
+
readonly overridden: "Overridden";
|
|
569
|
+
readonly overriddenCount: "{n} overridden";
|
|
570
|
+
readonly invalid: "Invalid value: check the range or format.";
|
|
571
|
+
readonly invalidJson: "Invalid JSON: it must be an object.";
|
|
572
|
+
readonly helpLabel: "More about this setting";
|
|
573
|
+
readonly edit: "Edit";
|
|
574
|
+
readonly close: "Close";
|
|
575
|
+
readonly done: "Done";
|
|
576
|
+
readonly emptyDefault: "(default)";
|
|
206
577
|
readonly optionOff: "off";
|
|
207
|
-
readonly
|
|
208
|
-
readonly
|
|
209
|
-
readonly
|
|
210
|
-
readonly
|
|
211
|
-
readonly
|
|
212
|
-
readonly
|
|
213
|
-
readonly
|
|
214
|
-
readonly
|
|
215
|
-
readonly
|
|
216
|
-
readonly
|
|
217
|
-
readonly
|
|
218
|
-
readonly
|
|
219
|
-
readonly
|
|
220
|
-
readonly
|
|
221
|
-
readonly
|
|
222
|
-
readonly
|
|
223
|
-
readonly
|
|
224
|
-
readonly
|
|
225
|
-
readonly
|
|
226
|
-
readonly
|
|
227
|
-
readonly
|
|
578
|
+
readonly chipRemove: "Remove";
|
|
579
|
+
readonly save: "Save";
|
|
580
|
+
readonly saving: "Saving…";
|
|
581
|
+
readonly discardChanges: "Discard";
|
|
582
|
+
readonly saveFailed: "The host did not accept every change; the draft is kept, check for conflicts or the log.";
|
|
583
|
+
readonly savebarClean: "No unsaved changes";
|
|
584
|
+
readonly savebarDirty: "{n} unsaved change(s)";
|
|
585
|
+
readonly savebarInvalid: "Some input is invalid; fix it to save";
|
|
586
|
+
readonly dialogStagesNote: "Changes here stay in the draft; press Save at the bottom of the page to write them.";
|
|
587
|
+
readonly summaryTitle: "Status";
|
|
588
|
+
readonly summaryChain: "Default chain";
|
|
589
|
+
readonly summaryChainEmpty: "(empty)";
|
|
590
|
+
readonly summaryKeys: "Sources with a key {n}/{m}";
|
|
591
|
+
readonly summaryReady: "ready";
|
|
592
|
+
readonly summaryNoKey: "no key";
|
|
593
|
+
readonly summaryRouteOn: "Built-in web tools: routed here";
|
|
594
|
+
readonly summaryRouteOff: "Built-in web tools: not routed";
|
|
595
|
+
readonly summaryJudge: "Scoring model";
|
|
596
|
+
readonly summarySurface: "Tool surface";
|
|
597
|
+
readonly summaryWarnings: "{n} notice(s)";
|
|
598
|
+
readonly summaryNoWarnings: "No notices";
|
|
599
|
+
readonly summaryDetails: "details";
|
|
600
|
+
readonly warningsTitle: "Settings that need attention";
|
|
601
|
+
readonly warningsNone: "The current draft has no validation notices.";
|
|
602
|
+
readonly unitMs: "ms";
|
|
603
|
+
readonly unitSeconds: "s";
|
|
604
|
+
readonly unitChars: "chars";
|
|
605
|
+
readonly unitCount: "";
|
|
606
|
+
readonly unitTokens: "tokens";
|
|
607
|
+
readonly unitDays: "days";
|
|
608
|
+
readonly riskNetwork: "network";
|
|
609
|
+
readonly riskBilled: "billed";
|
|
610
|
+
readonly riskModel: "calls a model";
|
|
611
|
+
readonly groupCommon: "Common";
|
|
612
|
+
readonly groupCommonSub: "Default engine chain, result count, tool surface, proxy fake-IP, DeepSeek Search";
|
|
613
|
+
readonly groupSources: "Sources";
|
|
614
|
+
readonly groupSourcesSub: "Ranking policy and each source's key, endpoint and request budget";
|
|
615
|
+
readonly groupReading: "Reading and evidence";
|
|
616
|
+
readonly groupReadingSub: "Page length, follow-up rounds, language-aware source choice";
|
|
617
|
+
readonly groupJudge: "Scoring model";
|
|
618
|
+
readonly groupJudgeSub: "Optional paid / local model and its prompts (off by default)";
|
|
619
|
+
readonly groupRoute: "Built-in web tool route";
|
|
620
|
+
readonly groupRouteSub: "Route the host's web_search / web_fetch through this plugin";
|
|
621
|
+
readonly groupRuntime: "Runtime and backends";
|
|
622
|
+
readonly groupRuntimeSub: "CLI / OpenCLI, Twitter login values, backend chains, platforms and browser bindings";
|
|
623
|
+
readonly groupNetwork: "Network and cache";
|
|
624
|
+
readonly groupNetworkSub: "Timeout, cache lifetime, database path, diagnostics";
|
|
625
|
+
readonly groupRanking: "Ranking weights";
|
|
626
|
+
readonly groupRankingSub: "Rank constant and freshness / authority bonuses for multi-source fusion (advanced)";
|
|
627
|
+
readonly groupAdvanced: "Advanced: text mode";
|
|
628
|
+
readonly groupAdvancedSub: "The settings as commented YAML, to copy";
|
|
629
|
+
readonly chainNow: "Order a search tries:";
|
|
630
|
+
readonly chainEmpty: "no usable engine";
|
|
631
|
+
readonly commonDeepseekTitle: "DeepSeek Search / Fetch (common)";
|
|
632
|
+
readonly commonBadge: "Common";
|
|
633
|
+
readonly engines: "Default engine chain";
|
|
634
|
+
readonly enginesHint: "Tried top to bottom; use the arrows to reorder.";
|
|
635
|
+
readonly enginesHelp: "For example ddg, bing, exa, seam, jina. While this is the default list a ready DeepSeek key puts deepseek first; a list you wrote is used as written, and engines in a call always wins.";
|
|
636
|
+
readonly searchMaxResults: "Default result count";
|
|
637
|
+
readonly searchMaxResultsHint: "1-20; used when a call gives no count.";
|
|
638
|
+
readonly parallelEngines: "Fuse several engines in parallel";
|
|
639
|
+
readonly parallelEnginesHint: "Query every default engine at once and fuse, instead of falling back.";
|
|
640
|
+
readonly toolSurface: "Tool surface";
|
|
641
|
+
readonly toolSurfaceHint: "The tools the model sees; read at start-up.";
|
|
642
|
+
readonly toolSurfaceHelp: "indexed exposes only web_index / web_call, the least resident text (default). flat is one tool per action, for comparison and debugging. Restart after changing it.";
|
|
643
|
+
readonly optIndexed: "indexed · two entry points (default)";
|
|
644
|
+
readonly optFlat: "flat · one tool per action (debug)";
|
|
645
|
+
readonly allowProxyFakeIp: "Allow proxy fake-IP DNS";
|
|
646
|
+
readonly allowProxyFakeIpHint: "Turn on when searches fail with \"fake-IP\" under Clash / TUN.";
|
|
647
|
+
readonly allowProxyFakeIpHelp: "With a proxy such as Clash / TUN, if a search fails with \"blocked / private address\" and the host resolves to 198.18.x.x, turn this on. Only the fake-IP ranges (198.18/15, fdfe:dcba:9876::/64, 2001:2::/48) are trusted; literal IPs, localhost and other private addresses stay blocked.";
|
|
648
|
+
readonly deepseekFetch: "Read pages with DeepSeek Fetch";
|
|
649
|
+
readonly deepseekFetchHint: "Off by default; billed per request.";
|
|
650
|
+
readonly deepseekFetchHelp: "When on, read.fetch falls back to the DeepSeek Fetch API (billed $0.75 per 1,000 successful requests; empty results and failures are free) when Jina and a direct request found no content, before browser rendering; mode=deepseek asks for it explicitly. It uses the same key as DeepSeek Search.";
|
|
651
|
+
readonly strategyGroup: "Ranking policy";
|
|
652
|
+
readonly strategyNote: "Order: engines / platform in the call, then \"Priority sources\" below, then sources you configured a key for (DeepSeek, the common one, first), then the anonymous / free defaults. A paid source is used only once its key is configured.";
|
|
653
|
+
readonly sourcePolicy: "Source policy";
|
|
654
|
+
readonly sourcePolicyHint: "Whether automatic planning may use keyed sources.";
|
|
655
|
+
readonly sourcePolicyHelp: "default follows the order above. anonymous-only: automatic planning never uses a source that needs a key, account or login, even a configured one (a source named in the call still runs).";
|
|
656
|
+
readonly optPolicyDefault: "default · in order (default)";
|
|
657
|
+
readonly optPolicyAnonymousOnly: "anonymous-only · anonymous sources only";
|
|
658
|
+
readonly srcPriority: "Priority sources";
|
|
659
|
+
readonly srcPriorityHint: "Source ids ranked first, in this order.";
|
|
660
|
+
readonly srcPriorityHelp: "Only ready sources that fit the task language and profile; for example deepseek, exa. Empty = none. engines in the call still wins.";
|
|
661
|
+
readonly srcDisabled: "Disabled sources";
|
|
662
|
+
readonly srcDisabledHint: "Never used by planning or the default chain.";
|
|
663
|
+
readonly srcDisabledHelp: "A source named in the call still runs. To opt out of the billed DeepSeek default, put deepseek here.";
|
|
664
|
+
readonly sourcesListTitle: "Sources that need a key or an address";
|
|
665
|
+
readonly sourcesListHint: "Edit sets the key reference, the key, the endpoint and the request budget; keys go to DSH Credentials and are never shown.";
|
|
666
|
+
readonly tierPaid: "Paid";
|
|
667
|
+
readonly tierFree: "Free allowance";
|
|
668
|
+
readonly tierAnonymous: "No key";
|
|
669
|
+
readonly sourceConfigured: "Set";
|
|
670
|
+
readonly sourceNotConfigured: "Not set";
|
|
671
|
+
readonly sourceMetaRef: "key reference {ref}";
|
|
672
|
+
readonly sourceMetaCapped: "request cap set";
|
|
673
|
+
readonly sourceMetaNoUrl: "no address set";
|
|
674
|
+
readonly sourceDialogTitle: "{name}";
|
|
675
|
+
readonly sourceResetAll: "Restore this source's defaults";
|
|
676
|
+
readonly sourceNoteDeepseek: "DeepSeek Search / Fetch, the common source: with a key it leads in Chinese and English. Billed per request: $0.75 per 1,000 successful requests; empty results and failures are free; direct plugin calls are treated as billed. Same DEEPSEEK_API_KEY as the DeepSeek models. The page-reading switch is in the Common group.";
|
|
677
|
+
readonly sourceNoteBocha: "Bocha: Chinese search, paid. An account without search balance gets HTTP 403.";
|
|
678
|
+
readonly sourceNoteExa: "Exa: with a key it uses the native API; without one it can fall back to the MCP route through mcporter.";
|
|
679
|
+
readonly sourceNoteJina: "Jina: search and page reading; every new key comes with a one-time free allowance.";
|
|
680
|
+
readonly sourceNoteGithub: "A GitHub token is optional and only raises the API rate limit.";
|
|
681
|
+
readonly sourceNoteSearxng: "Your own SearXNG instance (JSON format enabled); the searxng source exists only once an address is set. No public instance is built in.";
|
|
682
|
+
readonly sourceNoteKeyed: "Naming the key reference enables this source; it is unusable until a key is set. Override the endpoint only for a proxy or private gateway.";
|
|
683
|
+
readonly keyedEnv: "Key reference";
|
|
684
|
+
readonly keyedEnvHint: "Credential / environment variable name; blank uses the default:";
|
|
685
|
+
readonly keyedBaseUrl: "Endpoint";
|
|
686
|
+
readonly keyedBaseUrlHint: "Blank uses the built-in endpoint; an http(s) URL.";
|
|
687
|
+
readonly keyedApiKey: "API Key";
|
|
688
|
+
readonly credentialWriteOnlyHint: "Write-only; blank leaves the stored secret unchanged.";
|
|
689
|
+
readonly credentialReadOnlyHint: "The credential service is read-only, so nothing can be written here.";
|
|
690
|
+
readonly credentialChecking: "Checking…";
|
|
691
|
+
readonly credentialSet: "Configured";
|
|
692
|
+
readonly credentialUnset: "Not configured";
|
|
693
|
+
readonly bochaApiKeyEnv: "Bocha key reference";
|
|
694
|
+
readonly bochaApiKeyEnvHint: "Credential / environment variable; blank: BOCHA_SEARCH_API_KEY.";
|
|
695
|
+
readonly bochaBaseUrl: "Bocha endpoint";
|
|
696
|
+
readonly bochaBaseUrlHint: "Default https://api.bocha.cn; an http(s) URL.";
|
|
697
|
+
readonly bochaSummary: "Ask Bocha for the long summary";
|
|
698
|
+
readonly bochaSummaryHint: "On by default.";
|
|
699
|
+
readonly bochaSummaryHelp: "The long summary helps evidence scoring; turn it off for smaller responses.";
|
|
700
|
+
readonly exaApiKeyEnv: "Exa key reference";
|
|
701
|
+
readonly exaApiKeyEnvHint: "Credential / environment variable; blank: EXA_API_KEY.";
|
|
702
|
+
readonly jinaApiKeyEnv: "Jina key reference";
|
|
703
|
+
readonly jinaApiKeyEnvHint: "Credential / environment variable; blank: JINA_API_KEY.";
|
|
704
|
+
readonly githubTokenEnv: "GitHub token reference";
|
|
705
|
+
readonly githubTokenEnvHint: "Credential / environment variable; blank: GITHUB_TOKEN.";
|
|
706
|
+
readonly searxngUrl: "SearXNG address";
|
|
707
|
+
readonly searxngUrlHint: "The http(s) address of your own instance.";
|
|
708
|
+
readonly openalexMailto: "OpenAlex contact e-mail";
|
|
709
|
+
readonly openalexMailtoHint: "Put in the request User-Agent; polite, optional.";
|
|
710
|
+
readonly reqBudgetGroup: "Request budget (optional)";
|
|
711
|
+
readonly reqBudgetNote: "Cap this source's requests, counted in the usage ledger (it survives restarts). A used-up source is skipped and the plan falls back to others; it is never an error. No cap by default.";
|
|
712
|
+
readonly reqTotal: "Total cap";
|
|
713
|
+
readonly reqTotalHint: "Most requests ever; blank = no cap.";
|
|
714
|
+
readonly reqTotalHelp: "Example: a Bocha account with 1000 requests can use total 1000, daily 50. Used / remaining is in web_call sources.status.";
|
|
715
|
+
readonly reqDaily: "Daily cap";
|
|
716
|
+
readonly reqDailyHint: "Most requests per day; blank = no cap.";
|
|
717
|
+
readonly reqDailyHelp: "The day boundary follows the scoring budget time zone. Used / remaining is in web_call sources.status.";
|
|
718
|
+
readonly anonymousTitle: "Anonymous sources (no key)";
|
|
719
|
+
readonly anonymousHint: "reference only, not live state";
|
|
720
|
+
readonly anonymousName: "Source";
|
|
721
|
+
readonly anonymousUse: "Use";
|
|
722
|
+
readonly sourcesStatusLine: "Live readiness of each source (installation, key, last success) is shown by web_call sources.status.";
|
|
723
|
+
readonly srcUseDdg: "General web, the default first choice";
|
|
724
|
+
readonly srcUseBing: "General web, complements DuckDuckGo";
|
|
725
|
+
readonly srcUseWikipedia: "Encyclopedic facts, zh / en";
|
|
726
|
+
readonly srcUseHackernews: "English tech discussion and experience";
|
|
727
|
+
readonly srcUseStackexchange: "Programming Q&A (Stack Overflow)";
|
|
728
|
+
readonly srcUseOpenalex: "Scholarly paper index";
|
|
729
|
+
readonly srcUseSemanticscholar: "Papers; the anonymous pool is often full";
|
|
730
|
+
readonly srcUseAnysearch: "Anonymous general search, limited allowance";
|
|
731
|
+
readonly srcUseArxiv: "Preprints";
|
|
732
|
+
readonly srcUsePubmed: "Biomedical literature";
|
|
733
|
+
readonly srcUseV2ex: "Chinese community discussion";
|
|
734
|
+
readonly fetchDefaultChars: "Page read length";
|
|
735
|
+
readonly fetchDefaultCharsHint: "read.fetch per call, 1000-500000.";
|
|
736
|
+
readonly exaContentsPerUrlChars: "Exa contents per URL";
|
|
737
|
+
readonly exaContentsPerUrlCharsHint: "read.contents per URL, at least 500.";
|
|
738
|
+
readonly exaContentsTotalChars: "Exa contents total";
|
|
739
|
+
readonly exaContentsTotalCharsHint: "read.contents per call, at least 1000.";
|
|
740
|
+
readonly evAutoProviders: "Pick sources by language";
|
|
741
|
+
readonly evAutoProvidersHint: "Ready sources strong in the task language go first.";
|
|
742
|
+
readonly evAutoProvidersHelp: "Ready sources strong in the task language (DeepSeek, Bocha, Exa, ...) go ahead of the profile table; off keeps the table and engines as they are.";
|
|
743
|
+
readonly evMaxRounds: "Search rounds";
|
|
744
|
+
readonly evMaxRoundsHint: "1 = no follow-up; default 2.";
|
|
745
|
+
readonly evMaxQueries: "Search requests per task";
|
|
746
|
+
readonly evMaxQueriesHint: "Over all rounds; default 4.";
|
|
747
|
+
readonly evidenceNote: "The keep floor (minKeep, 3) and the evidence pack character budget are built-in defaults or the per-call budget of search.run: they have no setting.";
|
|
748
|
+
readonly judgeMode: "Scoring mode";
|
|
749
|
+
readonly judgeModeHint: "Default off: no model is called.";
|
|
750
|
+
readonly judgeModeHelp: "off calls nothing; shadow only records a comparison; control lets the model decide; hybrid keeps the rules and re-scores cross-language (and borderline) pairs with the model. Also writes the legacy keys jevMode / scorer. Check the key and the usage caps first.";
|
|
751
|
+
readonly optShadow: "shadow · observe only";
|
|
752
|
+
readonly optControl: "control · the model decides";
|
|
753
|
+
readonly optHybrid: "hybrid · mixed";
|
|
754
|
+
readonly judgeProvider: "Scoring provider";
|
|
755
|
+
readonly judgeProviderHint: "Default bocha-jev; presets and your ids.";
|
|
756
|
+
readonly hybridBorderline: "hybrid: re-score borderline pairs";
|
|
757
|
+
readonly hybridBorderlineHint: "Roughly doubles the cost.";
|
|
758
|
+
readonly hybridBorderlineHelp: "Pairs the rules grade 1 go to the model as well.";
|
|
759
|
+
readonly maxJevQuestions: "Questions per search";
|
|
760
|
+
readonly maxJevQuestionsHint: "(need, block) pairs, default 64.";
|
|
761
|
+
readonly allowLlm: "Allow the llm protocol";
|
|
762
|
+
readonly allowLlmHint: "Off by default; llm providers need it.";
|
|
763
|
+
readonly allowLlmHelp: "General LLM calls cost tokens; turn it on only for a provider that really speaks the llm protocol.";
|
|
764
|
+
readonly judgeGroupCoverage: "Coverage judge";
|
|
765
|
+
readonly judgeGroupCoverageHint: "the model checks whether excerpts suffice";
|
|
766
|
+
readonly judgeGroupBudget: "Usage caps";
|
|
767
|
+
readonly judgeGroupBudgetHint: "per search and per day tokens";
|
|
768
|
+
readonly judgeGroupProviders: "Custom scoring providers";
|
|
769
|
+
readonly coverageMode: "Coverage mode";
|
|
770
|
+
readonly coverageModeHint: "Default off; not tied to the scoring mode.";
|
|
771
|
+
readonly coverageModeHelp: "off (default); shadow records the probability; control turns weak support into a gap.";
|
|
772
|
+
readonly coverageProvider: "Coverage provider";
|
|
773
|
+
readonly coverageProviderHint: "Default: the scoring provider.";
|
|
774
|
+
readonly thresholdWeak: "Weak threshold";
|
|
775
|
+
readonly thresholdWeakHint: "Below it is weak; blank = calibrated value.";
|
|
776
|
+
readonly thresholdWeakHelp: "Blank uses the value shipped with the plugin, calibrated only for bocha-jev + cover.sufficient v1. Set both thresholds together, weak <= covered.";
|
|
777
|
+
readonly thresholdCovered: "Covered threshold";
|
|
778
|
+
readonly thresholdCoveredHint: "At or above it counts as covered.";
|
|
779
|
+
readonly budgetPerSearch: "Input cap per search";
|
|
780
|
+
readonly budgetPerSearchHint: "Default 60000; 0 = no calls.";
|
|
781
|
+
readonly budgetDaily: "Input cap per day";
|
|
782
|
+
readonly budgetDailyHint: "Default 1000000.";
|
|
783
|
+
readonly budgetTimezone: "Day boundary time zone";
|
|
784
|
+
readonly budgetTimezoneHint: "IANA name; blank = system.";
|
|
785
|
+
readonly budgetProviders: "Caps per provider";
|
|
786
|
+
readonly budgetProvidersHint: "JSON; the stricter cap applies.";
|
|
787
|
+
readonly judgeProviders: "Custom providers";
|
|
788
|
+
readonly judgeProvidersHint: "JSON; define protocol, baseUrl, model, keyRef by id.";
|
|
789
|
+
readonly rubricsTitle: "Prompts (rubrics)";
|
|
790
|
+
readonly rubricNotes: "The question texts scoring and the coverage judge put to the model. An override needs a new version label; editing changes the question hash, so old cache is not reused; an invalid override is ignored.";
|
|
791
|
+
readonly rubricActive: "Active";
|
|
792
|
+
readonly rubricOverrideOn: "Overridden";
|
|
793
|
+
readonly rubricCreate: "Start an override from the default text";
|
|
794
|
+
readonly rubricRestore: "Restore default";
|
|
795
|
+
readonly rubricDialogTitle: "Edit prompt: {name}";
|
|
796
|
+
readonly rubricVersion: "Version";
|
|
797
|
+
readonly rubricVersionHint: "Letters, digits and . _ -, at most 32; differs from the built-in.";
|
|
798
|
+
readonly rubricInstructions: "Prompt template";
|
|
799
|
+
readonly rubricInstructionsHint: "Only the variables this rubric allows, with the required ones.";
|
|
800
|
+
readonly rubricCriteria: "Grade levels";
|
|
801
|
+
readonly rubricCriteriaHint: "One per line, low to high; scoring rubrics only, 2-10.";
|
|
802
|
+
readonly rubricMaxState: "Task characters";
|
|
803
|
+
readonly rubricMaxStateHint: "20-2000.";
|
|
804
|
+
readonly rubricMaxCandidate: "Candidate characters";
|
|
805
|
+
readonly rubricMaxCandidateHint: "100-8000.";
|
|
806
|
+
readonly rubricUnknown: "Overrides in settings that name no built-in rubric are ignored:";
|
|
807
|
+
readonly promptDefaultCol: "Default";
|
|
808
|
+
readonly promptMineCol: "My override";
|
|
809
|
+
readonly promptEmptyIsDefault: "Blank = the default";
|
|
810
|
+
readonly promptStateDefault: "Default";
|
|
811
|
+
readonly jsonEntries: "{n} entries";
|
|
812
|
+
readonly jsonDialogTitle: "Edit: {name}";
|
|
813
|
+
readonly jsonDialogHint: "A JSON object; validated with the server's own rules.";
|
|
814
|
+
readonly registerProvider: "Register as the ctx.web provider";
|
|
815
|
+
readonly registerProviderHint: "Lets built-in web_search / web_fetch route here.";
|
|
816
|
+
readonly registerProviderHelp: "Takes effect at start-up. Registering only makes it selectable: the host uses a provider only when the web entry names its id or it is the only usable one, which needs the profile patch below.";
|
|
817
|
+
readonly providerId: "Provider id";
|
|
818
|
+
readonly providerIdHint: "The stable id the web entry or environment names.";
|
|
819
|
+
readonly providerEvidence: "Built-in web_search returns";
|
|
820
|
+
readonly providerEvidenceHint: "auto: an evidence pack; off: the source list.";
|
|
821
|
+
readonly optAuto: "auto · evidence pack (default)";
|
|
822
|
+
readonly optOff: "off · source list";
|
|
823
|
+
readonly providerDeadlineMs: "Evidence deadline";
|
|
824
|
+
readonly providerDeadlineMsHint: "Partial result at the deadline, at least 100.";
|
|
825
|
+
readonly routeOffNote: "Not registered: built-in web_search / web_fetch do not go through this plugin.";
|
|
826
|
+
readonly routeHelpTitle: "Selecting this plugin also needs a profile patch";
|
|
827
|
+
readonly routeHelpFoldHint: "goes into cordis.patch.yml";
|
|
828
|
+
readonly routeHelpIntro: "Write this in $DSH_HOME/profiles/<profile>/cordis.patch.yml:";
|
|
829
|
+
readonly routeHelpAfter: "Or set only the environment variables DSH_WEB_SEARCH_PROVIDER / DSH_WEB_FETCH_PROVIDER. Do not register without naming fetchProvider (with the host's own http provider also usable, web_fetch fails with AMBIGUOUS). After a restart check the \"ctx.web route\" line of web_call sources.status.";
|
|
830
|
+
readonly enableCliBackends: "Enable CLI backends";
|
|
831
|
+
readonly enableCliBackendsHint: "bili, yt-dlp, OpenCLI, Agent Reach, ...";
|
|
832
|
+
readonly enableCliBackendsHelp: "Allows the local CLI backends; when off none of those platform backends runs.";
|
|
833
|
+
readonly opencliEnabled: "Enable OpenCLI";
|
|
834
|
+
readonly opencliEnabledHint: "Site adapters through the Chrome Browser Bridge.";
|
|
835
|
+
readonly opencliEnabledHelp: "Allows site adapters through the connected Chrome Browser Bridge.";
|
|
836
|
+
readonly agentReachEnabled: "Enable Agent Reach";
|
|
837
|
+
readonly agentReachEnabledHint: "Agent Reach compatible backends.";
|
|
838
|
+
readonly agentReachEnabledHelp: "Allows external search backends compatible with Agent Reach.";
|
|
839
|
+
readonly runtimeLoginTitle: "Login values";
|
|
840
|
+
readonly runtimeBackendsTitle: "Backends (JSON)";
|
|
841
|
+
readonly runtimePlatformsTitle: "Platforms and browser (JSON)";
|
|
842
|
+
readonly twitterGroup: "Twitter / X (twitter-cli)";
|
|
843
|
+
readonly twitterGroupHint: "twitter-cli needs auth_token and ct0; handed to the command only through its environment.";
|
|
844
|
+
readonly twitterPartial: "only one is set";
|
|
845
|
+
readonly twitterAuthTokenEnv: "auth_token reference";
|
|
846
|
+
readonly twitterAuthTokenEnvHint: "Credential / environment variable; default TWITTER_AUTH_TOKEN.";
|
|
847
|
+
readonly twitterCt0Env: "ct0 reference";
|
|
848
|
+
readonly twitterCt0EnvHint: "Credential / environment variable; default TWITTER_CT0.";
|
|
849
|
+
readonly twitterAuthToken: "Twitter auth_token";
|
|
850
|
+
readonly twitterCt0: "Twitter ct0";
|
|
851
|
+
readonly playwright: "Playwright settings";
|
|
852
|
+
readonly playwrightHint: "JSON; browser-render fallback and snapshot directory.";
|
|
853
|
+
readonly platformBackends: "Platform backend order";
|
|
854
|
+
readonly platformBackendsHint: "JSON; backends tried per platform, in order.";
|
|
855
|
+
readonly cliAdapters: "Custom CLI adapters";
|
|
856
|
+
readonly cliAdaptersHint: "JSON; read-only CLI adapter specs by id.";
|
|
857
|
+
readonly customPlatforms: "Custom platforms";
|
|
858
|
+
readonly customPlatformsHint: "JSON; search URL and selectors; logins go through browser bindings.";
|
|
859
|
+
readonly platformRules: "Platform selector overrides";
|
|
860
|
+
readonly platformRulesHint: "JSON; item / title / link selectors per platform.";
|
|
861
|
+
readonly browserBindings: "Browser bindings";
|
|
862
|
+
readonly browserBindingsHint: "JSON; bind a platform to a dsh-browser login profile and rule pack.";
|
|
863
|
+
readonly timeoutMs: "Timeout budget";
|
|
864
|
+
readonly timeoutMsHint: "One enhanced search, at least 1000.";
|
|
865
|
+
readonly timeoutMsHelp: "The cooperative timeout of one enhanced search; the evidence run has its own deadline.";
|
|
866
|
+
readonly ttlSeconds: "Cache lifetime";
|
|
867
|
+
readonly ttlSecondsHint: "0 = always stale.";
|
|
868
|
+
readonly ttlSecondsHelp: "How long a cached search or page stays fresh; a change applies to new requests at once.";
|
|
869
|
+
readonly memoryCacheEntries: "Memory cache entries";
|
|
870
|
+
readonly memoryCacheEntriesHint: "In-process LRU capacity, at least 1.";
|
|
871
|
+
readonly dbPath: "SQLite path";
|
|
872
|
+
readonly dbPathHint: "Blank = the plugin default path.";
|
|
873
|
+
readonly verbose: "Verbose diagnostics";
|
|
874
|
+
readonly verboseHint: "Write a load marker and more diagnostics.";
|
|
875
|
+
readonly rrfConstant: "RRF constant";
|
|
876
|
+
readonly rrfConstantHint: "Rank smoothing constant k of the fusion.";
|
|
877
|
+
readonly rrfConstantHelp: "Fusion score = sum of 1/(k + rank); a larger k flattens the difference between ranks. Default 60.";
|
|
878
|
+
readonly freshnessBoost: "Freshness bonus";
|
|
879
|
+
readonly freshnessBoostHint: "0-1, a fraction of one rank step.";
|
|
880
|
+
readonly freshnessBoostHelp: "Bonus for recent results as a fraction of the score gap between adjacent ranks of one provider; each URL gets it once. The bonuses together never lift rank 10 over rank 1.";
|
|
881
|
+
readonly freshnessDays: "Freshness decay";
|
|
882
|
+
readonly freshnessDaysHint: "Days until the bonus is zero.";
|
|
883
|
+
readonly authorityBoost: "Authority bonus";
|
|
884
|
+
readonly authorityBoostHint: "0-1, a fraction of one rank step.";
|
|
885
|
+
readonly authorityBoostHelp: "Bonus for authority hosts (github.com, wikipedia.org, .edu / .gov / .org and the extra domains below).";
|
|
886
|
+
readonly authorityDomains: "Extra authority domains";
|
|
887
|
+
readonly authorityDomainsHint: "No scheme or path.";
|
|
888
|
+
readonly rankingNote: "A source's own rerank_score / authority (DeepSeek) adds one more small bonus (0.3 of a rank step); it is not configured here.";
|
|
889
|
+
readonly textViewTitle: "Settings text";
|
|
890
|
+
readonly textViewHint: "The current draft (secrets excluded), every key preceded by a comment: use, values, default, risk.";
|
|
891
|
+
readonly textViewCopy: "Copy";
|
|
892
|
+
readonly textViewCopied: "Copied";
|
|
893
|
+
readonly textViewNote: "A read-only view of the controls: edit the controls above. Comment lines start with # and are ignored when read.";
|
|
894
|
+
readonly groupOrder: "Search order";
|
|
895
|
+
readonly groupOrderSub: "The order of the general search and of each platform's backends";
|
|
896
|
+
readonly groupCli: "Custom CLI";
|
|
897
|
+
readonly groupCliSub: "Add your own read-only command-line tools";
|
|
898
|
+
readonly orderEnginesTitle: "General search order";
|
|
899
|
+
readonly orderListLabel: "Engine order";
|
|
900
|
+
readonly orderAdd: "Add a source…";
|
|
901
|
+
readonly orderAddLabel: "Add a source";
|
|
902
|
+
readonly orderRestore: "Restore default order";
|
|
903
|
+
readonly orderEmpty: "The list is empty: keep at least one source.";
|
|
904
|
+
readonly orderUp: "Move up";
|
|
905
|
+
readonly orderDown: "Move down";
|
|
906
|
+
readonly orderRemove: "Remove";
|
|
907
|
+
readonly orderConfidenceOf: "Confidence of {name}";
|
|
908
|
+
readonly orderConfidenceBadge: "confidence {c}";
|
|
909
|
+
readonly orderConfidenceDefault: "default {c}";
|
|
910
|
+
readonly orderConfidenceLabel: "Confidence";
|
|
911
|
+
readonly orderConfidenceEdit: "Click to change the confidence";
|
|
912
|
+
readonly orderConfidenceHelp: "Only slightly lowers this source's weight when several sources are fused into one ranking; 1 = no adjustment.";
|
|
913
|
+
readonly orderPlatformFilter: "Filter by platform name or id…";
|
|
914
|
+
readonly orderPlatformFilterLabel: "Filter platforms";
|
|
915
|
+
readonly orderPlatformFound: "{n} of {total} platforms match";
|
|
916
|
+
readonly orderPlatformNone: "No platform matches.";
|
|
917
|
+
readonly orderPlatformsMore: "Show the other {n} platforms";
|
|
918
|
+
readonly orderPlatformsMoreHint: "changed, custom-CLI and common ones are listed first";
|
|
919
|
+
readonly stateReady: "Ready";
|
|
920
|
+
readonly stateNoKey: "No key";
|
|
921
|
+
readonly stateNoUrl: "No address";
|
|
922
|
+
readonly stateNotReady: "Not ready";
|
|
923
|
+
readonly stateUnknown: "Unknown source";
|
|
924
|
+
readonly stateSpecOk: "Spec valid";
|
|
925
|
+
readonly stateSpecBad: "Spec has problems";
|
|
926
|
+
readonly stateNoSpec: "No such custom CLI";
|
|
927
|
+
readonly kindCustom: "Custom";
|
|
928
|
+
readonly kindSeam: "Host";
|
|
929
|
+
readonly orderWhy: "Why it differs from the list:";
|
|
930
|
+
readonly orderWhySame: "Same as the list above.";
|
|
931
|
+
readonly orderWhyCommon: "{ids}: a key is set, so the default rule puts it in front of the list.";
|
|
932
|
+
readonly orderWhyDisabled: "sources.disabled leaves out {ids}.";
|
|
933
|
+
readonly orderWhyPriority: "sources.priority moves {ids} to the front.";
|
|
934
|
+
readonly orderWhyAnonymous: "Free sources only (anonymous-only): {ids} is not added.";
|
|
935
|
+
readonly orderWhyOwn: "This is your own order, so {ids} is not added.";
|
|
936
|
+
readonly orderWhyNone: "Every engine is disabled: there is nothing to try.";
|
|
937
|
+
readonly orderRulesTitle: "How the three relate";
|
|
938
|
+
readonly orderRulesNote: "An explicit engines in the call wins; then the list above; then sources.priority / sources.disabled from \"Sources\" adjust it (disabled ones leave, priority ones move up); the default rule (DeepSeek first once its key is set) comes last.";
|
|
939
|
+
readonly orderRulesLink: "Set them in \"Sources\"";
|
|
940
|
+
readonly orderPriorityNow: "Priority: {ids}";
|
|
941
|
+
readonly orderDisabledNow: "Disabled: {ids}";
|
|
942
|
+
readonly orderNone: "none";
|
|
943
|
+
readonly orderPlatformsTitle: "Platform backend order";
|
|
944
|
+
readonly orderPlatformsNote: "Each platform tries its backends in order and falls through to the next when one is unavailable or fails. A platform you did not change shows the built-in default chain.";
|
|
945
|
+
readonly orderDefaultBadge: "Default";
|
|
946
|
+
readonly platformDialogTitle: "Backend order of {name}";
|
|
947
|
+
readonly platformDialogNote: "Edits write this platform's entry of platformBackends; \"Restore default\" removes it and the built-in chain applies again.";
|
|
948
|
+
readonly platformChainBad: "platformBackends is not valid JSON right now: fix it under \"Advanced\" first.";
|
|
949
|
+
readonly platformEmpty: "This chain is empty: the platform has no backend.";
|
|
950
|
+
readonly platformAddNone: "No other backend can serve it";
|
|
951
|
+
readonly backendUnknown: "Unknown backend";
|
|
952
|
+
readonly cliIntroNote: "The read-only guarantee is the one of the built-in adapters: the argument template is a list of tokens, never a shell string; write / login commands and cookie-reading flags are refused; output and time are capped. Results carry the label \"user-defined, not verified by the plugin\" and a confidence.";
|
|
953
|
+
readonly cliAdd: "Add a custom CLI";
|
|
954
|
+
readonly cliAddExample: "Add an echo example";
|
|
955
|
+
readonly cliEmpty: "No custom CLI yet.";
|
|
956
|
+
readonly cliCopy: "Copy";
|
|
957
|
+
readonly cliDelete: "Delete";
|
|
958
|
+
readonly cliPurposeEngine: "General engine";
|
|
959
|
+
readonly cliPurposePlatforms: "platforms {list}";
|
|
960
|
+
readonly cliPurposeNone: "no purpose set";
|
|
961
|
+
readonly cliDeleteNote: "Deleting takes effect on save; lists and chains that name it have to change too.";
|
|
962
|
+
readonly cliDialogNew: "New custom CLI";
|
|
963
|
+
readonly cliDialogEdit: "Edit {id}";
|
|
964
|
+
readonly cliDialogNote: "The form and the JSON below are two views of one spec, validated with the server's own functions. \"Done\" puts it into the draft; it takes effect on save.";
|
|
965
|
+
readonly cliCancel: "Cancel";
|
|
966
|
+
readonly cliApply: "Done";
|
|
967
|
+
readonly cliId: "ID";
|
|
968
|
+
readonly cliIdHint: "Lower case, digits and . _ -; fixed once saved.";
|
|
969
|
+
readonly cliBin: "Command";
|
|
970
|
+
readonly cliBinHint: "A command name on PATH, never a path.";
|
|
971
|
+
readonly cliArgv: "Argument template";
|
|
972
|
+
readonly cliArgvHint: "One argument per box; no shell.";
|
|
973
|
+
readonly cliArgvNote: "Placeholders: {query} the query, {count} the result count, {terms} the query split into one argument per word. {query} (or {terms}) is required. A leading - is a flag; subcommands go first.";
|
|
974
|
+
readonly cliArgvAdd: "Add argument";
|
|
975
|
+
readonly cliArgvRemove: "Remove argument";
|
|
976
|
+
readonly cliArgvToken: "Argument {n}";
|
|
977
|
+
readonly cliAllowed: "Allowed subcommands";
|
|
978
|
+
readonly cliAllowedHint: "Derived from the template.";
|
|
979
|
+
readonly cliAllowedNone: "(no subcommands)";
|
|
980
|
+
readonly cliFormat: "Output format";
|
|
981
|
+
readonly cliFormatHint: "What the tool prints.";
|
|
982
|
+
readonly cliWhole: "Whole output";
|
|
983
|
+
readonly cliWholeHint: "No field mapping: stdout is one result.";
|
|
984
|
+
readonly cliWholeNote: "The title is \"<id>: <query>\", the link a stand-in cli://<id>?q=…; text past the limit is cut and says so. It shows up in plain searches, but it is not a web page: evidence mode never fetches it, it only lists it as a source.";
|
|
985
|
+
readonly cliWholeMax: "Most characters";
|
|
986
|
+
readonly cliWholeMaxHint: "200-8000; empty = 2000.";
|
|
987
|
+
readonly cliItemsPath: "Result array path";
|
|
988
|
+
readonly cliItemsPathHint: "e.g. data.items; empty = the root array.";
|
|
989
|
+
readonly cliLinesMode: "Text line mode";
|
|
990
|
+
readonly cliLinesModeHint: "Two ways a line becomes a result.";
|
|
991
|
+
readonly cliOptUrlLines: "url-lines · lines holding a URL";
|
|
992
|
+
readonly cliOptTsv: "tsv · tab separated columns";
|
|
993
|
+
readonly cliColumns: "Columns";
|
|
994
|
+
readonly cliColumnsHint: "Comma separated, e.g. id, title, link.";
|
|
995
|
+
readonly cliFields: "Field mapping";
|
|
996
|
+
readonly cliFieldsNote: "A dotted path per result field, into one item of the tool's output. The URL is required and must be an http(s) link.";
|
|
997
|
+
readonly cliFieldUrl: "URL";
|
|
998
|
+
readonly cliFieldTitle: "Title";
|
|
999
|
+
readonly cliFieldSnippet: "Snippet";
|
|
1000
|
+
readonly cliFieldPublishedAt: "Time";
|
|
1001
|
+
readonly cliFieldUrlHint: "e.g. link or data.url";
|
|
1002
|
+
readonly cliFieldTitleHint: "e.g. title";
|
|
1003
|
+
readonly cliFieldSnippetHint: "e.g. summary";
|
|
1004
|
+
readonly cliFieldPublishedAtHint: "e.g. published_at";
|
|
1005
|
+
readonly cliFieldComplex: "A more complex mapping: edit it in the JSON view";
|
|
1006
|
+
readonly cliTimeout: "Timeout";
|
|
1007
|
+
readonly cliTimeoutHint: "1000-180000 ms.";
|
|
1008
|
+
readonly cliPurpose: "Purpose";
|
|
1009
|
+
readonly cliEngine: "As a general search engine";
|
|
1010
|
+
readonly cliEngineHint: "Can join the general search order, fused and de-duplicated.";
|
|
1011
|
+
readonly cliPlatforms: "Platforms it serves";
|
|
1012
|
+
readonly cliPlatformsHint: "Can join the backend order of these platforms.";
|
|
1013
|
+
readonly cliPlatformUnknown: "No backend chain for this platform";
|
|
1014
|
+
readonly cliPlatformsAdd: "Platform id, Enter adds";
|
|
1015
|
+
readonly cliConfidenceLabel: "Confidence";
|
|
1016
|
+
readonly cliConfidenceHint: "0-1; empty = 0.5.";
|
|
1017
|
+
readonly cliConfidenceNote: "Confidence makes this source weigh a little less when several sources are fused, and is printed with its results; 1 changes nothing. The \"Search order\" list can override it per source.";
|
|
1018
|
+
readonly cliAdvanced: "Advanced";
|
|
1019
|
+
readonly cliPackageNote: "Install note";
|
|
1020
|
+
readonly cliPackageNoteHint: "Shown when the command is missing.";
|
|
1021
|
+
readonly cliHelpArgs: "Help command";
|
|
1022
|
+
readonly cliHelpArgsHint: "Space separated, e.g. search --help";
|
|
1023
|
+
readonly cliMustContain: "Help must contain";
|
|
1024
|
+
readonly cliMustContainHint: "Proves it is the right program.";
|
|
1025
|
+
readonly cliMaxOutput: "Output cap";
|
|
1026
|
+
readonly cliMaxOutputHint: "1024-16777216 bytes.";
|
|
1027
|
+
readonly unitBytes: "bytes";
|
|
1028
|
+
readonly cliJson: "View JSON";
|
|
1029
|
+
readonly cliJsonNote: "Edit the whole spec; valid edits sync back into the form above.";
|
|
1030
|
+
readonly cliJsonBad: "The JSON cannot be parsed: {why}";
|
|
1031
|
+
readonly cliProblems: "This spec has problems";
|
|
1032
|
+
readonly cliValid: "The spec is valid.";
|
|
1033
|
+
readonly cliApplyBlocked: "A spec with problems cannot go into the draft.";
|
|
1034
|
+
readonly cliTrial: "Try it";
|
|
1035
|
+
readonly cliTrialNote: "A real run: the command is probed (version and help), then one search runs with the sample query. Read-only, no login, nothing is stored.";
|
|
1036
|
+
readonly cliTrialQuery: "Sample query";
|
|
1037
|
+
readonly cliTrialQueryDefault: "hello";
|
|
1038
|
+
readonly cliTrialRun: "Run once";
|
|
1039
|
+
readonly cliTrialRunning: "Running…";
|
|
1040
|
+
readonly cliTrialUnavailable: "This host gives the plugin no channel, so Try it is unavailable here. After saving, check readiness with web_call sources.status and search once with search.run.";
|
|
1041
|
+
readonly cliTrialInvalid: "The spec has problems: fix them before trying it.";
|
|
1042
|
+
readonly cliTrialOk: "It ran: {n} result(s) parsed, the first {m} shown, {ms} ms.";
|
|
1043
|
+
readonly cliTrialFailed: "It did not succeed (stopped at \"{stage}\"):";
|
|
1044
|
+
readonly cliTrialStageDisabled: "disabled by settings";
|
|
1045
|
+
readonly cliTrialStageValidate: "validation";
|
|
1046
|
+
readonly cliTrialStageProbe: "probing the command";
|
|
1047
|
+
readonly cliTrialStageSearch: "search";
|
|
1048
|
+
readonly cliTrialRaw: "What the tool said";
|
|
1049
|
+
readonly cliTrialResults: "Parsed results";
|
|
1050
|
+
readonly cliTrialHint: "Suggestion: {hint}";
|
|
1051
|
+
readonly cliTrialLabel: "User-defined, not verified by the plugin";
|
|
1052
|
+
readonly cliTrialRpcFailed: "The trial did not finish: {why}";
|
|
1053
|
+
readonly chainEdit: "Edit the order →";
|
|
1054
|
+
readonly advancedRawTitle: "Raw JSON";
|
|
1055
|
+
readonly advancedRawHint: "the whole JSON of the platform backend order and the custom CLIs";
|
|
1056
|
+
readonly cliOutput: "Output";
|
|
1057
|
+
readonly restartBadge: "Applies after a plugin restart";
|
|
1058
|
+
readonly restartBadgeSnapshot: "Snapshot folder: after a plugin restart";
|
|
1059
|
+
readonly restartWhyToolSurface: "The tools (web_index + web_call, or one per action) are registered when the plugin starts, so a change needs a plugin restart.";
|
|
1060
|
+
readonly restartWhyPlaywright: "The snapshot folder is fixed when the plugin starts; playwright.enabled takes effect at once.";
|
|
1061
|
+
readonly restartWhyProviderId: "The provider id is given to the host at registration, so a change needs a plugin restart.";
|
|
1062
|
+
readonly restartWhyRegisterProvider: "Whether the ctx.web provider is registered is decided when the plugin starts, so a change needs a plugin restart.";
|
|
1063
|
+
readonly restartWhyTimeoutMs: "Each action's deadline and the host tool ceiling are fixed at start (the time budget inside a search follows the setting at once), so a change needs a plugin restart.";
|
|
1064
|
+
readonly restartWhyMemoryCacheEntries: "The in-process cache is created with this size at start, so a change needs a plugin restart.";
|
|
1065
|
+
readonly restartWhyDbPath: "The database (and the agent overlay file) is opened at start, so a new path needs a plugin restart; data at the old path is not moved.";
|
|
1066
|
+
readonly restartWhyVerbose: "The load marker is written at start, so a change needs a plugin restart.";
|
|
1067
|
+
readonly savebarRestart: "{fields}: takes effect only after the plugin restarts.";
|
|
1068
|
+
readonly summaryPendingRestart: "{n} setting(s) wait for a restart";
|
|
1069
|
+
readonly pendingRestartLine: "Waiting for a restart: running {running}, configured {configured}";
|
|
1070
|
+
readonly pendingEmpty: "(empty)";
|
|
1071
|
+
readonly groupAgent: "Agent changes";
|
|
1072
|
+
readonly groupAgentSub: "What an agent changed with config.*: live, and your configuration is untouched";
|
|
1073
|
+
readonly agentBadge: "Changed by agent";
|
|
1074
|
+
readonly agentTip: "Set to {value} (your configuration holds {baseline}) · {reason} · {at} · {who}";
|
|
1075
|
+
readonly agentNoReason: "(no reason recorded)";
|
|
1076
|
+
readonly agentActorAgent: "agent";
|
|
1077
|
+
readonly agentActorUser: "you (panel)";
|
|
1078
|
+
readonly agentAdopt: "Adopt into configuration";
|
|
1079
|
+
readonly agentRevoke: "Revoke";
|
|
1080
|
+
readonly agentRevokeAll: "Revoke all";
|
|
1081
|
+
readonly agentRefresh: "Refresh";
|
|
1082
|
+
readonly agentRefreshing: "Reading…";
|
|
1083
|
+
readonly agentNow: "In force:";
|
|
1084
|
+
readonly agentConfigHolds: "Your configuration:";
|
|
1085
|
+
readonly agentCount: "{n} change(s)";
|
|
1086
|
+
readonly agentNote: "The search order, source rules, confidence, platform backends and custom CLIs an agent changed with the config.* actions sit in a separate overlay file. They apply at once and never edit your configuration. \"Adopt into configuration\" writes the value into your configuration (one atomic write, like Save) and then drops the overlay entry; \"Revoke\" just drops it. Every change carries a reason and is kept in an audit trail.";
|
|
1087
|
+
readonly agentEmpty: "The agent has changed nothing.";
|
|
1088
|
+
readonly agentLoading: "Reading…";
|
|
1089
|
+
readonly agentNotLoaded: "Not read yet. Press Refresh.";
|
|
1090
|
+
readonly agentUnavailable: "The agent changes cannot be read: the host offers no private channel for this plugin, or the plugin is older. An agent can still call config.inspect.";
|
|
1091
|
+
readonly agentInvalid: "The overlay file is ignored as a whole (the plugin runs on your configuration): {problem} \"Revoke all\" moves the bad file aside and starts fresh.";
|
|
1092
|
+
readonly agentAdoptFailed: "The configuration was not written (the host refused), so the overlay is unchanged.";
|
|
1093
|
+
readonly agentAdoptHalf: "The value is in your configuration, but the overlay entry could not be dropped: {why} Refresh and revoke it by hand.";
|
|
1094
|
+
readonly agentRevokeFailed: "Revoke failed: {why}";
|
|
1095
|
+
readonly agentFile: "Overlay file {file} · revision {revision}";
|
|
1096
|
+
readonly agentAuditTitle: "Recent audit records ({n})";
|
|
1097
|
+
readonly agentAuditHint: "the reason, time and before / after of every change";
|
|
1098
|
+
readonly agentAuditEmpty: "No records yet.";
|
|
1099
|
+
readonly agentKindEngines: "Engine order";
|
|
1100
|
+
readonly agentKindPriority: "Priority sources";
|
|
1101
|
+
readonly agentKindDisabled: "Disabled sources";
|
|
1102
|
+
readonly agentKindConfidence: "Confidence";
|
|
1103
|
+
readonly agentKindPlatform: "Platform backend order";
|
|
1104
|
+
readonly agentKindCli: "Custom CLI";
|
|
1105
|
+
readonly summaryAgent: "{n} agent change(s)";
|
|
1106
|
+
readonly summaryAgentOpen: "view";
|
|
1107
|
+
readonly agentCliTitle: "CLIs added by an agent";
|
|
1108
|
+
readonly agentCliNote: "These CLIs live only in the overlay file, so they are not in the list above.";
|
|
1109
|
+
readonly orderAgentChain: "With the agent's changes a search tries:";
|
|
1110
|
+
readonly orderAgentChainNone: "With the agent's changes no engine is left (all are disabled).";
|
|
1111
|
+
readonly agentNeedsCli: "Uses a custom CLI that only the overlay holds: {ids}. Adopt that CLI too, or your configuration will name a CLI it does not define.";
|
|
228
1112
|
};
|
|
229
|
-
export declare const en: Record<keyof typeof zh, string>;
|