Files
deepseek-harness/tsconfig.base.json
T
Dudu-0223 d01f5f73b7 Add web capability seam: ctx.web, search/fetch providers, web tools
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).
2026-06-26 19:12:13 +08:00

59 lines
2.3 KiB
JSON

{
"compilerOptions": {
"target": "es2024",
"module": "esnext",
"moduleResolution": "bundler",
"declaration": true,
"sourceMap": true,
"declarationMap": true,
"composite": true,
"incremental": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowImportingTsExtensions": true,
"rewriteRelativeImportExtensions": true,
"verbatimModuleSyntax": false,
"strict": true,
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
"noImplicitOverride": true,
"noFallthroughCasesInSwitch": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"types": ["node"],
// Source-level resolution for every repo-local graph. Project references,
// not declaration path aliases, keep each package/vendor source compiled
// under its own tsconfig boundary.
"paths": {
"cordis": ["./vendor/cordis/src"],
"cosmokit": ["./vendor/cosmokit/src"],
"schemastery": ["./vendor/schemastery/src"],
"@cordisjs/plugin-loader": ["./vendor/loader/src"],
"@cordisjs/plugin-include": ["./vendor/include/src"],
"@cordisjs/plugin-group": ["./vendor/group/src"],
"@cordisjs/plugin-timer": ["./vendor/timer/src"],
"@cordisjs/plugin-hmr": ["./vendor/hmr/src"],
"@cordisjs/plugin-logger-console": ["./vendor/logger-console/src"],
"@deepseek-ai/dsh-tool-web/search": ["./packages/web/tool-web/src/search.ts"],
"@deepseek-ai/dsh-tool-web/fetch": ["./packages/web/tool-web/src/fetch.ts"],
// One wildcard maps every @deepseek-ai/dsh-<name> to its source. Package
// dir names are unique across groups, so first-on-disk-wins resolution is
// unambiguous; adding a package under an existing group needs no edit
// here. The build graph's project references (tsconfig.build.json) stay
// explicit — TS project references have no wildcard form.
"@deepseek-ai/dsh-*": [
"./packages/core/*/src",
"./packages/llm/*/src",
"./packages/bash/*/src",
"./packages/compact/*/src",
"./packages/subagent/*/src",
"./packages/web/*/src",
"./packages/session-persistence/*/src",
"./packages/ui/*/src",
"./packages/util/*/src",
"./packages/support/*/src"
]
}
}
}