fix(duckduckgo): show search provider in setup · openclaw/openclaw@09c0b13
steipete
·
2026-05-02
·
via Recent Commits to openclaw:main
File tree
extensions/duckduckgo/src
| Original file line number | Diff line number | Diff line change |
|---|
@@ -48,6 +48,7 @@ Docs: https://docs.openclaw.ai
|
48 | 48 | - Slack/message tool: let `read` fetch an exact Slack message timestamp, including a specific thread reply when paired with `threadId`, instead of returning only the parent thread or recent channel history. Fixes #53943. Thanks @zomars. |
49 | 49 | - Web search: point missing-key errors to `web_fetch` for known URLs and the browser tool for interactive pages. Thanks @zhaoyang97. |
50 | 50 | - Web search: late-bind managed agent `web_search` calls to the current runtime config snapshot, so existing sessions do not keep stale unresolved SecretRefs after secrets reload. Fixes #75420. Thanks @richardmqq. |
| 51 | +- Web search/DuckDuckGo: include the keyless DuckDuckGo provider in the web search setup wizard. Fixes #65862 and supersedes #65940. Thanks @Jah-yee. |
51 | 52 | - Web search: honor `baseUrl` overrides for Gemini, Grok, and x_search provider-owned config, so proxy-backed search tools no longer dial hardcoded public endpoints. Supersedes #61972. Thanks @Lanfei. |
52 | 53 | - Web search/Brave: point Brave provider metadata at the canonical `/tools/brave-search` docs page and make the legacy `/brave-search` docs page a redirect stub. Fixes #65870 and supersedes #65892. Thanks @Magicray1217 and @Jah-yee. |
53 | 54 | - Web search/Brave: allow `freshness` and bounded date ranges in `llm-context` mode, matching Brave's documented LLM Context API support. Supersedes #51005. Thanks @remusao. |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -5,6 +5,7 @@ export function createDuckDuckGoWebSearchProviderBase() {
|
5 | 5 | id: "duckduckgo", |
6 | 6 | label: "DuckDuckGo Search (experimental)", |
7 | 7 | hint: "Free web search fallback with no API key required", |
| 8 | +onboardingScopes: ["text-inference"] as const, |
8 | 9 | requiresCredential: false, |
9 | 10 | envVars: [], |
10 | 11 | placeholder: "(no key needed)", |
|
| Original file line number | Diff line number | Diff line change |
|---|
|
1 | 1 | import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; |
| 2 | +import { createDuckDuckGoWebSearchProvider as createDuckDuckGoWebSearchContractProvider } from "../web-search-contract-api.js"; |
2 | 3 | import { DEFAULT_DDG_SAFE_SEARCH, resolveDdgRegion, resolveDdgSafeSearch } from "./config.js"; |
3 | 4 | |
4 | 5 | const { runDuckDuckGoSearch } = vi.hoisted(() => ({ |
@@ -34,6 +35,10 @@ describe("duckduckgo web search provider", () => {
|
34 | 35 | |
35 | 36 | expect(provider.id).toBe("duckduckgo"); |
36 | 37 | expect(provider.label).toBe("DuckDuckGo Search (experimental)"); |
| 38 | +expect(provider.onboardingScopes).toEqual(["text-inference"]); |
| 39 | +expect(createDuckDuckGoWebSearchContractProvider().onboardingScopes).toEqual([ |
| 40 | +"text-inference", |
| 41 | +]); |
37 | 42 | expect(provider.requiresCredential).toBe(false); |
38 | 43 | expect(provider.credentialPath).toBe(""); |
39 | 44 | expect(applied.plugins?.entries?.duckduckgo?.enabled).toBe(true); |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。