WeKnora
Tencent
Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:youdotcom-oss/dsh-plugin-youcom
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
A You.com search + fetch provider plugin for DeepSeek Harness (dsh).
dsh-plugin-youcom is a Cordis plugin registering a WebSearchProvider (POST /v1/search) and a WebFetchProvider (POST /v1/contents) with the dsh web seam (ctx.web).
Third-party providers ship as out-of-tree plugins, discovered through the dsh-plugin GitHub topic. Add this package to a profile:
dsh plugin --profile <your-profile> add @youdotcom-oss/dsh-plugin-youcom
dsh plugin forwards to pnpm in the profile directory, so pnpm must be on your PATH. Restart the profile afterward so the new bundle layer is composed into the plugin stack:
dsh --profile <your-profile>
Or mount it directly in a cordis.patch.yml. This package ships one (see cordis.patch.yml) that inserts the row below into an existing dsh-web composition:
- id: youcom
name: '@youdotcom-oss/dsh-plugin-youcom'
config:
apiKey: !!js process.env.YDC_API_KEY
The quotes around name are required. A plain YAML scalar cannot begin with @.
Set YDC_API_KEY (get one at you.com/platform/api-keys), or pass apiKey directly in config.
| Field | Default | Meaning |
|---|---|---|
apiKey |
$YDC_API_KEY |
You.com API key. Empty or absent makes both providers unavailable |
baseURL |
https://ydc-index.io |
Endpoint base shared by /v1/search and /v1/contents. Must be http(s), and any path prefix it carries (a proxy mount) is kept |
numResults |
(unset) | Default search result count when a request carries no maxResults |
includeNews |
true |
Merge results.news[] into search sources alongside results.web[] |
ctx.web auto-selects a provider only when it is the sole one available. Stacking this alongside another search or fetch provider needs an explicit pin on the host's web row:
- id: web
config:
searchProvider: youcom
fetchProvider: youcom
fetch's statusCode is always 200 on success. /v1/contents retrieves and extracts server-side and reports no origin HTTP status, so a page that 404'd at the origin but still yielded extractable content is indistinguishable from a clean 200 here. A raw HTTP fetch provider reports the real code.fetch's truncated is always false. /v1/contents documents no truncation signal, so this can under-report but never over-report./v1/search returns sources only, so content is omitted rather than invented, and a source with no snippet stays snippet-less.page_age, favicon_url). This package parses the raw response with no SDK layer in between, so src/types.ts matches the wire casing directly. A pageAge-keyed mapper silently drops every publishedAt.{"message": "..."} before the request reaches the app, while the app itself returns {"detail": "..."}, {"error": "..."}, {"detail": [{"msg": "..."}]}, or {"errors": [{"title": "..."}]}. src/error-message.ts checks all of them.npm install
npm run build # tsc -> lib/
npm run typecheck
npm test # vitest, but read the warning below first
npm test hits the live You.com API when YDC_API_KEY is set in your environment. tests/live-smoke.test.ts skips only when the key is absent, so a plain npm test on a configured machine spends real quota. To run the offline suite alone:
env -u YDC_API_KEY npx vitest run
License
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: web-search。