2026-06-20 16:24:37 +08:00
{
"comment" : "Maps each ` ```ts type-equiv ` block (by doc + declared symbol) to the source symbol it must match verbatim. verify-type-equiv.ts enforces a 1:1 correspondence: every type-equiv block has exactly one entry here, and every entry resolves to exactly one block. Add an entry when you add a type-equiv block; remove it when you remove the block." ,
"entries" : [
feat(types): brand bash ids + stop brand erosion; extract Branded to dsh-brand
Type-only change (brands are zero-cost casts; no runtime/wire impact). Closes
the two gaps in the "brand ids that cross package boundaries" policy and fixes
the dependency direction so a capability package never pulls in an unrelated one.
- Extract the `Branded<B>` primitive into a new standalone type-only package
`@deepseek-ai/dsh-brand` (packages/util/brand) with no harness-package deps.
dsh-llm keeps its owned CallId but imports Branded from dsh-brand; dsh-session,
dsh-agent, and dsh-bash all import Branded from there. dsh-bash depends on
dsh-brand ALONE — never on dsh-llm or dsh-session (the architectural fix: a
generic execution backend must not couple to the LLM or session vocabulary).
- Mint BashTaskId + OwnerToken in dsh-bash and thread them through BashTask.id,
the get/ownerOf/list/readOutput/kill seam, the bash-local generation site, and
the dsh-tool-bash validate/access surface. OwnerToken is a DISTINCT brand from
SessionId so the seam stays decoupled; dsh-tool-bash is the single boundary
that casts SessionId -> OwnerToken.
- Brand at the SOURCE, not via mid-pipeline casts: agent-loop's Config types
agents[].id as AgentId and resumeSessionId as SessionId, so the brand enters
at the config boundary and the inner create()/resume casts disappear (only the
genuinely-new per-run session-id string is cast).
- Stop brand erosion: propagate CallId/SessionId/AgentId to the registry/store
Map keys and public params/exports (SessionStore, AgentRegistry + factory
options, the ACP session-id surface + ToolPresenter CallId map, the
persistence coordinator, invariants pendingCalls, the pi-ai tool-call maps).
- Docs: document BashTaskId/OwnerToken in bash.md (type-equiv re-pasted), point
the Branded type-equiv at dsh-brand, fix stale param types in the session/
agent/bash READMEs, regenerate the cordis catalog + module graph.
Implements docs/rfc/proposed/architecture/2026-06-20-branded-ids.md
2026-06-21 07:17:25 +08:00
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "Branded" , "source" : "packages/util/brand/src/index.ts" } ,
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "ContentBlockMap" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "Message" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "MessageSourceMap" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "FinishReasonMap" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "GenerateOptions" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "ToolSchema" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "SessionEvent" , "source" : "packages/core/session/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "Agent" , "source" : "packages/core/agent/src/types.ts" } ,
2026-06-30 17:11:18 +08:00
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "HookContext" , "source" : "packages/core/agent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "PromptDecision" , "source" : "packages/core/agent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "ContinuationDecision" , "source" : "packages/core/agent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/core.md" , "symbol" : "SessionStartSource" , "source" : "packages/core/agent/src/types.ts" } ,
2026-06-20 16:24:37 +08:00
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
{ "doc" : "docs/core-data-structures/llm-streaming.md" , "symbol" : "StreamChunk" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/llm-streaming.md" , "symbol" : "TokenUsage" , "source" : "packages/llm/llm/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/llm-streaming.md" , "symbol" : "ContentBlockMap" , "source" : "packages/llm/llm/src/types.ts" } ,
2026-06-20 16:24:37 +08:00
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "SessionEventMap" , "source" : "packages/core/session/src/types.ts" } ,
2026-06-29 01:39:25 +08:00
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "TodoItem" , "source" : "packages/core/session/src/types.ts" } ,
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "SessionEvent" , "source" : "packages/core/session/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "TurnTriggerMap" , "source" : "packages/core/session/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "TurnEndReasonMap" , "source" : "packages/core/session/src/types.ts" } ,
2026-06-23 13:26:45 +08:00
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "SurfaceEventType" , "source" : "packages/core/session/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "SurfaceOp" , "source" : "packages/core/session/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "SurfaceIntent" , "source" : "packages/core/session/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/session.md" , "symbol" : "SurfaceNode" , "source" : "packages/core/session/src/surface.ts" } ,
2026-06-20 16:24:37 +08:00
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
{ "doc" : "docs/core-data-structures/persistence.md" , "symbol" : "SessionHeader" , "source" : "packages/core/session/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/persistence.md" , "symbol" : "CreateSessionOptions" , "source" : "packages/core/session/src/types.ts" } ,
2026-06-20 16:24:37 +08:00
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "ToolDefinition" , "source" : "packages/core/tools/src/index.ts" } ,
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "SchemaProp" , "source" : "packages/core/tools/src/schema.ts" } ,
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "SchemaSpec" , "source" : "packages/core/tools/src/schema.ts" } ,
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "InferArgs" , "source" : "packages/core/tools/src/schema.ts" } ,
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "ToolExecution" , "source" : "packages/core/tools/src/index.ts" } ,
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "ToolExecutionResult" , "source" : "packages/core/tools/src/index.ts" } ,
2026-06-30 17:11:18 +08:00
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "PreToolDecision" , "source" : "packages/core/tools/src/index.ts" } ,
{ "doc" : "docs/core-data-structures/tools.md" , "symbol" : "PostToolDecision" , "source" : "packages/core/tools/src/index.ts" } ,
2026-06-20 16:24:37 +08:00
Reorganize packages into a modular hierarchy
Move the 18 flat packages/<name> packages into role-grouped dirs:
core/, llm/, bash/, session-persistence/, ui/, support/. Group dirs are
pure containers; each package keeps its @deepseek-ai/dsh-* name.
Collapse the per-package tsconfig paths maps (base + typecheck) into one
@deepseek-ai/dsh-* wildcard with a candidate per group, and derive the
publint list from the hierarchy. Update all depth-coupled globs/configs
(workspace, tsdown, vitest, eslint, knip, tsconfig includes/refs,
per-package tsconfigs, generators, doc-script scopes, type-equiv manifest)
and the cross-package/script relative imports in tests.
Fix doc-typecheck's workspacePaths() to parse tsconfig JSONC via the
TypeScript API instead of a regex comment-strip, which corrupted the
new wildcard `/*/` path candidates.
WIP: doc cross-links and package/RFC docs still to update.
2026-06-20 22:55:20 +08:00
{ "doc" : "docs/core-data-structures/bash.md" , "symbol" : "BashExecRequest" , "source" : "packages/bash/bash/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/bash.md" , "symbol" : "BashExecSpec" , "source" : "packages/bash/bash/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/bash.md" , "symbol" : "BashRunResult" , "source" : "packages/bash/bash/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/bash.md" , "symbol" : "CollectedOutput" , "source" : "packages/bash/bash/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/bash.md" , "symbol" : "BashTask" , "source" : "packages/bash/bash/src/types.ts" } ,
2026-06-23 16:33:05 +08:00
{ "doc" : "docs/core-data-structures/bash.md" , "symbol" : "BashTaskRead" , "source" : "packages/bash/bash/src/types.ts" } ,
2026-06-22 14:53:36 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsTarget" , "source" : "packages/fs/fs/src/types.ts" } ,
2026-06-26 17:23:18 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsTargetKey" , "source" : "packages/fs/fs/src/types.ts" } ,
2026-06-22 14:53:36 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsVersion" , "source" : "packages/fs/fs/src/types.ts" } ,
2026-06-26 17:23:18 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsInfo" , "source" : "packages/fs/fs/src/types.ts" } ,
2026-07-03 14:36:20 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsDirEntry" , "source" : "packages/fs/fs/src/types.ts" } ,
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsWriteIntent" , "source" : "packages/fs/fs/src/types.ts" } ,
2026-06-22 14:53:36 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsWriteOutcome" , "source" : "packages/fs/fs/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsEditRequest" , "source" : "packages/fs/fs/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsEditOutcome" , "source" : "packages/fs/fs/src/types.ts" } ,
2026-06-26 17:23:18 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsErrorCode" , "source" : "packages/fs/fs/src/types.ts" } ,
fix(fs): address review — rename to dsh-fs-policy, fs/*-intent events, RFC currency, ENOTDIR
Rename per review naming decisions:
- package dsh-file-context → dsh-fs-policy (dir, package name, plugin name,
tsconfig refs, importers, type-equiv manifest, generated catalog + module-graph)
- events fs/write-expectation → fs/write-intent, fs/edit-expectation → fs/edit-intent
(fs/observed unchanged); type FsWriteExpectation → FsWriteIntent, "expectation"
wording → "intent" throughout
- exported FileContextExec → FsPolicyExec
Make the implemented RFCs describe what shipped, not the superseded designs:
the 2026-06-17 capability-seam + tool-schemas RFCs no longer place policy on
ctx.fs or use full/partial-view authorization, and the fsspec RFC's ctx.fileContext
service prose is rewritten to the fs/* event-gate reality (freshness-based auth).
Sharpen docs/rfc/implemented/AGENTS.md: a rename is a fact to fix IN PLACE — the
"new RFC" escape hatch is for macro decision reversals only, not renames.
Code fixes from review:
- fsio.ts resolveLocalTarget/probe translate ENOTDIR (a parent path segment is a
file) into the structured FsError taxonomy instead of leaking a raw Node error;
resolve reports FS_NOT_FOUND, probe reports absent. Regression tests proven to
fail on the unfixed code.
- tool-fs HMR test now asserts prompt sections (not just tool schemas) are
withdrawn on disposal.
- fs/observed is a plain (unguarded) ctx.emit: correct the fs-policy comment,
filesystem.md, and tool-fs module doc that wrongly claimed the tool "contains"
a throwing listener; a throw surfaces as the tool's isError result.
- drop the false "loaded by the default product config" claim (no config wires
the fs tools yet), the duplicate ctx.bash service-map row, the stale
FileReadRequest catalog link-map entry, and the fs/fs README EOF blank line;
correct the dsh-fs package.json description.
2026-07-02 03:12:38 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FsPolicyExec" , "source" : "packages/fs/fs-policy/src/types.ts" } ,
2026-06-29 10:34:08 +08:00
{ "doc" : "docs/core-data-structures/filesystem.md" , "symbol" : "FileReadOutcome" , "source" : "packages/fs/tool-fs/src/read-render.ts" } ,
2026-06-28 17:24:45 +08:00
2026-06-25 09:10:50 +08:00
{ "doc" : "docs/core-data-structures/compaction.md" , "symbol" : "CompactionResult" , "source" : "packages/compact/compact/src/types.ts" } ,
Fix review findings: lifecycle containment, configurable tool name, coverage, type catalog
Address four findings from the first Codex review round:
- Contain subagent/start|end listener throws (emitContainedStart/End): a
thrown lifecycle listener could escape SubagentService.start() before the
caller received the live run to dispose it (a leaked child), and a thrown
subagent/end listener could surface as an unhandled rejection on the detached
result-settle hook. Both emits now log-and-contain, mirroring the agent
registry's agent/created|disposed containment.
- Make the model-facing tool name configurable (Config.toolName, default
subagent). The docs say to load dsh-tool-subagent once per provider to expose
multiple transports, but the hardcoded name made the second load throw a
duplicate-tool-name error; a distinct toolName per load is now required and
documented.
- Reach the per-file 100% coverage gate: tests for the subagent/end error
branch, lifecycle-listener containment, every stopReasonError arm + the
merge-extensible default, the multi-provider toolName path, agentOptions
forwarding, and the direct-apply schema-bypass fallbacks.
- Document the seam vocabulary in docs/core-data-structures/subagent.md with
verbatim type-equiv blocks + manifest entries, and link it from core.md (a
brand-new core/seam type the doc-sync gate cannot detect on its own).
2026-06-21 23:15:43 +08:00
{ "doc" : "docs/core-data-structures/subagent.md" , "symbol" : "SubagentCapabilities" , "source" : "packages/subagent/subagent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/subagent.md" , "symbol" : "SubagentStartRequest" , "source" : "packages/subagent/subagent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/subagent.md" , "symbol" : "SubagentResult" , "source" : "packages/subagent/subagent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/subagent.md" , "symbol" : "SubagentStopReasonMap" , "source" : "packages/subagent/subagent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/subagent.md" , "symbol" : "SubagentRun" , "source" : "packages/subagent/subagent/src/types.ts" } ,
2026-06-25 15:28:15 +08:00
{ "doc" : "docs/core-data-structures/subagent.md" , "symbol" : "SubagentProvider" , "source" : "packages/subagent/subagent/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebSearchRequest" , "source" : "packages/web/web/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebSearchResult" , "source" : "packages/web/web/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebSearchSource" , "source" : "packages/web/web/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebFetchRequest" , "source" : "packages/web/web/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebFetchResult" , "source" : "packages/web/web/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebFetchBody" , "source" : "packages/web/web/src/types.ts" } ,
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebProviderStatus" , "source" : "packages/web/web/src/types.ts" } ,
2026-07-03 15:52:05 +08:00
{ "doc" : "docs/core-data-structures/web.md" , "symbol" : "WebCapabilityStatus" , "source" : "packages/web/web/src/types.ts" }
2026-06-20 16:24:37 +08:00
]
}