better-dsh 0.2.3-e → 0.2.3-g

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/docs/50_test-reports/2026-09-13-preact-ui-shell/345/256/236/346/265/213/346/212/245/345/221/212.md +1 -1
  2. package/docs/50_test-reports/2026-09-14-4999-skill/346/270/205/345/215/225/344/270/216lsp-gate/345/256/236/346/265/213/346/212/245/345/221/212.md +54 -0
  3. package/docs/specs/agent/spec.md +54 -0
  4. package/docs/specs/ast/spec.md +34 -0
  5. package/docs/specs/compaction-recall/spec.md +46 -0
  6. package/docs/specs/ctx/spec.md +107 -0
  7. package/docs/specs/dsh/spec.md +47 -0
  8. package/docs/specs/dvc/spec.md +87 -0
  9. package/docs/specs/escalation-guidance/spec.md +44 -0
  10. package/docs/specs/fs-scheme-resolution/spec.md +37 -0
  11. package/docs/specs/hash-edit/spec.md +41 -0
  12. package/docs/specs/http-read/spec.md +73 -0
  13. package/docs/specs/kernel-provisioning/spec.md +53 -0
  14. package/docs/specs/lsp/spec.md +121 -0
  15. package/docs/specs/mobile-layout/spec.md +108 -0
  16. package/docs/specs/model-failover/spec.md +20 -0
  17. package/docs/specs/preact-ui-shell/spec.md +22 -0
  18. package/docs/specs/repl-dispatch-resilience/spec.md +21 -0
  19. package/docs/specs/skill/spec.md +58 -0
  20. package/docs/specs/tool-surface/spec.md +222 -0
  21. package/docs/specs/url-schema/spec.md +148 -0
  22. package/docs/specs/web-trust-fence/spec.md +43 -0
  23. package/dsh-docs/AGENTS.md +75 -0
  24. package/dsh-docs/agent-lifecycle.md +84 -0
  25. package/dsh-docs/agent-lifecycle.zh.md +86 -0
  26. package/dsh-docs/api-gateway.md +164 -0
  27. package/dsh-docs/api-gateway.zh.md +164 -0
  28. package/dsh-docs/architecture.md +150 -0
  29. package/dsh-docs/architecture.zh.md +154 -0
  30. package/dsh-docs/capability-seams.md +543 -0
  31. package/dsh-docs/capability-seams.zh.md +545 -0
  32. package/dsh-docs/config-catalog.md +3473 -0
  33. package/dsh-docs/config-catalog.zh.md +3474 -0
  34. package/dsh-docs/cookbook/adding-a-package.md +117 -0
  35. package/dsh-docs/cookbook/adding-a-package.zh.md +119 -0
  36. package/dsh-docs/cookbook/adding-a-remote-api.md +197 -0
  37. package/dsh-docs/cookbook/adding-a-remote-api.zh.md +197 -0
  38. package/dsh-docs/cookbook/adding-a-settings-card.md +102 -0
  39. package/dsh-docs/cookbook/adding-a-settings-card.zh.md +102 -0
  40. package/dsh-docs/cookbook/adding-a-tool.md +101 -0
  41. package/dsh-docs/cookbook/adding-a-tool.zh.md +103 -0
  42. package/dsh-docs/cookbook/adding-a-vendored-package.md +59 -0
  43. package/dsh-docs/cookbook/adding-a-vendored-package.zh.md +59 -0
  44. package/dsh-docs/cookbook/adding-an-llm-adapter.md +43 -0
  45. package/dsh-docs/cookbook/adding-an-llm-adapter.zh.md +43 -0
  46. package/dsh-docs/cookbook/extension-cookbook.md +132 -0
  47. package/dsh-docs/cookbook/extension-cookbook.zh.md +136 -0
  48. package/dsh-docs/cookbook/maintaining-dsh-code-review.md +64 -0
  49. package/dsh-docs/cookbook/maintaining-dsh-code-review.zh.md +64 -0
  50. package/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
  51. package/dsh-docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
  52. package/dsh-docs/cordis-api/context.md +364 -0
  53. package/dsh-docs/cordis-api/context.zh.md +366 -0
  54. package/dsh-docs/cordis-api/events.md +207 -0
  55. package/dsh-docs/cordis-api/events.zh.md +209 -0
  56. package/dsh-docs/cordis-api/fiber.md +375 -0
  57. package/dsh-docs/cordis-api/fiber.zh.md +377 -0
  58. package/dsh-docs/cordis-api/inherited.md +39 -0
  59. package/dsh-docs/cordis-api/registry.md +152 -0
  60. package/dsh-docs/cordis-api/registry.zh.md +154 -0
  61. package/dsh-docs/cordis-api/service.md +102 -0
  62. package/dsh-docs/cordis-api/service.zh.md +104 -0
  63. package/dsh-docs/cordis-primer.md +45 -0
  64. package/dsh-docs/cordis-primer.zh.md +51 -0
  65. package/dsh-docs/cordis-tutorial/01-first-plugin.md +95 -0
  66. package/dsh-docs/cordis-tutorial/01-first-plugin.zh.md +95 -0
  67. package/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
  68. package/dsh-docs/cordis-tutorial/02-lifecycle-and-effects.zh.md +98 -0
  69. package/dsh-docs/cordis-tutorial/03-services.md +98 -0
  70. package/dsh-docs/cordis-tutorial/03-services.zh.md +98 -0
  71. package/dsh-docs/cordis-tutorial/04-events.md +144 -0
  72. package/dsh-docs/cordis-tutorial/04-events.zh.md +144 -0
  73. package/dsh-docs/cordis-tutorial/05-config.md +84 -0
  74. package/dsh-docs/cordis-tutorial/05-config.zh.md +84 -0
  75. package/dsh-docs/cordis-tutorial/06-composition-and-hmr.md +113 -0
  76. package/dsh-docs/cordis-tutorial/06-composition-and-hmr.zh.md +113 -0
  77. package/dsh-docs/cordis-tutorial/07-into-the-harness.md +108 -0
  78. package/dsh-docs/cordis-tutorial/07-into-the-harness.zh.md +108 -0
  79. package/dsh-docs/cordis-tutorial/index.md +60 -0
  80. package/dsh-docs/cordis-tutorial/index.zh.md +62 -0
  81. package/dsh-docs/deepseek-llm-api-wire-extensions.md +163 -0
  82. package/dsh-docs/deepseek-llm-api-wire-extensions.zh.md +163 -0
  83. package/dsh-docs/defensive-patterns.md +33 -0
  84. package/dsh-docs/defensive-patterns.zh.md +35 -0
  85. package/dsh-docs/development.md +167 -0
  86. package/dsh-docs/development.zh.md +173 -0
  87. package/dsh-docs/event-producer-consumer.md +86 -0
  88. package/dsh-docs/event-producer-consumer.zh.md +88 -0
  89. package/dsh-docs/glossary.md +45 -0
  90. package/dsh-docs/glossary.zh.md +45 -0
  91. package/dsh-docs/graph-atlas.md +22 -0
  92. package/dsh-docs/graph-atlas.zh.md +24 -0
  93. package/dsh-docs/i18n/README.md +60 -0
  94. package/dsh-docs/i18n/README.zh.md +62 -0
  95. package/dsh-docs/i18n/style-samples.md +87 -0
  96. package/dsh-docs/i18n/terminology.md +214 -0
  97. package/dsh-docs/i18n/translation-prompt.md +263 -0
  98. package/dsh-docs/i18n/translation-rules.md +69 -0
  99. package/dsh-docs/i18n/translation-rules.zh.md +69 -0
  100. package/dsh-docs/module-graph.md +1411 -0
  101. package/dsh-docs/module-graph.zh.md +1413 -0
  102. package/dsh-docs/persistence-catalog.md +1075 -0
  103. package/dsh-docs/persistence-catalog.zh.md +1077 -0
  104. package/dsh-docs/postmortem/0001-acp-default-export-drops-inject.md +113 -0
  105. package/dsh-docs/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
  106. package/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
  107. package/dsh-docs/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
  108. package/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
  109. package/dsh-docs/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
  110. package/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
  111. package/dsh-docs/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
  112. package/dsh-docs/postmortem/README.md +18 -0
  113. package/dsh-docs/postmortem/README.zh.md +18 -0
  114. package/dsh-docs/rescope.md +53 -0
  115. package/dsh-docs/rescope.zh.md +53 -0
  116. package/dsh-docs/subsystems/README.md +61 -0
  117. package/dsh-docs/subsystems/README.zh.md +61 -0
  118. package/dsh-docs/subsystems/agent-team.md +207 -0
  119. package/dsh-docs/subsystems/agent-team.zh.md +207 -0
  120. package/dsh-docs/subsystems/approval.md +170 -0
  121. package/dsh-docs/subsystems/approval.zh.md +170 -0
  122. package/dsh-docs/subsystems/attachment.md +351 -0
  123. package/dsh-docs/subsystems/attachment.zh.md +351 -0
  124. package/dsh-docs/subsystems/client-modules.md +168 -0
  125. package/dsh-docs/subsystems/client-modules.zh.md +168 -0
  126. package/dsh-docs/subsystems/code-runtime.md +195 -0
  127. package/dsh-docs/subsystems/code-runtime.zh.md +195 -0
  128. package/dsh-docs/subsystems/commands.md +219 -0
  129. package/dsh-docs/subsystems/commands.zh.md +219 -0
  130. package/dsh-docs/subsystems/compaction.md +238 -0
  131. package/dsh-docs/subsystems/compaction.zh.md +238 -0
  132. package/dsh-docs/subsystems/conversation.md +258 -0
  133. package/dsh-docs/subsystems/conversation.zh.md +258 -0
  134. package/dsh-docs/subsystems/core.md +1209 -0
  135. package/dsh-docs/subsystems/core.zh.md +1219 -0
  136. package/dsh-docs/subsystems/credentials.md +329 -0
  137. package/dsh-docs/subsystems/credentials.zh.md +329 -0
  138. package/dsh-docs/subsystems/extensions.md +382 -0
  139. package/dsh-docs/subsystems/extensions.zh.md +382 -0
  140. package/dsh-docs/subsystems/feedback.md +266 -0
  141. package/dsh-docs/subsystems/feedback.zh.md +266 -0
  142. package/dsh-docs/subsystems/filesystem.md +505 -0
  143. package/dsh-docs/subsystems/filesystem.zh.md +505 -0
  144. package/dsh-docs/subsystems/goal.md +277 -0
  145. package/dsh-docs/subsystems/goal.zh.md +277 -0
  146. package/dsh-docs/subsystems/invariants.md +88 -0
  147. package/dsh-docs/subsystems/invariants.zh.md +88 -0
  148. package/dsh-docs/subsystems/jobs.md +290 -0
  149. package/dsh-docs/subsystems/jobs.zh.md +290 -0
  150. package/dsh-docs/subsystems/llm-streaming.md +1080 -0
  151. package/dsh-docs/subsystems/llm-streaming.zh.md +1086 -0
  152. package/dsh-docs/subsystems/lsp.md +202 -0
  153. package/dsh-docs/subsystems/lsp.zh.md +202 -0
  154. package/dsh-docs/subsystems/permission-presets.md +131 -0
  155. package/dsh-docs/subsystems/permission-presets.zh.md +131 -0
  156. package/dsh-docs/subsystems/persistence.md +395 -0
  157. package/dsh-docs/subsystems/persistence.zh.md +395 -0
  158. package/dsh-docs/subsystems/plan.md +87 -0
  159. package/dsh-docs/subsystems/plan.zh.md +87 -0
  160. package/dsh-docs/subsystems/sandbox.md +220 -0
  161. package/dsh-docs/subsystems/sandbox.zh.md +220 -0
  162. package/dsh-docs/subsystems/schedule.md +192 -0
  163. package/dsh-docs/subsystems/schedule.zh.md +192 -0
  164. package/dsh-docs/subsystems/scope.md +59 -0
  165. package/dsh-docs/subsystems/scope.zh.md +59 -0
  166. package/dsh-docs/subsystems/session-projection.md +354 -0
  167. package/dsh-docs/subsystems/session-projection.zh.md +354 -0
  168. package/dsh-docs/subsystems/session-query.md +509 -0
  169. package/dsh-docs/subsystems/session-query.zh.md +509 -0
  170. package/dsh-docs/subsystems/session-reference.md +219 -0
  171. package/dsh-docs/subsystems/session-reference.zh.md +219 -0
  172. package/dsh-docs/subsystems/session-telemetry.md +194 -0
  173. package/dsh-docs/subsystems/session-telemetry.zh.md +194 -0
  174. package/dsh-docs/subsystems/session-title.md +204 -0
  175. package/dsh-docs/subsystems/session-title.zh.md +204 -0
  176. package/dsh-docs/subsystems/session.md +1155 -0
  177. package/dsh-docs/subsystems/session.zh.md +1159 -0
  178. package/dsh-docs/subsystems/settings.md +405 -0
  179. package/dsh-docs/subsystems/settings.zh.md +405 -0
  180. package/dsh-docs/subsystems/shell.md +303 -0
  181. package/dsh-docs/subsystems/shell.zh.md +303 -0
  182. package/dsh-docs/subsystems/skills.md +354 -0
  183. package/dsh-docs/subsystems/skills.zh.md +354 -0
  184. package/dsh-docs/subsystems/slots.md +175 -0
  185. package/dsh-docs/subsystems/slots.zh.md +175 -0
  186. package/dsh-docs/subsystems/spill.md +117 -0
  187. package/dsh-docs/subsystems/spill.zh.md +117 -0
  188. package/dsh-docs/subsystems/storage.md +260 -0
  189. package/dsh-docs/subsystems/storage.zh.md +260 -0
  190. package/dsh-docs/subsystems/subagent.md +766 -0
  191. package/dsh-docs/subsystems/subagent.zh.md +770 -0
  192. package/dsh-docs/subsystems/subprocess.md +324 -0
  193. package/dsh-docs/subsystems/subprocess.zh.md +324 -0
  194. package/dsh-docs/subsystems/system-prompt.md +220 -0
  195. package/dsh-docs/subsystems/system-prompt.zh.md +220 -0
  196. package/dsh-docs/subsystems/terminal.md +184 -0
  197. package/dsh-docs/subsystems/terminal.zh.md +184 -0
  198. package/dsh-docs/subsystems/todo.md +32 -0
  199. package/dsh-docs/subsystems/todo.zh.md +32 -0
  200. package/dsh-docs/subsystems/token-meter.md +105 -0
  201. package/dsh-docs/subsystems/token-meter.zh.md +105 -0
  202. package/dsh-docs/subsystems/tools.md +720 -0
  203. package/dsh-docs/subsystems/tools.zh.md +720 -0
  204. package/dsh-docs/subsystems/typert.md +343 -0
  205. package/dsh-docs/subsystems/typert.zh.md +343 -0
  206. package/dsh-docs/subsystems/user-questions.md +178 -0
  207. package/dsh-docs/subsystems/user-questions.zh.md +178 -0
  208. package/dsh-docs/subsystems/web-client.md +95 -0
  209. package/dsh-docs/subsystems/web-client.zh.md +95 -0
  210. package/dsh-docs/subsystems/web-server.md +154 -0
  211. package/dsh-docs/subsystems/web-server.zh.md +154 -0
  212. package/dsh-docs/subsystems/web.md +206 -0
  213. package/dsh-docs/subsystems/web.zh.md +206 -0
  214. package/dsh-docs/subsystems/webhook.md +70 -0
  215. package/dsh-docs/subsystems/webhook.zh.md +70 -0
  216. package/dsh-docs/subsystems/workflow.md +278 -0
  217. package/dsh-docs/subsystems/workflow.zh.md +278 -0
  218. package/dsh-docs/subsystems/workspace.md +321 -0
  219. package/dsh-docs/subsystems/workspace.zh.md +321 -0
  220. package/dsh-docs/testing.md +54 -0
  221. package/dsh-docs/testing.zh.md +54 -0
  222. package/dsh-docs/tool-catalog.md +2225 -0
  223. package/dsh-docs/tool-catalog.zh.md +2233 -0
  224. package/dsh-docs/tool-execution-pipeline.md +62 -0
  225. package/dsh-docs/tool-execution-pipeline.zh.md +64 -0
  226. package/dsh-docs/user/develop/basic/config.md +106 -0
  227. package/dsh-docs/user/develop/basic/config.zh.md +106 -0
  228. package/dsh-docs/user/develop/basic/index.md +144 -0
  229. package/dsh-docs/user/develop/basic/index.zh.md +144 -0
  230. package/dsh-docs/user/develop/basic/publish.md +183 -0
  231. package/dsh-docs/user/develop/basic/publish.zh.md +183 -0
  232. package/dsh-docs/user/develop/basic/tool.md +52 -0
  233. package/dsh-docs/user/develop/basic/tool.zh.md +52 -0
  234. package/dsh-docs/user/develop/framework/events.md +143 -0
  235. package/dsh-docs/user/develop/framework/events.zh.md +143 -0
  236. package/dsh-docs/user/develop/framework/index.md +137 -0
  237. package/dsh-docs/user/develop/framework/index.zh.md +137 -0
  238. package/dsh-docs/user/develop/framework/service.md +148 -0
  239. package/dsh-docs/user/develop/framework/service.zh.md +150 -0
  240. package/dsh-docs/user/develop/practice/dynamic-cordis.md +15 -0
  241. package/dsh-docs/user/develop/practice/dynamic-cordis.zh.md +15 -0
  242. package/dsh-docs/user/develop/practice/index.md +155 -0
  243. package/dsh-docs/user/develop/practice/index.zh.md +155 -0
  244. package/dsh-docs/user/develop/practice/llm-adapter.md +189 -0
  245. package/dsh-docs/user/develop/practice/llm-adapter.zh.md +189 -0
  246. package/dsh-docs/user/guide/github-review.md +102 -0
  247. package/dsh-docs/user/guide/github-review.zh.md +102 -0
  248. package/dsh-docs/user/guide/index.md +30 -0
  249. package/dsh-docs/user/guide/index.zh.md +30 -0
  250. package/dsh-docs/user/guide/mcp-memory.md +101 -0
  251. package/dsh-docs/user/guide/mcp-memory.zh.md +101 -0
  252. package/dsh-docs/user/guide/network-proxy.md +85 -0
  253. package/dsh-docs/user/guide/network-proxy.zh.md +85 -0
  254. package/dsh-docs/user/guide/providers.md +190 -0
  255. package/dsh-docs/user/guide/providers.zh.md +190 -0
  256. package/dsh-docs/user/guide/python-sdk.md +150 -0
  257. package/dsh-docs/user/guide/python-sdk.zh.md +150 -0
  258. package/dsh-docs/user/guide/schedule.md +21 -0
  259. package/dsh-docs/user/guide/schedule.zh.md +21 -0
  260. package/dsh-docs/user/index.md +11 -0
  261. package/dsh-docs/user/index.zh.md +11 -0
  262. package/dsh-docs/web-styling.md +29 -0
  263. package/dsh-docs/web-styling.zh.md +29 -0
  264. package/lib/client/index.js +268 -38
  265. package/lib/fs-aware/sandbox-plugin.js +1 -1
  266. package/lib/index.js +1112 -1261
  267. package/lib/lsp-server-registry-B8DNonhS.js +3 -0
  268. package/lib/lsp-server-registry-BexQagaK.js +943 -0
  269. package/lib/{wrap-DC8O3SYz.js → wrap-JFjcWwZf.js} +42 -16
  270. package/package.json +2 -1
@@ -0,0 +1,543 @@
1
+ <!-- Generated by scripts/gen-doc-graphs.ts - do not edit by hand.
2
+ Run `pnpm run gen-doc-graphs` to regenerate. -->
3
+
4
+ # Capability Seams And Core Services
5
+
6
+ A service can be a core spine service, a swappable capability seam, or a bundle/composition point. The graph shows the package that owns the service declaration, known implementation packages, and packages that consume the service directly.
7
+
8
+ ```mermaid
9
+ flowchart LR
10
+ pkg_attachment["attachment"]
11
+ svc_attachments["ctx.attachments<br/>Durable binary attachment storage"]
12
+ pkg_attachment_local["attachment-local"]
13
+ pkg_api_session_controller["api-session-controller"]
14
+ pkg_tool_fs["tool-fs"]
15
+ pkg_llm_pi_ai["llm-pi-ai"]
16
+ pkg_llm_deepseek["llm-deepseek"]
17
+ pkg_client_file_upload["client-file-upload"]
18
+ svc_fileUploads["ctx.fileUploads<br/>Agent-scoped staged file uploads"]
19
+ pkg_llm["llm"]
20
+ svc_llm["ctx.llm<br/>LLM adapter registry"]
21
+ pkg_llm_replay["llm-replay"]
22
+ pkg_agent_loop["agent-loop"]
23
+ pkg_compaction_basic["compaction-basic"]
24
+ pkg_deepseek_llm_api_extensions["deepseek-llm-api-extensions"]
25
+ svc_deepseekLlmApiExtensions["ctx.deepseekLlmApiExtensions<br/>Official DeepSeek request extensions"]
26
+ pkg_session_log_deepseek["session-log-deepseek"]
27
+ pkg_plugin_package_inventory_deepseek["plugin-package-inventory-deepseek"]
28
+ pkg_token_meter["token-meter"]
29
+ svc_tokenMeter["ctx.tokenMeter<br/>Replay token measurement"]
30
+ pkg_compaction_tool_result_pruner["compaction-tool-result-pruner"]
31
+ svc_toolResultPruner["ctx.toolResultPruner<br/>Model-free tool-result pruning"]
32
+ pkg_session["session"]
33
+ svc_sessions["ctx.sessions<br/>In-memory session store"]
34
+ pkg_agent["agent"]
35
+ pkg_session_persistence["session-persistence"]
36
+ pkg_session_query["session-query"]
37
+ pkg_session_query_sqlite["session-query-sqlite"]
38
+ pkg_subagent_in_process_driver["subagent-in-process-driver"]
39
+ pkg_invariants["invariants"]
40
+ pkg_message_feedback["message-feedback"]
41
+ svc_sessionController["ctx.sessionController<br/>Host Session Remote controller"]
42
+ svc_sessionFileReferences["ctx.sessionFileReferences<br/>Session-addressed file-reference Remote adapter"]
43
+ svc_sessionSkillCatalog["ctx.sessionSkillCatalog<br/>Session-addressed skill Remote adapter"]
44
+ pkg_api_settings_controller["api-settings-controller"]
45
+ svc_credentialsController["ctx.credentialsController<br/>Host credential-surface Remote controller"]
46
+ svc_settingsController["ctx.settingsController<br/>Host settings-surface Remote controller"]
47
+ pkg_api_workspace_controller["api-workspace-controller"]
48
+ svc_workspaceController["ctx.workspaceController<br/>Host Workspace Remote controller"]
49
+ svc_directoryPickerController["ctx.directoryPickerController<br/>Host directory-picking Remote controller"]
50
+ svc_invariants["ctx.invariants<br/>Package-owned invariant registry"]
51
+ pkg_scope["scope"]
52
+ pkg_typert_registry["typert-registry"]
53
+ svc_typert["ctx.typert<br/>Runtime type registry"]
54
+ pkg_typert_loader["typert-loader"]
55
+ pkg_api_gateway["api-gateway"]
56
+ svc_typertGateway["ctx.typertGateway<br/>Typert Host invocation gateway"]
57
+ svc_sessionPersistence["ctx.sessionPersistence<br/>Durable session persistence seam"]
58
+ pkg_session_persistence_jsonl["session-persistence-jsonl"]
59
+ pkg_tool_bash["tool-bash"]
60
+ pkg_hooks_claude_code["hooks-claude-code"]
61
+ pkg_hooks_codex["hooks-codex"]
62
+ pkg_settings["settings"]
63
+ svc_settings["ctx.settings<br/>User-settings seam"]
64
+ pkg_settings_file["settings-file"]
65
+ pkg_tool_subagent["tool-subagent"]
66
+ svc_subagentModelSelection["ctx.subagentModelSelection<br/>Subagent model-selection preference"]
67
+ pkg_credentials["credentials"]
68
+ svc_credentials["ctx.credentials<br/>Credential seam"]
69
+ pkg_credentials_local["credentials-local"]
70
+ pkg_authorization["authorization"]
71
+ svc_authorization["ctx.authorization<br/>Authorization flow registry"]
72
+ pkg_session_telemetry["session-telemetry"]
73
+ svc_sessionTelemetry["ctx.sessionTelemetry<br/>Session telemetry seam"]
74
+ pkg_session_telemetry_otel["session-telemetry-otel"]
75
+ pkg_storage["storage"]
76
+ svc_storage["ctx.storage<br/>Non-session storage hub"]
77
+ pkg_storage_json["storage-json"]
78
+ pkg_storage_sqlite["storage-sqlite"]
79
+ pkg_storage_domain["storage-domain"]
80
+ svc_storageDomain["ctx.storageDomain<br/>Domain data facility"]
81
+ pkg_workspace["workspace"]
82
+ svc_messageFeedback["ctx.messageFeedback<br/>Lifecycle-bound message feedback"]
83
+ svc_workspaceRegistry["ctx.workspaceRegistry<br/>Workspace entity registry"]
84
+ svc_sessionQuery["ctx.sessionQuery<br/>Session reads, traces, filters, and search"]
85
+ pkg_session_reference["session-reference"]
86
+ pkg_tool_session_query["tool-session-query"]
87
+ pkg_file_reference["file-reference"]
88
+ svc_fileReferences["ctx.fileReferences<br/>File reference discovery"]
89
+ pkg_file_reference_local["file-reference-local"]
90
+ svc_sessionReferenceResolver["ctx.sessionReferenceResolver<br/>Cross-session snapshot preparation"]
91
+ pkg_session_title["session-title"]
92
+ svc_sessionTitle["ctx.sessionTitle<br/>Log-backed session titles"]
93
+ pkg_session_title_first_prompt_llm["session-title-first-prompt-llm"]
94
+ pkg_session_title_all_prompts_llm["session-title-all-prompts-llm"]
95
+ pkg_system_prompt["system-prompt"]
96
+ svc_systemPrompt["ctx.systemPrompt<br/>System prompt assembly registry"]
97
+ pkg_tools["tools"]
98
+ pkg_tool_terminal["tool-terminal"]
99
+ pkg_tool_web["tool-web"]
100
+ svc_tools["ctx.tools<br/>Tool registry and guarded execution pipeline"]
101
+ pkg_tool_ask_user["tool-ask-user"]
102
+ pkg_tool_cordis["tool-cordis"]
103
+ pkg_tool_skill["tool-skill"]
104
+ pkg_tool_todo["tool-todo"]
105
+ pkg_user_questions["user-questions"]
106
+ svc_userQuestions["ctx.userQuestions<br/>Human question/answer seam"]
107
+ pkg_plan_mode["plan-mode"]
108
+ svc_planMode["ctx.planMode<br/>Plan collaboration state"]
109
+ pkg_agent_presets["agent-presets"]
110
+ svc_agentPresets["ctx.agentPresets<br/>Per-session agent composition"]
111
+ pkg_commands["commands"]
112
+ svc_commands["ctx.commands<br/>Human command registry"]
113
+ pkg_session_projection["session-projection"]
114
+ svc_sessionProjections["ctx.sessionProjections<br/>Session projection units"]
115
+ pkg_session_projection_cache["session-projection-cache"]
116
+ svc_sessionProjectionCache["ctx.sessionProjectionCache<br/>Persisted projection cache"]
117
+ pkg_subagent["subagent"]
118
+ pkg_skill["skill"]
119
+ svc_skills["ctx.skills<br/>Skill provider registry"]
120
+ pkg_skill_badge["skill-badge"]
121
+ pkg_skill_filesystem["skill-filesystem"]
122
+ svc_agents["ctx.agents<br/>Agent service"]
123
+ pkg_acp["acp"]
124
+ pkg_agent_default_model["agent-default-model"]
125
+ svc_agentDefaultModel["ctx.agentDefaultModel<br/>Default Agent model selection"]
126
+ pkg_headless["headless"]
127
+ svc_agentLoop["ctx.agentLoop<br/>Concrete loop driver"]
128
+ pkg_base["base"]
129
+ pkg_sdk_minimal["sdk-minimal"]
130
+ pkg_goal["goal"]
131
+ svc_goals["ctx.goals<br/>Same-session goal domain"]
132
+ pkg_e2b["e2b"]
133
+ svc_e2b["ctx.e2b<br/>E2B sandbox lifecycle owner"]
134
+ pkg_fs_e2b["fs-e2b"]
135
+ pkg_subprocess_e2b["subprocess-e2b"]
136
+ pkg_subprocess["subprocess"]
137
+ svc_subprocess["ctx.subprocess<br/>Subprocess seam"]
138
+ pkg_subprocess_local["subprocess-local"]
139
+ pkg_bash_local["bash-local"]
140
+ pkg_bash_sandbox["bash-sandbox"]
141
+ pkg_terminal_bash["terminal-bash"]
142
+ pkg_lsp_stdio["lsp-stdio"]
143
+ pkg_subagent_acp["subagent-acp"]
144
+ pkg_subagent_codex["subagent-codex"]
145
+ pkg_subagent_claude_code["subagent-claude-code"]
146
+ pkg_shell["shell"]
147
+ svc_shell["ctx.shell<br/>Bash executor seam"]
148
+ pkg_pwsh_local["pwsh-local"]
149
+ pkg_tool_pwsh["tool-pwsh"]
150
+ pkg_shell_env["shell-env"]
151
+ svc_shellEnv["ctx.shellEnv<br/>Managed bash environment registry"]
152
+ pkg_terminal["terminal"]
153
+ svc_terminals["ctx.terminals<br/>Persistent PTY session registry"]
154
+ pkg_sandbox["sandbox"]
155
+ svc_sandbox["ctx.sandbox<br/>Process-sandbox seam"]
156
+ pkg_sandbox_local["sandbox-local"]
157
+ pkg_sandbox_policy["sandbox-policy"]
158
+ svc_sandboxPolicy["ctx.sandboxPolicy<br/>Sandbox policy home"]
159
+ pkg_fs_sandbox["fs-sandbox"]
160
+ pkg_user_approval["user-approval"]
161
+ svc_approval["ctx.approval<br/>Approval seam"]
162
+ pkg_permission_presets["permission-presets"]
163
+ svc_permissionPresets["ctx.permissionPresets<br/>Permission presets"]
164
+ pkg_code_runtime["code-runtime"]
165
+ svc_codeRuntime["ctx.codeRuntime<br/>Code-execution seam"]
166
+ pkg_code_runtime_worker_thread["code-runtime-worker-thread"]
167
+ pkg_experimental_code_runtime_python["experimental-code-runtime-python"]
168
+ pkg_fs["fs"]
169
+ svc_fs["ctx.fs<br/>Filesystem provider seam"]
170
+ pkg_fs_local["fs-local"]
171
+ pkg_fs_observation_policy["fs-observation-policy"]
172
+ pkg_compaction["compaction"]
173
+ svc_compaction["ctx.compaction<br/>Compaction seam"]
174
+ svc_subagents["ctx.subagents<br/>Subagent provider and continuation service"]
175
+ pkg_subagent_spawn_in_process["subagent-spawn-in-process"]
176
+ pkg_subagent_fork_in_process["subagent-fork-in-process"]
177
+ pkg_subagent_dsh_sdk["subagent-dsh-sdk"]
178
+ pkg_tool_subagent_control["tool-subagent-control"]
179
+ pkg_tool_ralph["tool-ralph"]
180
+ pkg_experimental_agent_team["experimental-agent-team"]
181
+ svc_agentTeams["ctx.agentTeams<br/>Agent Teams coordination domain"]
182
+ pkg_experimental_tool_agent_team["experimental-tool-agent-team"]
183
+ pkg_experimental_client_ui_agent_team["experimental-client-ui-agent-team"]
184
+ pkg_inspector["inspector"]
185
+ svc_inspector["ctx.inspector<br/>Cross-realm runtime inspection"]
186
+ pkg_jobs["jobs"]
187
+ svc_jobs["ctx.jobs<br/>Background job registry"]
188
+ pkg_jobs_local["jobs-local"]
189
+ pkg_tool_jobs["tool-jobs"]
190
+ pkg_web["web"]
191
+ svc_web["ctx.web<br/>Web access provider registry"]
192
+ pkg_web_search_exa["web-search-exa"]
193
+ pkg_web_search_perplexity["web-search-perplexity"]
194
+ pkg_web_search_deepseek["web-search-deepseek"]
195
+ pkg_web_fetch_http["web-fetch-http"]
196
+ pkg_spill["spill"]
197
+ svc_spillStore["ctx.spillStore<br/>Spill storage seam"]
198
+ pkg_spill_local["spill-local"]
199
+ pkg_spill_policy["spill-policy"]
200
+ pkg_host_directory_picker["host-directory-picker"]
201
+ svc_directoryPicker["ctx.directoryPicker<br/>Workspace-directory picking seam"]
202
+ pkg_host_directory_picker_native["host-directory-picker-native"]
203
+ pkg_host_directory_picker_browse["host-directory-picker-browse"]
204
+ pkg_host_webserver["host-webserver"]
205
+ svc_webServer["ctx.webServer<br/>HTTP route registration"]
206
+ pkg_client_connection["client-connection"]
207
+ pkg_client_modules["client-modules"]
208
+ pkg_client_hmr["client-hmr"]
209
+ svc_clientModules["ctx.clientModules<br/>Client plugin graph host"]
210
+ pkg_workflow["workflow"]
211
+ svc_workflowEngine["ctx.workflowEngine<br/>Workflow script engine"]
212
+ pkg_workflow_worker_thread["workflow-worker-thread"]
213
+ pkg_tool_workflow["tool-workflow"]
214
+ pkg_webhook["webhook"]
215
+ svc_webhookRuntime["ctx.webhookRuntime<br/>Webhook rule runtime"]
216
+ pkg_webhook_github["webhook-github"]
217
+ pkg_lsp["lsp"]
218
+ svc_lsp["ctx.lsp<br/>Language-server navigation seam"]
219
+ pkg_tool_lsp["tool-lsp"]
220
+ pkg_cordis_host_runner["cordis-host-runner"]
221
+ svc_dynamicCordisRunner["ctx.dynamicCordisRunner<br/>Dynamic Cordis package host runner"]
222
+ svc_cordisInspect["ctx.cordisInspect<br/>Dynamic Cordis inspect registry"]
223
+ pkg_agent --> svc_agents
224
+ pkg_agent_default_model --> svc_agentDefaultModel
225
+ pkg_agent_loop --> svc_agentLoop
226
+ pkg_agent_presets --> svc_agentPresets
227
+ pkg_api_gateway --> svc_typertGateway
228
+ pkg_api_session_controller --> svc_sessionController
229
+ pkg_api_session_controller --> svc_sessionFileReferences
230
+ pkg_api_session_controller --> svc_sessionSkillCatalog
231
+ pkg_api_settings_controller --> svc_credentialsController
232
+ pkg_api_settings_controller --> svc_settingsController
233
+ pkg_api_workspace_controller --> svc_directoryPickerController
234
+ pkg_api_workspace_controller --> svc_workspaceController
235
+ pkg_attachment --> svc_attachments
236
+ pkg_attachment_local --> svc_attachments
237
+ pkg_authorization --> svc_authorization
238
+ pkg_bash_local --> svc_shell
239
+ pkg_bash_sandbox --> svc_shell
240
+ pkg_client_file_upload --> svc_fileUploads
241
+ pkg_client_modules --> svc_clientModules
242
+ pkg_code_runtime --> svc_codeRuntime
243
+ pkg_code_runtime_worker_thread --> svc_codeRuntime
244
+ pkg_commands --> svc_commands
245
+ pkg_compaction --> svc_compaction
246
+ pkg_compaction_basic --> svc_compaction
247
+ pkg_compaction_tool_result_pruner --> svc_toolResultPruner
248
+ pkg_cordis_host_runner --> svc_cordisInspect
249
+ pkg_cordis_host_runner --> svc_dynamicCordisRunner
250
+ pkg_credentials --> svc_credentials
251
+ pkg_credentials_local --> svc_credentials
252
+ pkg_deepseek_llm_api_extensions --> svc_deepseekLlmApiExtensions
253
+ pkg_e2b --> svc_e2b
254
+ pkg_experimental_agent_team --> svc_agentTeams
255
+ pkg_experimental_code_runtime_python --> svc_codeRuntime
256
+ pkg_file_reference --> svc_fileReferences
257
+ pkg_file_reference_local --> svc_fileReferences
258
+ pkg_fs --> svc_fs
259
+ pkg_fs_e2b --> svc_fs
260
+ pkg_fs_local --> svc_fs
261
+ pkg_fs_sandbox --> svc_fs
262
+ pkg_goal --> svc_goals
263
+ pkg_host_directory_picker --> svc_directoryPicker
264
+ pkg_host_directory_picker_browse --> svc_directoryPicker
265
+ pkg_host_directory_picker_native --> svc_directoryPicker
266
+ pkg_host_webserver --> svc_webServer
267
+ pkg_inspector --> svc_inspector
268
+ pkg_invariants --> svc_invariants
269
+ pkg_jobs --> svc_jobs
270
+ pkg_jobs_local --> svc_jobs
271
+ pkg_llm --> svc_llm
272
+ pkg_llm_deepseek --> svc_llm
273
+ pkg_llm_pi_ai --> svc_llm
274
+ pkg_llm_replay --> svc_llm
275
+ pkg_lsp --> svc_lsp
276
+ pkg_lsp_stdio --> svc_lsp
277
+ pkg_message_feedback --> svc_messageFeedback
278
+ pkg_permission_presets --> svc_permissionPresets
279
+ pkg_plan_mode --> svc_planMode
280
+ pkg_plugin_package_inventory_deepseek --> svc_deepseekLlmApiExtensions
281
+ pkg_pwsh_local --> svc_shell
282
+ pkg_sandbox --> svc_sandbox
283
+ pkg_sandbox_local --> svc_sandbox
284
+ pkg_sandbox_policy --> svc_sandboxPolicy
285
+ pkg_session --> svc_sessions
286
+ pkg_session_log_deepseek --> svc_deepseekLlmApiExtensions
287
+ pkg_session_persistence --> svc_sessionPersistence
288
+ pkg_session_persistence_jsonl --> svc_sessionPersistence
289
+ pkg_session_projection --> svc_sessionProjections
290
+ pkg_session_projection_cache --> svc_sessionProjectionCache
291
+ pkg_session_query --> svc_sessionQuery
292
+ pkg_session_query_sqlite --> svc_sessionQuery
293
+ pkg_session_reference --> svc_sessionReferenceResolver
294
+ pkg_session_telemetry --> svc_sessionTelemetry
295
+ pkg_session_telemetry_otel --> svc_sessionTelemetry
296
+ pkg_session_title --> svc_sessionTitle
297
+ pkg_session_title_all_prompts_llm --> svc_sessionTitle
298
+ pkg_session_title_first_prompt_llm --> svc_sessionTitle
299
+ pkg_settings --> svc_settings
300
+ pkg_settings_file --> svc_settings
301
+ pkg_shell --> svc_shell
302
+ pkg_shell_env --> svc_shellEnv
303
+ pkg_skill --> svc_skills
304
+ pkg_skill_badge --> svc_skills
305
+ pkg_skill_filesystem --> svc_skills
306
+ pkg_spill --> svc_spillStore
307
+ pkg_spill_local --> svc_spillStore
308
+ pkg_storage --> svc_storage
309
+ pkg_storage_domain --> svc_storageDomain
310
+ pkg_storage_json --> svc_storage
311
+ pkg_storage_sqlite --> svc_storage
312
+ pkg_subagent --> svc_subagents
313
+ pkg_subagent_acp --> svc_subagents
314
+ pkg_subagent_claude_code --> svc_subagents
315
+ pkg_subagent_codex --> svc_subagents
316
+ pkg_subagent_dsh_sdk --> svc_subagents
317
+ pkg_subagent_fork_in_process --> svc_subagents
318
+ pkg_subagent_spawn_in_process --> svc_subagents
319
+ pkg_subprocess --> svc_subprocess
320
+ pkg_subprocess_e2b --> svc_subprocess
321
+ pkg_subprocess_local --> svc_subprocess
322
+ pkg_system_prompt --> svc_systemPrompt
323
+ pkg_terminal --> svc_terminals
324
+ pkg_terminal_bash --> svc_terminals
325
+ pkg_token_meter --> svc_tokenMeter
326
+ pkg_tool_subagent --> svc_subagentModelSelection
327
+ pkg_tools --> svc_tools
328
+ pkg_typert_registry --> svc_typert
329
+ pkg_user_approval --> svc_approval
330
+ pkg_user_questions --> svc_userQuestions
331
+ pkg_web --> svc_web
332
+ pkg_web_fetch_http --> svc_web
333
+ pkg_web_search_deepseek --> svc_web
334
+ pkg_web_search_exa --> svc_web
335
+ pkg_web_search_perplexity --> svc_web
336
+ pkg_webhook --> svc_webhookRuntime
337
+ pkg_workflow --> svc_workflowEngine
338
+ pkg_workflow_worker_thread --> svc_workflowEngine
339
+ pkg_workspace --> svc_workspaceRegistry
340
+ svc_agentDefaultModel --> pkg_api_session_controller
341
+ svc_agentDefaultModel --> pkg_headless
342
+ svc_agentLoop --> pkg_base
343
+ svc_agentLoop --> pkg_sdk_minimal
344
+ svc_agentTeams --> pkg_experimental_client_ui_agent_team
345
+ svc_agentTeams --> pkg_experimental_tool_agent_team
346
+ svc_agents --> pkg_acp
347
+ svc_agents --> pkg_agent_loop
348
+ svc_agents --> pkg_subagent_in_process_driver
349
+ svc_approval --> pkg_acp
350
+ svc_approval --> pkg_tool_bash
351
+ svc_approval --> pkg_tools
352
+ svc_attachments --> pkg_api_session_controller
353
+ svc_attachments --> pkg_llm_deepseek
354
+ svc_attachments --> pkg_llm_pi_ai
355
+ svc_attachments --> pkg_tool_fs
356
+ svc_authorization --> pkg_llm_pi_ai
357
+ svc_clientModules --> pkg_client_hmr
358
+ svc_codeRuntime --> pkg_tools
359
+ svc_compaction --> pkg_compaction_basic
360
+ svc_cordisInspect --> pkg_tool_cordis
361
+ svc_credentials --> pkg_api_settings_controller
362
+ svc_credentials --> pkg_llm_deepseek
363
+ svc_credentials --> pkg_llm_pi_ai
364
+ svc_deepseekLlmApiExtensions --> pkg_llm_deepseek
365
+ svc_directoryPicker --> pkg_api_workspace_controller
366
+ svc_dynamicCordisRunner --> pkg_tool_cordis
367
+ svc_e2b --> pkg_fs_e2b
368
+ svc_e2b --> pkg_subprocess_e2b
369
+ svc_fileReferences --> pkg_api_session_controller
370
+ svc_fileUploads --> pkg_api_session_controller
371
+ svc_fs --> pkg_tool_fs
372
+ svc_invariants --> pkg_agent
373
+ svc_invariants --> pkg_agent_loop
374
+ svc_invariants --> pkg_scope
375
+ svc_invariants --> pkg_session
376
+ svc_jobs --> pkg_tool_bash
377
+ svc_jobs --> pkg_tool_jobs
378
+ svc_jobs --> pkg_tool_subagent
379
+ svc_jobs --> pkg_tool_terminal
380
+ svc_llm --> pkg_agent_loop
381
+ svc_llm --> pkg_compaction_basic
382
+ svc_lsp --> pkg_tool_lsp
383
+ svc_sandbox --> pkg_bash_sandbox
384
+ svc_sandbox --> pkg_terminal_bash
385
+ svc_sandboxPolicy --> pkg_bash_sandbox
386
+ svc_sandboxPolicy --> pkg_fs_sandbox
387
+ svc_sandboxPolicy --> pkg_terminal_bash
388
+ svc_sessionPersistence --> pkg_agent_loop
389
+ svc_sessionPersistence --> pkg_hooks_claude_code
390
+ svc_sessionPersistence --> pkg_hooks_codex
391
+ svc_sessionPersistence --> pkg_message_feedback
392
+ svc_sessionPersistence --> pkg_session_query
393
+ svc_sessionPersistence --> pkg_session_query_sqlite
394
+ svc_sessionPersistence --> pkg_tool_bash
395
+ svc_sessionProjectionCache --> pkg_api_session_controller
396
+ svc_sessionProjectionCache --> pkg_session_query
397
+ svc_sessionProjectionCache --> pkg_session_reference
398
+ svc_sessionProjectionCache --> pkg_subagent
399
+ svc_sessionProjections --> pkg_api_session_controller
400
+ svc_sessionProjections --> pkg_session_title
401
+ svc_sessionProjections --> pkg_tool_todo
402
+ svc_sessionQuery --> pkg_session_reference
403
+ svc_sessionQuery --> pkg_tool_session_query
404
+ svc_sessions --> pkg_agent
405
+ svc_sessions --> pkg_agent_loop
406
+ svc_sessions --> pkg_invariants
407
+ svc_sessions --> pkg_message_feedback
408
+ svc_sessions --> pkg_session_persistence
409
+ svc_sessions --> pkg_session_query
410
+ svc_sessions --> pkg_session_query_sqlite
411
+ svc_sessions --> pkg_subagent_in_process_driver
412
+ svc_settings --> pkg_api_settings_controller
413
+ svc_settings --> pkg_llm_deepseek
414
+ svc_settings --> pkg_llm_pi_ai
415
+ svc_shell --> pkg_hooks_claude_code
416
+ svc_shell --> pkg_hooks_codex
417
+ svc_shell --> pkg_tool_bash
418
+ svc_shell --> pkg_tool_pwsh
419
+ svc_shellEnv --> pkg_tool_bash
420
+ svc_shellEnv --> pkg_tool_pwsh
421
+ svc_skills --> pkg_tool_skill
422
+ svc_spillStore --> pkg_spill_policy
423
+ svc_storage --> pkg_storage_domain
424
+ svc_storageDomain --> pkg_message_feedback
425
+ svc_storageDomain --> pkg_workspace
426
+ svc_subagentModelSelection --> pkg_tool_subagent
427
+ svc_subagents --> pkg_tool_ralph
428
+ svc_subagents --> pkg_tool_subagent
429
+ svc_subagents --> pkg_tool_subagent_control
430
+ svc_subprocess --> pkg_bash_local
431
+ svc_subprocess --> pkg_bash_sandbox
432
+ svc_subprocess --> pkg_lsp_stdio
433
+ svc_subprocess --> pkg_subagent_acp
434
+ svc_subprocess --> pkg_subagent_claude_code
435
+ svc_subprocess --> pkg_subagent_codex
436
+ svc_subprocess --> pkg_terminal_bash
437
+ svc_systemPrompt --> pkg_agent_loop
438
+ svc_systemPrompt --> pkg_tool_fs
439
+ svc_systemPrompt --> pkg_tool_terminal
440
+ svc_systemPrompt --> pkg_tool_web
441
+ svc_systemPrompt --> pkg_tools
442
+ svc_terminals --> pkg_tool_terminal
443
+ svc_tokenMeter --> pkg_compaction_basic
444
+ svc_toolResultPruner --> pkg_compaction_basic
445
+ svc_tools --> pkg_agent_loop
446
+ svc_tools --> pkg_tool_ask_user
447
+ svc_tools --> pkg_tool_bash
448
+ svc_tools --> pkg_tool_cordis
449
+ svc_tools --> pkg_tool_fs
450
+ svc_tools --> pkg_tool_skill
451
+ svc_tools --> pkg_tool_subagent
452
+ svc_tools --> pkg_tool_terminal
453
+ svc_tools --> pkg_tool_todo
454
+ svc_tools --> pkg_tool_web
455
+ svc_typert --> pkg_api_gateway
456
+ svc_typert --> pkg_typert_loader
457
+ svc_userQuestions --> pkg_tool_ask_user
458
+ svc_web --> pkg_tool_web
459
+ svc_webServer --> pkg_client_connection
460
+ svc_webServer --> pkg_client_hmr
461
+ svc_webServer --> pkg_client_modules
462
+ svc_webhookRuntime --> pkg_webhook_github
463
+ svc_workflowEngine --> pkg_tool_ralph
464
+ svc_workflowEngine --> pkg_tool_workflow
465
+ svc_workspaceRegistry --> pkg_api_session_controller
466
+ svc_workspaceRegistry --> pkg_api_workspace_controller
467
+ svc_fs -. event gate .-> pkg_fs_observation_policy
468
+ ```
469
+
470
+ | ctx key | Role | Owner | Implementations | Direct consumers | Companion plugins | Note |
471
+ | --- | --- | --- | --- | --- | --- | --- |
472
+ | `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. |
473
+ | `ctx.fileUploads` | `core` | [`client-file-upload`](../packages/client/file-upload) | - | [`api-session-controller`](../packages/api/session-controller) | - | Owns streaming intake, durable storage, and staged receipt lifetime; the Session controller binds receipts to accepted submissions. |
474
+ | `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. |
475
+ | `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. |
476
+ | `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. |
477
+ | `ctx.toolResultPruner` | `core` | [`compaction-tool-result-pruner`](../packages/compaction/compaction-tool-result-pruner) | - | [`compaction-basic`](../packages/compaction/compaction-basic) | - | Rewrites oversized current tool results through replayable single-node surface replacements before summary compaction. |
478
+ | `ctx.sessions` | `core` | [`session`](../packages/core/session) | - | [`agent-loop`](../packages/core/agent-loop), [`agent`](../packages/core/agent), [`session-persistence`](../packages/session/session-persistence), [`session-query`](../packages/session-query/session-query), [`session-query-sqlite`](../packages/session-query/session-query-sqlite), [`subagent-in-process-driver`](../packages/subagent/subagent-in-process-driver), [`invariants`](../packages/runtime-diagnostics/invariants), [`message-feedback`](../packages/feedback/message-feedback) | - | Owns append-only Session instances and emits the durable session event feed. |
479
+ | `ctx.sessionController` | `core` | [`api-session-controller`](../packages/api/session-controller) | - | - | - | Owns Session commands, cold reads, durable-event following, live control state, model catalogs, workspace opening, and Agent activation policy. |
480
+ | `ctx.sessionFileReferences` | `core` | [`api-session-controller`](../packages/api/session-controller) | - | - | - | Delegates file-reference discovery through the Session Controller's established Agent lookup policy. |
481
+ | `ctx.sessionSkillCatalog` | `core` | [`api-session-controller`](../packages/api/session-controller) | - | - | - | Lists the Session composition's user-invocable skills without activating a cold Agent. |
482
+ | `ctx.credentialsController` | `core` | [`api-settings-controller`](../packages/api/settings-controller) | - | - | - | Projects the credential-reference seam onto the generated Remote namespace: batch fan-out, view projection, and refusal mapping live here, not on the seam Definition. |
483
+ | `ctx.settingsController` | `core` | [`api-settings-controller`](../packages/api/settings-controller) | - | - | - | Projects the user-settings seam onto the generated Remote namespace: the read is always redacted and every refusal is classified here, not on the seam Definition. |
484
+ | `ctx.workspaceController` | `core` | [`api-workspace-controller`](../packages/api/workspace-controller) | - | - | - | Owns Workspace commands and reconnect-safe Workspace state delivery through the generated Remote namespace. |
485
+ | `ctx.directoryPickerController` | `core` | [`api-workspace-controller`](../packages/api/workspace-controller) | - | - | - | Carries the picking seam onto the wire: capability gating, cancellation, and the seam-coded failures a browser directory flow discriminates on. |
486
+ | `ctx.invariants` | `core` | [`invariants`](../packages/runtime-diagnostics/invariants) | - | [`session`](../packages/core/session), [`agent`](../packages/core/agent), [`scope`](../packages/core/scope), [`agent-loop`](../packages/core/agent-loop) | - | Companion subpaths register owner-local checks; the service owns selection, uniqueness, child fibers, and package-attributed failures. |
487
+ | `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. |
488
+ | `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. |
489
+ | `ctx.sessionPersistence` | `seam` | [`session-persistence`](../packages/session/session-persistence) | [`session-persistence-jsonl`](../packages/session/session-persistence-jsonl) | [`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) | - | The JSONL backend persists the SessionEvent vocabulary as one artifact per Session. |
490
+ | `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. |
491
+ | `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. |
492
+ | `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. |
493
+ | `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. |
494
+ | `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. |
495
+ | `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. |
496
+ | `ctx.storageDomain` | `core` | [`storage-domain`](../packages/storage/storage-domain) | - | [`workspace`](../packages/workspace/workspace), [`message-feedback`](../packages/feedback/message-feedback) | - | Waits for every configured backend, then publishes the domain form as one lifecycle-bound service for typed durable state. |
497
+ | `ctx.messageFeedback` | `core` | [`message-feedback`](../packages/feedback/message-feedback) | - | - | - | Owns local per-assistant-message feedback, lifecycle and target validation, per-item compare-and-set, and the Host unary Remote contract without entering Session history or telemetry. |
498
+ | `ctx.workspaceRegistry` | `core` | [`workspace`](../packages/workspace/workspace) | - | [`api-workspace-controller`](../packages/api/workspace-controller), [`api-session-controller`](../packages/api/session-controller) | - | Owns WorkspaceId-branded records over the domain facility; stable sessionIds accounts drive Host RPC and GUI projections. |
499
+ | `ctx.sessionQuery` | `seam` | [`session-query`](../packages/session-query/session-query) | [`session-query-sqlite`](../packages/session-query/session-query-sqlite) | [`session-reference`](../packages/context/session-reference), [`tool-session-query`](../packages/session-query/tool-session-query) | - | The interface supplies exact reads, filters, and traces; its concrete backend adds full-text reconciliation, ranking, snippets, and cursor generations, while the model consumer owns workspace authority and cursor-free rendering. |
500
+ | `ctx.fileReferences` | `seam` | [`file-reference`](../packages/context/file-reference) | [`file-reference-local`](../packages/context/file-reference-local) | [`api-session-controller`](../packages/api/session-controller) | - | The interface returns path-only completion candidates within an Agent cwd; providers own namespace access and ranking without reading file contents. |
501
+ | `ctx.sessionReferenceResolver` | `core` | [`session-reference`](../packages/context/session-reference) | - | - | - | Projects bounded current-surface conversation snapshots into durable untrusted message context; host adapters own mention syntax. |
502
+ | `ctx.sessionTitle` | `seam` | [`session-title`](../packages/session/session-title) | [`session-title-first-prompt-llm`](../packages/session/session-title-first-prompt-llm), [`session-title-all-prompts-llm`](../packages/session/session-title-all-prompts-llm) | - | - | Owns the deterministic fallback, latest-title fold, and sole optional asynchronous provider registration. |
503
+ | `ctx.systemPrompt` | `core` | [`system-prompt`](../packages/core/system-prompt) | - | [`agent-loop`](../packages/core/agent-loop), [`tools`](../packages/core/tools), [`tool-fs`](../packages/fs/tool-fs), [`tool-terminal`](../packages/terminal/tool-terminal), [`tool-web`](../packages/web/tool-web) | - | Collects prompt sections and model-facing tool schemas for each step. |
504
+ | `ctx.tools` | `core` | [`tools`](../packages/core/tools) | - | [`agent-loop`](../packages/core/agent-loop), [`tool-ask-user`](../packages/interaction/tool-ask-user), [`tool-bash`](../packages/shell/tool-bash), [`tool-cordis`](../packages/extensions/tool-cordis), [`tool-fs`](../packages/fs/tool-fs), [`tool-terminal`](../packages/terminal/tool-terminal), [`tool-skill`](../packages/skill/tool-skill), [`tool-subagent`](../packages/subagent/tool-subagent), [`tool-todo`](../packages/todo/tool-todo), [`tool-web`](../packages/web/tool-web) | - | Registers capabilities, owns PTC mode transport, and routes calls through pre-policy, monotonic guards, around dispatch, post-policy, and final-result observation. |
505
+ | `ctx.userQuestions` | `seam` | [`user-questions`](../packages/interaction/user-questions) | - | [`tool-ask-user`](../packages/interaction/tool-ask-user) | - | UI front ends provide the active human-answer provider; tool-ask-user pauses a tool call on the provider-neutral ask() promise. |
506
+ | `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. |
507
+ | `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. |
508
+ | `ctx.commands` | `core` | [`commands`](../packages/interaction/commands) | - | - | - | Plugins register direct human commands without sending invocations to the model. |
509
+ | `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. |
510
+ | `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. |
511
+ | `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. |
512
+ | `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. |
513
+ | `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. |
514
+ | `ctx.agentLoop` | `bundle` | [`agent-loop`](../packages/core/agent-loop) | - | [`base`](../packages/bundle/base), [`sdk-minimal`](../packages/bundle/sdk-minimal) | - | The one concrete loop plugin; extension packages depend on dsh-agent events and services, not on this package. |
515
+ | `ctx.goals` | `core` | [`goal`](../packages/goal/goal) | - | - | - | Folds revisioned objective state from the session log and keeps live continuation activation process-local. |
516
+ | `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. |
517
+ | `ctx.subprocess` | `seam` | [`subprocess`](../packages/subprocess/subprocess) | [`subprocess-local`](../packages/subprocess/subprocess-local), [`subprocess-e2b`](../packages/e2b/subprocess-e2b) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`lsp-stdio`](../packages/lsp/lsp-stdio), [`subagent-acp`](../packages/subagent/subagent-acp), [`subagent-codex`](../packages/subagent/subagent-codex), [`subagent-claude-code`](../packages/subagent/subagent-claude-code) | - | The bash executors, the PTY shell backend, the LSP host, and the out-of-process ACP, Codex, and Claude Code subagent backends spawn through ctx.subprocess; the service owns process coordinates, tree/session lifetime, stdio dispositions, terminal mechanics, and kill escalation. |
518
+ | `ctx.shell` | `seam` | [`shell`](../packages/shell/shell) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`pwsh-local`](../packages/shell/pwsh-local) | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh), [`hooks-claude-code`](../packages/hooks/hooks-claude-code), [`hooks-codex`](../packages/hooks/hooks-codex) | - | The model-facing shell tools and hook bridges consume this seam; sandboxed, remote, or PowerShell executors replace bash-local without touching them. |
519
+ | `ctx.shellEnv` | `core` | [`shell-env`](../packages/shell/shell-env) | - | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh) | - | Plugins declare effect-scoped DSH_* facts; each shell tool collects one trusted snapshot per execution and its executor rebuilds the namespace. |
520
+ | `ctx.terminals` | `seam` | [`terminal`](../packages/terminal/terminal) | [`terminal-bash`](../packages/terminal/terminal-bash) | [`tool-terminal`](../packages/terminal/tool-terminal) | - | The registry owns exact-Agent session identity and cleanup; backends own terminal mechanics, while tool-terminal exposes the owner-scoped model tools. |
521
+ | `ctx.sandbox` | `seam` | [`sandbox`](../packages/sandbox/sandbox) | [`sandbox-local`](../packages/sandbox/sandbox-local) | [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash) | - | Consumers hand over the exact argv they are about to spawn; same-world backends wrap it under a per-call policy and report enforcement. |
522
+ | `ctx.sandboxPolicy` | `core` | [`sandbox-policy`](../packages/sandbox/sandbox-policy) | - | [`bash-sandbox`](../packages/shell/bash-sandbox), [`fs-sandbox`](../packages/fs/fs-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash) | - | The one home for the deployment default mode + workspace root; only the sandboxed executor and provider read the service (the tool layers use the pure `sandbox/mode` fold it also exports). Both enforcing families read it so bash and fs cannot confine to different roots. |
523
+ | `ctx.approval` | `seam` | [`user-approval`](../packages/interaction/user-approval) | - | [`tools`](../packages/core/tools), [`tool-bash`](../packages/shell/tool-bash), [`acp`](../packages/acp/acp) | - | One-shot permission decisions dispatched over the `approval/request` waterfall; answerers are listeners (the ACP bridge for its own agents), absence fails closed to `unavailable`. |
524
+ | `ctx.permissionPresets` | `core` | [`permission-presets`](../packages/interaction/permission-presets) | - | - | - | User-facing preset table (`workspace-write`/`danger-full-access`) bundling the sandbox-mode and approval-policy knobs; a switch writes one `permission/preset` event through to both knob events. |
525
+ | `ctx.codeRuntime` | `seam` | [`code-runtime`](../packages/code-runtime/code-runtime) | [`code-runtime-worker-thread`](../packages/code-runtime/code-runtime-worker-thread), [`experimental-code-runtime-python`](../packages/experimental/code-runtime-python) | [`tools`](../packages/core/tools) | - | Runs one model-written program against host-provided async bindings; backends differ by substrate and language (the tool registry consumes it for PTC mode). |
526
+ | `ctx.fs` | `seam` | [`fs`](../packages/fs/fs) | [`fs-local`](../packages/fs/fs-local), [`fs-sandbox`](../packages/fs/fs-sandbox), [`fs-e2b`](../packages/e2b/fs-e2b) | [`tool-fs`](../packages/fs/tool-fs) | [`fs-observation-policy`](../packages/fs/fs-observation-policy) | tool-fs executes read/write/edit through ctx.fs; fs-sandbox fences mutations by the shared sandbox mode; fs-observation-policy contributes observed-state checks through the fs/* event gate. |
527
+ | `ctx.compaction` | `seam` | [`compaction`](../packages/compaction/compaction) | [`compaction-basic`](../packages/compaction/compaction-basic) | [`compaction-basic`](../packages/compaction/compaction-basic) | - | The basic backend consumes post-step pressure and request-error recovery events; there is no model-facing compact tool. |
528
+ | `ctx.subagents` | `seam` | [`subagent`](../packages/subagent/subagent) | [`subagent-spawn-in-process`](../packages/subagent/subagent-spawn-in-process), [`subagent-fork-in-process`](../packages/subagent/subagent-fork-in-process), [`subagent-acp`](../packages/subagent/subagent-acp), [`subagent-codex`](../packages/subagent/subagent-codex), [`subagent-claude-code`](../packages/subagent/subagent-claude-code), [`subagent-dsh-sdk`](../packages/subagent/subagent-dsh-sdk) | [`tool-subagent`](../packages/subagent/tool-subagent), [`tool-subagent-control`](../packages/subagent/tool-subagent-control), [`tool-ralph`](../packages/workflow/tool-ralph) | - | Providers implement transports; the service also owns optional Activation-based continuation orchestration, tool-subagent selects one-shot or continuable delegation, tool-subagent-control delivers follow-ups, and tool-ralph requires one fresh structured-output route. |
529
+ | `ctx.agentTeams` | `core` | [`experimental-agent-team`](../packages/experimental/agent-team) | - | [`experimental-tool-agent-team`](../packages/experimental/tool-agent-team), [`experimental-client-ui-agent-team`](../packages/experimental/client-ui-agent-team) | - | Owns the implicit-root roster, durable peer mailbox, shared task DAG, continuable-child lifecycle, and generated Team Remote methods; tool-agent-team contributes model controls and client-ui-agent-team mounts the browser contribution. |
530
+ | `ctx.inspector` | `core` | `inspector` | - | - | - | Owns the Worker-hosted CDP target and the transport-independent Host and Client observation and Cordis-tree query API. |
531
+ | `ctx.jobs` | `seam` | [`jobs`](../packages/jobs/jobs) | [`jobs-local`](../packages/jobs/jobs-local) | [`tool-bash`](../packages/shell/tool-bash), [`tool-terminal`](../packages/terminal/tool-terminal), [`tool-subagent`](../packages/subagent/tool-subagent), [`tool-jobs`](../packages/jobs/tool-jobs) | - | Producers (background bash, PTY sends, and subagent delegations) register running work; tool-jobs is the model-facing controller that reads, lists, and kills it; jobs-local is the process-local registry. |
532
+ | `ctx.web` | `seam` | [`web`](../packages/web/web) | [`web-search-exa`](../packages/web/web-search-exa), [`web-search-perplexity`](../packages/web/web-search-perplexity), [`web-search-deepseek`](../packages/web/web-search-deepseek), [`web-fetch-http`](../packages/web/web-fetch-http) | [`tool-web`](../packages/web/tool-web) | - | Search and fetch providers register into one ctx.web seam; tool-web owns the stable model-facing names. |
533
+ | `ctx.spillStore` | `seam` | [`spill`](../packages/spill/spill) | [`spill-local`](../packages/spill/spill-local) | [`spill-policy`](../packages/spill/spill-policy) | - | The backend saves oversized tool text and returns a model-facing locator plus retrieval hint; spill-policy is the tools/post-execute consumer that decides when to spill. |
534
+ | `ctx.directoryPicker` | `seam` | [`host-directory-picker`](../packages/host/directory-picker) | [`host-directory-picker-native`](../packages/host/directory-picker-native), [`host-directory-picker-browse`](../packages/host/directory-picker-browse) | [`api-workspace-controller`](../packages/api/workspace-controller) | - | Discriminated interaction capability: the native backend opens one OS chooser on the host display, the browse backend serves listing/creation primitives for the in-app browser; dual-face backends fill ui-workspace directory-flow slots from their browser halves (no wire advertisement). |
535
+ | `ctx.webServer` | `core` | [`host-webserver`](../packages/host/webserver) | - | [`client-connection`](../packages/client/connection), [`client-modules`](../packages/client/modules), [`client-hmr`](../packages/client/hmr) | - | Plain node:http carrier: named-route registry, index transform taps, and the static dist fallback; web-transport plugins register their own routes. |
536
+ | `ctx.clientModules` | `core` | [`client-modules`](../packages/client/modules) | - | [`client-hmr`](../packages/client/hmr) | - | Composes the __DSH_BOOT__ entry graph from an incremental dsh.client scan, serves plugin bundles, and notifies rebuilt/graph-changed subscribers. |
537
+ | `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. |
538
+ | `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. |
539
+ | `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. |
540
+ | `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. |
541
+ | `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. |
542
+
543
+ Maintenance mode: hybrid: services are discovered from Cordis declarations; interface/implementation/consumer roles are classified in `scripts/gen-doc-graphs.ts` with a completeness guard.