deepseek-harness/docs/rfc/implemented/architecture
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
..
2026-06-11-content-block-vocabulary.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-11-custom-schema-dsl.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-11-dev-invariants-over-deep-readonly.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-11-event-sourced-sessions.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-11-microkernel-event-taxonomy.md simplify(llm): drop unconsumed adapter-change event and assembled call surfaces 2026-06-21 01:27:41 +08:00
2026-06-11-runtime-arg-validation.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-11-structured-error-taxonomy.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-11-tool-schemas-in-prompt-assembly.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-13-capability-seams.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-13-twin-llm-adapters.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-14-session-persistence.md fix review findings: sync stale v1/removed-event doc references 2026-06-21 11:33:41 +08:00
2026-06-15-turn-enclosure-invariant.md docs(rfc): classify RFCs by kind via path-encoded subdirectories 2026-06-20 22:29:45 +08:00
2026-06-18-agent-lifecycle-and-ownership-seams.md simplify(agent): drop the unused public Agent.abort(), keep whenIdle() 2026-06-21 09:05:21 +08:00
2026-06-18-session-surface.md fix review findings: skip collided SCHEMA_VERSION 3; reject marker-less surface events 2026-06-24 17:45:48 +08:00
2026-06-18-shared-persistence-write-coordinator.md simplify(seams): prune dead methods from the persistence and bash seams 2026-06-21 02:17:27 +08:00
2026-06-20-branded-ids.md fix review findings: document the util/ group + align branded-ids RFC with dsh-brand 2026-06-21 11:04:28 +08:00
2026-06-20-extract-example-app-packages.md fix review findings: harden the app bins + built-bin smokes, arch-exception doc, snapshot fixture-guard 2026-06-21 15:39:24 +08:00
2026-06-20-package-hierarchy.md docs: sync package cookbook with build config 2026-06-22 11:36:35 +08:00
2026-06-24-web-capability-seam.md Add web capability seam: ctx.web, search/fetch providers, web tools 2026-06-26 19:12:13 +08:00