dsh-plugin-dev-kb 1.0.0

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 (234) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/cordis.patch.yml +12 -0
  4. package/kb/INDEX.md +210 -0
  5. package/kb/README.md +69 -0
  6. package/kb/extra/AGENTS.md +75 -0
  7. package/kb/extra/api-gateway.md +164 -0
  8. package/kb/extra/api-gateway.zh.md +164 -0
  9. package/kb/extra/cookbook/adding-a-vendored-package.md +59 -0
  10. package/kb/extra/cookbook/adding-a-vendored-package.zh.md +59 -0
  11. package/kb/extra/cookbook/maintaining-dsh-code-review.md +64 -0
  12. package/kb/extra/cookbook/maintaining-dsh-code-review.zh.md +64 -0
  13. package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.md +32 -0
  14. package/kb/extra/cookbook/responding-to-pr-review-on-a-stack.zh.md +32 -0
  15. package/kb/extra/defensive-patterns.md +33 -0
  16. package/kb/extra/defensive-patterns.zh.md +33 -0
  17. package/kb/extra/development.md +171 -0
  18. package/kb/extra/development.zh.md +171 -0
  19. package/kb/extra/event-producer-consumer.md +76 -0
  20. package/kb/extra/event-producer-consumer.zh.md +78 -0
  21. package/kb/extra/glossary.md +45 -0
  22. package/kb/extra/glossary.zh.md +45 -0
  23. package/kb/extra/graph-atlas.md +24 -0
  24. package/kb/extra/graph-atlas.zh.md +26 -0
  25. package/kb/extra/i18n/README.md +60 -0
  26. package/kb/extra/i18n/README.zh.md +60 -0
  27. package/kb/extra/i18n/style-samples.md +87 -0
  28. package/kb/extra/i18n/terminology.md +214 -0
  29. package/kb/extra/i18n/translation-prompt.md +263 -0
  30. package/kb/extra/i18n/translation-rules.md +69 -0
  31. package/kb/extra/i18n/translation-rules.zh.md +69 -0
  32. package/kb/extra/module-graph.md +1641 -0
  33. package/kb/extra/module-graph.zh.md +1643 -0
  34. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.md +113 -0
  35. package/kb/extra/postmortem/0001-acp-default-export-drops-inject.zh.md +113 -0
  36. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.md +47 -0
  37. package/kb/extra/postmortem/0002-js-expression-disabled-filesystem-tools.zh.md +47 -0
  38. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.md +53 -0
  39. package/kb/extra/postmortem/0003-web-agent-gui-feedback-loop.zh.md +53 -0
  40. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.md +55 -0
  41. package/kb/extra/postmortem/0004-landlock-partial-notice-misclassified-child-failures.zh.md +55 -0
  42. package/kb/extra/postmortem/README.md +18 -0
  43. package/kb/extra/postmortem/README.zh.md +18 -0
  44. package/kb/extra/rescope.md +53 -0
  45. package/kb/extra/rescope.zh.md +53 -0
  46. package/kb/extra/subsystems/attachment.md +125 -0
  47. package/kb/extra/subsystems/attachment.zh.md +125 -0
  48. package/kb/extra/subsystems/extensions.md +364 -0
  49. package/kb/extra/subsystems/extensions.zh.md +364 -0
  50. package/kb/extra/subsystems/feedback.md +266 -0
  51. package/kb/extra/subsystems/feedback.zh.md +266 -0
  52. package/kb/extra/testing.md +49 -0
  53. package/kb/extra/testing.zh.md +49 -0
  54. package/kb/extra/web-styling.md +25 -0
  55. package/kb/extra/web-styling.zh.md +25 -0
  56. package/kb/meta/search-index.json +1328 -0
  57. package/kb/meta/site-pages.txt +168 -0
  58. package/kb/meta/source.json +13 -0
  59. package/kb/meta/topics.md +75 -0
  60. package/kb/site/develop/basic/config.md +108 -0
  61. package/kb/site/develop/basic/index.md +146 -0
  62. package/kb/site/develop/basic/publish.md +185 -0
  63. package/kb/site/develop/basic/tool.md +54 -0
  64. package/kb/site/develop/cordis-tutorial/01-first-plugin.md +95 -0
  65. package/kb/site/develop/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
  66. package/kb/site/develop/cordis-tutorial/03-services.md +98 -0
  67. package/kb/site/develop/cordis-tutorial/04-events.md +144 -0
  68. package/kb/site/develop/cordis-tutorial/05-config.md +84 -0
  69. package/kb/site/develop/cordis-tutorial/06-composition-and-hmr.md +113 -0
  70. package/kb/site/develop/cordis-tutorial/07-into-the-harness.md +107 -0
  71. package/kb/site/develop/cordis-tutorial/index.md +62 -0
  72. package/kb/site/develop/framework/events.md +145 -0
  73. package/kb/site/develop/framework/index.md +139 -0
  74. package/kb/site/develop/framework/service.md +152 -0
  75. package/kb/site/develop/practice/index.md +157 -0
  76. package/kb/site/develop/practice/llm-adapter.md +190 -0
  77. package/kb/site/en/develop/basic/config.md +108 -0
  78. package/kb/site/en/develop/basic/index.md +146 -0
  79. package/kb/site/en/develop/basic/publish.md +185 -0
  80. package/kb/site/en/develop/basic/tool.md +54 -0
  81. package/kb/site/en/develop/cordis-tutorial/01-first-plugin.md +95 -0
  82. package/kb/site/en/develop/cordis-tutorial/02-lifecycle-and-effects.md +98 -0
  83. package/kb/site/en/develop/cordis-tutorial/03-services.md +98 -0
  84. package/kb/site/en/develop/cordis-tutorial/04-events.md +144 -0
  85. package/kb/site/en/develop/cordis-tutorial/05-config.md +84 -0
  86. package/kb/site/en/develop/cordis-tutorial/06-composition-and-hmr.md +113 -0
  87. package/kb/site/en/develop/cordis-tutorial/07-into-the-harness.md +107 -0
  88. package/kb/site/en/develop/cordis-tutorial/index.md +60 -0
  89. package/kb/site/en/develop/framework/events.md +145 -0
  90. package/kb/site/en/develop/framework/index.md +139 -0
  91. package/kb/site/en/develop/framework/service.md +150 -0
  92. package/kb/site/en/develop/practice/index.md +157 -0
  93. package/kb/site/en/develop/practice/llm-adapter.md +190 -0
  94. package/kb/site/en/guide/providers-custom-form.png +0 -0
  95. package/kb/site/en/guide/providers-models-page.png +0 -0
  96. package/kb/site/en/guide/providers.md +100 -0
  97. package/kb/site/en/guide/python-sdk.md +106 -0
  98. package/kb/site/en/guide/quickstart.md +32 -0
  99. package/kb/site/en/index.md +8 -0
  100. package/kb/site/en/reference/agent-lifecycle.md +86 -0
  101. package/kb/site/en/reference/capability-seams.md +475 -0
  102. package/kb/site/en/reference/config-catalog.md +3155 -0
  103. package/kb/site/en/reference/cookbook/adding-a-conversation-node.md +235 -0
  104. package/kb/site/en/reference/cookbook/adding-a-package.md +120 -0
  105. package/kb/site/en/reference/cookbook/adding-a-settings-card.md +102 -0
  106. package/kb/site/en/reference/cookbook/adding-a-tool.md +96 -0
  107. package/kb/site/en/reference/cookbook/adding-an-llm-adapter.md +45 -0
  108. package/kb/site/en/reference/cookbook/extension-cookbook.md +131 -0
  109. package/kb/site/en/reference/cordis-api/context.md +368 -0
  110. package/kb/site/en/reference/cordis-api/events.md +211 -0
  111. package/kb/site/en/reference/cordis-api/fiber.md +379 -0
  112. package/kb/site/en/reference/cordis-api/inherited.md +43 -0
  113. package/kb/site/en/reference/cordis-api/registry.md +156 -0
  114. package/kb/site/en/reference/cordis-api/service.md +106 -0
  115. package/kb/site/en/reference/cordis-primer.md +46 -0
  116. package/kb/site/en/reference/index.md +131 -0
  117. package/kb/site/en/reference/persistence-catalog.md +949 -0
  118. package/kb/site/en/reference/subsystems/approval.md +173 -0
  119. package/kb/site/en/reference/subsystems/client-modules.md +121 -0
  120. package/kb/site/en/reference/subsystems/code-runtime.md +194 -0
  121. package/kb/site/en/reference/subsystems/commands.md +190 -0
  122. package/kb/site/en/reference/subsystems/compaction.md +241 -0
  123. package/kb/site/en/reference/subsystems/core.md +1073 -0
  124. package/kb/site/en/reference/subsystems/credentials.md +136 -0
  125. package/kb/site/en/reference/subsystems/filesystem.md +498 -0
  126. package/kb/site/en/reference/subsystems/goal.md +280 -0
  127. package/kb/site/en/reference/subsystems/index.md +58 -0
  128. package/kb/site/en/reference/subsystems/invariants.md +91 -0
  129. package/kb/site/en/reference/subsystems/jobs.md +293 -0
  130. package/kb/site/en/reference/subsystems/llm-streaming.md +920 -0
  131. package/kb/site/en/reference/subsystems/lsp.md +205 -0
  132. package/kb/site/en/reference/subsystems/permission-presets.md +134 -0
  133. package/kb/site/en/reference/subsystems/persistence.md +388 -0
  134. package/kb/site/en/reference/subsystems/plan.md +90 -0
  135. package/kb/site/en/reference/subsystems/sandbox.md +221 -0
  136. package/kb/site/en/reference/subsystems/schedule.md +189 -0
  137. package/kb/site/en/reference/subsystems/scope.md +62 -0
  138. package/kb/site/en/reference/subsystems/session-projection.md +265 -0
  139. package/kb/site/en/reference/subsystems/session-query.md +498 -0
  140. package/kb/site/en/reference/subsystems/session-reference.md +111 -0
  141. package/kb/site/en/reference/subsystems/session-telemetry.md +197 -0
  142. package/kb/site/en/reference/subsystems/session-title.md +207 -0
  143. package/kb/site/en/reference/subsystems/session.md +852 -0
  144. package/kb/site/en/reference/subsystems/settings.md +313 -0
  145. package/kb/site/en/reference/subsystems/shell.md +306 -0
  146. package/kb/site/en/reference/subsystems/skills.md +334 -0
  147. package/kb/site/en/reference/subsystems/spill.md +120 -0
  148. package/kb/site/en/reference/subsystems/storage.md +232 -0
  149. package/kb/site/en/reference/subsystems/subagent.md +737 -0
  150. package/kb/site/en/reference/subsystems/subprocess.md +327 -0
  151. package/kb/site/en/reference/subsystems/system-prompt.md +210 -0
  152. package/kb/site/en/reference/subsystems/terminal.md +187 -0
  153. package/kb/site/en/reference/subsystems/token-meter.md +93 -0
  154. package/kb/site/en/reference/subsystems/tools.md +723 -0
  155. package/kb/site/en/reference/subsystems/typert.md +339 -0
  156. package/kb/site/en/reference/subsystems/user-questions.md +181 -0
  157. package/kb/site/en/reference/subsystems/web-server.md +111 -0
  158. package/kb/site/en/reference/subsystems/web.md +202 -0
  159. package/kb/site/en/reference/subsystems/workflow.md +281 -0
  160. package/kb/site/en/reference/subsystems/workspace.md +231 -0
  161. package/kb/site/en/reference/tool-catalog.md +1877 -0
  162. package/kb/site/en/reference/tool-execution-pipeline.md +66 -0
  163. package/kb/site/guide/providers-custom-form.zh.png +0 -0
  164. package/kb/site/guide/providers-models-page.zh.png +0 -0
  165. package/kb/site/guide/providers.md +100 -0
  166. package/kb/site/guide/python-sdk.md +106 -0
  167. package/kb/site/guide/quickstart.md +32 -0
  168. package/kb/site/index.md +8 -0
  169. package/kb/site/reference/agent-lifecycle.md +86 -0
  170. package/kb/site/reference/capability-seams.md +475 -0
  171. package/kb/site/reference/config-catalog.md +3154 -0
  172. package/kb/site/reference/cookbook/adding-a-conversation-node.md +235 -0
  173. package/kb/site/reference/cookbook/adding-a-package.md +120 -0
  174. package/kb/site/reference/cookbook/adding-a-settings-card.md +102 -0
  175. package/kb/site/reference/cookbook/adding-a-tool.md +98 -0
  176. package/kb/site/reference/cookbook/adding-an-llm-adapter.md +45 -0
  177. package/kb/site/reference/cookbook/extension-cookbook.md +133 -0
  178. package/kb/site/reference/cordis-api/context.md +368 -0
  179. package/kb/site/reference/cordis-api/events.md +211 -0
  180. package/kb/site/reference/cordis-api/fiber.md +379 -0
  181. package/kb/site/reference/cordis-api/inherited.md +43 -0
  182. package/kb/site/reference/cordis-api/registry.md +156 -0
  183. package/kb/site/reference/cordis-api/service.md +106 -0
  184. package/kb/site/reference/cordis-primer.md +52 -0
  185. package/kb/site/reference/index.md +135 -0
  186. package/kb/site/reference/persistence-catalog.md +949 -0
  187. package/kb/site/reference/subsystems/approval.md +173 -0
  188. package/kb/site/reference/subsystems/client-modules.md +121 -0
  189. package/kb/site/reference/subsystems/code-runtime.md +194 -0
  190. package/kb/site/reference/subsystems/commands.md +190 -0
  191. package/kb/site/reference/subsystems/compaction.md +241 -0
  192. package/kb/site/reference/subsystems/core.md +1081 -0
  193. package/kb/site/reference/subsystems/credentials.md +136 -0
  194. package/kb/site/reference/subsystems/filesystem.md +498 -0
  195. package/kb/site/reference/subsystems/goal.md +280 -0
  196. package/kb/site/reference/subsystems/index.md +58 -0
  197. package/kb/site/reference/subsystems/invariants.md +91 -0
  198. package/kb/site/reference/subsystems/jobs.md +293 -0
  199. package/kb/site/reference/subsystems/llm-streaming.md +926 -0
  200. package/kb/site/reference/subsystems/lsp.md +205 -0
  201. package/kb/site/reference/subsystems/permission-presets.md +134 -0
  202. package/kb/site/reference/subsystems/persistence.md +388 -0
  203. package/kb/site/reference/subsystems/plan.md +90 -0
  204. package/kb/site/reference/subsystems/sandbox.md +221 -0
  205. package/kb/site/reference/subsystems/schedule.md +189 -0
  206. package/kb/site/reference/subsystems/scope.md +62 -0
  207. package/kb/site/reference/subsystems/session-projection.md +265 -0
  208. package/kb/site/reference/subsystems/session-query.md +498 -0
  209. package/kb/site/reference/subsystems/session-reference.md +111 -0
  210. package/kb/site/reference/subsystems/session-telemetry.md +197 -0
  211. package/kb/site/reference/subsystems/session-title.md +207 -0
  212. package/kb/site/reference/subsystems/session.md +854 -0
  213. package/kb/site/reference/subsystems/settings.md +313 -0
  214. package/kb/site/reference/subsystems/shell.md +306 -0
  215. package/kb/site/reference/subsystems/skills.md +334 -0
  216. package/kb/site/reference/subsystems/spill.md +120 -0
  217. package/kb/site/reference/subsystems/storage.md +232 -0
  218. package/kb/site/reference/subsystems/subagent.md +739 -0
  219. package/kb/site/reference/subsystems/subprocess.md +327 -0
  220. package/kb/site/reference/subsystems/system-prompt.md +210 -0
  221. package/kb/site/reference/subsystems/terminal.md +187 -0
  222. package/kb/site/reference/subsystems/token-meter.md +93 -0
  223. package/kb/site/reference/subsystems/tools.md +723 -0
  224. package/kb/site/reference/subsystems/typert.md +339 -0
  225. package/kb/site/reference/subsystems/user-questions.md +181 -0
  226. package/kb/site/reference/subsystems/web-server.md +111 -0
  227. package/kb/site/reference/subsystems/web.md +202 -0
  228. package/kb/site/reference/subsystems/workflow.md +281 -0
  229. package/kb/site/reference/subsystems/workspace.md +231 -0
  230. package/kb/site/reference/tool-catalog.md +1880 -0
  231. package/kb/site/reference/tool-execution-pipeline.md +66 -0
  232. package/package.json +40 -0
  233. package/scripts/rebuild-index.mjs +88 -0
  234. package/skills/dsh-plugin-dev-kb.md +66 -0
@@ -0,0 +1,475 @@
1
+ ---
2
+ editSource: "docs/capability-seams.zh.md"
3
+ ---
4
+
5
+ <!-- 英文源文件由 scripts/gen-doc-graphs.ts 生成;本中文文件是通过双语配对维护的经评审对侧。
6
+ 更新时先运行 `pnpm run gen-doc-graphs` 更新英文,再更新本文件并运行 `pnpm run verify-translation-pairing --write docs/capability-seams.md` 重新记录配对。 -->
7
+
8
+ # 能力 Seams 与核心服务
9
+
10
+ 服务可以是核心主干服务、可替换的能力 seam,也可以是组合包/组合点。下图展示了拥有服务声明的包、已知实现包,以及直接消费该服务的包。
11
+
12
+ ```mermaid
13
+ flowchart LR
14
+ pkg_attachment["attachment"]
15
+ svc_attachments["ctx.attachments<br/>Durable binary attachment storage"]
16
+ pkg_attachment_local["attachment-local"]
17
+ pkg_host_runtime["host-runtime"]
18
+ pkg_llm_pi_ai["llm-pi-ai"]
19
+ pkg_llm["llm"]
20
+ svc_llm["ctx.llm<br/>LLM adapter registry"]
21
+ pkg_llm_deepseek["llm-deepseek"]
22
+ pkg_llm_replay["llm-replay"]
23
+ pkg_agent_loop["agent-loop"]
24
+ pkg_compaction_basic["compaction-basic"]
25
+ pkg_token_meter["token-meter"]
26
+ svc_tokenMeter["ctx.tokenMeter<br/>Replay token measurement"]
27
+ pkg_compaction_tool_result_pruner["compaction-tool-result-pruner"]
28
+ svc_toolResultPruner["ctx.toolResultPruner<br/>Model-free tool-result pruning"]
29
+ pkg_session["session"]
30
+ svc_sessions["ctx.sessions<br/>In-memory session store"]
31
+ pkg_agent["agent"]
32
+ pkg_session_persistence["session-persistence"]
33
+ pkg_session_query["session-query"]
34
+ pkg_session_query_sqlite["session-query-sqlite"]
35
+ pkg_subagent_inprocess["subagent-inprocess"]
36
+ pkg_invariants["invariants"]
37
+ pkg_message_feedback["message-feedback"]
38
+ svc_invariants["ctx.invariants<br/>Package-owned invariant registry"]
39
+ pkg_scope["scope"]
40
+ pkg_typert_registry["typert-registry"]
41
+ svc_typert["ctx.typert<br/>Runtime type registry"]
42
+ pkg_typert_loader["typert-loader"]
43
+ pkg_api_gateway["api-gateway"]
44
+ svc_typertGateway["ctx.typertGateway<br/>Typert Host invocation gateway"]
45
+ svc_sessionPersistence["ctx.sessionPersistence<br/>Durable session persistence seam"]
46
+ pkg_session_persistence_jsonl["session-persistence-jsonl"]
47
+ pkg_session_persistence_sqlite["session-persistence-sqlite"]
48
+ pkg_tool_bash["tool-bash"]
49
+ pkg_hooks_claude_code["hooks-claude-code"]
50
+ pkg_hooks_codex["hooks-codex"]
51
+ pkg_settings["settings"]
52
+ svc_settings["ctx.settings<br/>User-settings seam"]
53
+ pkg_settings_file["settings-file"]
54
+ pkg_apiproxy["apiproxy"]
55
+ pkg_credentials["credentials"]
56
+ svc_credentials["ctx.credentials<br/>Credential seam"]
57
+ pkg_credentials_local["credentials-local"]
58
+ pkg_session_telemetry["session-telemetry"]
59
+ svc_sessionTelemetry["ctx.sessionTelemetry<br/>Session telemetry seam"]
60
+ pkg_session_telemetry_otel["session-telemetry-otel"]
61
+ pkg_storage["storage"]
62
+ svc_storage["ctx.storage<br/>Non-session storage hub"]
63
+ pkg_storage_json["storage-json"]
64
+ pkg_storage_sqlite["storage-sqlite"]
65
+ pkg_storage_domain["storage-domain"]
66
+ svc_storageDomain["ctx.storageDomain<br/>Domain data facility"]
67
+ pkg_workspace["workspace"]
68
+ svc_messageFeedback["ctx.messageFeedback<br/>Lifecycle-bound message feedback"]
69
+ svc_workspaceRegistry["ctx.workspaceRegistry<br/>Workspace entity registry"]
70
+ svc_sessionQuery["ctx.sessionQuery<br/>Session reads, traces, filters, and search"]
71
+ pkg_session_reference["session-reference"]
72
+ pkg_tool_session_query["tool-session-query"]
73
+ svc_sessionReferenceResolver["ctx.sessionReferenceResolver<br/>Cross-session snapshot preparation"]
74
+ pkg_session_title["session-title"]
75
+ svc_sessionTitle["ctx.sessionTitle<br/>Log-backed session titles"]
76
+ pkg_session_title_first_prompt_llm["session-title-first-prompt-llm"]
77
+ pkg_session_title_all_prompts_llm["session-title-all-prompts-llm"]
78
+ pkg_system_prompt["system-prompt"]
79
+ svc_systemPrompt["ctx.systemPrompt<br/>System prompt assembly registry"]
80
+ pkg_tools["tools"]
81
+ pkg_tool_fs["tool-fs"]
82
+ pkg_tool_terminal["tool-terminal"]
83
+ pkg_tool_web["tool-web"]
84
+ svc_tools["ctx.tools<br/>Tool registry and guarded execution pipeline"]
85
+ pkg_tool_ask_user["tool-ask-user"]
86
+ pkg_tool_cordis["tool-cordis"]
87
+ pkg_tool_skill["tool-skill"]
88
+ pkg_tool_subagent["tool-subagent"]
89
+ pkg_tool_todo["tool-todo"]
90
+ pkg_user_questions["user-questions"]
91
+ svc_userQuestions["ctx.userQuestions<br/>Human question/answer seam"]
92
+ pkg_plan_mode["plan-mode"]
93
+ svc_planMode["ctx.planMode<br/>Plan collaboration state"]
94
+ pkg_agent_presets["agent-presets"]
95
+ svc_agentPresets["ctx.agentPresets<br/>Per-session agent composition"]
96
+ pkg_commands["commands"]
97
+ svc_commands["ctx.commands<br/>Human command registry"]
98
+ pkg_session_projection["session-projection"]
99
+ svc_sessionProjections["ctx.sessionProjections<br/>Session projection units"]
100
+ pkg_host_apiproxy["host-apiproxy"]
101
+ pkg_session_projection_cache["session-projection-cache"]
102
+ svc_sessionProjectionCache["ctx.sessionProjectionCache<br/>Persisted projection cache"]
103
+ pkg_skill["skill"]
104
+ svc_skills["ctx.skills<br/>Skill provider registry"]
105
+ pkg_skill_badge["skill-badge"]
106
+ pkg_skill_filesystem["skill-filesystem"]
107
+ svc_agents["ctx.agents<br/>Agent service"]
108
+ pkg_acp["acp"]
109
+ pkg_agent_default_model["agent-default-model"]
110
+ svc_agentDefaultModel["ctx.agentDefaultModel<br/>Default Agent model selection"]
111
+ pkg_headless["headless"]
112
+ svc_agentLoop["ctx.agentLoop<br/>Concrete loop driver"]
113
+ pkg_agent_spine_demo["agent-spine-demo"]
114
+ pkg_goal["goal"]
115
+ svc_goals["ctx.goals<br/>Same-session goal domain"]
116
+ pkg_e2b["e2b"]
117
+ svc_e2b["ctx.e2b<br/>E2B sandbox lifecycle owner"]
118
+ pkg_fs_e2b["fs-e2b"]
119
+ pkg_subprocess_e2b["subprocess-e2b"]
120
+ pkg_subprocess["subprocess"]
121
+ svc_subprocess["ctx.subprocess<br/>Subprocess seam"]
122
+ pkg_subprocess_local["subprocess-local"]
123
+ pkg_bash_local["bash-local"]
124
+ pkg_bash_sandbox["bash-sandbox"]
125
+ pkg_terminal_bash["terminal-bash"]
126
+ pkg_lsp_stdio["lsp-stdio"]
127
+ pkg_subagent_acp["subagent-acp"]
128
+ pkg_subagent_codex["subagent-codex"]
129
+ pkg_subagent_claude_code["subagent-claude-code"]
130
+ pkg_shell["shell"]
131
+ svc_shell["ctx.shell<br/>Bash executor seam"]
132
+ pkg_pwsh_local["pwsh-local"]
133
+ pkg_tool_pwsh["tool-pwsh"]
134
+ pkg_shell_env["shell-env"]
135
+ svc_shellEnv["ctx.shellEnv<br/>Managed bash environment registry"]
136
+ pkg_terminal["terminal"]
137
+ svc_terminals["ctx.terminals<br/>Persistent PTY session registry"]
138
+ pkg_sandbox["sandbox"]
139
+ svc_sandbox["ctx.sandbox<br/>Process-sandbox seam"]
140
+ pkg_sandbox_local["sandbox-local"]
141
+ pkg_sandbox_policy["sandbox-policy"]
142
+ svc_sandboxPolicy["ctx.sandboxPolicy<br/>Sandbox policy home"]
143
+ pkg_fs_sandbox["fs-sandbox"]
144
+ pkg_approval["approval"]
145
+ svc_approval["ctx.approval<br/>Approval seam"]
146
+ pkg_permission_presets["permission-presets"]
147
+ svc_permissionPresets["ctx.permissionPresets<br/>Permission presets"]
148
+ pkg_code_runtime["code-runtime"]
149
+ svc_codeRuntime["ctx.codeRuntime<br/>Code-execution seam"]
150
+ pkg_code_runtime_worker["code-runtime-worker"]
151
+ pkg_fs["fs"]
152
+ svc_fs["ctx.fs<br/>Filesystem provider seam"]
153
+ pkg_fs_local["fs-local"]
154
+ pkg_fs_observation_policy["fs-observation-policy"]
155
+ pkg_compaction["compaction"]
156
+ svc_compaction["ctx.compaction<br/>Compaction seam"]
157
+ pkg_subagent["subagent"]
158
+ svc_subagents["ctx.subagents<br/>Subagent provider and continuation service"]
159
+ pkg_subagent_spawn_in_process["subagent-spawn-in-process"]
160
+ pkg_subagent_fork_in_process["subagent-fork-in-process"]
161
+ pkg_subagent_dsh_sdk["subagent-dsh-sdk"]
162
+ pkg_tool_subagent_control["tool-subagent-control"]
163
+ pkg_tool_ralph["tool-ralph"]
164
+ pkg_jobs["jobs"]
165
+ svc_jobs["ctx.jobs<br/>Background job registry"]
166
+ pkg_jobs_local["jobs-local"]
167
+ pkg_tool_jobs["tool-jobs"]
168
+ pkg_web["web"]
169
+ svc_web["ctx.web<br/>Web access provider registry"]
170
+ pkg_web_search_exa["web-search-exa"]
171
+ pkg_web_search_perplexity["web-search-perplexity"]
172
+ pkg_web_search_deepseek["web-search-deepseek"]
173
+ pkg_web_fetch_http["web-fetch-http"]
174
+ pkg_spill["spill"]
175
+ svc_spillStore["ctx.spillStore<br/>Spill storage seam"]
176
+ pkg_spill_local["spill-local"]
177
+ pkg_spill_policy["spill-policy"]
178
+ pkg_directory_picker["directory-picker"]
179
+ svc_directoryPicker["ctx.directoryPicker<br/>Workspace-directory picking seam"]
180
+ pkg_directory_picker_native["directory-picker-native"]
181
+ pkg_directory_picker_browse["directory-picker-browse"]
182
+ pkg_webserver["webserver"]
183
+ svc_webServer["ctx.webServer<br/>HTTP route registration"]
184
+ pkg_connection["connection"]
185
+ pkg_modules["modules"]
186
+ pkg_hmr["hmr"]
187
+ svc_clientModules["ctx.clientModules<br/>Client plugin graph host"]
188
+ pkg_workflow["workflow"]
189
+ svc_workflowEngine["ctx.workflowEngine<br/>Workflow script engine"]
190
+ pkg_workflow_worker_thread["workflow-worker-thread"]
191
+ pkg_tool_workflow["tool-workflow"]
192
+ pkg_lsp["lsp"]
193
+ svc_lsp["ctx.lsp<br/>Language-server navigation seam"]
194
+ pkg_lsp_local["lsp-local"]
195
+ pkg_tool_lsp["tool-lsp"]
196
+ svc_apiProxy["ctx.apiProxy<br/>Host API dispatch"]
197
+ pkg_cordis_host_runner["cordis-host-runner"]
198
+ svc_dynamicCordisRunner["ctx.dynamicCordisRunner<br/>Dynamic Cordis package host runner"]
199
+ svc_cordisInspect["ctx.cordisInspect<br/>Dynamic Cordis inspect registry"]
200
+ pkg_acp --> svc_approval
201
+ pkg_agent --> svc_agents
202
+ pkg_agent_default_model --> svc_agentDefaultModel
203
+ pkg_agent_loop --> svc_agentLoop
204
+ pkg_agent_presets --> svc_agentPresets
205
+ pkg_api_gateway --> svc_typertGateway
206
+ pkg_apiproxy --> svc_apiProxy
207
+ pkg_approval --> svc_approval
208
+ pkg_attachment --> svc_attachments
209
+ pkg_attachment_local --> svc_attachments
210
+ pkg_bash_local --> svc_shell
211
+ pkg_bash_sandbox --> svc_shell
212
+ pkg_code_runtime --> svc_codeRuntime
213
+ pkg_code_runtime_worker --> svc_codeRuntime
214
+ pkg_commands --> svc_commands
215
+ pkg_compaction --> svc_compaction
216
+ pkg_compaction_basic --> svc_compaction
217
+ pkg_compaction_tool_result_pruner --> svc_toolResultPruner
218
+ pkg_cordis_host_runner --> svc_cordisInspect
219
+ pkg_cordis_host_runner --> svc_dynamicCordisRunner
220
+ pkg_credentials --> svc_credentials
221
+ pkg_credentials_local --> svc_credentials
222
+ pkg_directory_picker --> svc_directoryPicker
223
+ pkg_directory_picker_browse --> svc_directoryPicker
224
+ pkg_directory_picker_native --> svc_directoryPicker
225
+ pkg_e2b --> svc_e2b
226
+ pkg_fs --> svc_fs
227
+ pkg_fs_e2b --> svc_fs
228
+ pkg_fs_local --> svc_fs
229
+ pkg_fs_sandbox --> svc_fs
230
+ pkg_goal --> svc_goals
231
+ pkg_invariants --> svc_invariants
232
+ pkg_jobs --> svc_jobs
233
+ pkg_jobs_local --> svc_jobs
234
+ pkg_llm --> svc_llm
235
+ pkg_llm_deepseek --> svc_llm
236
+ pkg_llm_pi_ai --> svc_llm
237
+ pkg_llm_replay --> svc_llm
238
+ pkg_lsp --> svc_lsp
239
+ pkg_lsp_local --> svc_lsp
240
+ pkg_message_feedback --> svc_messageFeedback
241
+ pkg_modules --> svc_clientModules
242
+ pkg_permission_presets --> svc_permissionPresets
243
+ pkg_plan_mode --> svc_planMode
244
+ pkg_pwsh_local --> svc_shell
245
+ pkg_sandbox --> svc_sandbox
246
+ pkg_sandbox_local --> svc_sandbox
247
+ pkg_sandbox_policy --> svc_sandboxPolicy
248
+ pkg_session --> svc_sessions
249
+ pkg_session_persistence --> svc_sessionPersistence
250
+ pkg_session_persistence_jsonl --> svc_sessionPersistence
251
+ pkg_session_persistence_sqlite --> svc_sessionPersistence
252
+ pkg_session_projection --> svc_sessionProjections
253
+ pkg_session_projection_cache --> svc_sessionProjectionCache
254
+ pkg_session_query --> svc_sessionQuery
255
+ pkg_session_query_sqlite --> svc_sessionQuery
256
+ pkg_session_reference --> svc_sessionReferenceResolver
257
+ pkg_session_telemetry --> svc_sessionTelemetry
258
+ pkg_session_telemetry_otel --> svc_sessionTelemetry
259
+ pkg_session_title --> svc_sessionTitle
260
+ pkg_session_title_all_prompts_llm --> svc_sessionTitle
261
+ pkg_session_title_first_prompt_llm --> svc_sessionTitle
262
+ pkg_settings --> svc_settings
263
+ pkg_settings_file --> svc_settings
264
+ pkg_shell --> svc_shell
265
+ pkg_shell_env --> svc_shellEnv
266
+ pkg_skill --> svc_skills
267
+ pkg_skill_badge --> svc_skills
268
+ pkg_skill_filesystem --> svc_skills
269
+ pkg_spill --> svc_spillStore
270
+ pkg_spill_local --> svc_spillStore
271
+ pkg_storage --> svc_storage
272
+ pkg_storage_domain --> svc_storageDomain
273
+ pkg_storage_json --> svc_storage
274
+ pkg_storage_sqlite --> svc_storage
275
+ pkg_subagent --> svc_subagents
276
+ pkg_subagent_acp --> svc_subagents
277
+ pkg_subagent_claude_code --> svc_subagents
278
+ pkg_subagent_codex --> svc_subagents
279
+ pkg_subagent_dsh_sdk --> svc_subagents
280
+ pkg_subagent_fork_in_process --> svc_subagents
281
+ pkg_subagent_spawn_in_process --> svc_subagents
282
+ pkg_subprocess --> svc_subprocess
283
+ pkg_subprocess_e2b --> svc_subprocess
284
+ pkg_subprocess_local --> svc_subprocess
285
+ pkg_system_prompt --> svc_systemPrompt
286
+ pkg_terminal --> svc_terminals
287
+ pkg_terminal_bash --> svc_terminals
288
+ pkg_token_meter --> svc_tokenMeter
289
+ pkg_tools --> svc_tools
290
+ pkg_typert_registry --> svc_typert
291
+ pkg_user_questions --> svc_userQuestions
292
+ pkg_web --> svc_web
293
+ pkg_web_fetch_http --> svc_web
294
+ pkg_web_search_deepseek --> svc_web
295
+ pkg_web_search_exa --> svc_web
296
+ pkg_web_search_perplexity --> svc_web
297
+ pkg_webserver --> svc_webServer
298
+ pkg_workflow --> svc_workflowEngine
299
+ pkg_workflow_worker_thread --> svc_workflowEngine
300
+ pkg_workspace --> svc_workspaceRegistry
301
+ svc_agentDefaultModel --> pkg_headless
302
+ svc_agentDefaultModel --> pkg_host_apiproxy
303
+ svc_agentLoop --> pkg_agent_spine_demo
304
+ svc_agents --> pkg_acp
305
+ svc_agents --> pkg_agent_loop
306
+ svc_agents --> pkg_subagent_inprocess
307
+ svc_apiProxy --> pkg_connection
308
+ svc_approval --> pkg_tool_bash
309
+ svc_approval --> pkg_tools
310
+ svc_attachments --> pkg_host_runtime
311
+ svc_attachments --> pkg_llm_pi_ai
312
+ svc_clientModules --> pkg_hmr
313
+ svc_codeRuntime --> pkg_tools
314
+ svc_compaction --> pkg_compaction_basic
315
+ svc_cordisInspect --> pkg_tool_cordis
316
+ svc_credentials --> pkg_apiproxy
317
+ svc_credentials --> pkg_llm_deepseek
318
+ svc_credentials --> pkg_llm_pi_ai
319
+ svc_directoryPicker --> pkg_apiproxy
320
+ svc_dynamicCordisRunner --> pkg_tool_cordis
321
+ svc_e2b --> pkg_fs_e2b
322
+ svc_e2b --> pkg_subprocess_e2b
323
+ svc_fs --> pkg_tool_fs
324
+ svc_invariants --> pkg_agent
325
+ svc_invariants --> pkg_agent_loop
326
+ svc_invariants --> pkg_scope
327
+ svc_invariants --> pkg_session
328
+ svc_jobs --> pkg_tool_bash
329
+ svc_jobs --> pkg_tool_jobs
330
+ svc_jobs --> pkg_tool_subagent
331
+ svc_jobs --> pkg_tool_terminal
332
+ svc_llm --> pkg_agent_loop
333
+ svc_llm --> pkg_compaction_basic
334
+ svc_lsp --> pkg_tool_lsp
335
+ svc_sandbox --> pkg_bash_sandbox
336
+ svc_sandbox --> pkg_terminal_bash
337
+ svc_sandboxPolicy --> pkg_bash_sandbox
338
+ svc_sandboxPolicy --> pkg_fs_sandbox
339
+ svc_sandboxPolicy --> pkg_terminal_bash
340
+ svc_sessionPersistence --> pkg_agent_loop
341
+ svc_sessionPersistence --> pkg_hooks_claude_code
342
+ svc_sessionPersistence --> pkg_hooks_codex
343
+ svc_sessionPersistence --> pkg_message_feedback
344
+ svc_sessionPersistence --> pkg_session_query
345
+ svc_sessionPersistence --> pkg_session_query_sqlite
346
+ svc_sessionPersistence --> pkg_tool_bash
347
+ svc_sessionProjectionCache --> pkg_host_apiproxy
348
+ svc_sessionProjections --> pkg_host_apiproxy
349
+ svc_sessionProjections --> pkg_session_title
350
+ svc_sessionProjections --> pkg_tool_todo
351
+ svc_sessionQuery --> pkg_session_reference
352
+ svc_sessionQuery --> pkg_tool_session_query
353
+ svc_sessions --> pkg_agent
354
+ svc_sessions --> pkg_agent_loop
355
+ svc_sessions --> pkg_invariants
356
+ svc_sessions --> pkg_message_feedback
357
+ svc_sessions --> pkg_session_persistence
358
+ svc_sessions --> pkg_session_query
359
+ svc_sessions --> pkg_session_query_sqlite
360
+ svc_sessions --> pkg_subagent_inprocess
361
+ svc_settings --> pkg_apiproxy
362
+ svc_settings --> pkg_llm_deepseek
363
+ svc_settings --> pkg_llm_pi_ai
364
+ svc_shell --> pkg_hooks_claude_code
365
+ svc_shell --> pkg_hooks_codex
366
+ svc_shell --> pkg_tool_bash
367
+ svc_shell --> pkg_tool_pwsh
368
+ svc_shellEnv --> pkg_tool_bash
369
+ svc_shellEnv --> pkg_tool_pwsh
370
+ svc_skills --> pkg_tool_skill
371
+ svc_spillStore --> pkg_spill_policy
372
+ svc_storage --> pkg_storage_domain
373
+ svc_storageDomain --> pkg_message_feedback
374
+ svc_storageDomain --> pkg_workspace
375
+ svc_subagents --> pkg_tool_ralph
376
+ svc_subagents --> pkg_tool_subagent
377
+ svc_subagents --> pkg_tool_subagent_control
378
+ svc_subprocess --> pkg_bash_local
379
+ svc_subprocess --> pkg_bash_sandbox
380
+ svc_subprocess --> pkg_lsp_stdio
381
+ svc_subprocess --> pkg_subagent_acp
382
+ svc_subprocess --> pkg_subagent_claude_code
383
+ svc_subprocess --> pkg_subagent_codex
384
+ svc_subprocess --> pkg_terminal_bash
385
+ svc_systemPrompt --> pkg_agent_loop
386
+ svc_systemPrompt --> pkg_tool_fs
387
+ svc_systemPrompt --> pkg_tool_terminal
388
+ svc_systemPrompt --> pkg_tool_web
389
+ svc_systemPrompt --> pkg_tools
390
+ svc_terminals --> pkg_tool_terminal
391
+ svc_tokenMeter --> pkg_compaction_basic
392
+ svc_toolResultPruner --> pkg_compaction_basic
393
+ svc_tools --> pkg_agent_loop
394
+ svc_tools --> pkg_tool_ask_user
395
+ svc_tools --> pkg_tool_bash
396
+ svc_tools --> pkg_tool_cordis
397
+ svc_tools --> pkg_tool_fs
398
+ svc_tools --> pkg_tool_skill
399
+ svc_tools --> pkg_tool_subagent
400
+ svc_tools --> pkg_tool_terminal
401
+ svc_tools --> pkg_tool_todo
402
+ svc_tools --> pkg_tool_web
403
+ svc_typert --> pkg_api_gateway
404
+ svc_typert --> pkg_typert_loader
405
+ svc_userQuestions --> pkg_tool_ask_user
406
+ svc_web --> pkg_tool_web
407
+ svc_webServer --> pkg_connection
408
+ svc_webServer --> pkg_hmr
409
+ svc_webServer --> pkg_modules
410
+ svc_workflowEngine --> pkg_tool_ralph
411
+ svc_workflowEngine --> pkg_tool_workflow
412
+ svc_workspaceRegistry --> pkg_apiproxy
413
+ svc_fs -. event gate .-> pkg_fs_observation_policy
414
+ ```
415
+
416
+ | ctx 键 | 角色 | 所属包 | 实现 | 直接消费方 | 配套插件 | 说明 |
417
+ | --- | --- | --- | --- | --- | --- | --- |
418
+ | `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) | - | 宿主会在会话事件之前提交已接受的图片;提供方适配器将已授权的持久引用解析为提供方原生内容。 |
419
+ | `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) | - | 适配器注册提供方实现;agent loop(智能体循环)与压缩功能调用提供方无关的流服务。 |
420
+ | `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) | - | 拥有按会话隔离的回放折叠区;压力消费方共享不可变且带修订版本的测量结果。 |
421
+ | `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) | - | 在摘要压缩前,通过可回放的单节点表层替换来改写过大的当前工具结果。 |
422
+ | `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) | - | 拥有仅追加的 Session 实例,并发出持久的会话事件流。 |
423
+ | `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) | - | 配套子路径注册所属包本地的检查;该服务负责选择、唯一性、子 fiber,以及标明所属包的失败。 |
424
+ | `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) | - | 插件直接或通过 dsh-typert-loader 注册实时 zod 贡献;API 网关消费调用描述符和提供方,其他运行时消费方则在各自边界查询 schema 与反射元数据。 |
425
+ | `ctx.typertGateway` | `core` | [`api-gateway`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/api/gateway) | - | - | - | 将生成的 Remote 描述符与实时 Cordis 服务关联,解析已注册的身份,并通过共享的 Connection RPC 载体提供一元调用。 |
426
+ | `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) | - | 各后端持久化同一套 SessionEvent 词汇;应用在组合时选择后端。 |
427
+ | `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` | - | 插件注册命名空间 schema 并解析分层值;提供方存储原始文档。LLM(大语言模型)适配器在用户分区下将其入口配置注册为组合基础;Web 网关提供经过脱敏的分层描述符,并写入用户层。 |
428
+ | `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` | - | 配置携带对机密信息的引用;提供方拥有实际值。消费方按操作解析,因此轮换后的凭据会在紧接着的下一次请求中生效;Web 网关提供不含实际值的视图和只写存储。 |
429
+ | `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) | - | - | 该 seam 捕获会话记录、进行脱敏并交给一个后端;没有其他组件消费该服务,其输出会离开当前进程。 |
430
+ | `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) | - | 各后端以不同名称并列注册;数据形态(领域优先)挂载到枢纽上,并将类型化操作转换为不透明的 KV 单元原语。 |
431
+ | `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) | - | 等待所有已配置后端就绪,然后将领域形态发布为一个受生命周期约束的服务,用于类型化持久状态。 |
432
+ | `ctx.messageFeedback` | `core` | [`message-feedback`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/feedback/message-feedback) | - | - | - | 拥有本地逐 assistant 消息反馈、生命周期与目标校验、逐条目 compare-and-set 及 Host 一元 Remote 契约,且不进入 Session 历史或遥测。 |
433
+ | `ctx.workspaceRegistry` | `core` | [`workspace`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/workspace/workspace) | - | `apiproxy` | - | 通过领域设施拥有带 WorkspaceId 品牌类型的记录;稳定的 sessionIds 账户驱动 Host RPC 与 GUI 投影。 |
434
+ | `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) | - | 该接口提供精确读取、过滤和追踪;具体后端还提供全文协调、排序、摘要片段和游标世代,而模型消费方负责工作区权限与不含游标的渲染。 |
435
+ | `ctx.sessionReferenceResolver` | `core` | [`session-reference`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/context/session-reference) | - | - | - | 将当前表层中有界的对话快照投影为持久但不可信的消息上下文;Host 适配器负责提及语法。 |
436
+ | `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) | - | - | 负责确定性回退、最新标题折叠区,以及唯一的可选异步提供方注册。 |
437
+ | `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) | - | 为每个步骤收集提示词各部分和面向模型的工具 schema。 |
438
+ | `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) | - | 注册能力,负责 Code Mode 传输,并让调用依次经过策略前处理、单调守卫、环绕分派、策略后处理和最终结果观测。 |
439
+ | `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 前端提供当前生效的人工回答提供方;tool-ask-user 在提供方无关的 ask() promise 上暂停工具调用。 |
440
+ | `ctx.planMode` | `core` | [`plan-mode`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/plan/plan-mode) | - | - | - | 折叠已记录的计划/模式状态,在轮次边界刷新用户选择,渲染由部署方拥有的指导信息,注册 /plan,并在状态转换期间保持计划退出 schema 稳定。 |
441
+ | `ctx.agentPresets` | `core` | [`agent-presets`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/preset/agent-presets) | - | - | - | 在受信任根目录与用户创作根目录上发现 preset 目录,并在创建期把一份 preset cordis.yml 挂载到 agent 作用域之下,拒绝始终未激活或向根服务 realm 发布服务的行。 |
442
+ | `ctx.commands` | `core` | [`commands`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/interaction/commands) | - | - | - | 插件注册直接面向人的命令,而不会把调用发送给模型。 |
443
+ | `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) | - | 各领域注册由状态驱动的折叠单元;主动驱动过程维护每个会话的水位状态,api-proxy 提供基线并推送发生变化的值。 |
444
+ | `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) | - | 按会话持久保存投影单元状态的检查点(节流检查点,以及轮次/结束/分离时的必选检查点),并提供冷读取阶梯:缓存行加持久化尾部回放,因此列表读取永远不需要加载完整日志。 |
445
+ | `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) | - | 合并提供方的 skill(技能)目录;tool-skill 渲染会话前缀目录,并加载完整的 skill 正文。 |
446
+ | `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` | - | 拥有实时 Agent 句柄、创建/恢复工厂 seam,以及进程本地的发起方传播。 |
447
+ | `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) | - | 通过 settings 分层默认 `ModelSelection`,让直接入口与 Host 支撑的 Agent 入口共享同一个状态所有者。 |
448
+ | `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) | - | 唯一的具体循环插件;扩展包依赖 dsh-agent 的事件和服务,而不依赖此包。 |
449
+ | `ctx.goals` | `core` | [`goal`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/goal/goal) | - | - | - | 从会话日志折叠带修订版本的目标状态,并将实时延续激活保留在进程本地。 |
450
+ | `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) | - | 拥有一个共享的 E2B SDK 句柄、远程工作目录和最终沙箱处置,使两个基础 E2B 提供方处于同一个 Linux 运行时中。 |
451
+ | `ctx.subprocess` | `seam` | [`subprocess`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subprocess/subprocess) | [`subprocess-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/subprocess/subprocess-local), [`subprocess-e2b`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/e2b/subprocess-e2b) | [`bash-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/bash-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), [`lsp-stdio`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/lsp/lsp-stdio), [`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) | - | Bash 执行器、PTY shell 后端、LSP Host,以及进程外 ACP、Codex 和 Claude Code subagent 后端都通过 ctx.subprocess 执行 spawn;该服务负责进程坐标、进程树/会话生命周期、stdio 处置、终端机制和 kill 升级。 |
452
+ | `ctx.shell` | `seam` | [`shell`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/shell) | [`bash-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/bash-local), [`bash-sandbox`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/bash-sandbox), [`pwsh-local`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/pwsh-local) | [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`tool-pwsh`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-pwsh), [`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) | - | 面向模型的 shell 工具和钩子桥接消费此 seam;沙箱、远程或 PowerShell 执行器可以替换 bash-local,而无需改动这些消费方。 |
453
+ | `ctx.shellEnv` | `core` | [`shell-env`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/shell-env) | - | [`tool-bash`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-bash), [`tool-pwsh`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/shell/tool-pwsh) | - | 插件声明限定于 effect 作用域的 DSH_* 事实;每个 shell 工具在每次执行时收集一份可信快照,其执行器据此重建命名空间。 |
454
+ | `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) | - | 注册表负责精确到 Agent 的会话身份和清理;后端负责终端机制,tool-terminal 则提供限定于所有者作用域的模型接口。 |
455
+ | `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) | - | 消费方交出即将执行 spawn 的确切 argv;与宿主共享文件系统和内核的后端按每次调用的策略包装该 argv,并报告强制执行情况。 |
456
+ | `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) | - | 统一保存部署默认模式和工作区根目录;只有沙箱执行器和提供方读取该服务(工具层使用它同时导出的纯 `sandbox/mode` 折叠区)。两类强制执行组件都读取该服务,因此 bash 与 fs 不会限制到不同的根目录。 |
457
+ | `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) | - | 一次性权限决策通过 `approval/request` waterfall(瀑布式事件)分派;回答方是监听器(即 ACP 为自身 agent 提供的桥接),没有回答方时以 `unavailable` 关闭失败。 |
458
+ | `ctx.permissionPresets` | `core` | [`permission-presets`](https://github.com/deepseek-ai/deepseek-harness/tree/master/packages/interaction/permission-presets) | - | - | - | 面向用户的预设表(`workspace-write`/`danger-full-access`),将沙箱模式与审批策略选项组合在一起;一次切换会写入一个 `permission/preset` 事件,并贯通到两个选项事件。 |
459
+ | `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) | - | 使用 Host 提供的异步绑定运行一段由模型编写的程序;各后端采用不同的基础环境和语言(工具注册表在 Code Mode 下消费该服务)。 |
460
+ | `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 通过 ctx.fs 执行读取/写入/编辑;fs-sandbox 按共享沙箱模式限制变更;fs-observation-policy 通过 fs/* 事件门禁贡献基于观测状态的检查。 |
461
+ | `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) | - | 基础后端消费步骤后的压力事件和请求错误恢复事件;不存在面向模型的压缩工具。 |
462
+ | `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) | - | 提供方实现传输;该服务还负责可选的、基于 Activation 的延续编排,tool-subagent 选择一次性或可延续委派,tool-subagent-control 传递后续消息,而 tool-ralph 要求一条全新的结构化输出路由。 |
463
+ | `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) | - | 生产方(后台 bash、PTY 发送和 subagent 委派)登记正在运行的工作;tool-jobs 是面向模型的控制器,用于读取、列出和终止这些工作;jobs-local 是进程本地注册表。 |
464
+ | `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) | - | 搜索和抓取提供方注册到同一个 ctx.web seam;tool-web 负责稳定的面向模型名称。 |
465
+ | `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) | - | 后端保存过大的工具文本,并返回面向模型的定位信息和取回提示;spill-policy 是 tools/post-execute 消费方,负责决定何时 spill。 |
466
+ | `ctx.directoryPicker` | `seam` | `directory-picker` | `directory-picker-native`, `directory-picker-browse` | `apiproxy` | - | 带判别标记的交互能力:原生后端在 Host 显示设备上打开一个操作系统选择器,浏览后端为应用内浏览器提供列表与创建原语;双端后端通过其浏览器侧填充 ui-workspace 目录流程的 slot(不通过协议发布)。 |
467
+ | `ctx.webServer` | `core` | `webserver` | - | `connection`, `modules`, `hmr` | - | 普通的 node:http 载体:具名路由注册表、索引转换 tap,以及静态 dist 回退;Web 传输插件注册自己的路由。 |
468
+ | `ctx.clientModules` | `core` | `modules` | - | `hmr` | - | 通过增量 `dsh.client` 扫描组合 __DSH_BOOT__ 入口图,提供插件组合包,并通知重建/图变更订阅方。 |
469
+ | `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) | - | 每个上下文使用一个引擎,与 bash 相同,且没有具名提供方注册表;通用工作流与固定 Ralph 消费方启动运行,其中的 agent() 调用通过 ctx.subagents 扇出。 |
470
+ | `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) | - | 提供方注册与选择,加上恰好四种操作的标准化查询执行;该 seam 不提供协议逃生口,后端必须转换为标准化请求和结果。 |
471
+ | `ctx.apiProxy` | `core` | `apiproxy` | - | `connection` | - | 与传输无关的 Host 网关接口:它分派浏览器 API 调用,每条打开的 Host 流自行订阅转发事件,而不是由广播方法向其推送。 |
472
+ | `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) | - | 拥有内存定义注册表、Host 半的 vm 沙箱和 request-run 往返流程;浏览器页面通过其 Remote 命名空间在线访问同一服务。 |
473
+ | `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) | - | 注册 Host inspect 提供方、镜像 Client 提供方 manifest,并通过动态 Cordis 传输路由 Client 查询。 |
474
+
475
+ 维护模式:混合模式。服务从 Cordis 声明中发现;接口、实现和消费方角色在 `scripts/gen-doc-graphs.ts` 中分类,并设有完整性守卫。