Introduce web access as a first-class capability seam so the model-facing web tools stay stable while backends change. dsh-web owns ctx.web as a provider registry with registration-order-independent selection and the WebError taxonomy; dsh-web-search-exa, dsh-web-search-perplexity, and dsh-web-fetch-local register capabilities into it; dsh-tool-web is the sole owner of the model-facing web_search/web_fetch schemas, prompt sections, and HTML-to-markdown presentation. Search and fetch are deliberately one seam. Providers ship as namespace plugins that register into ctx.web (like an LlmAdapter into ctx.llm), not key-owning services, since multiple search providers cannot each own the key. Tool registration follows product enablement, not backend availability, so load order/credentials never enter the model contract; the seam resolves the provider at execution time and surfaces a structured WebError otherwise. Moves the RFC to implemented/ amended to match what shipped. Example/app configs are intentionally not wired yet (RFC migration step 6).
18 lines
433 B
JSON
18 lines
433 B
JSON
{
|
|
"extends": "../../../tsconfig.base.json",
|
|
"compilerOptions": {
|
|
"rootDir": "src",
|
|
"outDir": "lib"
|
|
},
|
|
"include": ["src"],
|
|
"references": [
|
|
{ "path": "../../../vendor/cosmokit" },
|
|
{ "path": "../../../vendor/cordis" },
|
|
{ "path": "../../../vendor/schemastery" },
|
|
{ "path": "../../llm/llm" },
|
|
{ "path": "../../core/tools" },
|
|
{ "path": "../../core/system-prompt" },
|
|
{ "path": "../web" }
|
|
]
|
|
}
|