mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
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
34 lines
1.3 KiB
JSON
34 lines
1.3 KiB
JSON
{
|
|
"files": [],
|
|
"references": [
|
|
{ "path": "./vendor/cosmokit" },
|
|
{ "path": "./vendor/schemastery" },
|
|
{ "path": "./vendor/cordis" },
|
|
{ "path": "./vendor/loader" },
|
|
{ "path": "./vendor/include" },
|
|
{ "path": "./vendor/group" },
|
|
{ "path": "./vendor/timer" },
|
|
{ "path": "./vendor/hmr" },
|
|
{ "path": "./vendor/logger-console" },
|
|
{ "path": "./packages/util/brand" },
|
|
{ "path": "./packages/llm/llm" },
|
|
{ "path": "./packages/core/session" },
|
|
{ "path": "./packages/session-persistence/session-persistence" },
|
|
{ "path": "./packages/session-persistence/session-persistence-jsonl" },
|
|
{ "path": "./packages/session-persistence/session-persistence-sqlite" },
|
|
{ "path": "./packages/core/system-prompt" },
|
|
{ "path": "./packages/core/agent" },
|
|
{ "path": "./packages/core/tools" },
|
|
{ "path": "./packages/core/agent-loop" },
|
|
{ "path": "./packages/bash/bash" },
|
|
{ "path": "./packages/llm/llm-deepseek" },
|
|
{ "path": "./packages/llm/llm-pi-ai" },
|
|
{ "path": "./packages/bash/bash-local" },
|
|
{ "path": "./packages/bash/tool-bash" },
|
|
{ "path": "./packages/support/invariants" },
|
|
{ "path": "./packages/ui/acp" },
|
|
{ "path": "./packages/support/ui-stdio" },
|
|
{ "path": "./packages/support/llm-replay" }
|
|
]
|
|
}
|