dsh-web-search-enhanced 0.2.2 → 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/README.md CHANGED
@@ -19,17 +19,24 @@ Choose a search connection per conversation from the composer menu or
19
19
  the next model request step. Operators decide which connections exist: DSH's
20
20
  own DeepSeek search (the default) and DeepSeek Search API, the conversation's
21
21
  own model (`builtin:session-model`), Exa, Firecrawl, Tavily, Tinyfish,
22
- OpenAlex and Semantic Scholar, plus custom adapter connections and fixed-model
22
+ AnySearch, OpenAlex and Semantic Scholar, plus custom adapter connections and fixed-model
23
23
  connections over Anthropic Messages, OpenAI Responses or OpenAI Chat
24
24
  Completions. Native connections keep the behaviour of DSH's own providers;
25
25
  only their error messages are restated.
26
26
 
27
27
  - **Remote services start off.** DeepSeek Search API, Exa, Firecrawl, Tavily,
28
- Tinyfish, OpenAlex and Semantic Scholar must be turned on in the row
28
+ Tinyfish, AnySearch, OpenAlex and Semantic Scholar must be turned on in the row
29
29
  settings before a conversation can choose them; turning one on agrees that
30
30
  queries go to it. DeepSeek Messages (the default) and the conversation model
31
31
  stay on; custom connections are on when created. When every remote service
32
32
  is off, the composer menu says more services can be turned on in settings.
33
+ - **AnySearch takes a personal API key only** (`ANYSEARCH_API_KEY`, the same
34
+ credential name as AnySearch's own plugin): the service has an anonymous
35
+ tier, but this plugin does not use it. Its connection options are a region
36
+ (`zone`: `cn` or `intl`) and a preferred language (`language`, such as
37
+ `zh-CN` or `en`). Do not install it together with `@anysearch/anysearch-dsh`:
38
+ that bundle's profile layer writes both fields of the `web` row as
39
+ `anysearch`, so routing leaves this plugin.
33
40
  - **`/setup-search`.** A Host command, so it works in the Web GUI and in
34
41
  dsh-TUI. `off`, a connection id or `freshness auto|fresh|realtime` change
35
42
  the choice from the next model request; dsh-TUI completes these arguments.
package/lib/client.cjs CHANGED
@@ -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",
@@ -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",
@@ -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",
4958
+ "segmented": "La6KHG_segmented",
4929
4959
  "label": "La6KHG_label",
4930
- "caption": "La6KHG_caption",
4960
+ "container": "La6KHG_container",
4931
4961
  "error": "La6KHG_error",
4932
- "segmented": "La6KHG_segmented"
4962
+ "caption": "La6KHG_caption"
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",
5029
+ "formField": "o9fCSq_formField",
5030
+ "status": "o9fCSq_status",
5031
+ "page": "o9fCSq_page",
5032
+ "textarea": "o9fCSq_textarea",
5033
+ "settingLead": "o9fCSq_settingLead",
5034
+ "selectAnchor": "o9fCSq_selectAnchor",
5006
5035
  "success": "o9fCSq_success",
5007
5036
  "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
5037
  "rowMeta": "o9fCSq_rowMeta",
5019
- "reset": "o9fCSq_reset",
5020
- "actions": "o9fCSq_actions",
5021
- "settingControl": "o9fCSq_settingControl",
5022
- "fieldLabel": "o9fCSq_fieldLabel",
5023
- "section": "o9fCSq_section",
5038
+ "note": "o9fCSq_note",
5039
+ "selectValue": "o9fCSq_selectValue",
5024
5040
  "formGrid": "o9fCSq_formGrid",
5025
- "formWide": "o9fCSq_formWide",
5026
- "selectCompact": "o9fCSq_selectCompact",
5027
- "textarea": "o9fCSq_textarea",
5028
- "prefix": "o9fCSq_prefix",
5029
- "fieldError": "o9fCSq_fieldError",
5041
+ "prefixedDisabled": "o9fCSq_prefixedDisabled",
5030
5042
  "sectionActions": "o9fCSq_sectionActions",
5043
+ "panel": "o9fCSq_panel",
5044
+ "prefixed": "o9fCSq_prefixed",
5045
+ "rowLine": "o9fCSq_rowLine",
5046
+ "disclosureIcon": "o9fCSq_disclosureIcon",
5047
+ "rowActions": "o9fCSq_rowActions",
5048
+ "rowMain": "o9fCSq_rowMain",
5049
+ "option": "o9fCSq_option",
5050
+ "intro": "o9fCSq_intro",
5031
5051
  "optionName": "o9fCSq_optionName",
5032
- "row": "o9fCSq_row",
5052
+ "settingRow": "o9fCSq_settingRow",
5053
+ "settingText": "o9fCSq_settingText",
5054
+ "optionKey": "o9fCSq_optionKey",
5055
+ "link": "o9fCSq_link",
5056
+ "list": "o9fCSq_list",
5057
+ "field": "o9fCSq_field",
5058
+ "selectCompact": "o9fCSq_selectCompact",
5059
+ "danger": "o9fCSq_danger",
5060
+ "fieldLabel": "o9fCSq_fieldLabel",
5061
+ "empty": "o9fCSq_empty",
5062
+ "prefix": "o9fCSq_prefix",
5033
5063
  "editorTitle": "o9fCSq_editorTitle",
5034
- "optionWide": "o9fCSq_optionWide",
5035
- "sectionTitle": "o9fCSq_sectionTitle",
5064
+ "disclosureOpen": "o9fCSq_disclosureOpen",
5065
+ "formWide": "o9fCSq_formWide",
5066
+ "confirmText": "o9fCSq_confirmText",
5067
+ "section": "o9fCSq_section",
5036
5068
  "fieldHead": "o9fCSq_fieldHead",
5037
- "optionGrid": "o9fCSq_optionGrid",
5038
- "input": "o9fCSq_input",
5039
- "list": "o9fCSq_list",
5069
+ "trustCheck": "o9fCSq_trustCheck",
5070
+ "hint": "o9fCSq_hint",
5071
+ "disclosure": "o9fCSq_disclosure",
5040
5072
  "optionGroupTitle": "o9fCSq_optionGroupTitle",
5041
- "fieldState": "o9fCSq_fieldState",
5042
- "settingText": "o9fCSq_settingText",
5043
- "note": "o9fCSq_note",
5044
- "settingRow": "o9fCSq_settingRow",
5073
+ "fieldError": "o9fCSq_fieldError",
5074
+ "sectionTitle": "o9fCSq_sectionTitle",
5075
+ "row": "o9fCSq_row",
5076
+ "editor": "o9fCSq_editor",
5077
+ "rowTitle": "o9fCSq_rowTitle",
5078
+ "actions": "o9fCSq_actions",
5079
+ "warning": "o9fCSq_warning",
5045
5080
  "error": "o9fCSq_error",
5046
- "rowLine": "o9fCSq_rowLine",
5047
- "formField": "o9fCSq_formField",
5048
- "link": "o9fCSq_link",
5049
- "danger": "o9fCSq_danger",
5081
+ "reset": "o9fCSq_reset",
5082
+ "trust": "o9fCSq_trust",
5083
+ "optionWide": "o9fCSq_optionWide",
5084
+ "optionGrid": "o9fCSq_optionGrid",
5050
5085
  "select": "o9fCSq_select",
5051
- "status": "o9fCSq_status",
5052
- "editor": "o9fCSq_editor",
5053
- "panel": "o9fCSq_panel",
5054
- "selectAnchor": "o9fCSq_selectAnchor",
5086
+ "inline": "o9fCSq_inline",
5055
5087
  "segmented": "o9fCSq_segmented",
5056
- "disclosure": "o9fCSq_disclosure",
5057
- "hint": "o9fCSq_hint",
5058
- "option": "o9fCSq_option",
5059
- "selectChevron": "o9fCSq_selectChevron",
5088
+ "confirmRow": "o9fCSq_confirmRow",
5060
5089
  "settingTitle": "o9fCSq_settingTitle",
5061
- "empty": "o9fCSq_empty",
5062
- "settingLead": "o9fCSq_settingLead",
5063
- "prefixed": "o9fCSq_prefixed",
5064
- "disclosureIcon": "o9fCSq_disclosureIcon",
5065
- "warning": "o9fCSq_warning"
5090
+ "fieldState": "o9fCSq_fieldState",
5091
+ "input": "o9fCSq_input",
5092
+ "selectChevron": "o9fCSq_selectChevron",
5093
+ "prefixedInput": "o9fCSq_prefixedInput",
5094
+ "optionGroup": "o9fCSq_optionGroup",
5095
+ "settingControl": "o9fCSq_settingControl"
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",