dsh-web-search-enhanced 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/lib/client.cjs +98 -61
- package/lib/client.cjs.map +1 -1
- package/lib/index.js +185 -52
- package/package.json +60 -60
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# dsh-web-search-enhanced
|
|
2
2
|
|
|
3
|
+
Requires DSH `>=0.2.2-rc.1 <0.3.0-0` and Node `>=24.9.0`. Development and isolated end-to-end tests target the exact published DSH `0.2.2-rc.1` release.
|
|
4
|
+
|
|
3
5
|
Search half of [dsh-tool-web-enhanced-profile](../profile/README.md).
|
|
4
6
|
**Install the profile, not this package**: the profile mounts this package as
|
|
5
7
|
row `web-search-enhanced` and selects its provider in the shared `web` row.
|
|
@@ -19,17 +21,24 @@ Choose a search connection per conversation from the composer menu or
|
|
|
19
21
|
the next model request step. Operators decide which connections exist: DSH's
|
|
20
22
|
own DeepSeek search (the default) and DeepSeek Search API, the conversation's
|
|
21
23
|
own model (`builtin:session-model`), Exa, Firecrawl, Tavily, Tinyfish,
|
|
22
|
-
OpenAlex and Semantic Scholar, plus custom adapter connections and fixed-model
|
|
24
|
+
AnySearch, OpenAlex and Semantic Scholar, plus custom adapter connections and fixed-model
|
|
23
25
|
connections over Anthropic Messages, OpenAI Responses or OpenAI Chat
|
|
24
26
|
Completions. Native connections keep the behaviour of DSH's own providers;
|
|
25
27
|
only their error messages are restated.
|
|
26
28
|
|
|
27
29
|
- **Remote services start off.** DeepSeek Search API, Exa, Firecrawl, Tavily,
|
|
28
|
-
Tinyfish, OpenAlex and Semantic Scholar must be turned on in the row
|
|
30
|
+
Tinyfish, AnySearch, OpenAlex and Semantic Scholar must be turned on in the row
|
|
29
31
|
settings before a conversation can choose them; turning one on agrees that
|
|
30
32
|
queries go to it. DeepSeek Messages (the default) and the conversation model
|
|
31
33
|
stay on; custom connections are on when created. When every remote service
|
|
32
34
|
is off, the composer menu says more services can be turned on in settings.
|
|
35
|
+
- **AnySearch takes a personal API key only** (`ANYSEARCH_API_KEY`, the same
|
|
36
|
+
credential name as AnySearch's own plugin): the service has an anonymous
|
|
37
|
+
tier, but this plugin does not use it. Its connection options are a region
|
|
38
|
+
(`zone`: `cn` or `intl`) and a preferred language (`language`, such as
|
|
39
|
+
`zh-CN` or `en`). Do not install it together with `@anysearch/anysearch-dsh`:
|
|
40
|
+
that bundle's profile layer writes both fields of the `web` row as
|
|
41
|
+
`anysearch`, so routing leaves this plugin.
|
|
33
42
|
- **`/setup-search`.** A Host command, so it works in the Web GUI and in
|
|
34
43
|
dsh-TUI. `off`, a connection id or `freshness auto|fresh|realtime` change
|
|
35
44
|
the choice from the next model request; dsh-TUI completes these arguments.
|
package/lib/client.cjs
CHANGED
|
@@ -419,7 +419,7 @@ window.__ModuleLoader__.load({
|
|
|
419
419
|
}
|
|
420
420
|
}
|
|
421
421
|
//#endregion
|
|
422
|
-
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-typert-protocol@0.2.
|
|
422
|
+
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-typert-protocol@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-typert-protocol/lib/types/remote-info.js
|
|
423
423
|
/** Lazy assembly of generated Remote definitions using caller-supplied Zod; no runtime imports. */
|
|
424
424
|
/**
|
|
425
425
|
* Retain one generated definition per endpoint without constructing parsers or projections.
|
|
@@ -1051,6 +1051,30 @@ window.__ModuleLoader__.load({
|
|
|
1051
1051
|
}
|
|
1052
1052
|
}
|
|
1053
1053
|
},
|
|
1054
|
+
anysearch: {
|
|
1055
|
+
label: "AnySearch",
|
|
1056
|
+
endpoint: "https://api.anysearch.com/v1/search",
|
|
1057
|
+
access: {
|
|
1058
|
+
keyless: false,
|
|
1059
|
+
apiKey: { credentialRef: "ANYSEARCH_API_KEY" },
|
|
1060
|
+
account: false
|
|
1061
|
+
},
|
|
1062
|
+
kind: "adapter",
|
|
1063
|
+
remote: true,
|
|
1064
|
+
optIn: true,
|
|
1065
|
+
freshness: [],
|
|
1066
|
+
homepage: "https://www.anysearch.com",
|
|
1067
|
+
options: {
|
|
1068
|
+
zone: {
|
|
1069
|
+
kind: "enum",
|
|
1070
|
+
values: ["cn", "intl"]
|
|
1071
|
+
},
|
|
1072
|
+
language: {
|
|
1073
|
+
kind: "text",
|
|
1074
|
+
pattern: /^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8}){0,2}$/u
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
},
|
|
1054
1078
|
openalex: {
|
|
1055
1079
|
label: "OpenAlex",
|
|
1056
1080
|
endpoint: "https://api.openalex.org/works",
|
|
@@ -4442,7 +4466,7 @@ window.__ModuleLoader__.load({
|
|
|
4442
4466
|
"route.deepseekApi": "Search uses the built-in API provider, not {id}. Open the bundle page to review and restore both enhanced provider routes.",
|
|
4443
4467
|
"defaults.title": "Defaults",
|
|
4444
4468
|
"defaults.connection": "Default connection",
|
|
4445
|
-
"defaults.connectionHint": "A conversation that hasn't chosen uses
|
|
4469
|
+
"defaults.connectionHint": "A conversation that hasn't chosen uses its model's last choice, then the default. Only subagent_fork inherits a parent's choice; ordinary forks and spawn are independent.",
|
|
4446
4470
|
"defaults.connectionUnset": "Default ({name})",
|
|
4447
4471
|
"defaults.connectionMissing": "Missing: {id}",
|
|
4448
4472
|
"defaults.freshness": "Default freshness",
|
|
@@ -4542,6 +4566,9 @@ window.__ModuleLoader__.load({
|
|
|
4542
4566
|
"option.tinyfish.purpose": "Purpose",
|
|
4543
4567
|
"option.tinyfish.purpose.placeholder": "What the searches are for",
|
|
4544
4568
|
"option.tinyfish.domain_type": "Content type",
|
|
4569
|
+
"option.anysearch.zone": "Region",
|
|
4570
|
+
"option.anysearch.language": "Preferred language",
|
|
4571
|
+
"option.anysearch.language.placeholder": "e.g. zh-CN or en",
|
|
4545
4572
|
"option.openalex.sort": "Sort",
|
|
4546
4573
|
"option.openalex.sort.placeholder": "e.g. cited_by_count:desc",
|
|
4547
4574
|
"option.openalex.filter": "Filter",
|
|
@@ -4703,7 +4730,7 @@ window.__ModuleLoader__.load({
|
|
|
4703
4730
|
"route.deepseekApi": "搜索正在使用内置 API provider,而非 {id}。请在 组合包页面检查并恢复两项增强 provider 路由。",
|
|
4704
4731
|
"defaults.title": "默认值",
|
|
4705
4732
|
"defaults.connection": "默认连接",
|
|
4706
|
-
"defaults.connectionHint": "
|
|
4733
|
+
"defaults.connectionHint": "未自行选择的会话依次使用该模型上次的选择、默认连接。仅 subagent_fork 继承父会话选择;普通分叉与 spawn 独立选择。",
|
|
4707
4734
|
"defaults.connectionUnset": "默认({name})",
|
|
4708
4735
|
"defaults.connectionMissing": "不存在:{id}",
|
|
4709
4736
|
"defaults.freshness": "默认实时性",
|
|
@@ -4803,6 +4830,9 @@ window.__ModuleLoader__.load({
|
|
|
4803
4830
|
"option.tinyfish.purpose": "用途说明",
|
|
4804
4831
|
"option.tinyfish.purpose.placeholder": "简述搜索目的",
|
|
4805
4832
|
"option.tinyfish.domain_type": "内容类型",
|
|
4833
|
+
"option.anysearch.zone": "地区",
|
|
4834
|
+
"option.anysearch.language": "偏好语言",
|
|
4835
|
+
"option.anysearch.language.placeholder": "如 zh-CN 或 en",
|
|
4806
4836
|
"option.openalex.sort": "排序",
|
|
4807
4837
|
"option.openalex.sort.placeholder": "如 cited_by_count:desc",
|
|
4808
4838
|
"option.openalex.filter": "过滤条件",
|
|
@@ -4925,11 +4955,11 @@ window.__ModuleLoader__.load({
|
|
|
4925
4955
|
document.head.appendChild(style);
|
|
4926
4956
|
}
|
|
4927
4957
|
var Section_module_css_default = {
|
|
4928
|
-
"container": "La6KHG_container",
|
|
4929
|
-
"label": "La6KHG_label",
|
|
4930
4958
|
"caption": "La6KHG_caption",
|
|
4959
|
+
"segmented": "La6KHG_segmented",
|
|
4960
|
+
"label": "La6KHG_label",
|
|
4931
4961
|
"error": "La6KHG_error",
|
|
4932
|
-
"
|
|
4962
|
+
"container": "La6KHG_container"
|
|
4933
4963
|
};
|
|
4934
4964
|
//#endregion
|
|
4935
4965
|
//#region src/client/section.ts
|
|
@@ -4996,73 +5026,73 @@ window.__ModuleLoader__.load({
|
|
|
4996
5026
|
document.head.appendChild(style);
|
|
4997
5027
|
}
|
|
4998
5028
|
var Settings_module_css_default = {
|
|
4999
|
-
"intro": "o9fCSq_intro",
|
|
5000
|
-
"disclosureOpen": "o9fCSq_disclosureOpen",
|
|
5001
|
-
"optionGroup": "o9fCSq_optionGroup",
|
|
5002
|
-
"trustCheck": "o9fCSq_trustCheck",
|
|
5003
|
-
"trust": "o9fCSq_trust",
|
|
5004
|
-
"field": "o9fCSq_field",
|
|
5005
|
-
"optionKey": "o9fCSq_optionKey",
|
|
5006
|
-
"success": "o9fCSq_success",
|
|
5007
|
-
"sectionHead": "o9fCSq_sectionHead",
|
|
5008
|
-
"confirmText": "o9fCSq_confirmText",
|
|
5009
|
-
"confirmRow": "o9fCSq_confirmRow",
|
|
5010
|
-
"inline": "o9fCSq_inline",
|
|
5011
|
-
"prefixedInput": "o9fCSq_prefixedInput",
|
|
5012
|
-
"rowTitle": "o9fCSq_rowTitle",
|
|
5013
|
-
"rowMain": "o9fCSq_rowMain",
|
|
5014
|
-
"rowActions": "o9fCSq_rowActions",
|
|
5015
|
-
"page": "o9fCSq_page",
|
|
5016
|
-
"selectValue": "o9fCSq_selectValue",
|
|
5017
|
-
"prefixedDisabled": "o9fCSq_prefixedDisabled",
|
|
5018
|
-
"rowMeta": "o9fCSq_rowMeta",
|
|
5019
|
-
"reset": "o9fCSq_reset",
|
|
5020
|
-
"actions": "o9fCSq_actions",
|
|
5021
|
-
"settingControl": "o9fCSq_settingControl",
|
|
5022
|
-
"fieldLabel": "o9fCSq_fieldLabel",
|
|
5023
5029
|
"section": "o9fCSq_section",
|
|
5030
|
+
"optionWide": "o9fCSq_optionWide",
|
|
5031
|
+
"error": "o9fCSq_error",
|
|
5032
|
+
"settingRow": "o9fCSq_settingRow",
|
|
5033
|
+
"page": "o9fCSq_page",
|
|
5034
|
+
"select": "o9fCSq_select",
|
|
5035
|
+
"rowTitle": "o9fCSq_rowTitle",
|
|
5024
5036
|
"formGrid": "o9fCSq_formGrid",
|
|
5025
|
-
"
|
|
5026
|
-
"selectCompact": "o9fCSq_selectCompact",
|
|
5027
|
-
"textarea": "o9fCSq_textarea",
|
|
5028
|
-
"prefix": "o9fCSq_prefix",
|
|
5037
|
+
"optionKey": "o9fCSq_optionKey",
|
|
5029
5038
|
"fieldError": "o9fCSq_fieldError",
|
|
5030
|
-
"
|
|
5039
|
+
"intro": "o9fCSq_intro",
|
|
5040
|
+
"danger": "o9fCSq_danger",
|
|
5041
|
+
"inline": "o9fCSq_inline",
|
|
5042
|
+
"optionGroup": "o9fCSq_optionGroup",
|
|
5043
|
+
"rowActions": "o9fCSq_rowActions",
|
|
5031
5044
|
"optionName": "o9fCSq_optionName",
|
|
5032
|
-
"
|
|
5033
|
-
"
|
|
5034
|
-
"
|
|
5035
|
-
"
|
|
5036
|
-
"
|
|
5045
|
+
"hint": "o9fCSq_hint",
|
|
5046
|
+
"prefixedInput": "o9fCSq_prefixedInput",
|
|
5047
|
+
"formWide": "o9fCSq_formWide",
|
|
5048
|
+
"field": "o9fCSq_field",
|
|
5049
|
+
"settingLead": "o9fCSq_settingLead",
|
|
5037
5050
|
"optionGrid": "o9fCSq_optionGrid",
|
|
5038
|
-
"input": "o9fCSq_input",
|
|
5039
|
-
"list": "o9fCSq_list",
|
|
5040
|
-
"optionGroupTitle": "o9fCSq_optionGroupTitle",
|
|
5041
|
-
"fieldState": "o9fCSq_fieldState",
|
|
5042
|
-
"settingText": "o9fCSq_settingText",
|
|
5043
5051
|
"note": "o9fCSq_note",
|
|
5044
|
-
"
|
|
5045
|
-
"
|
|
5046
|
-
"
|
|
5047
|
-
"formField": "o9fCSq_formField",
|
|
5048
|
-
"link": "o9fCSq_link",
|
|
5049
|
-
"danger": "o9fCSq_danger",
|
|
5050
|
-
"select": "o9fCSq_select",
|
|
5051
|
-
"status": "o9fCSq_status",
|
|
5052
|
-
"editor": "o9fCSq_editor",
|
|
5052
|
+
"success": "o9fCSq_success",
|
|
5053
|
+
"disclosureOpen": "o9fCSq_disclosureOpen",
|
|
5054
|
+
"trust": "o9fCSq_trust",
|
|
5053
5055
|
"panel": "o9fCSq_panel",
|
|
5056
|
+
"selectCompact": "o9fCSq_selectCompact",
|
|
5057
|
+
"editor": "o9fCSq_editor",
|
|
5058
|
+
"empty": "o9fCSq_empty",
|
|
5059
|
+
"status": "o9fCSq_status",
|
|
5060
|
+
"prefixedDisabled": "o9fCSq_prefixedDisabled",
|
|
5061
|
+
"fieldState": "o9fCSq_fieldState",
|
|
5062
|
+
"rowMeta": "o9fCSq_rowMeta",
|
|
5063
|
+
"prefixed": "o9fCSq_prefixed",
|
|
5064
|
+
"settingControl": "o9fCSq_settingControl",
|
|
5054
5065
|
"selectAnchor": "o9fCSq_selectAnchor",
|
|
5055
|
-
"segmented": "o9fCSq_segmented",
|
|
5056
5066
|
"disclosure": "o9fCSq_disclosure",
|
|
5057
|
-
"hint": "o9fCSq_hint",
|
|
5058
5067
|
"option": "o9fCSq_option",
|
|
5068
|
+
"editorTitle": "o9fCSq_editorTitle",
|
|
5069
|
+
"link": "o9fCSq_link",
|
|
5070
|
+
"prefix": "o9fCSq_prefix",
|
|
5071
|
+
"segmented": "o9fCSq_segmented",
|
|
5072
|
+
"formField": "o9fCSq_formField",
|
|
5059
5073
|
"selectChevron": "o9fCSq_selectChevron",
|
|
5060
|
-
"
|
|
5061
|
-
"empty": "o9fCSq_empty",
|
|
5062
|
-
"settingLead": "o9fCSq_settingLead",
|
|
5063
|
-
"prefixed": "o9fCSq_prefixed",
|
|
5074
|
+
"optionGroupTitle": "o9fCSq_optionGroupTitle",
|
|
5064
5075
|
"disclosureIcon": "o9fCSq_disclosureIcon",
|
|
5065
|
-
"
|
|
5076
|
+
"rowMain": "o9fCSq_rowMain",
|
|
5077
|
+
"sectionHead": "o9fCSq_sectionHead",
|
|
5078
|
+
"settingTitle": "o9fCSq_settingTitle",
|
|
5079
|
+
"trustCheck": "o9fCSq_trustCheck",
|
|
5080
|
+
"warning": "o9fCSq_warning",
|
|
5081
|
+
"textarea": "o9fCSq_textarea",
|
|
5082
|
+
"reset": "o9fCSq_reset",
|
|
5083
|
+
"sectionActions": "o9fCSq_sectionActions",
|
|
5084
|
+
"confirmText": "o9fCSq_confirmText",
|
|
5085
|
+
"sectionTitle": "o9fCSq_sectionTitle",
|
|
5086
|
+
"rowLine": "o9fCSq_rowLine",
|
|
5087
|
+
"selectValue": "o9fCSq_selectValue",
|
|
5088
|
+
"settingText": "o9fCSq_settingText",
|
|
5089
|
+
"fieldLabel": "o9fCSq_fieldLabel",
|
|
5090
|
+
"actions": "o9fCSq_actions",
|
|
5091
|
+
"row": "o9fCSq_row",
|
|
5092
|
+
"list": "o9fCSq_list",
|
|
5093
|
+
"fieldHead": "o9fCSq_fieldHead",
|
|
5094
|
+
"input": "o9fCSq_input",
|
|
5095
|
+
"confirmRow": "o9fCSq_confirmRow"
|
|
5066
5096
|
};
|
|
5067
5097
|
//#endregion
|
|
5068
5098
|
//#region src/client/settings/CredentialEditor.tsx
|
|
@@ -5244,6 +5274,13 @@ window.__ModuleLoader__.load({
|
|
|
5244
5274
|
},
|
|
5245
5275
|
domain_type: { label: "option.tinyfish.domain_type" }
|
|
5246
5276
|
},
|
|
5277
|
+
anysearch: {
|
|
5278
|
+
zone: { label: "option.anysearch.zone" },
|
|
5279
|
+
language: {
|
|
5280
|
+
label: "option.anysearch.language",
|
|
5281
|
+
placeholder: "option.anysearch.language.placeholder"
|
|
5282
|
+
}
|
|
5283
|
+
},
|
|
5247
5284
|
openalex: {
|
|
5248
5285
|
sort: {
|
|
5249
5286
|
label: "option.openalex.sort",
|