dsh-search-enhance 0.1.0
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 +218 -0
- package/client/client.js +1479 -0
- package/client/types/client/SearchEnhancePluginCard.d.ts +7 -0
- package/client/types/client/api.d.ts +12 -0
- package/client/types/client/index.d.ts +14 -0
- package/client/types/client/locales.d.ts +76 -0
- package/client/types/web-config/contracts.d.ts +129 -0
- package/cordis.patch.yml +3 -0
- package/lib/config.d.ts +315 -0
- package/lib/config.js +319 -0
- package/lib/contracts/index.d.ts +2 -0
- package/lib/contracts/index.js +2 -0
- package/lib/contracts/sources.d.ts +53 -0
- package/lib/contracts/sources.js +22 -0
- package/lib/diagnostics/index.d.ts +5 -0
- package/lib/diagnostics/index.js +5 -0
- package/lib/diagnostics/orchestrator.d.ts +28 -0
- package/lib/diagnostics/orchestrator.js +345 -0
- package/lib/diagnostics/probes.d.ts +36 -0
- package/lib/diagnostics/probes.js +75 -0
- package/lib/diagnostics/status.d.ts +17 -0
- package/lib/diagnostics/status.js +128 -0
- package/lib/diagnostics/types.d.ts +100 -0
- package/lib/diagnostics/types.js +43 -0
- package/lib/documentation/cache-domain.d.ts +68 -0
- package/lib/documentation/cache-domain.js +84 -0
- package/lib/documentation/cache.d.ts +109 -0
- package/lib/documentation/cache.js +386 -0
- package/lib/documentation/context7-cache.d.ts +74 -0
- package/lib/documentation/context7-cache.js +293 -0
- package/lib/documentation/index.d.ts +5 -0
- package/lib/documentation/index.js +5 -0
- package/lib/documentation/service.d.ts +179 -0
- package/lib/documentation/service.js +899 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +154 -0
- package/lib/orchestration/index.d.ts +4 -0
- package/lib/orchestration/index.js +4 -0
- package/lib/orchestration/orchestrator.d.ts +28 -0
- package/lib/orchestration/orchestrator.js +645 -0
- package/lib/orchestration/policy.d.ts +11 -0
- package/lib/orchestration/policy.js +29 -0
- package/lib/orchestration/types.d.ts +75 -0
- package/lib/orchestration/types.js +12 -0
- package/lib/presentation/diagnostics-card.d.ts +7 -0
- package/lib/presentation/diagnostics-card.js +91 -0
- package/lib/presentation/index.d.ts +4 -0
- package/lib/presentation/index.js +4 -0
- package/lib/presentation/render.d.ts +33 -0
- package/lib/presentation/render.js +545 -0
- package/lib/presentation/research-plan-card.d.ts +9 -0
- package/lib/presentation/research-plan-card.js +90 -0
- package/lib/presentation/web-card.d.ts +43 -0
- package/lib/presentation/web-card.js +432 -0
- package/lib/prompt/tool-discovery.d.ts +5 -0
- package/lib/prompt/tool-discovery.js +49 -0
- package/lib/provider-runtime/abort.d.ts +17 -0
- package/lib/provider-runtime/abort.js +91 -0
- package/lib/provider-runtime/attempts.d.ts +31 -0
- package/lib/provider-runtime/attempts.js +58 -0
- package/lib/provider-runtime/errors.d.ts +45 -0
- package/lib/provider-runtime/errors.js +117 -0
- package/lib/provider-runtime/index.d.ts +6 -0
- package/lib/provider-runtime/index.js +6 -0
- package/lib/provider-runtime/limits.d.ts +47 -0
- package/lib/provider-runtime/limits.js +106 -0
- package/lib/provider-runtime/retry.d.ts +51 -0
- package/lib/provider-runtime/retry.js +134 -0
- package/lib/providers/bounded-result.d.ts +21 -0
- package/lib/providers/bounded-result.js +62 -0
- package/lib/providers/context7.d.ts +56 -0
- package/lib/providers/context7.js +405 -0
- package/lib/providers/direct-content.d.ts +47 -0
- package/lib/providers/direct-content.js +434 -0
- package/lib/providers/direct-fetch.d.ts +29 -0
- package/lib/providers/direct-fetch.js +174 -0
- package/lib/providers/direct-http.d.ts +47 -0
- package/lib/providers/direct-http.js +526 -0
- package/lib/providers/exa.d.ts +20 -0
- package/lib/providers/exa.js +121 -0
- package/lib/providers/firecrawl-scrape.d.ts +29 -0
- package/lib/providers/firecrawl-scrape.js +107 -0
- package/lib/providers/firecrawl.d.ts +20 -0
- package/lib/providers/firecrawl.js +98 -0
- package/lib/providers/helpers.d.ts +20 -0
- package/lib/providers/helpers.js +129 -0
- package/lib/providers/http.d.ts +39 -0
- package/lib/providers/http.js +165 -0
- package/lib/providers/index.d.ts +17 -0
- package/lib/providers/index.js +16 -0
- package/lib/providers/search-api-request.d.ts +32 -0
- package/lib/providers/search-api-request.js +123 -0
- package/lib/providers/search-api.d.ts +104 -0
- package/lib/providers/search-api.js +533 -0
- package/lib/providers/smart-direct-child.d.ts +12 -0
- package/lib/providers/smart-direct-child.js +404 -0
- package/lib/providers/smart-direct-profiles.d.ts +11 -0
- package/lib/providers/smart-direct-profiles.js +141 -0
- package/lib/providers/smart-direct-transport.d.ts +94 -0
- package/lib/providers/smart-direct-transport.js +338 -0
- package/lib/providers/smart-direct.d.ts +57 -0
- package/lib/providers/smart-direct.js +540 -0
- package/lib/providers/tavily-extract.d.ts +27 -0
- package/lib/providers/tavily-extract.js +86 -0
- package/lib/providers/tavily-map.d.ts +21 -0
- package/lib/providers/tavily-map.js +163 -0
- package/lib/providers/tavily.d.ts +20 -0
- package/lib/providers/tavily.js +96 -0
- package/lib/providers/types.d.ts +61 -0
- package/lib/providers/types.js +7 -0
- package/lib/providers/web-extract-common.d.ts +15 -0
- package/lib/providers/web-extract-common.js +69 -0
- package/lib/research-plan/index.d.ts +27 -0
- package/lib/research-plan/index.js +687 -0
- package/lib/search/index.d.ts +5 -0
- package/lib/search/index.js +5 -0
- package/lib/search/parse.d.ts +42 -0
- package/lib/search/parse.js +573 -0
- package/lib/search/profiles.d.ts +45 -0
- package/lib/search/profiles.js +213 -0
- package/lib/search/quality/index.d.ts +4 -0
- package/lib/search/quality/index.js +4 -0
- package/lib/search/quality/limits.d.ts +31 -0
- package/lib/search/quality/limits.js +37 -0
- package/lib/search/quality/pipeline.d.ts +12 -0
- package/lib/search/quality/pipeline.js +320 -0
- package/lib/search/quality/url.d.ts +18 -0
- package/lib/search/quality/url.js +106 -0
- package/lib/search/time-context.d.ts +23 -0
- package/lib/search/time-context.js +118 -0
- package/lib/site-map/index.d.ts +3 -0
- package/lib/site-map/index.js +3 -0
- package/lib/site-map/types.d.ts +35 -0
- package/lib/site-map/types.js +7 -0
- package/lib/site-map/url.d.ts +7 -0
- package/lib/site-map/url.js +51 -0
- package/lib/source-storage/authorization.d.ts +5 -0
- package/lib/source-storage/authorization.js +43 -0
- package/lib/source-storage/domain.d.ts +20 -0
- package/lib/source-storage/domain.js +70 -0
- package/lib/source-storage/index.d.ts +8 -0
- package/lib/source-storage/index.js +8 -0
- package/lib/source-storage/pagination.d.ts +58 -0
- package/lib/source-storage/pagination.js +113 -0
- package/lib/source-storage/refs.d.ts +7 -0
- package/lib/source-storage/refs.js +15 -0
- package/lib/source-storage/retention.d.ts +14 -0
- package/lib/source-storage/retention.js +34 -0
- package/lib/source-storage/service.d.ts +31 -0
- package/lib/source-storage/service.js +33 -0
- package/lib/source-storage/store.d.ts +55 -0
- package/lib/source-storage/store.js +144 -0
- package/lib/source-storage.d.ts +2 -0
- package/lib/source-storage.js +2 -0
- package/lib/tool-discovery/capabilities.d.ts +24 -0
- package/lib/tool-discovery/capabilities.js +120 -0
- package/lib/tool-discovery/fold.d.ts +44 -0
- package/lib/tool-discovery/fold.js +149 -0
- package/lib/tool-discovery/index.d.ts +4 -0
- package/lib/tool-discovery/index.js +4 -0
- package/lib/tool-discovery/manager.d.ts +47 -0
- package/lib/tool-discovery/manager.js +222 -0
- package/lib/tools/context7.d.ts +1294 -0
- package/lib/tools/context7.js +969 -0
- package/lib/tools/docs-search.d.ts +20 -0
- package/lib/tools/docs-search.js +214 -0
- package/lib/tools/index.d.ts +13 -0
- package/lib/tools/index.js +13 -0
- package/lib/tools/operations.d.ts +15 -0
- package/lib/tools/operations.js +51 -0
- package/lib/tools/research-plan.d.ts +13 -0
- package/lib/tools/research-plan.js +40 -0
- package/lib/tools/schemas.d.ts +1583 -0
- package/lib/tools/schemas.js +1008 -0
- package/lib/tools/search-diagnostics.d.ts +22 -0
- package/lib/tools/search-diagnostics.js +147 -0
- package/lib/tools/search-sources.d.ts +18 -0
- package/lib/tools/search-sources.js +115 -0
- package/lib/tools/search-tools.d.ts +127 -0
- package/lib/tools/search-tools.js +215 -0
- package/lib/tools/web-extract.d.ts +28 -0
- package/lib/tools/web-extract.js +182 -0
- package/lib/tools/web-map.d.ts +31 -0
- package/lib/tools/web-map.js +211 -0
- package/lib/tools/web-search.d.ts +25 -0
- package/lib/tools/web-search.js +165 -0
- package/lib/web-config/contracts.d.ts +129 -0
- package/lib/web-config/contracts.js +40 -0
- package/lib/web-config/host.d.ts +12 -0
- package/lib/web-config/host.js +632 -0
- package/lib/web-extract/bounds.d.ts +10 -0
- package/lib/web-extract/bounds.js +59 -0
- package/lib/web-extract/index.d.ts +12 -0
- package/lib/web-extract/index.js +12 -0
- package/lib/web-extract/orchestrator.d.ts +26 -0
- package/lib/web-extract/orchestrator.js +384 -0
- package/lib/web-extract/types.d.ts +170 -0
- package/lib/web-extract/types.js +69 -0
- package/lib/web-extract/url.d.ts +13 -0
- package/lib/web-extract/url.js +61 -0
- package/package.json +185 -0
package/README.md
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# dsh-search-enhance
|
|
2
|
+
|
|
3
|
+
`dsh-search-enhance` 是 DeepSeek Harness(DSH)的增强搜索插件。它使用 Grok 完成主搜索,并按需要补充文档、网页和站点信息,最后返回回答和来源链接。
|
|
4
|
+
|
|
5
|
+
## 架构与搜索流程
|
|
6
|
+
|
|
7
|
+
### 整体架构
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
用户问题
|
|
11
|
+
│
|
|
12
|
+
▼
|
|
13
|
+
DSH Agent
|
|
14
|
+
│
|
|
15
|
+
├─ web_search ──────> Grok 主搜索
|
|
16
|
+
│ ├─ 按需要补充 Context7 / Exa
|
|
17
|
+
│ ├─ 按需要补充 Tavily / Firecrawl
|
|
18
|
+
│ └─ 返回回答、来源,必要时返回 source_ref
|
|
19
|
+
│
|
|
20
|
+
├─ docs_search ─────> Context7 / Exa 文档检索
|
|
21
|
+
│ └─ 返回文档片段、来源,必要时返回 source_ref
|
|
22
|
+
│
|
|
23
|
+
├─ web_extract ─────> Tavily → Firecrawl → smart_direct → direct
|
|
24
|
+
│ └─ 读取选中网页的正文
|
|
25
|
+
│
|
|
26
|
+
└─ search_tools ────> 按需开放更多工具
|
|
27
|
+
├─ Context7 精细查询
|
|
28
|
+
├─ 完整来源分页
|
|
29
|
+
├─ 站点页面发现
|
|
30
|
+
├─ 研究计划
|
|
31
|
+
└─ 配置诊断
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
插件继续使用 DSH 原有的 `web_search` 名称,不会再增加第二个普通搜索入口。在本来可以使用 `web_search` 的 Agent 中,插件提供增强后的搜索;如果某个 Agent 已经禁用网页搜索,插件不会强行重新开启。
|
|
35
|
+
|
|
36
|
+
普通搜索以 Grok 为主。其他服务只负责补充文档、来源或网页内容,不会替代 Grok 的主搜索位置。
|
|
37
|
+
|
|
38
|
+
### 初始可用工具
|
|
39
|
+
|
|
40
|
+
默认使用渐进式披露。每个新 Agent 开始时,插件提供的搜索工具中只显示以下四个:
|
|
41
|
+
|
|
42
|
+
| 工具 | 用途 |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| `web_search` | 通用搜索。使用 Grok 生成主要回答,并按搜索类型补充其他来源 |
|
|
45
|
+
| `docs_search` | 面向库、框架、SDK、API 和源码仓库的文档检索 |
|
|
46
|
+
| `web_extract` | 读取指定网页正文,用于核对搜索摘要中的重要内容 |
|
|
47
|
+
| `search_tools` | 当前四个工具不足时,按需要开放后续工具 |
|
|
48
|
+
|
|
49
|
+
这样可以避免一开始向模型展示全部工具,同时保留深度搜索所需的完整能力。
|
|
50
|
+
|
|
51
|
+
### 渐进式披露
|
|
52
|
+
|
|
53
|
+
`search_tools` 一次可以选择一到五组能力:
|
|
54
|
+
|
|
55
|
+
| 能力组 | 开放的工具 | 适用场景 |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| `context7` | `context7_resolve_library_id`、`context7_query_docs`、`context7_get_library_docs`、`context7_get_cached_doc_raw` | 需要精确选择库版本或进一步读取 Context7 文档 |
|
|
58
|
+
| `sources` | `search_sources` | 搜索结果中的来源较多,需要继续分页读取完整来源 |
|
|
59
|
+
| `site_map` | `web_map` | 已知一个网站,需要继续发现该站点下的相关页面 |
|
|
60
|
+
| `planning` | `research_plan` | 明确要求深度研究、多来源核对或复杂比较时先制定计划 |
|
|
61
|
+
| `diagnostics` | `search_diagnostics` | 用户明确要求检查搜索配置或连接状态 |
|
|
62
|
+
|
|
63
|
+
渐进式披露遵循以下规则:
|
|
64
|
+
|
|
65
|
+
1. 新工具不会在 `search_tools` 调用的同一步立即出现,而会从下一步开始可用。
|
|
66
|
+
2. 开放范围只属于当前 Agent;已经开放的能力会保留,重复开放不会产生第二套工具。
|
|
67
|
+
3. `web_search` 或 `docs_search` 成功返回 `source_ref` 后,`sources` 会自动开放,不需要再次调用 `search_tools`。
|
|
68
|
+
4. 插件只会减少自己设置的隐藏范围,不能绕过 DSH 原有的工具限制。
|
|
69
|
+
5. 不应预先开放全部能力;只有初始四个工具无法完成任务时才按需增加。
|
|
70
|
+
|
|
71
|
+
如果希望插件一开始就显示全部 12 个工具,可以在配置页把“工具披露模式”改为 `all`。默认的 `progressive` 更适合普通使用;无论选择哪种模式,DSH 原有的工具限制仍然有效。
|
|
72
|
+
|
|
73
|
+
### 一次完整搜索如何进行
|
|
74
|
+
|
|
75
|
+
1. 通用问题先使用 `web_search`,文档问题优先使用 `docs_search`。
|
|
76
|
+
2. 当搜索产生来源时,会同时返回可见来源和一个可继续读取完整来源的 `source_ref`。
|
|
77
|
+
3. 需要更多来源时使用自动开放的 `search_sources` 分页读取。
|
|
78
|
+
4. 对重要结论,选择权威链接并使用 `web_extract` 获取网页正文。
|
|
79
|
+
5. 如果任务需要站点内发现、研究计划或连接检查,再通过 `search_tools` 开放对应能力。
|
|
80
|
+
6. 最终回答综合主搜索、补充来源和已经读取的网页正文,并保留来源链接。
|
|
81
|
+
|
|
82
|
+
`source_ref` 只是完整来源列表的引用,不等同于网页正文;重要事实仍应通过 `web_extract` 读取原页面后再下结论。
|
|
83
|
+
|
|
84
|
+
## 安装
|
|
85
|
+
|
|
86
|
+
确保 `dsh` 和 `pnpm` 已经可以使用,然后直接安装到默认的 `web` 配置:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
dsh plugin --profile web add dsh-search-enhance@latest
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
安装完成后启动或重启 DSH:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
dsh web
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
如果 DSH 已经在运行,请重启后再对浏览器执行一次强制刷新。
|
|
99
|
+
|
|
100
|
+
## 配置
|
|
101
|
+
|
|
102
|
+
启动 DSH 后,打开:
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
设置 → 插件 → 插件配置 → dsh-search-enhance
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
第一次使用时,优先完成 Grok 搜索配置;其他选项可以先保持默认。
|
|
109
|
+
|
|
110
|
+
### 1. 配置 Grok 搜索
|
|
111
|
+
|
|
112
|
+
至少确认以下三项:
|
|
113
|
+
|
|
114
|
+
| 配置项 | 说明 |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| 接口地址 | xAI 官方地址或第三方 Grok 服务地址 |
|
|
117
|
+
| 模型 | 该服务实际支持的 Grok 模型名称 |
|
|
118
|
+
| Grok 密钥 | 在页面的“凭据”区域填写 |
|
|
119
|
+
|
|
120
|
+
页面还可以选择请求协议、思考等级和超时时间。请求协议需要与所使用的服务保持一致:
|
|
121
|
+
|
|
122
|
+
- `completions`:使用聊天补全接口;
|
|
123
|
+
- `responses`:使用 Responses 接口。
|
|
124
|
+
|
|
125
|
+
默认的 Grok 密钥名称是 `SEARCH_API_KEY`。密钥值只填写在“凭据”区域,不要写进接口地址或普通配置项。
|
|
126
|
+
|
|
127
|
+
### 2. 配置补充来源
|
|
128
|
+
|
|
129
|
+
这些服务不是完成主搜索的必要条件,可以按需要配置:
|
|
130
|
+
|
|
131
|
+
| 服务 | 用途 | 默认密钥名称 |
|
|
132
|
+
| --- | --- | --- |
|
|
133
|
+
| Context7 | 查找库和框架文档 | `CONTEXT7_API_KEY` |
|
|
134
|
+
| Exa | 补充文档和网页结果 | `EXA_API_KEY` |
|
|
135
|
+
| Tavily | 补充搜索、读取网页和发现站点页面 | `TAVILY_API_KEY` |
|
|
136
|
+
| Firecrawl | 补充搜索和读取网页 | `FIRECRAWL_API_KEY` |
|
|
137
|
+
|
|
138
|
+
在“补充 Provider”中填写服务地址,在“凭据”中填写对应密钥。没有配置的服务会被跳过,不影响已经配置好的搜索来源。
|
|
139
|
+
|
|
140
|
+
### 3. 配置搜索方式
|
|
141
|
+
|
|
142
|
+
页面可以设置默认搜索类型和搜索深度:
|
|
143
|
+
|
|
144
|
+
- `compact`:结果更简短;
|
|
145
|
+
- `normal`:信息量适中;
|
|
146
|
+
- `deep`:适合需要更多来源的问题。
|
|
147
|
+
|
|
148
|
+
不确定时保持默认值即可,也可以在单次搜索中临时选择其他设置。
|
|
149
|
+
|
|
150
|
+
“工具披露模式”建议保持 `progressive`,让工具按任务需要逐步出现;只有明确希望一开始显示全部搜索工具时才选择 `all`。
|
|
151
|
+
|
|
152
|
+
### 4. 配置网页代理
|
|
153
|
+
|
|
154
|
+
代理设置位于:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
补充 Provider → 高级 Provider 设置 → 网页提取代理
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
`smart_direct` 和 `direct` 可以分别填写代理地址,例如:
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
http://127.0.0.1:7890
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
留空表示不使用该项代理。这里只支持不带账号密码的 `http://` 地址,不支持 HTTPS 或 SOCKS 代理,也不会自动读取 `HTTP_PROXY`、`HTTPS_PROXY` 或 `ALL_PROXY`。
|
|
167
|
+
|
|
168
|
+
`direct` 使用代理时需要 Node.js 24.5 或更高版本。
|
|
169
|
+
|
|
170
|
+
### 5. 保存并重启
|
|
171
|
+
|
|
172
|
+
点击“保存配置”后重启 DSH:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
dsh web
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
重启后,新配置才会用于搜索。
|
|
179
|
+
|
|
180
|
+
## 使用
|
|
181
|
+
|
|
182
|
+
安装并配置完成后,直接在 DSH 中描述需求即可,例如:
|
|
183
|
+
|
|
184
|
+
```text
|
|
185
|
+
搜索最近的相关信息,并列出来源。
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
查找这个库当前版本的官方 API 用法。
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
```text
|
|
193
|
+
读取并总结 https://example.com/page 的正文。
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
```text
|
|
197
|
+
对这个问题做多来源核对,并说明各来源是否一致。
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## 更新与卸载
|
|
201
|
+
|
|
202
|
+
更新到 npm 上的最新版本:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
dsh plugin --profile web add dsh-search-enhance@latest
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
卸载插件:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
dsh plugin --profile web remove dsh-search-enhance
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## 使用提示
|
|
215
|
+
|
|
216
|
+
- 网页正文读取不会执行页面 JavaScript,也不能处理登录、验证码或浏览器会话。
|
|
217
|
+
- 网页读取可以访问 DSH 所在机器能够访问的地址;在敏感网络中只处理可信链接,并配合网络访问限制。
|
|
218
|
+
- 如果配置页面没有出现,先用 `dsh plugin --profile web list --depth 0` 确认 npm 包已经安装,然后重启 DSH 并强制刷新浏览器。
|