|
|
@@ -11,7 +11,6 @@ flowchart LR
|
|
|
svc_attachments["ctx.attachments<br/>Durable binary attachment storage"]
|
|
|
pkg_attachment_local["attachment-local"]
|
|
|
pkg_api_session_controller["api-session-controller"]
|
|
|
- pkg_host_apiproxy["host-apiproxy"]
|
|
|
pkg_tool_fs["tool-fs"]
|
|
|
pkg_llm_pi_ai["llm-pi-ai"]
|
|
|
pkg_llm_deepseek["llm-deepseek"]
|
|
|
@@ -114,6 +113,7 @@ flowchart LR
|
|
|
svc_sessionProjections["ctx.sessionProjections<br/>Session projection units"]
|
|
|
pkg_session_projection_cache["session-projection-cache"]
|
|
|
svc_sessionProjectionCache["ctx.sessionProjectionCache<br/>Persisted projection cache"]
|
|
|
+ pkg_subagent["subagent"]
|
|
|
pkg_skill["skill"]
|
|
|
svc_skills["ctx.skills<br/>Skill provider registry"]
|
|
|
pkg_skill_badge["skill-badge"]
|
|
|
@@ -168,7 +168,6 @@ flowchart LR
|
|
|
pkg_fs_observation_policy["fs-observation-policy"]
|
|
|
pkg_compaction["compaction"]
|
|
|
svc_compaction["ctx.compaction<br/>Compaction seam"]
|
|
|
- pkg_subagent["subagent"]
|
|
|
svc_subagents["ctx.subagents<br/>Subagent provider and continuation service"]
|
|
|
pkg_subagent_spawn_in_process["subagent-spawn-in-process"]
|
|
|
pkg_subagent_fork_in_process["subagent-fork-in-process"]
|
|
|
@@ -215,7 +214,6 @@ flowchart LR
|
|
|
pkg_lsp["lsp"]
|
|
|
svc_lsp["ctx.lsp<br/>Language-server navigation seam"]
|
|
|
pkg_tool_lsp["tool-lsp"]
|
|
|
- svc_apiProxy["ctx.apiProxy<br/>Host API dispatch"]
|
|
|
pkg_cordis_host_runner["cordis-host-runner"]
|
|
|
svc_dynamicCordisRunner["ctx.dynamicCordisRunner<br/>Dynamic Cordis package host runner"]
|
|
|
svc_cordisInspect["ctx.cordisInspect<br/>Dynamic Cordis inspect registry"]
|
|
|
@@ -257,7 +255,6 @@ flowchart LR
|
|
|
pkg_fs_local --> svc_fs
|
|
|
pkg_fs_sandbox --> svc_fs
|
|
|
pkg_goal --> svc_goals
|
|
|
- pkg_host_apiproxy --> svc_apiProxy
|
|
|
pkg_host_directory_picker --> svc_directoryPicker
|
|
|
pkg_host_directory_picker_browse --> svc_directoryPicker
|
|
|
pkg_host_directory_picker_native --> svc_directoryPicker
|
|
|
@@ -336,20 +333,18 @@ flowchart LR
|
|
|
pkg_workflow --> svc_workflowEngine
|
|
|
pkg_workflow_worker_thread --> svc_workflowEngine
|
|
|
pkg_workspace --> svc_workspaceRegistry
|
|
|
+ svc_agentDefaultModel --> pkg_api_session_controller
|
|
|
svc_agentDefaultModel --> pkg_headless
|
|
|
- svc_agentDefaultModel --> pkg_host_apiproxy
|
|
|
svc_agentLoop --> pkg_agent_spine_demo
|
|
|
svc_agentTeams --> pkg_experimental_client_ui_agent_team
|
|
|
svc_agentTeams --> pkg_experimental_tool_agent_team
|
|
|
svc_agents --> pkg_acp
|
|
|
svc_agents --> pkg_agent_loop
|
|
|
svc_agents --> pkg_subagent_in_process_driver
|
|
|
- svc_apiProxy --> pkg_client_connection
|
|
|
svc_approval --> pkg_acp
|
|
|
svc_approval --> pkg_tool_bash
|
|
|
svc_approval --> pkg_tools
|
|
|
svc_attachments --> pkg_api_session_controller
|
|
|
- svc_attachments --> pkg_host_apiproxy
|
|
|
svc_attachments --> pkg_llm_deepseek
|
|
|
svc_attachments --> pkg_llm_pi_ai
|
|
|
svc_attachments --> pkg_tool_fs
|
|
|
@@ -358,7 +353,7 @@ flowchart LR
|
|
|
svc_codeRuntime --> pkg_tools
|
|
|
svc_compaction --> pkg_compaction_basic
|
|
|
svc_cordisInspect --> pkg_tool_cordis
|
|
|
- svc_credentials --> pkg_host_apiproxy
|
|
|
+ svc_credentials --> pkg_api_settings_controller
|
|
|
svc_credentials --> pkg_llm_deepseek
|
|
|
svc_credentials --> pkg_llm_pi_ai
|
|
|
svc_deepseekLlmApiExtensions --> pkg_llm_deepseek
|
|
|
@@ -391,8 +386,11 @@ flowchart LR
|
|
|
svc_sessionPersistence --> pkg_session_query
|
|
|
svc_sessionPersistence --> pkg_session_query_sqlite
|
|
|
svc_sessionPersistence --> pkg_tool_bash
|
|
|
- svc_sessionProjectionCache --> pkg_host_apiproxy
|
|
|
- svc_sessionProjections --> pkg_host_apiproxy
|
|
|
+ svc_sessionProjectionCache --> pkg_api_session_controller
|
|
|
+ svc_sessionProjectionCache --> pkg_session_query
|
|
|
+ svc_sessionProjectionCache --> pkg_session_reference
|
|
|
+ svc_sessionProjectionCache --> pkg_subagent
|
|
|
+ svc_sessionProjections --> pkg_api_session_controller
|
|
|
svc_sessionProjections --> pkg_session_title
|
|
|
svc_sessionProjections --> pkg_tool_todo
|
|
|
svc_sessionQuery --> pkg_session_reference
|
|
|
@@ -405,7 +403,7 @@ flowchart LR
|
|
|
svc_sessions --> pkg_session_query
|
|
|
svc_sessions --> pkg_session_query_sqlite
|
|
|
svc_sessions --> pkg_subagent_in_process_driver
|
|
|
- svc_settings --> pkg_host_apiproxy
|
|
|
+ svc_settings --> pkg_api_settings_controller
|
|
|
svc_settings --> pkg_llm_deepseek
|
|
|
svc_settings --> pkg_llm_pi_ai
|
|
|
svc_shell --> pkg_hooks_claude_code
|
|
|
@@ -465,7 +463,7 @@ flowchart LR
|
|
|
|
|
|
| ctx key | Role | Owner | Implementations | Direct consumers | Companion plugins | Note |
|
|
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
|
-| `ctx.attachments` | `seam` | [`attachment`](../packages/attachment/attachment) | [`attachment-local`](../packages/attachment/attachment-local) | [`api-session-controller`](../packages/api/session-controller), [`host-apiproxy`](../packages/host/apiproxy), [`tool-fs`](../packages/fs/tool-fs), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`llm-deepseek`](../packages/llm/llm-deepseek) | - | The host commits accepted images before session events; provider adapters resolve authorized durable references into provider-native content. |
|
|
|
+| `ctx.attachments` | `seam` | [`attachment`](../packages/attachment/attachment) | [`attachment-local`](../packages/attachment/attachment-local) | [`api-session-controller`](../packages/api/session-controller), [`tool-fs`](../packages/fs/tool-fs), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`llm-deepseek`](../packages/llm/llm-deepseek) | - | The host commits accepted images before session events; provider adapters resolve authorized durable references into provider-native content. |
|
|
|
| `ctx.llm` | `seam` | [`llm`](../packages/llm/llm) | [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`llm-replay`](../packages/test-support/llm-replay) | [`agent-loop`](../packages/core/agent-loop), [`compaction-basic`](../packages/compaction/compaction-basic) | - | Adapters register provider implementations; the loop and compaction call the provider-neutral stream service. |
|
|
|
| `ctx.deepseekLlmApiExtensions` | `seam` | [`deepseek-llm-api-extensions`](../packages/llm/deepseek-llm-api-extensions) | [`session-log-deepseek`](../packages/session/session-log-deepseek), [`plugin-package-inventory-deepseek`](../packages/llm/plugin-package-inventory-deepseek) | [`llm-deepseek`](../packages/llm/llm-deepseek) | - | Plugins prepare independent top-level fields; the official adapter merges them and commits their delivery state after HTTP acceptance. |
|
|
|
| `ctx.tokenMeter` | `core` | [`token-meter`](../packages/llm/token-meter) | - | [`compaction-basic`](../packages/compaction/compaction-basic) | - | Owns isolated per-session replay folds; pressure consumers share immutable revisioned measurements. |
|
|
|
@@ -482,9 +480,9 @@ flowchart LR
|
|
|
| `ctx.typert` | `core` | [`typert-registry`](../packages/typert/registry) | - | [`typert-loader`](../packages/typert/loader), [`api-gateway`](../packages/api/gateway) | - | Plugins register live zod contributions directly or through dsh-typert-loader; the API gateway consumes invocation descriptors and providers, while other runtime consumers query schemas and reflection metadata at their own edges. |
|
|
|
| `ctx.typertGateway` | `core` | [`api-gateway`](../packages/api/gateway) | - | - | - | Associates generated Remote descriptors with live Cordis services, resolves registered identities, and exposes unary calls through the shared Connection RPC carrier. |
|
|
|
| `ctx.sessionPersistence` | `seam` | [`session-persistence`](../packages/session/session-persistence) | [`session-persistence-jsonl`](../packages/session/session-persistence-jsonl), [`session-persistence-sqlite`](../packages/session/session-persistence-sqlite) | [`agent-loop`](../packages/core/agent-loop), [`tool-bash`](../packages/shell/tool-bash), [`hooks-claude-code`](../packages/hooks/hooks-claude-code), [`hooks-codex`](../packages/hooks/hooks-codex), [`session-query`](../packages/session-query/session-query), [`session-query-sqlite`](../packages/session-query/session-query-sqlite), [`message-feedback`](../packages/feedback/message-feedback) | - | Backends persist the same SessionEvent vocabulary; apps choose a backend at composition time. |
|
|
|
-| `ctx.settings` | `seam` | [`settings`](../packages/settings/settings) | [`settings-file`](../packages/settings/settings-file) | [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`host-apiproxy`](../packages/host/apiproxy) | - | Plugins register namespace schemas and resolve layered values; providers store the raw document. The LLM adapters register their entry config as the composition base under the user section; the web gateway serves redacted layered descriptors and writes the user layer. |
|
|
|
+| `ctx.settings` | `seam` | [`settings`](../packages/settings/settings) | [`settings-file`](../packages/settings/settings-file) | [`api-settings-controller`](../packages/api/settings-controller), [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai) | - | Plugins register namespace schemas and resolve layered values; providers store the raw document. The LLM adapters register their entry config as the composition base under the user section; the settings controller serves redacted layered descriptors and writes the user layer. |
|
|
|
| `ctx.subagentModelSelection` | `core` | [`tool-subagent`](../packages/subagent/tool-subagent) | - | [`tool-subagent`](../packages/subagent/tool-subagent) | - | Owns the default-off settings namespace that Agent-scoped delegation tools sample when composing a new top-level Session. |
|
|
|
-| `ctx.credentials` | `seam` | [`credentials`](../packages/credentials/credentials) | [`credentials-local`](../packages/credentials/credentials-local) | [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`host-apiproxy`](../packages/host/apiproxy) | - | Configuration carries references to secrets; providers own the values. Consumers resolve per operation, so a rotated credential reaches the very next request; the web gateway exposes value-free views and write-only storage. |
|
|
|
+| `ctx.credentials` | `seam` | [`credentials`](../packages/credentials/credentials) | [`credentials-local`](../packages/credentials/credentials-local) | [`api-settings-controller`](../packages/api/settings-controller), [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai) | - | Configuration carries references to secrets; providers own the values. Consumers resolve per operation, so a rotated credential reaches the very next request; the settings controller exposes value-free views and write-only storage. |
|
|
|
| `ctx.authorization` | `seam` | [`authorization`](../packages/credentials/authorization) | - | [`llm-pi-ai`](../packages/llm/llm-pi-ai) | - | Flows are registered by the plugin that knows how to obtain one credential and keyed by the record they write; the seam owns the conversation and the one-attempt-per-key lifecycle, never the protocol. |
|
|
|
| `ctx.sessionTelemetry` | `seam` | [`session-telemetry`](../packages/session/session-telemetry) | [`session-telemetry-otel`](../packages/session/session-telemetry-otel) | - | - | The seam captures, redacts, and hands session records to one backend; nothing else consumes the service — its output leaves the process. |
|
|
|
| `ctx.storage` | `seam` | [`storage`](../packages/storage/storage) | [`storage-json`](../packages/storage/storage-json), [`storage-sqlite`](../packages/storage/storage-sqlite) | [`storage-domain`](../packages/storage/storage-domain) | - | Backends register side by side under names; data forms (domain first) mount on the hub and translate typed operations into opaque KV-unit primitives. |
|
|
|
@@ -501,11 +499,11 @@ flowchart LR
|
|
|
| `ctx.planMode` | `core` | [`plan-mode`](../packages/plan/plan-mode) | - | - | - | Folds logged plan/mode state, flushes user selections at turn boundaries, renders deployment-owned guidance, registers /plan, and keeps the plan-exit schema stable across transitions. |
|
|
|
| `ctx.agentPresets` | `core` | [`agent-presets`](../packages/preset/agent-presets) | - | - | - | Discovers preset directories over trusted and user-authored roots and mounts one preset cordis.yml under an agent scope during creation, rejecting a row that never activates or that publishes into the root service realm. |
|
|
|
| `ctx.commands` | `core` | [`commands`](../packages/interaction/commands) | - | - | - | Plugins register direct human commands without sending invocations to the model. |
|
|
|
-| `ctx.sessionProjections` | `core` | [`session-projection`](../packages/session/session-projection) | - | [`tool-todo`](../packages/todo/tool-todo), [`session-title`](../packages/session/session-title), [`host-apiproxy`](../packages/host/apiproxy) | - | Domains register state-driven fold units; the eager drive keeps per-session watermark states and api-proxy serves baselines and pushes changed values. |
|
|
|
-| `ctx.sessionProjectionCache` | `core` | [`session-projection-cache`](../packages/session/session-projection-cache) | - | [`host-apiproxy`](../packages/host/apiproxy) | - | Durably checkpoints projection unit states per session (throttled + turn/end/detach mandatory points) and serves the cold-read ladder: cache row + persistence tail replay, so listings never load full logs. |
|
|
|
+| `ctx.sessionProjections` | `core` | [`session-projection`](../packages/session/session-projection) | - | [`api-session-controller`](../packages/api/session-controller), [`tool-todo`](../packages/todo/tool-todo), [`session-title`](../packages/session/session-title) | - | Domains register state-driven fold units; the eager drive keeps per-session watermark states and the Session controller serves baselines and pushes changed values. |
|
|
|
+| `ctx.sessionProjectionCache` | `core` | [`session-projection-cache`](../packages/session/session-projection-cache) | - | [`api-session-controller`](../packages/api/session-controller), [`session-query`](../packages/session-query/session-query), [`session-reference`](../packages/context/session-reference), [`subagent`](../packages/subagent/subagent) | - | Durably checkpoints projection unit states per session (throttled + turn/end/detach mandatory points) and serves the cold-read ladder: cache row + persistence tail replay, so listings never load full logs. |
|
|
|
| `ctx.skills` | `seam` | [`skill`](../packages/skill/skill) | [`skill-badge`](../packages/skill/skill-badge), [`skill-filesystem`](../packages/skill/skill-filesystem) | [`tool-skill`](../packages/skill/tool-skill) | - | Merges provider skill catalogs; tool-skill renders the session-prefix catalog and loads complete skill bodies. |
|
|
|
| `ctx.agents` | `core` | [`agent`](../packages/core/agent) | - | [`agent-loop`](../packages/core/agent-loop), [`acp`](../packages/acp/acp), [`subagent-in-process-driver`](../packages/subagent/subagent-in-process-driver) | - | Owns live Agent handles, the create/resume factory seam, and process-local initiator propagation. |
|
|
|
-| `ctx.agentDefaultModel` | `core` | [`agent-default-model`](../packages/core/agent-default-model) | - | [`headless`](../packages/bundle/headless), [`host-apiproxy`](../packages/host/apiproxy) | - | Layers the default ModelSelection through settings so direct and Host-backed Agent entry points share one state owner. |
|
|
|
+| `ctx.agentDefaultModel` | `core` | [`agent-default-model`](../packages/core/agent-default-model) | - | [`api-session-controller`](../packages/api/session-controller), [`headless`](../packages/bundle/headless) | - | Layers the default ModelSelection through settings so direct and Host-backed Agent entry points share one state owner. |
|
|
|
| `ctx.agentLoop` | `bundle` | [`agent-loop`](../packages/core/agent-loop) | - | [`agent-spine-demo`](../packages/examples/agent-spine-demo) | - | The one concrete loop plugin; extension packages depend on dsh-agent events and services, not on this package. |
|
|
|
| `ctx.goals` | `core` | [`goal`](../packages/goal/goal) | - | - | - | Folds revisioned objective state from the session log and keeps live continuation activation process-local. |
|
|
|
| `ctx.e2b` | `core` | [`e2b`](../packages/e2b/e2b) | - | [`fs-e2b`](../packages/e2b/fs-e2b), [`subprocess-e2b`](../packages/e2b/subprocess-e2b) | - | Owns one shared E2B SDK handle, remote working directory, and final sandbox disposition so both fundamental E2B providers inhabit the same Linux runtime. |
|
|
|
@@ -532,7 +530,6 @@ flowchart LR
|
|
|
| `ctx.workflowEngine` | `seam` | [`workflow`](../packages/workflow/workflow) | [`workflow-worker-thread`](../packages/workflow/workflow-worker-thread) | [`tool-workflow`](../packages/workflow/tool-workflow), [`tool-ralph`](../packages/workflow/tool-ralph) | - | One engine per context, as in bash, with no named-provider registry; the general workflow and fixed Ralph consumers start runs whose agent() calls fan out through ctx.subagents. |
|
|
|
| `ctx.webhookRuntime` | `core` | [`webhook`](../packages/webhook/webhook) | - | [`webhook-github`](../packages/webhook/webhook-github) | - | Provider adapters dispatch authenticated deliveries; trusted plugins register independent process-local rules, and the runtime turns non-null results into ordinary Workspace-backed Sessions without delivery or completion state. |
|
|
|
| `ctx.lsp` | `seam` | [`lsp`](../packages/lsp/lsp) | [`lsp-stdio`](../packages/lsp/lsp-stdio) | [`tool-lsp`](../packages/lsp/tool-lsp) | - | Provider registration and selection plus normalized query execution over exactly four operations; the seam offers no protocol escape hatch, so a backend translates into the normalized request and result. |
|
|
|
-| `ctx.apiProxy` | `core` | [`host-apiproxy`](../packages/host/apiproxy) | - | [`client-connection`](../packages/client/connection) | - | The transport-agnostic host gateway face: it dispatches browser API calls, and each open host stream subscribes to the events it forwards rather than being pushed to through a broadcast verb. |
|
|
|
| `ctx.dynamicCordisRunner` | `core` | [`cordis-host-runner`](../packages/extensions/cordis-host-runner) | - | [`tool-cordis`](../packages/extensions/tool-cordis) | - | Owns the in-memory definition registry, the vm sandbox for host halves, and the request-run round trip; browser pages reach the same service over the wire through its remote namespace. |
|
|
|
| `ctx.cordisInspect` | `core` | [`cordis-host-runner`](../packages/extensions/cordis-host-runner) | - | [`tool-cordis`](../packages/extensions/tool-cordis) | - | Registers host inspect providers, mirrors the client provider manifest, and routes client queries through the dynamic Cordis transport. |
|
|
|
|