dsh-plugin-dev-kb 1.0.7 → 1.0.9

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 (169) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.en.md +144 -0
  3. package/README.md +21 -7
  4. package/kb/INDEX.md +19 -5
  5. package/kb/README.md +11 -10
  6. package/kb/extra/AGENTS.md +4 -4
  7. package/kb/extra/cookbook/adding-a-vendored-package.md +2 -2
  8. package/kb/extra/cookbook/adding-a-vendored-package.zh.md +2 -2
  9. package/kb/extra/deepseek-llm-api-wire-extensions.md +159 -0
  10. package/kb/extra/deepseek-llm-api-wire-extensions.zh.md +159 -0
  11. package/kb/extra/development.md +8 -14
  12. package/kb/extra/development.zh.md +8 -14
  13. package/kb/extra/event-producer-consumer.md +47 -41
  14. package/kb/extra/event-producer-consumer.zh.md +47 -41
  15. package/kb/extra/glossary.md +1 -1
  16. package/kb/extra/glossary.zh.md +1 -1
  17. package/kb/extra/graph-atlas.md +0 -2
  18. package/kb/extra/graph-atlas.zh.md +0 -2
  19. package/kb/extra/i18n/README.md +4 -4
  20. package/kb/extra/i18n/README.zh.md +4 -4
  21. package/kb/extra/module-graph.md +680 -413
  22. package/kb/extra/module-graph.zh.md +681 -414
  23. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.md +2 -2
  24. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.zh.md +2 -2
  25. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.md +2 -2
  26. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +2 -2
  27. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.md +2 -2
  28. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.zh.md +2 -2
  29. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +1 -1
  30. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +1 -1
  31. package/kb/extra/rescope.md +2 -2
  32. package/kb/extra/rescope.zh.md +2 -2
  33. package/kb/extra/subsystems/agent-team.md +24 -1
  34. package/kb/extra/subsystems/agent-team.zh.md +24 -1
  35. package/kb/extra/subsystems/attachment.md +12 -4
  36. package/kb/extra/subsystems/attachment.zh.md +12 -4
  37. package/kb/extra/subsystems/extensions.md +18 -0
  38. package/kb/extra/subsystems/extensions.zh.md +18 -0
  39. package/kb/extra/subsystems/feedback.md +2 -2
  40. package/kb/extra/subsystems/feedback.zh.md +2 -2
  41. package/kb/extra/subsystems/todo.md +32 -0
  42. package/kb/extra/subsystems/todo.zh.md +32 -0
  43. package/kb/extra/subsystems/webhook.md +70 -0
  44. package/kb/extra/subsystems/webhook.zh.md +70 -0
  45. package/kb/extra/testing.md +11 -10
  46. package/kb/extra/testing.zh.md +8 -7
  47. package/kb/meta/search-index.json +269 -161
  48. package/kb/meta/site-pages.txt +182 -168
  49. package/kb/meta/source.json +5 -5
  50. package/kb/meta/topics.md +14 -6
  51. package/kb/site/develop/basic/publish.md +2 -2
  52. package/kb/site/develop/basic/tool.md +1 -1
  53. package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +4 -4
  54. package/kb/site/develop/framework/events.md +1 -1
  55. package/kb/site/develop/practice/dynamic-cordis.md +17 -0
  56. package/kb/site/develop/practice/llm-adapter.md +3 -3
  57. package/kb/site/en/develop/basic/publish.md +2 -2
  58. package/kb/site/en/develop/basic/tool.md +1 -1
  59. package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +4 -4
  60. package/kb/site/en/develop/framework/events.md +1 -1
  61. package/kb/site/en/develop/practice/dynamic-cordis.md +17 -0
  62. package/kb/site/en/develop/practice/llm-adapter.md +3 -3
  63. package/kb/site/en/guide/github-review.md +104 -0
  64. package/kb/site/en/guide/mcp-memory.md +103 -0
  65. package/kb/site/en/guide/python-sdk.md +80 -34
  66. package/kb/site/en/guide/schedule.md +21 -0
  67. package/kb/site/en/reference/agent-lifecycle.md +1 -1
  68. package/kb/{extra → site/en/reference}/api-gateway.md +11 -9
  69. package/kb/site/en/reference/capability-seams.md +115 -67
  70. package/kb/site/en/reference/config-catalog.md +358 -164
  71. package/kb/site/en/reference/cookbook/adding-a-package.md +2 -2
  72. package/kb/site/en/reference/cookbook/adding-a-settings-card.md +2 -2
  73. package/kb/site/en/reference/cookbook/adding-a-tool.md +11 -4
  74. package/kb/site/en/reference/cookbook/adding-an-llm-adapter.md +1 -1
  75. package/kb/site/en/reference/cookbook/extension-cookbook.md +6 -6
  76. package/kb/site/en/reference/cordis-api/inherited.md +1 -1
  77. package/kb/site/en/reference/cordis-primer.md +2 -1
  78. package/kb/site/en/reference/index.md +19 -7
  79. package/kb/site/en/reference/persistence-catalog.md +91 -44
  80. package/kb/site/en/reference/subsystems/approval.md +10 -10
  81. package/kb/site/en/reference/subsystems/client-modules.md +58 -16
  82. package/kb/site/en/reference/subsystems/code-runtime.md +3 -3
  83. package/kb/site/en/reference/subsystems/compaction.md +2 -2
  84. package/kb/site/en/reference/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +43 -24
  85. package/kb/site/en/reference/subsystems/core.md +70 -12
  86. package/kb/site/en/reference/subsystems/credentials.md +43 -3
  87. package/kb/site/en/reference/subsystems/filesystem.md +12 -2
  88. package/kb/site/en/reference/subsystems/index.md +6 -1
  89. package/kb/site/en/reference/subsystems/jobs.md +1 -1
  90. package/kb/site/en/reference/subsystems/llm-streaming.md +132 -11
  91. package/kb/site/en/reference/subsystems/permission-presets.md +1 -1
  92. package/kb/site/en/reference/subsystems/persistence.md +22 -3
  93. package/kb/site/en/reference/subsystems/plan.md +1 -1
  94. package/kb/site/en/reference/subsystems/session-projection.md +74 -33
  95. package/kb/site/en/reference/subsystems/session-query.md +9 -1
  96. package/kb/site/en/reference/subsystems/session-reference.md +28 -7
  97. package/kb/site/en/reference/subsystems/session-telemetry.md +2 -3
  98. package/kb/site/en/reference/subsystems/session.md +260 -41
  99. package/kb/site/en/reference/subsystems/settings.md +78 -1
  100. package/kb/site/en/reference/subsystems/skills.md +23 -0
  101. package/kb/site/en/reference/subsystems/slots.md +177 -0
  102. package/kb/site/en/reference/subsystems/spill.md +2 -2
  103. package/kb/site/en/reference/subsystems/storage.md +9 -1
  104. package/kb/site/en/reference/subsystems/subagent.md +90 -23
  105. package/kb/site/en/reference/subsystems/system-prompt.md +4 -4
  106. package/kb/site/en/reference/subsystems/token-meter.md +25 -10
  107. package/kb/site/en/reference/subsystems/tools.md +39 -39
  108. package/kb/site/en/reference/subsystems/typert.md +44 -37
  109. package/kb/site/en/reference/subsystems/user-questions.md +33 -33
  110. package/kb/site/en/reference/subsystems/web-client.md +98 -0
  111. package/kb/site/en/reference/subsystems/web-server.md +11 -5
  112. package/kb/site/en/reference/subsystems/web.md +7 -1
  113. package/kb/site/en/reference/subsystems/workspace.md +95 -2
  114. package/kb/site/en/reference/tool-catalog.md +76 -18
  115. package/kb/site/en/reference/tool-execution-pipeline.md +1 -1
  116. package/kb/site/guide/github-review.md +104 -0
  117. package/kb/site/guide/mcp-memory.md +103 -0
  118. package/kb/site/guide/python-sdk.md +87 -41
  119. package/kb/site/guide/schedule.md +21 -0
  120. package/kb/site/reference/agent-lifecycle.md +1 -1
  121. package/kb/{extra/api-gateway.zh.md → site/reference/api-gateway.md} +11 -9
  122. package/kb/site/reference/capability-seams.md +115 -67
  123. package/kb/site/reference/config-catalog.md +357 -163
  124. package/kb/site/reference/cookbook/adding-a-package.md +2 -2
  125. package/kb/site/reference/cookbook/adding-a-settings-card.md +2 -2
  126. package/kb/site/reference/cookbook/adding-a-tool.md +11 -4
  127. package/kb/site/reference/cookbook/adding-an-llm-adapter.md +1 -1
  128. package/kb/site/reference/cookbook/extension-cookbook.md +6 -6
  129. package/kb/site/reference/cordis-api/inherited.md +1 -1
  130. package/kb/site/reference/cordis-primer.md +2 -1
  131. package/kb/site/reference/index.md +19 -7
  132. package/kb/site/reference/persistence-catalog.md +87 -40
  133. package/kb/site/reference/subsystems/approval.md +10 -10
  134. package/kb/site/reference/subsystems/client-modules.md +58 -16
  135. package/kb/site/reference/subsystems/code-runtime.md +3 -3
  136. package/kb/site/reference/subsystems/compaction.md +2 -2
  137. package/kb/site/reference/{cookbook/adding-a-conversation-node.md → subsystems/conversation.md} +43 -24
  138. package/kb/site/reference/subsystems/core.md +70 -12
  139. package/kb/site/reference/subsystems/credentials.md +43 -3
  140. package/kb/site/reference/subsystems/filesystem.md +12 -2
  141. package/kb/site/reference/subsystems/index.md +6 -1
  142. package/kb/site/reference/subsystems/jobs.md +1 -1
  143. package/kb/site/reference/subsystems/llm-streaming.md +132 -11
  144. package/kb/site/reference/subsystems/persistence.md +22 -3
  145. package/kb/site/reference/subsystems/plan.md +1 -1
  146. package/kb/site/reference/subsystems/session-projection.md +74 -33
  147. package/kb/site/reference/subsystems/session-query.md +9 -1
  148. package/kb/site/reference/subsystems/session-reference.md +28 -7
  149. package/kb/site/reference/subsystems/session-telemetry.md +2 -3
  150. package/kb/site/reference/subsystems/session.md +260 -41
  151. package/kb/site/reference/subsystems/settings.md +78 -1
  152. package/kb/site/reference/subsystems/skills.md +23 -0
  153. package/kb/site/reference/subsystems/slots.md +177 -0
  154. package/kb/site/reference/subsystems/spill.md +2 -2
  155. package/kb/site/reference/subsystems/storage.md +9 -1
  156. package/kb/site/reference/subsystems/subagent.md +90 -23
  157. package/kb/site/reference/subsystems/system-prompt.md +4 -4
  158. package/kb/site/reference/subsystems/token-meter.md +25 -10
  159. package/kb/site/reference/subsystems/tools.md +39 -39
  160. package/kb/site/reference/subsystems/typert.md +44 -37
  161. package/kb/site/reference/subsystems/user-questions.md +33 -33
  162. package/kb/site/reference/subsystems/web-client.md +98 -0
  163. package/kb/site/reference/subsystems/web-server.md +11 -5
  164. package/kb/site/reference/subsystems/web.md +7 -1
  165. package/kb/site/reference/subsystems/workspace.md +95 -2
  166. package/kb/site/reference/tool-catalog.md +76 -18
  167. package/kb/site/reference/tool-execution-pipeline.md +1 -1
  168. package/package.json +11 -3
  169. package/skills/dsh-plugin-dev-kb.md +8 -6
@@ -14,14 +14,19 @@ flowchart LR
14
14
  pkg_attachment["attachment"]
15
15
  svc_attachments["ctx.attachments<br/>Durable binary attachment storage"]
16
16
  pkg_attachment_local["attachment-local"]
17
- pkg_host_runtime["host-runtime"]
17
+ pkg_api_session_controller["api-session-controller"]
18
+ pkg_tool_fs["tool-fs"]
18
19
  pkg_llm_pi_ai["llm-pi-ai"]
20
+ pkg_llm_deepseek["llm-deepseek"]
19
21
  pkg_llm["llm"]
20
22
  svc_llm["ctx.llm<br/>LLM adapter registry"]
21
- pkg_llm_deepseek["llm-deepseek"]
22
23
  pkg_llm_replay["llm-replay"]
23
24
  pkg_agent_loop["agent-loop"]
24
25
  pkg_compaction_basic["compaction-basic"]
26
+ pkg_deepseek_llm_api_extensions["deepseek-llm-api-extensions"]
27
+ svc_deepseekLlmApiExtensions["ctx.deepseekLlmApiExtensions<br/>Official DeepSeek request extensions"]
28
+ pkg_session_log_deepseek["session-log-deepseek"]
29
+ pkg_plugin_package_inventory_deepseek["plugin-package-inventory-deepseek"]
25
30
  pkg_token_meter["token-meter"]
26
31
  svc_tokenMeter["ctx.tokenMeter<br/>Replay token measurement"]
27
32
  pkg_compaction_tool_result_pruner["compaction-tool-result-pruner"]
@@ -32,9 +37,18 @@ flowchart LR
32
37
  pkg_session_persistence["session-persistence"]
33
38
  pkg_session_query["session-query"]
34
39
  pkg_session_query_sqlite["session-query-sqlite"]
35
- pkg_subagent_inprocess["subagent-inprocess"]
40
+ pkg_subagent_in_process_driver["subagent-in-process-driver"]
36
41
  pkg_invariants["invariants"]
37
42
  pkg_message_feedback["message-feedback"]
43
+ svc_sessionController["ctx.sessionController<br/>Host Session Remote controller"]
44
+ svc_sessionFileReferences["ctx.sessionFileReferences<br/>Session-addressed file-reference Remote adapter"]
45
+ svc_sessionSkillCatalog["ctx.sessionSkillCatalog<br/>Session-addressed skill Remote adapter"]
46
+ pkg_api_settings_controller["api-settings-controller"]
47
+ svc_credentialsController["ctx.credentialsController<br/>Host credential-surface Remote controller"]
48
+ svc_settingsController["ctx.settingsController<br/>Host settings-surface Remote controller"]
49
+ pkg_api_workspace_controller["api-workspace-controller"]
50
+ svc_workspaceController["ctx.workspaceController<br/>Host Workspace Remote controller"]
51
+ svc_directoryPickerController["ctx.directoryPickerController<br/>Host directory-picking Remote controller"]
38
52
  svc_invariants["ctx.invariants<br/>Package-owned invariant registry"]
39
53
  pkg_scope["scope"]
40
54
  pkg_typert_registry["typert-registry"]
@@ -51,7 +65,8 @@ flowchart LR
51
65
  pkg_settings["settings"]
52
66
  svc_settings["ctx.settings<br/>User-settings seam"]
53
67
  pkg_settings_file["settings-file"]
54
- pkg_apiproxy["apiproxy"]
68
+ pkg_tool_subagent["tool-subagent"]
69
+ svc_subagentModelSelection["ctx.subagentModelSelection<br/>Subagent model-selection preference"]
55
70
  pkg_credentials["credentials"]
56
71
  svc_credentials["ctx.credentials<br/>Credential seam"]
57
72
  pkg_credentials_local["credentials-local"]
@@ -83,14 +98,12 @@ flowchart LR
83
98
  pkg_system_prompt["system-prompt"]
84
99
  svc_systemPrompt["ctx.systemPrompt<br/>System prompt assembly registry"]
85
100
  pkg_tools["tools"]
86
- pkg_tool_fs["tool-fs"]
87
101
  pkg_tool_terminal["tool-terminal"]
88
102
  pkg_tool_web["tool-web"]
89
103
  svc_tools["ctx.tools<br/>Tool registry and guarded execution pipeline"]
90
104
  pkg_tool_ask_user["tool-ask-user"]
91
105
  pkg_tool_cordis["tool-cordis"]
92
106
  pkg_tool_skill["tool-skill"]
93
- pkg_tool_subagent["tool-subagent"]
94
107
  pkg_tool_todo["tool-todo"]
95
108
  pkg_user_questions["user-questions"]
96
109
  svc_userQuestions["ctx.userQuestions<br/>Human question/answer seam"]
@@ -102,9 +115,9 @@ flowchart LR
102
115
  svc_commands["ctx.commands<br/>Human command registry"]
103
116
  pkg_session_projection["session-projection"]
104
117
  svc_sessionProjections["ctx.sessionProjections<br/>Session projection units"]
105
- pkg_host_apiproxy["host-apiproxy"]
106
118
  pkg_session_projection_cache["session-projection-cache"]
107
119
  svc_sessionProjectionCache["ctx.sessionProjectionCache<br/>Persisted projection cache"]
120
+ pkg_subagent["subagent"]
108
121
  pkg_skill["skill"]
109
122
  svc_skills["ctx.skills<br/>Skill provider registry"]
110
123
  pkg_skill_badge["skill-badge"]
@@ -146,29 +159,31 @@ flowchart LR
146
159
  pkg_sandbox_policy["sandbox-policy"]
147
160
  svc_sandboxPolicy["ctx.sandboxPolicy<br/>Sandbox policy home"]
148
161
  pkg_fs_sandbox["fs-sandbox"]
149
- pkg_approval["approval"]
162
+ pkg_user_approval["user-approval"]
150
163
  svc_approval["ctx.approval<br/>Approval seam"]
151
164
  pkg_permission_presets["permission-presets"]
152
165
  svc_permissionPresets["ctx.permissionPresets<br/>Permission presets"]
153
166
  pkg_code_runtime["code-runtime"]
154
167
  svc_codeRuntime["ctx.codeRuntime<br/>Code-execution seam"]
155
- pkg_code_runtime_worker["code-runtime-worker"]
168
+ pkg_code_runtime_worker_thread["code-runtime-worker-thread"]
156
169
  pkg_fs["fs"]
157
170
  svc_fs["ctx.fs<br/>Filesystem provider seam"]
158
171
  pkg_fs_local["fs-local"]
159
172
  pkg_fs_observation_policy["fs-observation-policy"]
160
173
  pkg_compaction["compaction"]
161
174
  svc_compaction["ctx.compaction<br/>Compaction seam"]
162
- pkg_subagent["subagent"]
163
175
  svc_subagents["ctx.subagents<br/>Subagent provider and continuation service"]
164
176
  pkg_subagent_spawn_in_process["subagent-spawn-in-process"]
165
177
  pkg_subagent_fork_in_process["subagent-fork-in-process"]
166
178
  pkg_subagent_dsh_sdk["subagent-dsh-sdk"]
167
179
  pkg_tool_subagent_control["tool-subagent-control"]
168
180
  pkg_tool_ralph["tool-ralph"]
169
- pkg_agent_team["agent-team"]
181
+ pkg_experimental_agent_team["experimental-agent-team"]
170
182
  svc_agentTeams["ctx.agentTeams<br/>Agent Teams coordination domain"]
171
- pkg_tool_agent_team["tool-agent-team"]
183
+ pkg_experimental_tool_agent_team["experimental-tool-agent-team"]
184
+ pkg_experimental_client_ui_agent_team["experimental-client-ui-agent-team"]
185
+ pkg_inspector["inspector"]
186
+ svc_inspector["ctx.inspector<br/>Cross-realm runtime inspection"]
172
187
  pkg_jobs["jobs"]
173
188
  svc_jobs["ctx.jobs<br/>Background job registry"]
174
189
  pkg_jobs_local["jobs-local"]
@@ -183,44 +198,49 @@ flowchart LR
183
198
  svc_spillStore["ctx.spillStore<br/>Spill storage seam"]
184
199
  pkg_spill_local["spill-local"]
185
200
  pkg_spill_policy["spill-policy"]
186
- pkg_directory_picker["directory-picker"]
201
+ pkg_host_directory_picker["host-directory-picker"]
187
202
  svc_directoryPicker["ctx.directoryPicker<br/>Workspace-directory picking seam"]
188
- pkg_directory_picker_native["directory-picker-native"]
189
- pkg_directory_picker_browse["directory-picker-browse"]
190
- pkg_webserver["webserver"]
203
+ pkg_host_directory_picker_native["host-directory-picker-native"]
204
+ pkg_host_directory_picker_browse["host-directory-picker-browse"]
205
+ pkg_host_webserver["host-webserver"]
191
206
  svc_webServer["ctx.webServer<br/>HTTP route registration"]
192
- pkg_connection["connection"]
193
- pkg_modules["modules"]
194
- pkg_hmr["hmr"]
207
+ pkg_client_connection["client-connection"]
208
+ pkg_client_modules["client-modules"]
209
+ pkg_client_hmr["client-hmr"]
195
210
  svc_clientModules["ctx.clientModules<br/>Client plugin graph host"]
196
211
  pkg_workflow["workflow"]
197
212
  svc_workflowEngine["ctx.workflowEngine<br/>Workflow script engine"]
198
213
  pkg_workflow_worker_thread["workflow-worker-thread"]
199
214
  pkg_tool_workflow["tool-workflow"]
215
+ pkg_webhook["webhook"]
216
+ svc_webhookRuntime["ctx.webhookRuntime<br/>Webhook rule runtime"]
217
+ pkg_webhook_github["webhook-github"]
200
218
  pkg_lsp["lsp"]
201
219
  svc_lsp["ctx.lsp<br/>Language-server navigation seam"]
202
- pkg_lsp_local["lsp-local"]
203
220
  pkg_tool_lsp["tool-lsp"]
204
- svc_apiProxy["ctx.apiProxy<br/>Host API dispatch"]
205
221
  pkg_cordis_host_runner["cordis-host-runner"]
206
222
  svc_dynamicCordisRunner["ctx.dynamicCordisRunner<br/>Dynamic Cordis package host runner"]
207
223
  svc_cordisInspect["ctx.cordisInspect<br/>Dynamic Cordis inspect registry"]
208
- pkg_acp --> svc_approval
209
224
  pkg_agent --> svc_agents
210
225
  pkg_agent_default_model --> svc_agentDefaultModel
211
226
  pkg_agent_loop --> svc_agentLoop
212
227
  pkg_agent_presets --> svc_agentPresets
213
- pkg_agent_team --> svc_agentTeams
214
228
  pkg_api_gateway --> svc_typertGateway
215
- pkg_apiproxy --> svc_apiProxy
216
- pkg_approval --> svc_approval
229
+ pkg_api_session_controller --> svc_sessionController
230
+ pkg_api_session_controller --> svc_sessionFileReferences
231
+ pkg_api_session_controller --> svc_sessionSkillCatalog
232
+ pkg_api_settings_controller --> svc_credentialsController
233
+ pkg_api_settings_controller --> svc_settingsController
234
+ pkg_api_workspace_controller --> svc_directoryPickerController
235
+ pkg_api_workspace_controller --> svc_workspaceController
217
236
  pkg_attachment --> svc_attachments
218
237
  pkg_attachment_local --> svc_attachments
219
238
  pkg_authorization --> svc_authorization
220
239
  pkg_bash_local --> svc_shell
221
240
  pkg_bash_sandbox --> svc_shell
241
+ pkg_client_modules --> svc_clientModules
222
242
  pkg_code_runtime --> svc_codeRuntime
223
- pkg_code_runtime_worker --> svc_codeRuntime
243
+ pkg_code_runtime_worker_thread --> svc_codeRuntime
224
244
  pkg_commands --> svc_commands
225
245
  pkg_compaction --> svc_compaction
226
246
  pkg_compaction_basic --> svc_compaction
@@ -229,10 +249,9 @@ flowchart LR
229
249
  pkg_cordis_host_runner --> svc_dynamicCordisRunner
230
250
  pkg_credentials --> svc_credentials
231
251
  pkg_credentials_local --> svc_credentials
232
- pkg_directory_picker --> svc_directoryPicker
233
- pkg_directory_picker_browse --> svc_directoryPicker
234
- pkg_directory_picker_native --> svc_directoryPicker
252
+ pkg_deepseek_llm_api_extensions --> svc_deepseekLlmApiExtensions
235
253
  pkg_e2b --> svc_e2b
254
+ pkg_experimental_agent_team --> svc_agentTeams
236
255
  pkg_file_reference --> svc_fileReferences
237
256
  pkg_file_reference_local --> svc_fileReferences
238
257
  pkg_fs --> svc_fs
@@ -240,6 +259,11 @@ flowchart LR
240
259
  pkg_fs_local --> svc_fs
241
260
  pkg_fs_sandbox --> svc_fs
242
261
  pkg_goal --> svc_goals
262
+ pkg_host_directory_picker --> svc_directoryPicker
263
+ pkg_host_directory_picker_browse --> svc_directoryPicker
264
+ pkg_host_directory_picker_native --> svc_directoryPicker
265
+ pkg_host_webserver --> svc_webServer
266
+ pkg_inspector --> svc_inspector
243
267
  pkg_invariants --> svc_invariants
244
268
  pkg_jobs --> svc_jobs
245
269
  pkg_jobs_local --> svc_jobs
@@ -248,16 +272,17 @@ flowchart LR
248
272
  pkg_llm_pi_ai --> svc_llm
249
273
  pkg_llm_replay --> svc_llm
250
274
  pkg_lsp --> svc_lsp
251
- pkg_lsp_local --> svc_lsp
275
+ pkg_lsp_stdio --> svc_lsp
252
276
  pkg_message_feedback --> svc_messageFeedback
253
- pkg_modules --> svc_clientModules
254
277
  pkg_permission_presets --> svc_permissionPresets
255
278
  pkg_plan_mode --> svc_planMode
279
+ pkg_plugin_package_inventory_deepseek --> svc_deepseekLlmApiExtensions
256
280
  pkg_pwsh_local --> svc_shell
257
281
  pkg_sandbox --> svc_sandbox
258
282
  pkg_sandbox_local --> svc_sandbox
259
283
  pkg_sandbox_policy --> svc_sandboxPolicy
260
284
  pkg_session --> svc_sessions
285
+ pkg_session_log_deepseek --> svc_deepseekLlmApiExtensions
261
286
  pkg_session_persistence --> svc_sessionPersistence
262
287
  pkg_session_persistence_jsonl --> svc_sessionPersistence
263
288
  pkg_session_persistence_sqlite --> svc_sessionPersistence
@@ -298,42 +323,49 @@ flowchart LR
298
323
  pkg_terminal --> svc_terminals
299
324
  pkg_terminal_bash --> svc_terminals
300
325
  pkg_token_meter --> svc_tokenMeter
326
+ pkg_tool_subagent --> svc_subagentModelSelection
301
327
  pkg_tools --> svc_tools
302
328
  pkg_typert_registry --> svc_typert
329
+ pkg_user_approval --> svc_approval
303
330
  pkg_user_questions --> svc_userQuestions
304
331
  pkg_web --> svc_web
305
332
  pkg_web_fetch_http --> svc_web
306
333
  pkg_web_search_deepseek --> svc_web
307
334
  pkg_web_search_exa --> svc_web
308
335
  pkg_web_search_perplexity --> svc_web
309
- pkg_webserver --> svc_webServer
336
+ pkg_webhook --> svc_webhookRuntime
310
337
  pkg_workflow --> svc_workflowEngine
311
338
  pkg_workflow_worker_thread --> svc_workflowEngine
312
339
  pkg_workspace --> svc_workspaceRegistry
340
+ svc_agentDefaultModel --> pkg_api_session_controller
313
341
  svc_agentDefaultModel --> pkg_headless
314
- svc_agentDefaultModel --> pkg_host_apiproxy
315
342
  svc_agentLoop --> pkg_agent_spine_demo
316
- svc_agentTeams --> pkg_tool_agent_team
343
+ svc_agentTeams --> pkg_experimental_client_ui_agent_team
344
+ svc_agentTeams --> pkg_experimental_tool_agent_team
317
345
  svc_agents --> pkg_acp
318
346
  svc_agents --> pkg_agent_loop
319
- svc_agents --> pkg_subagent_inprocess
320
- svc_apiProxy --> pkg_connection
347
+ svc_agents --> pkg_subagent_in_process_driver
348
+ svc_approval --> pkg_acp
321
349
  svc_approval --> pkg_tool_bash
322
350
  svc_approval --> pkg_tools
323
- svc_attachments --> pkg_host_runtime
351
+ svc_attachments --> pkg_api_session_controller
352
+ svc_attachments --> pkg_llm_deepseek
324
353
  svc_attachments --> pkg_llm_pi_ai
354
+ svc_attachments --> pkg_tool_fs
325
355
  svc_authorization --> pkg_llm_pi_ai
326
- svc_clientModules --> pkg_hmr
356
+ svc_clientModules --> pkg_client_hmr
327
357
  svc_codeRuntime --> pkg_tools
328
358
  svc_compaction --> pkg_compaction_basic
329
359
  svc_cordisInspect --> pkg_tool_cordis
330
- svc_credentials --> pkg_apiproxy
360
+ svc_credentials --> pkg_api_settings_controller
331
361
  svc_credentials --> pkg_llm_deepseek
332
362
  svc_credentials --> pkg_llm_pi_ai
333
- svc_directoryPicker --> pkg_apiproxy
363
+ svc_deepseekLlmApiExtensions --> pkg_llm_deepseek
364
+ svc_directoryPicker --> pkg_api_workspace_controller
334
365
  svc_dynamicCordisRunner --> pkg_tool_cordis
335
366
  svc_e2b --> pkg_fs_e2b
336
367
  svc_e2b --> pkg_subprocess_e2b
368
+ svc_fileReferences --> pkg_api_session_controller
337
369
  svc_fs --> pkg_tool_fs
338
370
  svc_invariants --> pkg_agent
339
371
  svc_invariants --> pkg_agent_loop
@@ -358,8 +390,11 @@ flowchart LR
358
390
  svc_sessionPersistence --> pkg_session_query
359
391
  svc_sessionPersistence --> pkg_session_query_sqlite
360
392
  svc_sessionPersistence --> pkg_tool_bash
361
- svc_sessionProjectionCache --> pkg_host_apiproxy
362
- svc_sessionProjections --> pkg_host_apiproxy
393
+ svc_sessionProjectionCache --> pkg_api_session_controller
394
+ svc_sessionProjectionCache --> pkg_session_query
395
+ svc_sessionProjectionCache --> pkg_session_reference
396
+ svc_sessionProjectionCache --> pkg_subagent
397
+ svc_sessionProjections --> pkg_api_session_controller
363
398
  svc_sessionProjections --> pkg_session_title
364
399
  svc_sessionProjections --> pkg_tool_todo
365
400
  svc_sessionQuery --> pkg_session_reference
@@ -371,8 +406,8 @@ flowchart LR
371
406
  svc_sessions --> pkg_session_persistence
372
407
  svc_sessions --> pkg_session_query
373
408
  svc_sessions --> pkg_session_query_sqlite
374
- svc_sessions --> pkg_subagent_inprocess
375
- svc_settings --> pkg_apiproxy
409
+ svc_sessions --> pkg_subagent_in_process_driver
410
+ svc_settings --> pkg_api_settings_controller
376
411
  svc_settings --> pkg_llm_deepseek
377
412
  svc_settings --> pkg_llm_pi_ai
378
413
  svc_shell --> pkg_hooks_claude_code
@@ -386,6 +421,7 @@ flowchart LR
386
421
  svc_storage --> pkg_storage_domain
387
422
  svc_storageDomain --> pkg_message_feedback
388
423
  svc_storageDomain --> pkg_workspace
424
+ svc_subagentModelSelection --> pkg_tool_subagent
389
425
  svc_subagents --> pkg_tool_ralph
390
426
  svc_subagents --> pkg_tool_subagent
391
427
  svc_subagents --> pkg_tool_subagent_control
@@ -418,49 +454,60 @@ flowchart LR
418
454
  svc_typert --> pkg_typert_loader
419
455
  svc_userQuestions --> pkg_tool_ask_user
420
456
  svc_web --> pkg_tool_web
421
- svc_webServer --> pkg_connection
422
- svc_webServer --> pkg_hmr
423
- svc_webServer --> pkg_modules
457
+ svc_webServer --> pkg_client_connection
458
+ svc_webServer --> pkg_client_hmr
459
+ svc_webServer --> pkg_client_modules
460
+ svc_webhookRuntime --> pkg_webhook_github
424
461
  svc_workflowEngine --> pkg_tool_ralph
425
462
  svc_workflowEngine --> pkg_tool_workflow
426
- svc_workspaceRegistry --> pkg_apiproxy
463
+ svc_workspaceRegistry --> pkg_api_session_controller
464
+ svc_workspaceRegistry --> pkg_api_workspace_controller
427
465
  svc_fs -. event gate .-> pkg_fs_observation_policy
428
466
  ```
429
467
 
430
468
  | ctx key | Role | Owner | Implementations | Direct consumers | Companion plugins | Note |
431
469
  | --- | --- | --- | --- | --- | --- | --- |
432
- | `ctx.attachments` | `seam` | [`attachment`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/attachment/attachment) | [`attachment-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/attachment/attachment-local) | `host-runtime`, [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-pi-ai) | - | The host commits accepted images before session events; provider adapters resolve authorized durable references into provider-native content. |
470
+ | `ctx.attachments` | `seam` | [`attachment`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/attachment/attachment) | [`attachment-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/attachment/attachment-local) | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller), [`tool-fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/tool-fs), [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-pi-ai), [`llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-deepseek) | - | The host commits accepted images before session events; provider adapters resolve authorized durable references into provider-native content. |
433
471
  | `ctx.llm` | `seam` | [`llm`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm) | [`llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-deepseek), [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-pi-ai), [`llm-replay`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/test-support/llm-replay) | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`compaction-basic`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-basic) | - | Adapters register provider implementations; the loop and compaction call the provider-neutral stream service. |
472
+ | `ctx.deepseekLlmApiExtensions` | `seam` | [`deepseek-llm-api-extensions`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/deepseek-llm-api-extensions) | [`session-log-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-log-deepseek), [`plugin-package-inventory-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/plugin-package-inventory-deepseek) | [`llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-deepseek) | - | Plugins prepare independent top-level fields; the official adapter merges them and commits their delivery state after HTTP acceptance. |
434
473
  | `ctx.tokenMeter` | `core` | [`token-meter`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/token-meter) | - | [`compaction-basic`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-basic) | - | Owns isolated per-session replay folds; pressure consumers share immutable revisioned measurements. |
435
474
  | `ctx.toolResultPruner` | `core` | [`compaction-tool-result-pruner`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-tool-result-pruner) | - | [`compaction-basic`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-basic) | - | Rewrites oversized current tool results through replayable single-node surface replacements before summary compaction. |
436
- | `ctx.sessions` | `core` | [`session`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/session) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`agent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent), [`session-persistence`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-persistence), [`session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query), [`session-query-sqlite`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query-sqlite), `subagent-inprocess`, [`invariants`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/runtime-diagnostics/invariants), [`message-feedback`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/feedback/message-feedback) | - | Owns append-only Session instances and emits the durable session event feed. |
475
+ | `ctx.sessions` | `core` | [`session`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/session) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`agent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent), [`session-persistence`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-persistence), [`session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query), [`session-query-sqlite`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query-sqlite), [`subagent-in-process-driver`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-in-process-driver), [`invariants`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/runtime-diagnostics/invariants), [`message-feedback`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/feedback/message-feedback) | - | Owns append-only Session instances and emits the durable session event feed. |
476
+ | `ctx.sessionController` | `core` | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller) | - | - | - | Owns Session commands, cold reads, durable-event following, live control state, model catalogs, workspace opening, and Agent activation policy. |
477
+ | `ctx.sessionFileReferences` | `core` | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller) | - | - | - | Delegates file-reference discovery through the Session Controller's established Agent lookup policy. |
478
+ | `ctx.sessionSkillCatalog` | `core` | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller) | - | - | - | Lists the Session composition's user-invocable skills without activating a cold Agent. |
479
+ | `ctx.credentialsController` | `core` | [`api-settings-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
480
+ | `ctx.settingsController` | `core` | [`api-settings-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
481
+ | `ctx.workspaceController` | `core` | [`api-workspace-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/workspace-controller) | - | - | - | Owns Workspace commands and reconnect-safe Workspace state delivery through the generated Remote namespace. |
482
+ | `ctx.directoryPickerController` | `core` | [`api-workspace-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
437
483
  | `ctx.invariants` | `core` | [`invariants`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/runtime-diagnostics/invariants) | - | [`session`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/session), [`agent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent), [`scope`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/scope), [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop) | - | Companion subpaths register owner-local checks; the service owns selection, uniqueness, child fibers, and package-attributed failures. |
438
484
  | `ctx.typert` | `core` | [`typert-registry`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/typert/registry) | - | [`typert-loader`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/typert/loader), [`api-gateway`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
439
485
  | `ctx.typertGateway` | `core` | [`api-gateway`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/gateway) | - | - | - | Associates generated Remote descriptors with live Cordis services, resolves registered identities, and exposes unary calls through the shared Connection RPC carrier. |
440
486
  | `ctx.sessionPersistence` | `seam` | [`session-persistence`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-persistence) | [`session-persistence-jsonl`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-persistence-jsonl), [`session-persistence-sqlite`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-persistence-sqlite) | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`hooks-claude-code`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/hooks/hooks-claude-code), [`hooks-codex`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/hooks/hooks-codex), [`session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query), [`session-query-sqlite`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query-sqlite), [`message-feedback`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/feedback/message-feedback) | - | Backends persist the same SessionEvent vocabulary; apps choose a backend at composition time. |
441
- | `ctx.settings` | `seam` | [`settings`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/settings/settings) | [`settings-file`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/settings/settings-file) | [`llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-deepseek), [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-pi-ai), `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. |
442
- | `ctx.credentials` | `seam` | [`credentials`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/credentials/credentials) | [`credentials-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/credentials/credentials-local) | [`llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-deepseek), [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-pi-ai), `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. |
487
+ | `ctx.settings` | `seam` | [`settings`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/settings/settings) | [`settings-file`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/settings/settings-file) | [`api-settings-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/settings-controller), [`llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-deepseek), [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
488
+ | `ctx.subagentModelSelection` | `core` | [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent) | - | [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent) | - | Owns the default-off settings namespace that Agent-scoped delegation tools sample when composing a new top-level Session. |
489
+ | `ctx.credentials` | `seam` | [`credentials`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/credentials/credentials) | [`credentials-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/credentials/credentials-local) | [`api-settings-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/settings-controller), [`llm-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/llm/llm-deepseek), [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
443
490
  | `ctx.authorization` | `seam` | [`authorization`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/credentials/authorization) | - | [`llm-pi-ai`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
444
491
  | `ctx.sessionTelemetry` | `seam` | [`session-telemetry`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-telemetry) | [`session-telemetry-otel`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
445
492
  | `ctx.storage` | `seam` | [`storage`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/storage/storage) | [`storage-json`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/storage/storage-json), [`storage-sqlite`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/storage/storage-sqlite) | [`storage-domain`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
446
493
  | `ctx.storageDomain` | `core` | [`storage-domain`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/storage/storage-domain) | - | [`workspace`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workspace/workspace), [`message-feedback`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/feedback/message-feedback) | - | Waits for every configured backend, then publishes the domain form as one lifecycle-bound service for typed durable state. |
447
494
  | `ctx.messageFeedback` | `core` | [`message-feedback`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
448
- | `ctx.workspaceRegistry` | `core` | [`workspace`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workspace/workspace) | - | `apiproxy` | - | Owns WorkspaceId-branded records over the domain facility; stable sessionIds accounts drive Host RPC and GUI projections. |
495
+ | `ctx.workspaceRegistry` | `core` | [`workspace`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workspace/workspace) | - | [`api-workspace-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/workspace-controller), [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller) | - | Owns WorkspaceId-branded records over the domain facility; stable sessionIds accounts drive Host RPC and GUI projections. |
449
496
  | `ctx.sessionQuery` | `seam` | [`session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query) | [`session-query-sqlite`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query-sqlite) | [`session-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference), [`tool-session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
450
- | `ctx.fileReferences` | `seam` | [`file-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference) | [`file-reference-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference-local) | - | - | The interface returns path-only completion candidates within the addressed Agent cwd through its unary Remote contract; providers own namespace access and ranking without reading file contents. |
497
+ | `ctx.fileReferences` | `seam` | [`file-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference) | [`file-reference-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/file-reference-local) | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
451
498
  | `ctx.sessionReferenceResolver` | `core` | [`session-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference) | - | - | - | Projects bounded current-surface conversation snapshots into durable untrusted message context; host adapters own mention syntax. |
452
499
  | `ctx.sessionTitle` | `seam` | [`session-title`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title) | [`session-title-first-prompt-llm`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title-first-prompt-llm), [`session-title-all-prompts-llm`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title-all-prompts-llm) | - | - | Owns the deterministic fallback, latest-title fold, and sole optional asynchronous provider registration. |
453
500
  | `ctx.systemPrompt` | `core` | [`system-prompt`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/system-prompt) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/tools), [`tool-fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/tool-fs), [`tool-terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/tool-terminal), [`tool-web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/tool-web) | - | Collects prompt sections and model-facing tool schemas for each step. |
454
- | `ctx.tools` | `core` | [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/tools) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`tool-ask-user`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/interaction/tool-ask-user), [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`tool-cordis`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/extensions/tool-cordis), [`tool-fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/tool-fs), [`tool-terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/tool-terminal), [`tool-skill`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/tool-skill), [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent), [`tool-todo`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/todo/tool-todo), [`tool-web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/tool-web) | - | Registers capabilities, owns Code Mode transport, and routes calls through pre-policy, monotonic guards, around dispatch, post-policy, and final-result observation. |
501
+ | `ctx.tools` | `core` | [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/tools) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`tool-ask-user`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/interaction/tool-ask-user), [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`tool-cordis`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/extensions/tool-cordis), [`tool-fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/tool-fs), [`tool-terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/tool-terminal), [`tool-skill`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/tool-skill), [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent), [`tool-todo`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/todo/tool-todo), [`tool-web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
455
502
  | `ctx.userQuestions` | `seam` | [`user-questions`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/interaction/user-questions) | - | [`tool-ask-user`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
456
503
  | `ctx.planMode` | `core` | [`plan-mode`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
457
504
  | `ctx.agentPresets` | `core` | [`agent-presets`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
458
505
  | `ctx.commands` | `core` | [`commands`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/interaction/commands) | - | - | - | Plugins register direct human commands without sending invocations to the model. |
459
- | `ctx.sessionProjections` | `core` | [`session-projection`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-projection) | - | [`tool-todo`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/todo/tool-todo), [`session-title`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-title), [`host-apiproxy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
460
- | `ctx.sessionProjectionCache` | `core` | [`session-projection-cache`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-projection-cache) | - | [`host-apiproxy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
506
+ | `ctx.sessionProjections` | `core` | [`session-projection`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-projection) | - | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller), [`tool-todo`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/todo/tool-todo), [`session-title`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
507
+ | `ctx.sessionProjectionCache` | `core` | [`session-projection-cache`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session/session-projection-cache) | - | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller), [`session-query`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/session-query/session-query), [`session-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference), [`subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
461
508
  | `ctx.skills` | `seam` | [`skill`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill) | [`skill-badge`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill-badge), [`skill-filesystem`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/skill-filesystem) | [`tool-skill`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/skill/tool-skill) | - | Merges provider skill catalogs; tool-skill renders the session-prefix catalog and loads complete skill bodies. |
462
- | `ctx.agents` | `core` | [`agent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`acp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/acp/acp), `subagent-inprocess` | - | Owns live Agent handles, the create/resume factory seam, and process-local initiator propagation. |
463
- | `ctx.agentDefaultModel` | `core` | [`agent-default-model`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-default-model) | - | [`headless`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/bundle/headless), [`host-apiproxy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/host/apiproxy) | - | Layers the default ModelSelection through settings so direct and Host-backed Agent entry points share one state owner. |
509
+ | `ctx.agents` | `core` | [`agent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent) | - | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop), [`acp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/acp/acp), [`subagent-in-process-driver`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-in-process-driver) | - | Owns live Agent handles, the create/resume factory seam, and process-local initiator propagation. |
510
+ | `ctx.agentDefaultModel` | `core` | [`agent-default-model`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-default-model) | - | [`api-session-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/session-controller), [`headless`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/bundle/headless) | - | Layers the default ModelSelection through settings so direct and Host-backed Agent entry points share one state owner. |
464
511
  | `ctx.agentLoop` | `bundle` | [`agent-loop`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/agent-loop) | - | [`agent-spine-demo`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/examples/agent-spine-demo) | - | The one concrete loop plugin; extension packages depend on dsh-agent events and services, not on this package. |
465
512
  | `ctx.goals` | `core` | [`goal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/goal/goal) | - | - | - | Folds revisioned objective state from the session log and keeps live continuation activation process-local. |
466
513
  | `ctx.e2b` | `core` | [`e2b`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/e2b/e2b) | - | [`fs-e2b`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/e2b/fs-e2b), [`subprocess-e2b`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
@@ -470,22 +517,23 @@ flowchart LR
470
517
  | `ctx.terminals` | `seam` | [`terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/terminal) | [`terminal-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/terminal-bash) | [`tool-terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
471
518
  | `ctx.sandbox` | `seam` | [`sandbox`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/sandbox/sandbox) | [`sandbox-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/sandbox/sandbox-local) | [`bash-sandbox`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/bash-sandbox), [`terminal-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
472
519
  | `ctx.sandboxPolicy` | `core` | [`sandbox-policy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/sandbox/sandbox-policy) | - | [`bash-sandbox`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/bash-sandbox), [`fs-sandbox`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs-sandbox), [`terminal-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
473
- | `ctx.approval` | `seam` | `approval` | [`acp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/acp/acp) | [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/tools), [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash) | - | 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`. |
520
+ | `ctx.approval` | `seam` | [`user-approval`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/interaction/user-approval) | - | [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/core/tools), [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`acp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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`. |
474
521
  | `ctx.permissionPresets` | `core` | [`permission-presets`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
475
- | `ctx.codeRuntime` | `seam` | [`code-runtime`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/code-runtime/code-runtime) | `code-runtime-worker` | [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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 Code Mode). |
522
+ | `ctx.codeRuntime` | `seam` | [`code-runtime`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/code-runtime/code-runtime) | [`code-runtime-worker-thread`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/code-runtime/code-runtime-worker-thread) | [`tools`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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). |
476
523
  | `ctx.fs` | `seam` | [`fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs) | [`fs-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs-local), [`fs-sandbox`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/fs-sandbox), [`fs-e2b`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/e2b/fs-e2b) | [`tool-fs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/fs/tool-fs) | [`fs-observation-policy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
477
524
  | `ctx.compaction` | `seam` | [`compaction`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction) | [`compaction-basic`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-basic) | [`compaction-basic`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/compaction/compaction-basic) | - | The basic backend consumes post-step pressure and request-error recovery events; there is no model-facing compact tool. |
478
525
  | `ctx.subagents` | `seam` | [`subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent) | [`subagent-spawn-in-process`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-spawn-in-process), [`subagent-fork-in-process`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-fork-in-process), [`subagent-acp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-acp), [`subagent-codex`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-codex), [`subagent-claude-code`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-claude-code), [`subagent-dsh-sdk`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/subagent-dsh-sdk) | [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent), [`tool-subagent-control`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent-control), [`tool-ralph`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
479
- | `ctx.agentTeams` | `core` | `agent-team` | - | `tool-agent-team` | - | Owns the implicit-root roster, durable peer mailbox, shared task DAG, and continuable-child lifecycle; tool-agent-team contributes the scoped model policy and controls. |
526
+ | `ctx.agentTeams` | `core` | [`experimental-agent-team`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/experimental/agent-team) | - | [`experimental-tool-agent-team`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/experimental/tool-agent-team), [`experimental-client-ui-agent-team`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
527
+ | `ctx.inspector` | `core` | `inspector` | - | - | - | Owns the Worker-hosted CDP target and the transport-independent Host and Client observation and Cordis-tree query API. |
480
528
  | `ctx.jobs` | `seam` | [`jobs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/jobs/jobs) | [`jobs-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/jobs/jobs-local) | [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`tool-terminal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/terminal/tool-terminal), [`tool-subagent`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subagent/tool-subagent), [`tool-jobs`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
481
529
  | `ctx.web` | `seam` | [`web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web) | [`web-search-exa`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-search-exa), [`web-search-perplexity`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-search-perplexity), [`web-search-deepseek`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-search-deepseek), [`web-fetch-http`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/web-fetch-http) | [`tool-web`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/web/tool-web) | - | Search and fetch providers register into one ctx.web seam; tool-web owns the stable model-facing names. |
482
530
  | `ctx.spillStore` | `seam` | [`spill`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/spill/spill) | [`spill-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/spill/spill-local) | [`spill-policy`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
483
- | `ctx.directoryPicker` | `seam` | `directory-picker` | `directory-picker-native`, `directory-picker-browse` | `apiproxy` | - | 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). |
484
- | `ctx.webServer` | `core` | `webserver` | - | `connection`, `modules`, `hmr` | - | Plain node:http carrier: named-route registry, index transform taps, and the static dist fallback; web-transport plugins register their own routes. |
485
- | `ctx.clientModules` | `core` | `modules` | - | `hmr` | - | Composes the __DSH_BOOT__ entry graph from an incremental dsh.client scan, serves plugin bundles, and notifies rebuilt/graph-changed subscribers. |
531
+ | `ctx.directoryPicker` | `seam` | [`host-directory-picker`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/host/directory-picker) | [`host-directory-picker-native`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/host/directory-picker-native), [`host-directory-picker-browse`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/host/directory-picker-browse) | [`api-workspace-controller`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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). |
532
+ | `ctx.webServer` | `core` | [`host-webserver`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/host/webserver) | - | [`client-connection`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/client/connection), [`client-modules`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/client/modules), [`client-hmr`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
533
+ | `ctx.clientModules` | `core` | [`client-modules`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/client/modules) | - | [`client-hmr`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/client/hmr) | - | Composes the __DSH_BOOT__ entry graph from an incremental dsh.client scan, serves plugin bundles, and notifies rebuilt/graph-changed subscribers. |
486
534
  | `ctx.workflowEngine` | `seam` | [`workflow`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workflow/workflow) | [`workflow-worker-thread`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workflow/workflow-worker-thread) | [`tool-workflow`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workflow/tool-workflow), [`tool-ralph`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
487
- | `ctx.lsp` | `seam` | [`lsp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/lsp/lsp) | `lsp-local` | [`tool-lsp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
488
- | `ctx.apiProxy` | `core` | `apiproxy` | - | `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. |
535
+ | `ctx.webhookRuntime` | `core` | [`webhook`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/webhook/webhook) | - | [`webhook-github`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
536
+ | `ctx.lsp` | `seam` | [`lsp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/lsp/lsp) | [`lsp-stdio`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/lsp/lsp-stdio) | [`tool-lsp`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
489
537
  | `ctx.dynamicCordisRunner` | `core` | [`cordis-host-runner`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/extensions/cordis-host-runner) | - | [`tool-cordis`](https://github.com/deepseek-ai/deepseek-harness/tree/master/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. |
490
538
  | `ctx.cordisInspect` | `core` | [`cordis-host-runner`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/extensions/cordis-host-runner) | - | [`tool-cordis`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/extensions/tool-cordis) | - | Registers host inspect providers, mirrors the client provider manifest, and routes client queries through the dynamic Cordis transport. |
491
539