deepseek-web-retrieval 0.8.0 → 0.9.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.
Files changed (40) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +13 -5
  3. package/dist/cli.js +281 -167
  4. package/docs/agents/claude-code.md +7 -1
  5. package/docs/agents/codex.md +7 -1
  6. package/docs/agents/opencode-v2.md +11 -3
  7. package/docs/agents/pi.md +6 -1
  8. package/docs/configuration.md +7 -0
  9. package/docs/design/installer-design.md +4 -4
  10. package/docs/research/ori-question-sourcing.md +12 -1
  11. package/package.json +3 -2
  12. package/src/core/auth.ts +7 -0
  13. package/src/core/client.ts +89 -25
  14. package/src/core/config-summary.ts +1 -0
  15. package/src/core/constants.ts +17 -2
  16. package/src/core/descriptions.ts +10 -1
  17. package/src/core/env.ts +3 -1
  18. package/src/core/format.ts +25 -4
  19. package/src/core/options.ts +47 -0
  20. package/src/core/search.ts +97 -14
  21. package/src/core/types.ts +17 -0
  22. package/src/installer/apply.ts +4 -4
  23. package/src/installer/cli.ts +2 -2
  24. package/src/installer/config-command.ts +4 -3
  25. package/src/installer/hosts/claude-code.ts +3 -17
  26. package/src/installer/hosts/codex.ts +3 -17
  27. package/src/installer/hosts/index.ts +2 -2
  28. package/src/installer/hosts/opencode.ts +1 -1
  29. package/src/installer/hosts/pi.ts +14 -15
  30. package/src/installer/hosts/shared.ts +23 -0
  31. package/src/installer/ownership.ts +2 -2
  32. package/src/installer/paths.ts +2 -2
  33. package/src/installer/{state.ts → record.ts} +15 -15
  34. package/src/installer/types.ts +1 -1
  35. package/src/installer/uninstall.ts +4 -4
  36. package/src/mcp/serve.ts +1 -2
  37. package/src/mcp/server.ts +16 -19
  38. package/src/opencode/plugin.ts +15 -10
  39. package/src/pi/extension.ts +23 -17
  40. package/src/mcp/auth.ts +0 -11
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project are documented here, one sentence per item.
4
4
 
5
+ ## 0.9.0
6
+
7
+ - Accept an optional per-call `count` (1–50) on the MCP and Pi search tools and an optional per-call `maxChars` (0–1,000,000) on every adapter's fetch, each overriding the configured value for that one call.
8
+ - Open the search result text with `Searched for: <effective query>` whenever domain or language operators — or fitting the query-length limit — changed what was actually searched, so the model can attribute what it sees.
9
+ - Degrade gracefully instead of failing when search operators push a combined query past the API's 128-character limit: the query body truncates first, the language filter drops next, the include list last, and blocked domains never drop.
10
+ - Align user-facing installer wording with the domain glossary: the secrets refusal and record-repair guidance now say "install record" instead of "state file" or "undo state".
11
+ - Add the `baseUrl` knob (`DEEPSEEK_BASE_URL` environment variable or shared-file key) so every retrieval request can be routed through a proxy, enterprise gateway, or mock upstream; only an http(s) URL is accepted and anything else drops back to `https://api.deepseek.com`.
12
+ - Add keyless `pi-mock` and `opencode-mock` Docker e2e scenarios that run real host session loops (pi via a custom `models.json` provider, OpenCode via a custom provider) against an in-container mock upstream, invoking both retrieval tools and asserting the tool results reached the model — closing CI's tool-execution blind spot without a billed key — and document the keyless (CI) versus billed (local, real API) e2e responsibilities with a `test:e2e:billed` script.
13
+
5
14
  ## 0.8.0
6
15
 
7
16
  - Add Claude Code as a supported host: an MCP-only integration registered in `.mcp.json` (project scope) or `~/.claude.json` (user scope), with a full installer host module (plan/apply/uninstall, both scopes), a `docs/agents/claude-code.md` guide, a version probe with drift note, and managed-policy detection that reports a `managed-settings.json` layer outranking the install.
package/README.md CHANGED
@@ -127,10 +127,15 @@ binary files, per-request billing) are documented there.
127
127
  ### Search
128
128
 
129
129
  - Requests summaries only (`need_content: false`, falling back from `summary` to
130
- `snippet`); full page content never enters the results.
130
+ `snippet`); full page content never enters the results. A summary the cap shortens ends
131
+ with an ellipsis.
131
132
  - Deduplicates URLs; an empty result set is normal, not an error.
132
- - Builds `blockedDomains`, `includeDomains`, and `language` into query operators, and
133
- rejects the final query locally when it exceeds the API's 128-character limit.
133
+ - Builds `blockedDomains`, `includeDomains`, and `language` into query operators (part of
134
+ DeepSeek's documented search syntax). A combined query over the API's 128-character limit
135
+ degrades instead of failing — the query body truncates first, the language filter drops
136
+ next, the include list last, and blocked domains never drop — and whenever operators or
137
+ degradation changed the query, the result text opens with `Searched for: <effective query>`
138
+ so the model can attribute what it sees.
134
139
  - Optional `rerank_score` and `authority` thresholds are off by default — the default
135
140
  returns exactly what DeepSeek ranked. A positive threshold drops results below it.
136
141
  A missing `rerank_score` is dropped too; an unknown `authority` stays unless
@@ -139,12 +144,15 @@ binary files, per-request billing) are documented there.
139
144
  the Pi extension), the tool accepts an optional `original_question`: the user's
140
145
  question in their own words. It is forwarded as DeepSeek's `ori_question`, trimmed
141
146
  and truncated to 128 characters; on the Pi extension, a blank input falls back to the
142
- most recent user message in the session.
147
+ most recent user message in the session. Those paths also take an optional per-call
148
+ `count` (1–50) overriding the configured result count for that call.
143
149
 
144
150
  ### Fetch
145
151
 
146
152
  - Output is capped per the table above, title included; a `[content truncated]` marker
147
- is added when the limit leaves room for it.
153
+ is added when the limit leaves room for it. An optional per-call `maxChars` parameter
154
+ (0–1,000,000) on every adapter overrides the configured cap for one call — a model that
155
+ sees the marker can widen the budget and re-fetch.
148
156
  - A page that already opens with its title as a top-level heading does not get a
149
157
  duplicate title.
150
158
  - URLs must be absolute `http://` or `https://`, credential-free, and at most 8,192