mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-10-26 16:55:08 +00:00
The two packages keep their directories under packages/experimental and are registered as experimental name exceptions: - @deepseek-ai/dsh-plugin-recommendations - @deepseek-ai/dsh-client-ui-plugin-recommendations Loader row ids, the Remote service name, locale namespaces and the enable_official_plugin action are unchanged. Generated catalogs are regenerated, and both card Web fixtures record the renamed bundle in their skills' plugin catalogs.
741 lines
66 KiB
Markdown
741 lines
66 KiB
Markdown
<!-- 英文源文件由 scripts/gen-doc-graphs.ts 生成;本中文文件是通过双语配对维护的经评审对侧。
|
||
更新时先运行 `pnpm run gen-doc-graphs` 更新英文,再更新本文件并运行 `pnpm run verify-translation-pairing --write docs/capability-seams.md` 重新记录配对。 -->
|
||
|
||
# 能力 Seams 与核心服务
|
||
|
||
[English](capability-seams.md) | 中文
|
||
|
||
服务可以是核心主干服务、可替换的能力 seam、组合包/组合点或独立服务。下图展示了拥有服务声明的包、已知实现包,以及直接消费该服务的包。
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
pkg_action_cards["action-cards"]
|
||
svc_actionCards["ctx.actionCards<br/>Optional action cards"]
|
||
pkg_creation_recommendations["creation-recommendations"]
|
||
pkg_client_ui_action_cards["client-ui-action-cards"]
|
||
pkg_plugin_recommendations["plugin-recommendations"]
|
||
svc_pluginRecommendations["ctx.pluginRecommendations<br/>Explicit-need plugin recommendations"]
|
||
pkg_client_ui_plugin_recommendations["client-ui-plugin-recommendations"]
|
||
pkg_headless["headless"]
|
||
svc_headlessStartup["ctx.headlessStartup<br/>Headless invocation options"]
|
||
pkg_experimental_client_ui_cot_translation["experimental-client-ui-cot-translation"]
|
||
svc_cotTranslation["ctx.cotTranslation<br/>Reasoning translation Remote"]
|
||
pkg_experimental_translator["experimental-translator"]
|
||
svc_translator["ctx.translator<br/>Anonymous text translation"]
|
||
pkg_hmr["hmr"]
|
||
svc_hmr["ctx.hmr<br/>Serialized module and configuration reloads"]
|
||
pkg_app_boot["app-boot"]
|
||
pkg_client_ui_plugin_manager["client-ui-plugin-manager"]
|
||
svc_pluginRegistryProbe["ctx.pluginRegistryProbe<br/>Host registry response comparison"]
|
||
pkg_plugin_manager["plugin-manager"]
|
||
svc_pluginManager["ctx.pluginManager<br/>Current-profile plugin and bundle management"]
|
||
pkg_ui_settings_plugin_inventory["ui-settings-plugin-inventory"]
|
||
pkg_plugin_market["plugin-market"]
|
||
svc_pluginMarket["ctx.pluginMarket<br/>Plugin market index reader"]
|
||
pkg_client_ui_plugin_market["client-ui-plugin-market"]
|
||
svc_profileContext["ctx.profileContext<br/>Launcher-owned profile data"]
|
||
pkg_client_connection["client-connection"]
|
||
svc_connection["ctx.connection<br/>Authenticated browser transport"]
|
||
pkg_api_gateway["api-gateway"]
|
||
pkg_host_frontend_static["host-frontend-static"]
|
||
pkg_experimental_worktree["experimental-worktree"]
|
||
svc_worktrees["ctx.worktrees<br/>Git worktree creation"]
|
||
pkg_experimental_tool_worktree["experimental-tool-worktree"]
|
||
pkg_working_directory["working-directory"]
|
||
svc_workingDirectory["ctx.workingDirectory<br/>Session working directory"]
|
||
pkg_tool_working_directory["tool-working-directory"]
|
||
pkg_tool_fs["tool-fs"]
|
||
pkg_tool_bash["tool-bash"]
|
||
pkg_tool_pwsh["tool-pwsh"]
|
||
pkg_subagent["subagent"]
|
||
pkg_sdk_jsonrpc_server["sdk-jsonrpc-server"]
|
||
pkg_mcp_resources["mcp-resources"]
|
||
svc_mcpResources["ctx.mcpResources<br/>Scoped MCP resource access"]
|
||
pkg_mcp_client["mcp-client"]
|
||
pkg_browser_use["browser-use"]
|
||
svc_browserUse["ctx.browserUse<br/>Browser-use provider registration"]
|
||
pkg_experimental_browser_use_playwright_mcp["experimental-browser-use-playwright-mcp"]
|
||
pkg_experimental_browser_use_chrome_devtools_mcp["experimental-browser-use-chrome-devtools-mcp"]
|
||
pkg_experimental_browser_use_stagehand_native["experimental-browser-use-stagehand-native"]
|
||
pkg_computer_use["computer-use"]
|
||
svc_computerUse["ctx.computerUse<br/>Computer-use provider registration"]
|
||
pkg_experimental_computer_use_cua_driver_mcp["experimental-computer-use-cua-driver-mcp"]
|
||
pkg_experimental_computer_use_cua_driver_native["experimental-computer-use-cua-driver-native"]
|
||
pkg_cua["cua"]
|
||
svc_cuaAccess["ctx.cuaAccess<br/>Computer Use permission controls"]
|
||
pkg_office_to_pdf["office-to-pdf"]
|
||
svc_officeToPdf["ctx.officeToPdf<br/>Office to PDF conversion"]
|
||
pkg_client_ui_sidebar_documentpreview["client-ui-sidebar-documentpreview"]
|
||
pkg_attachment["attachment"]
|
||
svc_attachments["ctx.attachments<br/>Durable binary attachment storage"]
|
||
pkg_attachment_local["attachment-local"]
|
||
pkg_api_session_controller["api-session-controller"]
|
||
pkg_llm_pi_ai["llm-pi-ai"]
|
||
pkg_llm_deepseek["llm-deepseek"]
|
||
pkg_client_file_upload["client-file-upload"]
|
||
svc_fileUploads["ctx.fileUploads<br/>Agent-scoped staged file uploads"]
|
||
pkg_llm["llm"]
|
||
svc_llm["ctx.llm<br/>LLM adapter registry"]
|
||
pkg_llm_replay["llm-replay"]
|
||
pkg_agent_loop["agent-loop"]
|
||
pkg_compaction_basic["compaction-basic"]
|
||
pkg_deepseek_llm_api_extensions["deepseek-llm-api-extensions"]
|
||
svc_deepseekLlmApiExtensions["ctx.deepseekLlmApiExtensions<br/>Official DeepSeek request extensions"]
|
||
pkg_session_log_deepseek["session-log-deepseek"]
|
||
pkg_plugin_package_inventory_deepseek["plugin-package-inventory-deepseek"]
|
||
pkg_token_meter["token-meter"]
|
||
svc_tokenMeter["ctx.tokenMeter<br/>Replay token measurement"]
|
||
pkg_compaction_tool_result_pruner["compaction-tool-result-pruner"]
|
||
svc_toolResultPruner["ctx.toolResultPruner<br/>Model-free tool-result pruning"]
|
||
pkg_session["session"]
|
||
svc_sessions["ctx.sessions<br/>In-memory session store"]
|
||
pkg_agent["agent"]
|
||
pkg_session_persistence["session-persistence"]
|
||
pkg_session_query["session-query"]
|
||
pkg_session_query_sqlite["session-query-sqlite"]
|
||
pkg_message_feedback["message-feedback"]
|
||
pkg_experimental_api_speech_to_text["experimental-api-speech-to-text"]
|
||
svc_speechController["ctx.speechController<br/>Experimental transcription Remote"]
|
||
svc_sessionController["ctx.sessionController<br/>Host Session Remote controller"]
|
||
svc_sessionFileReferences["ctx.sessionFileReferences<br/>Session-addressed file-reference Remote adapter"]
|
||
svc_sessionSkillCatalog["ctx.sessionSkillCatalog<br/>Session-addressed skill Remote adapter"]
|
||
pkg_api_job_controller["api-job-controller"]
|
||
svc_jobController["ctx.jobController<br/>Host job Remote controller"]
|
||
pkg_api_settings_controller["api-settings-controller"]
|
||
svc_credentialsController["ctx.credentialsController<br/>Host credential-surface Remote controller"]
|
||
svc_settingsController["ctx.settingsController<br/>Host settings-surface Remote controller"]
|
||
pkg_api_workspace_files["api-workspace-files"]
|
||
svc_workspaceFiles["ctx.workspaceFiles<br/>Host workspace file Remote service"]
|
||
pkg_workspace_changes["workspace-changes"]
|
||
svc_workspaceChanges["ctx.workspaceChanges<br/>Host per-turn changed-file summaries"]
|
||
pkg_api_terminal_controller["api-terminal-controller"]
|
||
svc_terminalController["ctx.terminalController<br/>Session interactive terminal Remote controller"]
|
||
pkg_api_workspace_controller["api-workspace-controller"]
|
||
svc_workspaceController["ctx.workspaceController<br/>Host Workspace Remote controller"]
|
||
svc_directoryPickerController["ctx.directoryPickerController<br/>Host directory-picking Remote controller"]
|
||
pkg_typert_registry["typert-registry"]
|
||
svc_typert["ctx.typert<br/>Runtime type registry"]
|
||
pkg_typert_loader["typert-loader"]
|
||
svc_typertGateway["ctx.typertGateway<br/>Typert Host invocation gateway"]
|
||
pkg_api_remote_access["api-remote-access"]
|
||
svc_remoteAccess["ctx.remoteAccess<br/>Remote method access control"]
|
||
svc_sessionPersistence["ctx.sessionPersistence<br/>Durable session persistence seam"]
|
||
pkg_session_persistence_jsonl["session-persistence-jsonl"]
|
||
pkg_hooks_claude_code["hooks-claude-code"]
|
||
pkg_hooks_codex["hooks-codex"]
|
||
pkg_config_editor["config-editor"]
|
||
svc_configEditor["ctx.configEditor<br/>Profile configuration edits"]
|
||
pkg_settings["settings"]
|
||
pkg_agent_default_model["agent-default-model"]
|
||
svc_settings["ctx.settings<br/>Plugin configuration forms"]
|
||
pkg_tool_subagent["tool-subagent"]
|
||
svc_subagentModelSelection["ctx.subagentModelSelection<br/>Subagent model-selection preference"]
|
||
pkg_credentials["credentials"]
|
||
svc_credentials["ctx.credentials<br/>Credential seam"]
|
||
pkg_credentials_local["credentials-local"]
|
||
pkg_deepseek_account["deepseek-account"]
|
||
svc_deepseekAccount["ctx.deepseekAccount<br/>DeepSeek account"]
|
||
pkg_deepseek_account_platform["deepseek-account-platform"]
|
||
pkg_api_account_controller["api-account-controller"]
|
||
pkg_authorization["authorization"]
|
||
svc_authorization["ctx.authorization<br/>Authorization flow registry"]
|
||
pkg_client_product_analytics["client-product-analytics"]
|
||
svc_productAnalytics["ctx.productAnalytics<br/>Desktop interaction collection"]
|
||
pkg_otel["otel"]
|
||
svc_otel["ctx.otel<br/>Shared OTel reporting channels"]
|
||
pkg_host_product_telemetry_otel["host-product-telemetry-otel"]
|
||
pkg_session_telemetry_otel["session-telemetry-otel"]
|
||
svc_productTelemetry["ctx.productTelemetry<br/>Product usage event sender"]
|
||
pkg_session_telemetry["session-telemetry"]
|
||
svc_sessionTelemetry["ctx.sessionTelemetry<br/>Session telemetry seam"]
|
||
pkg_storage["storage"]
|
||
svc_storage["ctx.storage<br/>Non-session storage hub"]
|
||
pkg_storage_json["storage-json"]
|
||
pkg_storage_sqlite["storage-sqlite"]
|
||
pkg_storage_domain["storage-domain"]
|
||
svc_storageDomain["ctx.storageDomain<br/>Domain data facility"]
|
||
pkg_workspace["workspace"]
|
||
svc_messageFeedback["ctx.messageFeedback<br/>Lifecycle-bound message feedback"]
|
||
pkg_command_feedback["command-feedback"]
|
||
svc_sessionFeedback["ctx.sessionFeedback<br/>Session-level feedback recorder"]
|
||
svc_workspaceRegistry["ctx.workspaceRegistry<br/>Workspace entity registry"]
|
||
svc_sessionQuery["ctx.sessionQuery<br/>Session reads, traces, filters, and search"]
|
||
pkg_session_reference["session-reference"]
|
||
pkg_tool_session_query["tool-session-query"]
|
||
pkg_file_reference["file-reference"]
|
||
svc_fileReferences["ctx.fileReferences<br/>File reference discovery"]
|
||
pkg_file_reference_local["file-reference-local"]
|
||
svc_sessionReferenceResolver["ctx.sessionReferenceResolver<br/>Cross-session snapshot preparation"]
|
||
pkg_session_title["session-title"]
|
||
svc_sessionTitle["ctx.sessionTitle<br/>Log-backed session titles"]
|
||
pkg_session_title_first_prompt_llm["session-title-first-prompt-llm"]
|
||
pkg_session_title_all_prompts_llm["session-title-all-prompts-llm"]
|
||
pkg_system_prompt["system-prompt"]
|
||
svc_systemPrompt["ctx.systemPrompt<br/>System prompt assembly registry"]
|
||
pkg_tools["tools"]
|
||
pkg_tool_terminal["tool-terminal"]
|
||
pkg_tool_web["tool-web"]
|
||
svc_tools["ctx.tools<br/>Scoped tool registry and executor selection"]
|
||
pkg_tool_ask_user["tool-ask-user"]
|
||
pkg_tool_cordis["tool-cordis"]
|
||
pkg_tool_skill["tool-skill"]
|
||
pkg_tool_todo["tool-todo"]
|
||
pkg_user_questions["user-questions"]
|
||
svc_userQuestions["ctx.userQuestions<br/>Human question/answer seam"]
|
||
pkg_plan_mode["plan-mode"]
|
||
svc_planMode["ctx.planMode<br/>Plan collaboration state"]
|
||
pkg_agent_preset_registry["agent-preset-registry"]
|
||
svc_agentPresets["ctx.agentPresets<br/>Per-session agent composition"]
|
||
pkg_commands["commands"]
|
||
svc_commands["ctx.commands<br/>Human command registry"]
|
||
pkg_session_projection["session-projection"]
|
||
svc_sessionProjections["ctx.sessionProjections<br/>Session projection units"]
|
||
pkg_session_projection_cache["session-projection-cache"]
|
||
svc_sessionProjectionCache["ctx.sessionProjectionCache<br/>Persisted projection cache"]
|
||
pkg_skill["skill"]
|
||
svc_skills["ctx.skills<br/>Skill provider registry"]
|
||
pkg_sandbox_windows_acl["sandbox-windows-acl"]
|
||
pkg_skill_badge["skill-badge"]
|
||
pkg_skill_filesystem["skill-filesystem"]
|
||
pkg_skill_office["skill-office"]
|
||
svc_agents["ctx.agents<br/>Agent service"]
|
||
pkg_acp["acp"]
|
||
svc_agentDefaultModel["ctx.agentDefaultModel<br/>Default Agent model selection"]
|
||
svc_agentLoop["ctx.agentLoop<br/>Concrete loop driver"]
|
||
pkg_base["base"]
|
||
pkg_sdk_minimal["sdk-minimal"]
|
||
pkg_schedule["schedule"]
|
||
svc_schedule["ctx.schedule<br/>Host scheduled messages"]
|
||
pkg_goal["goal"]
|
||
svc_goals["ctx.goals<br/>Same-session goal domain"]
|
||
pkg_ssh["ssh"]
|
||
svc_ssh["ctx.ssh<br/>POSIX SSH connection owner"]
|
||
pkg_fs_ssh["fs-ssh"]
|
||
pkg_subprocess_ssh["subprocess-ssh"]
|
||
pkg_sandbox_ssh["sandbox-ssh"]
|
||
pkg_subprocess["subprocess"]
|
||
svc_subprocess["ctx.subprocess<br/>Subprocess seam"]
|
||
pkg_subprocess_local["subprocess-local"]
|
||
pkg_bash_local["bash-local"]
|
||
pkg_bash_sandbox["bash-sandbox"]
|
||
pkg_terminal_bash["terminal-bash"]
|
||
pkg_lsp_stdio["lsp-stdio"]
|
||
pkg_subagent_acp["subagent-acp"]
|
||
pkg_subagent_codex["subagent-codex"]
|
||
pkg_subagent_claude_code["subagent-claude-code"]
|
||
pkg_shell["shell"]
|
||
svc_shell["ctx.shell<br/>Bash executor seam"]
|
||
pkg_pwsh_local["pwsh-local"]
|
||
pkg_shell_env["shell-env"]
|
||
svc_shellEnv["ctx.shellEnv<br/>Managed bash environment registry"]
|
||
pkg_terminal["terminal"]
|
||
svc_terminals["ctx.terminals<br/>Persistent PTY session registry"]
|
||
pkg_sandbox["sandbox"]
|
||
svc_sandbox["ctx.sandbox<br/>Process-sandbox seam"]
|
||
pkg_sandbox_local["sandbox-local"]
|
||
pkg_sandbox_policy["sandbox-policy"]
|
||
svc_sandboxPolicy["ctx.sandboxPolicy<br/>Sandbox policy home"]
|
||
pkg_fs_sandbox["fs-sandbox"]
|
||
pkg_user_approval["user-approval"]
|
||
svc_approval["ctx.approval<br/>Approval seam"]
|
||
pkg_permission_presets["permission-presets"]
|
||
svc_permissionPresets["ctx.permissionPresets<br/>Permission presets"]
|
||
pkg_ptc_runtime["ptc-runtime"]
|
||
svc_ptcRuntime["ctx.ptcRuntime<br/>PTC execution seam"]
|
||
pkg_ptc_runtime_node["ptc-runtime-node"]
|
||
pkg_experimental_ptc_runtime_python["experimental-ptc-runtime-python"]
|
||
pkg_tool_executor_ptc["tool-executor-ptc"]
|
||
pkg_workflow_ptc["workflow-ptc"]
|
||
pkg_fs["fs"]
|
||
svc_fs["ctx.fs<br/>Filesystem provider seam"]
|
||
pkg_fs_local["fs-local"]
|
||
pkg_fs_observation_policy["fs-observation-policy"]
|
||
pkg_compaction["compaction"]
|
||
svc_compaction["ctx.compaction<br/>Compaction seam"]
|
||
svc_subagents["ctx.subagents<br/>Subagent provider and continuation service"]
|
||
pkg_subagent_spawn_in_process["subagent-spawn-in-process"]
|
||
pkg_subagent_fork_in_process["subagent-fork-in-process"]
|
||
pkg_subagent_dsh_sdk["subagent-dsh-sdk"]
|
||
pkg_tool_subagent_control["tool-subagent-control"]
|
||
pkg_tool_ralph["tool-ralph"]
|
||
pkg_experimental_speech_to_text["experimental-speech-to-text"]
|
||
svc_speechToText["ctx.speechToText<br/>Experimental speech recognition providers"]
|
||
pkg_experimental_speech_to_text_sensevoice["experimental-speech-to-text-sensevoice"]
|
||
pkg_experimental_agent_team["experimental-agent-team"]
|
||
svc_agentTeams["ctx.agentTeams<br/>Agent Teams coordination domain"]
|
||
pkg_experimental_tool_agent_team["experimental-tool-agent-team"]
|
||
pkg_experimental_claude_code_mods["experimental-claude-code-mods"]
|
||
svc_claudeCodeMods["ctx.claudeCodeMods<br/>Claude Code mods bridge"]
|
||
pkg_inspector["inspector"]
|
||
svc_inspector["ctx.inspector<br/>Cross-realm runtime inspection"]
|
||
pkg_jobs["jobs"]
|
||
svc_jobs["ctx.jobs<br/>Background job registry"]
|
||
pkg_jobs_local["jobs-local"]
|
||
pkg_tool_jobs["tool-jobs"]
|
||
pkg_web["web"]
|
||
svc_web["ctx.web<br/>Web access provider registry"]
|
||
pkg_web_search_exa["web-search-exa"]
|
||
pkg_web_search_perplexity["web-search-perplexity"]
|
||
pkg_web_search_deepseek["web-search-deepseek"]
|
||
pkg_web_deepseek_api["web-deepseek-api"]
|
||
pkg_web_fetch_http["web-fetch-http"]
|
||
pkg_spill["spill"]
|
||
svc_spillStore["ctx.spillStore<br/>Spill storage seam"]
|
||
pkg_spill_local["spill-local"]
|
||
pkg_spill_policy["spill-policy"]
|
||
pkg_host_directory_picker["host-directory-picker"]
|
||
svc_directoryPicker["ctx.directoryPicker<br/>Workspace-directory picking seam"]
|
||
pkg_host_directory_picker_native["host-directory-picker-native"]
|
||
pkg_host_directory_picker_browse["host-directory-picker-browse"]
|
||
pkg_host_webserver["host-webserver"]
|
||
svc_webServer["ctx.webServer<br/>HTTP route registration"]
|
||
pkg_client_modules["client-modules"]
|
||
pkg_client_hmr["client-hmr"]
|
||
pkg_web_app["web-app"]
|
||
svc_webApp["ctx.webApp<br/>Served Web GUI"]
|
||
pkg_harness_dev_context["harness-dev-context"]
|
||
svc_clientModules["ctx.clientModules<br/>Client plugin graph host"]
|
||
pkg_workflow["workflow"]
|
||
svc_workflowEngine["ctx.workflowEngine<br/>Workflow script engine"]
|
||
pkg_tool_workflow["tool-workflow"]
|
||
pkg_webhook["webhook"]
|
||
svc_webhookRuntime["ctx.webhookRuntime<br/>Webhook rule runtime"]
|
||
pkg_webhook_github["webhook-github"]
|
||
pkg_lsp["lsp"]
|
||
svc_lsp["ctx.lsp<br/>Language-server navigation seam"]
|
||
pkg_tool_lsp["tool-lsp"]
|
||
pkg_cordis_host_runner["cordis-host-runner"]
|
||
svc_dynamicCordisRunner["ctx.dynamicCordisRunner<br/>Dynamic Cordis package host runner"]
|
||
svc_cordisInspect["ctx.cordisInspect<br/>Dynamic Cordis inspect registry"]
|
||
pkg_action_cards --> svc_actionCards
|
||
pkg_agent --> svc_agents
|
||
pkg_agent_default_model --> svc_agentDefaultModel
|
||
pkg_agent_loop --> svc_agentLoop
|
||
pkg_agent_preset_registry --> svc_agentPresets
|
||
pkg_api_gateway --> svc_typertGateway
|
||
pkg_api_job_controller --> svc_jobController
|
||
pkg_api_remote_access --> svc_remoteAccess
|
||
pkg_api_session_controller --> svc_sessionController
|
||
pkg_api_session_controller --> svc_sessionFileReferences
|
||
pkg_api_session_controller --> svc_sessionSkillCatalog
|
||
pkg_api_settings_controller --> svc_credentialsController
|
||
pkg_api_settings_controller --> svc_settingsController
|
||
pkg_api_terminal_controller --> svc_terminalController
|
||
pkg_api_workspace_controller --> svc_directoryPickerController
|
||
pkg_api_workspace_controller --> svc_workspaceController
|
||
pkg_api_workspace_files --> svc_workspaceFiles
|
||
pkg_app_boot --> svc_profileContext
|
||
pkg_attachment --> svc_attachments
|
||
pkg_attachment_local --> svc_attachments
|
||
pkg_authorization --> svc_authorization
|
||
pkg_bash_local --> svc_shell
|
||
pkg_bash_sandbox --> svc_shell
|
||
pkg_browser_use --> svc_browserUse
|
||
pkg_client_connection --> svc_connection
|
||
pkg_client_file_upload --> svc_fileUploads
|
||
pkg_client_modules --> svc_clientModules
|
||
pkg_client_product_analytics --> svc_productAnalytics
|
||
pkg_client_ui_plugin_manager --> svc_pluginRegistryProbe
|
||
pkg_command_feedback --> svc_sessionFeedback
|
||
pkg_commands --> svc_commands
|
||
pkg_compaction --> svc_compaction
|
||
pkg_compaction_basic --> svc_compaction
|
||
pkg_compaction_tool_result_pruner --> svc_toolResultPruner
|
||
pkg_computer_use --> svc_computerUse
|
||
pkg_config_editor --> svc_configEditor
|
||
pkg_cordis_host_runner --> svc_cordisInspect
|
||
pkg_cordis_host_runner --> svc_dynamicCordisRunner
|
||
pkg_credentials --> svc_credentials
|
||
pkg_credentials_local --> svc_credentials
|
||
pkg_cua --> svc_cuaAccess
|
||
pkg_deepseek_account --> svc_deepseekAccount
|
||
pkg_deepseek_account_platform --> svc_deepseekAccount
|
||
pkg_deepseek_llm_api_extensions --> svc_deepseekLlmApiExtensions
|
||
pkg_experimental_agent_team --> svc_agentTeams
|
||
pkg_experimental_api_speech_to_text --> svc_speechController
|
||
pkg_experimental_browser_use_chrome_devtools_mcp --> svc_browserUse
|
||
pkg_experimental_browser_use_playwright_mcp --> svc_browserUse
|
||
pkg_experimental_browser_use_stagehand_native --> svc_browserUse
|
||
pkg_experimental_claude_code_mods --> svc_claudeCodeMods
|
||
pkg_experimental_client_ui_cot_translation --> svc_cotTranslation
|
||
pkg_experimental_computer_use_cua_driver_mcp --> svc_computerUse
|
||
pkg_experimental_computer_use_cua_driver_native --> svc_computerUse
|
||
pkg_experimental_ptc_runtime_python --> svc_ptcRuntime
|
||
pkg_experimental_speech_to_text --> svc_speechToText
|
||
pkg_experimental_speech_to_text_sensevoice --> svc_speechToText
|
||
pkg_experimental_translator --> svc_translator
|
||
pkg_experimental_worktree --> svc_worktrees
|
||
pkg_file_reference --> svc_fileReferences
|
||
pkg_file_reference_local --> svc_fileReferences
|
||
pkg_fs --> svc_fs
|
||
pkg_fs_local --> svc_fs
|
||
pkg_fs_sandbox --> svc_fs
|
||
pkg_fs_ssh --> svc_fs
|
||
pkg_goal --> svc_goals
|
||
pkg_headless --> svc_headlessStartup
|
||
pkg_hmr --> svc_hmr
|
||
pkg_host_directory_picker --> svc_directoryPicker
|
||
pkg_host_directory_picker_browse --> svc_directoryPicker
|
||
pkg_host_directory_picker_native --> svc_directoryPicker
|
||
pkg_host_product_telemetry_otel --> svc_productTelemetry
|
||
pkg_host_webserver --> svc_webServer
|
||
pkg_inspector --> svc_inspector
|
||
pkg_jobs --> svc_jobs
|
||
pkg_jobs_local --> svc_jobs
|
||
pkg_llm --> svc_llm
|
||
pkg_llm_deepseek --> svc_llm
|
||
pkg_llm_pi_ai --> svc_llm
|
||
pkg_llm_replay --> svc_llm
|
||
pkg_lsp --> svc_lsp
|
||
pkg_lsp_stdio --> svc_lsp
|
||
pkg_mcp_client --> svc_mcpResources
|
||
pkg_mcp_resources --> svc_mcpResources
|
||
pkg_message_feedback --> svc_messageFeedback
|
||
pkg_office_to_pdf --> svc_officeToPdf
|
||
pkg_otel --> svc_otel
|
||
pkg_permission_presets --> svc_permissionPresets
|
||
pkg_plan_mode --> svc_planMode
|
||
pkg_plugin_manager --> svc_pluginManager
|
||
pkg_plugin_market --> svc_pluginMarket
|
||
pkg_plugin_package_inventory_deepseek --> svc_deepseekLlmApiExtensions
|
||
pkg_plugin_recommendations --> svc_pluginRecommendations
|
||
pkg_ptc_runtime --> svc_ptcRuntime
|
||
pkg_ptc_runtime_node --> svc_ptcRuntime
|
||
pkg_pwsh_local --> svc_shell
|
||
pkg_sandbox --> svc_sandbox
|
||
pkg_sandbox_local --> svc_sandbox
|
||
pkg_sandbox_policy --> svc_sandboxPolicy
|
||
pkg_sandbox_ssh --> svc_sandbox
|
||
pkg_sandbox_windows_acl --> svc_skills
|
||
pkg_schedule --> svc_schedule
|
||
pkg_session --> svc_sessions
|
||
pkg_session_log_deepseek --> svc_deepseekLlmApiExtensions
|
||
pkg_session_persistence --> svc_sessionPersistence
|
||
pkg_session_persistence_jsonl --> svc_sessionPersistence
|
||
pkg_session_projection --> svc_sessionProjections
|
||
pkg_session_projection_cache --> svc_sessionProjectionCache
|
||
pkg_session_query --> svc_sessionQuery
|
||
pkg_session_query_sqlite --> svc_sessionQuery
|
||
pkg_session_reference --> svc_sessionReferenceResolver
|
||
pkg_session_telemetry --> svc_sessionTelemetry
|
||
pkg_session_telemetry_otel --> svc_sessionTelemetry
|
||
pkg_session_title --> svc_sessionTitle
|
||
pkg_session_title_all_prompts_llm --> svc_sessionTitle
|
||
pkg_session_title_first_prompt_llm --> svc_sessionTitle
|
||
pkg_settings --> svc_settings
|
||
pkg_shell --> svc_shell
|
||
pkg_shell_env --> svc_shellEnv
|
||
pkg_skill --> svc_skills
|
||
pkg_skill_badge --> svc_skills
|
||
pkg_skill_filesystem --> svc_skills
|
||
pkg_skill_office --> svc_skills
|
||
pkg_spill --> svc_spillStore
|
||
pkg_spill_local --> svc_spillStore
|
||
pkg_ssh --> svc_ssh
|
||
pkg_storage --> svc_storage
|
||
pkg_storage_domain --> svc_storageDomain
|
||
pkg_storage_json --> svc_storage
|
||
pkg_storage_sqlite --> svc_storage
|
||
pkg_subagent --> svc_subagents
|
||
pkg_subagent_acp --> svc_subagents
|
||
pkg_subagent_claude_code --> svc_subagents
|
||
pkg_subagent_codex --> svc_subagents
|
||
pkg_subagent_dsh_sdk --> svc_subagents
|
||
pkg_subagent_fork_in_process --> svc_subagents
|
||
pkg_subagent_spawn_in_process --> svc_subagents
|
||
pkg_subprocess --> svc_subprocess
|
||
pkg_subprocess_local --> svc_subprocess
|
||
pkg_subprocess_ssh --> svc_subprocess
|
||
pkg_system_prompt --> svc_systemPrompt
|
||
pkg_terminal --> svc_terminals
|
||
pkg_terminal_bash --> svc_terminals
|
||
pkg_token_meter --> svc_tokenMeter
|
||
pkg_tool_subagent --> svc_subagentModelSelection
|
||
pkg_tools --> svc_tools
|
||
pkg_typert_registry --> svc_typert
|
||
pkg_user_approval --> svc_approval
|
||
pkg_user_questions --> svc_userQuestions
|
||
pkg_web --> svc_web
|
||
pkg_web_app --> svc_webApp
|
||
pkg_web_deepseek_api --> svc_web
|
||
pkg_web_fetch_http --> svc_web
|
||
pkg_web_search_deepseek --> svc_web
|
||
pkg_web_search_exa --> svc_web
|
||
pkg_web_search_perplexity --> svc_web
|
||
pkg_webhook --> svc_webhookRuntime
|
||
pkg_workflow --> svc_workflowEngine
|
||
pkg_workflow_ptc --> svc_workflowEngine
|
||
pkg_working_directory --> svc_workingDirectory
|
||
pkg_workspace --> svc_workspaceRegistry
|
||
pkg_workspace_changes --> svc_workspaceChanges
|
||
svc_actionCards --> pkg_client_ui_action_cards
|
||
svc_actionCards --> pkg_creation_recommendations
|
||
svc_agentDefaultModel --> pkg_api_session_controller
|
||
svc_agentDefaultModel --> pkg_headless
|
||
svc_agentLoop --> pkg_base
|
||
svc_agentLoop --> pkg_sdk_minimal
|
||
svc_agentTeams --> pkg_experimental_tool_agent_team
|
||
svc_agents --> pkg_acp
|
||
svc_agents --> pkg_agent_loop
|
||
svc_agents --> pkg_subagent
|
||
svc_approval --> pkg_acp
|
||
svc_approval --> pkg_tool_bash
|
||
svc_approval --> pkg_tools
|
||
svc_attachments --> pkg_api_session_controller
|
||
svc_attachments --> pkg_llm_deepseek
|
||
svc_attachments --> pkg_llm_pi_ai
|
||
svc_attachments --> pkg_tool_fs
|
||
svc_authorization --> pkg_llm_pi_ai
|
||
svc_browserUse --> pkg_experimental_browser_use_chrome_devtools_mcp
|
||
svc_browserUse --> pkg_experimental_browser_use_playwright_mcp
|
||
svc_browserUse --> pkg_experimental_browser_use_stagehand_native
|
||
svc_clientModules --> pkg_client_hmr
|
||
svc_compaction --> pkg_compaction_basic
|
||
svc_computerUse --> pkg_experimental_computer_use_cua_driver_mcp
|
||
svc_computerUse --> pkg_experimental_computer_use_cua_driver_native
|
||
svc_configEditor --> pkg_agent_default_model
|
||
svc_configEditor --> pkg_settings
|
||
svc_connection --> pkg_api_gateway
|
||
svc_connection --> pkg_host_frontend_static
|
||
svc_cordisInspect --> pkg_tool_cordis
|
||
svc_credentials --> pkg_api_settings_controller
|
||
svc_credentials --> pkg_llm_deepseek
|
||
svc_credentials --> pkg_llm_pi_ai
|
||
svc_cuaAccess --> pkg_cua
|
||
svc_deepseekAccount --> pkg_api_account_controller
|
||
svc_deepseekAccount --> pkg_llm_deepseek
|
||
svc_deepseekLlmApiExtensions --> pkg_llm_deepseek
|
||
svc_directoryPicker --> pkg_api_workspace_controller
|
||
svc_dynamicCordisRunner --> pkg_tool_cordis
|
||
svc_fileReferences --> pkg_api_session_controller
|
||
svc_fileUploads --> pkg_api_session_controller
|
||
svc_fs --> pkg_tool_fs
|
||
svc_headlessStartup --> pkg_headless
|
||
svc_hmr --> pkg_app_boot
|
||
svc_jobs --> pkg_api_job_controller
|
||
svc_jobs --> pkg_tool_bash
|
||
svc_jobs --> pkg_tool_jobs
|
||
svc_jobs --> pkg_tool_pwsh
|
||
svc_jobs --> pkg_tool_terminal
|
||
svc_llm --> pkg_agent_loop
|
||
svc_llm --> pkg_compaction_basic
|
||
svc_lsp --> pkg_tool_lsp
|
||
svc_mcpResources --> pkg_mcp_resources
|
||
svc_officeToPdf --> pkg_client_ui_sidebar_documentpreview
|
||
svc_otel --> pkg_host_product_telemetry_otel
|
||
svc_otel --> pkg_session_telemetry_otel
|
||
svc_pluginManager --> pkg_plugin_manager
|
||
svc_pluginManager --> pkg_ui_settings_plugin_inventory
|
||
svc_pluginMarket --> pkg_client_ui_plugin_market
|
||
svc_pluginMarket --> pkg_plugin_market
|
||
svc_pluginRecommendations --> pkg_client_ui_plugin_recommendations
|
||
svc_pluginRegistryProbe --> pkg_client_ui_plugin_manager
|
||
svc_profileContext --> pkg_plugin_manager
|
||
svc_ptcRuntime --> pkg_tool_executor_ptc
|
||
svc_ptcRuntime --> pkg_workflow_ptc
|
||
svc_remoteAccess --> pkg_api_gateway
|
||
svc_remoteAccess --> pkg_api_session_controller
|
||
svc_remoteAccess --> pkg_api_workspace_controller
|
||
svc_sandbox --> pkg_bash_sandbox
|
||
svc_sandbox --> pkg_terminal_bash
|
||
svc_sandboxPolicy --> pkg_bash_sandbox
|
||
svc_sandboxPolicy --> pkg_fs_sandbox
|
||
svc_sandboxPolicy --> pkg_terminal_bash
|
||
svc_sessionPersistence --> pkg_agent_loop
|
||
svc_sessionPersistence --> pkg_hooks_claude_code
|
||
svc_sessionPersistence --> pkg_hooks_codex
|
||
svc_sessionPersistence --> pkg_message_feedback
|
||
svc_sessionPersistence --> pkg_session_query
|
||
svc_sessionPersistence --> pkg_session_query_sqlite
|
||
svc_sessionPersistence --> pkg_tool_bash
|
||
svc_sessionProjectionCache --> pkg_api_session_controller
|
||
svc_sessionProjectionCache --> pkg_session_query
|
||
svc_sessionProjectionCache --> pkg_session_reference
|
||
svc_sessionProjections --> pkg_api_session_controller
|
||
svc_sessionProjections --> pkg_session_title
|
||
svc_sessionProjections --> pkg_tool_todo
|
||
svc_sessionQuery --> pkg_session_reference
|
||
svc_sessionQuery --> pkg_tool_session_query
|
||
svc_sessions --> pkg_agent
|
||
svc_sessions --> pkg_agent_loop
|
||
svc_sessions --> pkg_message_feedback
|
||
svc_sessions --> pkg_session_persistence
|
||
svc_sessions --> pkg_session_query
|
||
svc_sessions --> pkg_session_query_sqlite
|
||
svc_sessions --> pkg_subagent
|
||
svc_settings --> pkg_api_settings_controller
|
||
svc_shell --> pkg_hooks_claude_code
|
||
svc_shell --> pkg_hooks_codex
|
||
svc_shell --> pkg_tool_bash
|
||
svc_shell --> pkg_tool_pwsh
|
||
svc_shellEnv --> pkg_tool_bash
|
||
svc_shellEnv --> pkg_tool_pwsh
|
||
svc_skills --> pkg_tool_skill
|
||
svc_speechToText --> pkg_experimental_api_speech_to_text
|
||
svc_spillStore --> pkg_spill_policy
|
||
svc_ssh --> pkg_fs_ssh
|
||
svc_ssh --> pkg_sandbox_ssh
|
||
svc_ssh --> pkg_subprocess_ssh
|
||
svc_storage --> pkg_storage_domain
|
||
svc_storageDomain --> pkg_workspace
|
||
svc_subagentModelSelection --> pkg_tool_subagent
|
||
svc_subagents --> pkg_tool_ralph
|
||
svc_subagents --> pkg_tool_subagent
|
||
svc_subagents --> pkg_tool_subagent_control
|
||
svc_subprocess --> pkg_bash_local
|
||
svc_subprocess --> pkg_bash_sandbox
|
||
svc_subprocess --> pkg_lsp_stdio
|
||
svc_subprocess --> pkg_subagent_acp
|
||
svc_subprocess --> pkg_subagent_claude_code
|
||
svc_subprocess --> pkg_subagent_codex
|
||
svc_subprocess --> pkg_terminal_bash
|
||
svc_systemPrompt --> pkg_agent_loop
|
||
svc_systemPrompt --> pkg_tool_fs
|
||
svc_systemPrompt --> pkg_tool_terminal
|
||
svc_systemPrompt --> pkg_tool_web
|
||
svc_systemPrompt --> pkg_tools
|
||
svc_terminals --> pkg_tool_terminal
|
||
svc_tokenMeter --> pkg_compaction_basic
|
||
svc_toolResultPruner --> pkg_compaction_basic
|
||
svc_tools --> pkg_agent_loop
|
||
svc_tools --> pkg_tool_ask_user
|
||
svc_tools --> pkg_tool_bash
|
||
svc_tools --> pkg_tool_cordis
|
||
svc_tools --> pkg_tool_fs
|
||
svc_tools --> pkg_tool_skill
|
||
svc_tools --> pkg_tool_subagent
|
||
svc_tools --> pkg_tool_terminal
|
||
svc_tools --> pkg_tool_todo
|
||
svc_tools --> pkg_tool_web
|
||
svc_translator --> pkg_experimental_client_ui_cot_translation
|
||
svc_typert --> pkg_api_gateway
|
||
svc_typert --> pkg_typert_loader
|
||
svc_userQuestions --> pkg_tool_ask_user
|
||
svc_web --> pkg_tool_web
|
||
svc_webApp --> pkg_harness_dev_context
|
||
svc_webServer --> pkg_client_connection
|
||
svc_webServer --> pkg_client_hmr
|
||
svc_webServer --> pkg_client_modules
|
||
svc_webhookRuntime --> pkg_webhook_github
|
||
svc_workflowEngine --> pkg_tool_ralph
|
||
svc_workflowEngine --> pkg_tool_workflow
|
||
svc_workingDirectory --> pkg_sdk_jsonrpc_server
|
||
svc_workingDirectory --> pkg_subagent
|
||
svc_workingDirectory --> pkg_tool_bash
|
||
svc_workingDirectory --> pkg_tool_fs
|
||
svc_workingDirectory --> pkg_tool_pwsh
|
||
svc_workingDirectory --> pkg_tool_working_directory
|
||
svc_workspaceRegistry --> pkg_api_session_controller
|
||
svc_workspaceRegistry --> pkg_api_workspace_controller
|
||
svc_worktrees --> pkg_experimental_tool_worktree
|
||
svc_fs -. event gate .-> pkg_fs_observation_policy
|
||
```
|
||
|
||
| ctx 键 | 角色 | 所属包 | 实现 | 直接消费方 | 配套插件 | 说明 |
|
||
| --- | --- | --- | --- | --- | --- | --- |
|
||
| `ctx.actionCards` | `service` | [`action-cards`](../packages/experimental/action-cards) | - | [`creation-recommendations`](../packages/experimental/creation-recommendations), [`client-ui-action-cards`](../packages/experimental/client-ui-action-cards) | - | 负责卡片工具、卡片状态、用户操作和状态通知;各卡片种类注册自己的动作和处理器。 |
|
||
| `ctx.pluginRecommendations` | `service` | [`plugin-recommendations`](../packages/experimental/plugin-recommendations) | - | [`client-ui-plugin-recommendations`](../packages/experimental/client-ui-plugin-recommendations) | - | 读取官方插件卡片的当前目录文本,并在用户点击后通过配置插件管理器启用该插件。 |
|
||
| `ctx.headlessStartup` | `core` | [`headless`](../packages/bundle/headless) | - | [`headless`](../packages/bundle/headless) | - | 将解析后的任务和运行选项提供给无界面运行器及其 sandbox-policy 配置。 |
|
||
| `ctx.cotTranslation` | `service` | [`experimental-client-ui-cot-translation`](../packages/experimental/client-ui-cot-translation) | - | - | - | 为展开的思考内容提供有界的 Session 翻译请求,不改变模型可见历史。 |
|
||
| `ctx.translator` | `service` | [`experimental-translator`](../packages/experimental/translator) | - | [`experimental-client-ui-cot-translation`](../packages/experimental/client-ui-cot-translation) | - | 解析 Google 或 Bing 请求,并可选保留统一的实验性 Session 记录。 |
|
||
| `ctx.hmr` | `core` | [`hmr`](../packages/boot/hmr) | - | [`app-boot`](../packages/boot/app-boot) | - | 负责模块和精确配置监听;应用修改共用其队列,自动重载等待应用文件锁。 |
|
||
| `ctx.pluginRegistryProbe` | `core` | [`client-ui-plugin-manager`](../packages/client/ui-plugin-manager) | - | [`client-ui-plugin-manager`](../packages/client/ui-plugin-manager) | - | 在 Host 上并发比较公共安装源响应;初始安装源推荐由 Client 负责。 |
|
||
| `ctx.pluginManager` | `core` | [`plugin-manager`](../packages/boot/plugin-manager) | - | [`plugin-manager`](../packages/boot/plugin-manager), `ui-settings-plugin-inventory` | - | 与 CLI 共享 profile 包操作,并向 Web 和 Agent 调用方分别报告持久状态与运行状态。 |
|
||
| `ctx.pluginMarket` | `core` | [`plugin-market`](../packages/boot/plugin-market) | - | [`client-ui-plugin-market`](../packages/client/ui-plugin-market), [`plugin-market`](../packages/boot/plugin-market) | - | 获取并校验用户配置的索引源;安装通过插件管理器完成。 |
|
||
| `ctx.profileContext` | `core` | [`app-boot`](../packages/boot/app-boot) | - | [`plugin-manager`](../packages/boot/plugin-manager) | - | dsh launcher 提供纯数据形式的 profile 位置与组合输入;重载调度由 dsh-hmr 负责。 |
|
||
| `ctx.connection` | `core` | [`client-connection`](../packages/client/connection) | - | [`api-gateway`](../packages/api/gateway), [`host-frontend-static`](../packages/host/frontend-static) | - | 负责浏览器认证与共享 HTTP 请求分发;API 适配器注册端点和流。 |
|
||
| `ctx.worktrees` | `seam` | [`experimental-worktree`](../packages/experimental/worktree) | [`experimental-worktree`](../packages/experimental/worktree) | [`experimental-tool-worktree`](../packages/experimental/tool-worktree) | - | 显式实验组合从固定的本地提交创建工作树。检出目录与共享 Git 元数据受现有写权限约束;工作目录服务拥有创建后的 Session 目录。 |
|
||
| `ctx.workingDirectory` | `seam` | [`working-directory`](../packages/session/working-directory) | [`working-directory`](../packages/session/working-directory) | [`tool-working-directory`](../packages/session/tool-working-directory), [`tool-fs`](../packages/fs/tool-fs), [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh), [`subagent`](../packages/subagent/subagent), [`sdk-jsonrpc-server`](../packages/sdk/server) | - | 一个 Session 投影拥有有效执行目录。文件系统验证变更,用户上下文报告目录信息,原始元数据与写入授权保持不变。 |
|
||
| `ctx.mcpResources` | `seam` | [`mcp-resources`](../packages/mcp/mcp-resources) | [`mcp-client`](../packages/mcp/mcp-client) | [`mcp-resources`](../packages/mcp/mcp-resources) | - | 连接所有者提供的操作在调用 agent 的作用域内服务于共享资源工具。 |
|
||
| `ctx.browserUse` | `seam` | [`browser-use`](../packages/browser-use/browser-use) | [`experimental-browser-use-playwright-mcp`](../packages/experimental/browser-use-playwright-mcp), [`experimental-browser-use-chrome-devtools-mcp`](../packages/experimental/browser-use-chrome-devtools-mcp), [`experimental-browser-use-stagehand-native`](../packages/experimental/browser-use-stagehand-native) | [`experimental-browser-use-playwright-mcp`](../packages/experimental/browser-use-playwright-mcp), [`experimental-browser-use-chrome-devtools-mcp`](../packages/experimental/browser-use-chrome-devtools-mcp), [`experimental-browser-use-stagehand-native`](../packages/experimental/browser-use-stagehand-native) | - | 每个服务实例注册一个提供方拥有的名称。提供方按实时 Session 拥有自己的工具与浏览器资源;共享服务不提供浏览器操作 API。 |
|
||
| `ctx.computerUse` | `seam` | [`computer-use`](../packages/computer-use/computer-use) | [`experimental-computer-use-cua-driver-mcp`](../packages/experimental/computer-use-cua-driver-mcp), [`experimental-computer-use-cua-driver-native`](../packages/experimental/computer-use-cua-driver-native) | [`experimental-computer-use-cua-driver-mcp`](../packages/experimental/computer-use-cua-driver-mcp), [`experimental-computer-use-cua-driver-native`](../packages/experimental/computer-use-cua-driver-native) | - | 每个服务实例只注册一个提供方自定的名称。各提供方也拥有自己的模型工具;服务不提供通用操作 API、运行时选择或 Session 流程锁。 |
|
||
| `ctx.cuaAccess` | `core` | [`cua`](../packages/experimental/cua) | - | [`cua`](../packages/experimental/cua) | - | 原生 provider 负责应用授权和取消操作;可选的 Client 权限页面通过 Remote 查询和修改授权。 |
|
||
| `ctx.officeToPdf` | `core` | [`office-to-pdf`](../packages/document/office-to-pdf) | - | [`client-ui-sidebar-documentpreview`](../packages/client/ui-sidebar-documentpreview) | - | 已授权的 Office 字节在宿主上使用已声明的原生目标引擎转换;未声明原生目标时使用 Node WASM。 |
|
||
| `ctx.attachments` | `seam` | [`attachment`](../packages/attachment/attachment) | [`attachment-local`](../packages/attachment/attachment-local) | [`api-session-controller`](../packages/api/session-controller), [`tool-fs`](../packages/fs/tool-fs), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`llm-deepseek`](../packages/llm/llm-deepseek) | - | 宿主会在会话事件之前提交已接受的图片;提供方适配器将已授权的持久引用解析为提供方原生内容。 |
|
||
| `ctx.fileUploads` | `core` | [`client-file-upload`](../packages/client/file-upload) | - | [`api-session-controller`](../packages/api/session-controller) | - | 负责流式接收、持久存储和暂存回执生命周期;Session Controller 将回执绑定到已接受的提交。 |
|
||
| `ctx.llm` | `seam` | [`llm`](../packages/llm/llm) | [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai), [`llm-replay`](../packages/test-support/llm-replay) | [`agent-loop`](../packages/core/agent-loop), [`compaction-basic`](../packages/compaction/compaction-basic) | - | 适配器注册提供方实现;agent loop(智能体循环)与压缩功能调用提供方无关的流服务。 |
|
||
| `ctx.deepseekLlmApiExtensions` | `seam` | [`deepseek-llm-api-extensions`](../packages/llm/deepseek-llm-api-extensions) | [`session-log-deepseek`](../packages/session/session-log-deepseek), [`plugin-package-inventory-deepseek`](../packages/llm/plugin-package-inventory-deepseek) | [`llm-deepseek`](../packages/llm/llm-deepseek) | - | 插件准备彼此独立的顶层字段;官方适配器会合并这些字段,并在 HTTP 接受后提交其交付状态。 |
|
||
| `ctx.tokenMeter` | `core` | [`token-meter`](../packages/llm/token-meter) | - | [`compaction-basic`](../packages/compaction/compaction-basic) | - | 拥有按会话隔离的回放折叠区;压力消费方共享不可变且带修订版本的测量结果。 |
|
||
| `ctx.toolResultPruner` | `core` | [`compaction-tool-result-pruner`](../packages/compaction/compaction-tool-result-pruner) | - | [`compaction-basic`](../packages/compaction/compaction-basic) | - | 在摘要压缩前,通过可回放的单节点表层替换来改写过大的当前工具结果。 |
|
||
| `ctx.sessions` | `core` | [`session`](../packages/core/session) | - | [`agent-loop`](../packages/core/agent-loop), [`agent`](../packages/core/agent), [`session-persistence`](../packages/session/session-persistence), [`session-query`](../packages/session-query/session-query), [`session-query-sqlite`](../packages/session-query/session-query-sqlite), [`subagent`](../packages/subagent/subagent), [`message-feedback`](../packages/feedback/message-feedback) | - | 拥有仅追加的 Session 实例,并发出持久的会话事件流。 |
|
||
| `ctx.speechController` | `core` | [`experimental-api-speech-to-text`](../packages/experimental/api-speech-to-text) | - | - | - | 在 Provider 调用前校验受限的浏览器音频。 |
|
||
| `ctx.sessionController` | `core` | [`api-session-controller`](../packages/api/session-controller) | - | - | - | 负责 Session 命令、冷读取、持久事件跟随、实时控制状态、模型目录、workspace 打开与 Agent 激活策略。 |
|
||
| `ctx.sessionFileReferences` | `core` | [`api-session-controller`](../packages/api/session-controller) | - | - | - | 通过 Session Controller 的既有 Agent lookup 策略委托文件引用发现。 |
|
||
| `ctx.sessionSkillCatalog` | `core` | [`api-session-controller`](../packages/api/session-controller) | - | - | - | 在不激活冷 Agent 的前提下列出 Session 组合中允许用户调用的 skill。 |
|
||
| `ctx.jobController` | `core` | [`api-job-controller`](../packages/api/job-controller) | - | - | - | 经生成的 Remote namespace 流式发送一个后台任务的观测 record;名册仍在会话控制流上。 |
|
||
| `ctx.credentialsController` | `core` | [`api-settings-controller`](../packages/api/settings-controller) | - | - | - | 把凭据引用 seam 投影到生成的 Remote namespace:批量扇出、视图投影与拒绝映射都在这里,而不在 seam Definition 上。 |
|
||
| `ctx.settingsController` | `core` | [`api-settings-controller`](../packages/api/settings-controller) | - | - | - | 把用户设置 seam 投影到生成的 Remote namespace:读取一律脱敏,所有拒绝在这里分类,而不在 seam Definition 上。 |
|
||
| `ctx.workspaceFiles` | `core` | [`api-workspace-files`](../packages/api/workspace-files) | - | - | - | 为会话工作区根内的文件提供 stat、分页文本、字节窗口、目录列举与变更流,经 lstat、包含关系与 stat 重检限定。 |
|
||
| `ctx.workspaceChanges` | `core` | [`workspace-changes`](../packages/deliverables/workspace-changes) | - | - | - | Serves the summary each workspace/changes event announced and each listed file's turn-start and turn-end comparison, by Session and event sequence, until that Session is disposed; the log carries only the turn. |
|
||
| `ctx.terminalController` | `core` | [`api-terminal-controller`](../packages/api/terminal-controller) | - | - | - | 通过子进程提供方与类型化 Remote 传输管理用户终端进程、解析默认 shell,并恢复有界终端屏幕。 |
|
||
| `ctx.workspaceController` | `core` | [`api-workspace-controller`](../packages/api/workspace-controller) | - | - | - | 通过生成的 Remote namespace 负责 Workspace 命令和可在重连后收敛的 Workspace 状态投递。 |
|
||
| `ctx.directoryPickerController` | `core` | [`api-workspace-controller`](../packages/api/workspace-controller) | - | - | - | 把选目录 seam 送上线:能力门禁、取消传播,以及浏览器目录流程用于分支判断的 seam 错误码。 |
|
||
| `ctx.typert` | `core` | [`typert-registry`](../packages/typert/registry) | - | [`typert-loader`](../packages/typert/loader), [`api-gateway`](../packages/api/gateway) | - | 插件直接或通过 dsh-typert-loader 注册实时 zod 贡献;API 网关消费调用描述符和提供方,其他运行时消费方则在各自边界查询 schema 与反射元数据。 |
|
||
| `ctx.typertGateway` | `core` | [`api-gateway`](../packages/api/gateway) | - | - | - | 将生成的 Remote 描述符与实时 Cordis 服务关联,解析已注册的身份,并通过共享的 Connection RPC 载体提供一元调用。 |
|
||
| `ctx.remoteAccess` | `core` | [`api-remote-access`](../packages/api/remote-access) | - | [`api-gateway`](../packages/api/gateway), [`api-session-controller`](../packages/api/session-controller), [`api-workspace-controller`](../packages/api/workspace-controller) | - | 通过业务方注册的基于 role 的 policy 判定非 owner Peer 可调用哪些 Remote 方法,过滤列表结果,并为每个 Peer 推送访问快照。 |
|
||
| `ctx.sessionPersistence` | `seam` | [`session-persistence`](../packages/session/session-persistence) | [`session-persistence-jsonl`](../packages/session/session-persistence-jsonl) | [`agent-loop`](../packages/core/agent-loop), [`tool-bash`](../packages/shell/tool-bash), [`hooks-claude-code`](../packages/experimental/hooks-claude-code), [`hooks-codex`](../packages/experimental/hooks-codex), [`session-query`](../packages/session-query/session-query), [`session-query-sqlite`](../packages/session-query/session-query-sqlite), [`message-feedback`](../packages/feedback/message-feedback) | - | JSONL backend 把 SessionEvent 词汇持久化为每个 Session 一份产物。 |
|
||
| `ctx.configEditor` | `core` | [`config-editor`](../packages/boot/config-editor) | - | [`settings`](../packages/settings/settings), [`agent-default-model`](../packages/core/agent-default-model) | - | Persists profile config patches under the application file lock and HMR queue, then reconciles Loader entries. |
|
||
| `ctx.settings` | `core` | [`settings`](../packages/settings/settings) | - | [`api-settings-controller`](../packages/api/settings-controller) | - | Forms project volatile Config fields from active profile entries and delegate validated edits to config-editor. Plugins consume their own Config references. |
|
||
| `ctx.subagentModelSelection` | `core` | [`tool-subagent`](../packages/subagent/tool-subagent) | - | [`tool-subagent`](../packages/subagent/tool-subagent) | - | 拥有默认关闭的设置命名空间;Agent 作用域的委派工具会在组合新顶层 Session 时读取它。 |
|
||
| `ctx.credentials` | `seam` | [`credentials`](../packages/credentials/credentials) | [`credentials-local`](../packages/credentials/credentials-local) | [`api-settings-controller`](../packages/api/settings-controller), [`llm-deepseek`](../packages/llm/llm-deepseek), [`llm-pi-ai`](../packages/llm/llm-pi-ai) | - | 配置携带对机密信息的引用;提供方拥有实际值。消费方按操作解析,因此轮换后的凭据会在紧接着的下一次请求中生效;settings controller 提供不含实际值的视图和只写存储。 |
|
||
| `ctx.deepseekAccount` | `seam` | [`deepseek-account`](../packages/credentials/deepseek-account) | [`deepseek-account-platform`](../packages/credentials/deepseek-account-platform) | [`api-account-controller`](../packages/api/account-controller), [`llm-deepseek`](../packages/llm/llm-deepseek) | - | Host 负责浏览器授权和本地凭证;UI 使用方只接收不含 token 的状态。 |
|
||
| `ctx.authorization` | `seam` | [`authorization`](../packages/credentials/authorization) | - | [`llm-pi-ai`](../packages/llm/llm-pi-ai) | - | flow 由知道如何取得某份凭据的插件注册,并以其写入的记录为键;seam 拥有这段对话与"每个键同时只跑一次尝试"的生命周期,而非协议本身。 |
|
||
| `ctx.productAnalytics` | `service` | [`client-product-analytics`](../packages/client/product-analytics) | - | - | - | 根据 Host 动态采集策略接收指定桌面事件、补充可用登录身份并监听实时压缩。 |
|
||
| `ctx.otel` | `service` | [`otel`](../packages/telemetry/otel) | - | [`host-product-telemetry-otel`](../packages/host/product-telemetry-otel), [`session-telemetry-otel`](../packages/session/session-telemetry-otel) | - | 产品埋点和 Session 反馈适配器通过同一个注入服务创建独立上报通道。 |
|
||
| `ctx.productTelemetry` | `service` | [`host-product-telemetry-otel`](../packages/host/product-telemetry-otel) | - | - | - | 通过 OTLP/HTTP 发送显式提交的分析事件;仅挂载插件不会采集信息。 |
|
||
| `ctx.sessionTelemetry` | `seam` | [`session-telemetry`](../packages/session/session-telemetry) | [`session-telemetry-otel`](../packages/session/session-telemetry-otel) | - | - | 该 seam 捕获会话记录、进行脱敏并交给一个后端;没有其他组件消费该服务,其输出会离开当前进程。 |
|
||
| `ctx.storage` | `seam` | [`storage`](../packages/storage/storage) | [`storage-json`](../packages/storage/storage-json), [`storage-sqlite`](../packages/storage/storage-sqlite) | [`storage-domain`](../packages/storage/storage-domain) | - | 各后端以不同名称并列注册;数据形态(领域优先)挂载到枢纽上,并将类型化操作转换为不透明的 KV 单元原语。 |
|
||
| `ctx.storageDomain` | `core` | [`storage-domain`](../packages/storage/storage-domain) | - | [`workspace`](../packages/workspace/workspace) | - | 等待所有已配置后端就绪,然后将领域形态发布为一个受生命周期约束的服务,用于类型化持久状态。 |
|
||
| `ctx.messageFeedback` | `core` | [`message-feedback`](../packages/feedback/message-feedback) | - | - | - | 拥有权威 Session 日志中的逐 assistant 消息反馈、目标校验、逐条目 compare-and-set 及 Host 一元 Remote 契约。反馈不进入模型历史;日志导出遵循消费方策略。 |
|
||
| `ctx.sessionFeedback` | `core` | [`command-feedback`](../packages/feedback/command-feedback) | - | - | - | 通过 Host 一元 Remote 契约在 live Session 上把一条带分类的 Session 级评价记录为仅写日志的 feedback/record 事件;/feedback 命令共用同一个生产方。 |
|
||
| `ctx.workspaceRegistry` | `core` | [`workspace`](../packages/workspace/workspace) | - | [`api-workspace-controller`](../packages/api/workspace-controller), [`api-session-controller`](../packages/api/session-controller) | - | 通过领域设施拥有带 WorkspaceId 品牌类型的记录;稳定的 sessionIds 账户驱动 Host RPC 与 GUI 投影。 |
|
||
| `ctx.sessionQuery` | `seam` | [`session-query`](../packages/session-query/session-query) | [`session-query-sqlite`](../packages/session-query/session-query-sqlite) | [`session-reference`](../packages/context/session-reference), [`tool-session-query`](../packages/experimental/tool-session-query) | - | 该接口提供精确读取、过滤和追踪;具体后端还提供全文协调、排序、摘要片段和游标世代,而模型消费方负责工作区权限与不含游标的渲染。 |
|
||
| `ctx.fileReferences` | `seam` | [`file-reference`](../packages/context/file-reference) | [`file-reference-local`](../packages/context/file-reference-local) | [`api-session-controller`](../packages/api/session-controller) | - | 该接口返回 Agent cwd 内仅含路径的补全候选;提供方负责命名空间访问与排序,但不读取文件内容。 |
|
||
| `ctx.sessionReferenceResolver` | `core` | [`session-reference`](../packages/context/session-reference) | - | - | - | 将当前表层中有界的对话快照投影为持久但不可信的消息上下文;Host 适配器负责提及语法。 |
|
||
| `ctx.sessionTitle` | `seam` | [`session-title`](../packages/session/session-title) | [`session-title-first-prompt-llm`](../packages/session/session-title-first-prompt-llm), [`session-title-all-prompts-llm`](../packages/experimental/session-title-all-prompts-llm) | - | - | 负责确定性回退、最新标题折叠区,以及唯一的可选异步提供方注册。 |
|
||
| `ctx.systemPrompt` | `core` | [`system-prompt`](../packages/core/system-prompt) | - | [`agent-loop`](../packages/core/agent-loop), [`tools`](../packages/core/tools), [`tool-fs`](../packages/fs/tool-fs), [`tool-terminal`](../packages/experimental/tool-terminal), [`tool-web`](../packages/web/tool-web) | - | 为每个步骤收集提示词各部分和面向模型的工具 schema。 |
|
||
| `ctx.tools` | `core` | [`tools`](../packages/core/tools) | - | [`agent-loop`](../packages/core/agent-loop), [`tool-ask-user`](../packages/interaction/tool-ask-user), [`tool-bash`](../packages/shell/tool-bash), [`tool-cordis`](../packages/extensions/tool-cordis), [`tool-fs`](../packages/fs/tool-fs), [`tool-terminal`](../packages/experimental/tool-terminal), [`tool-skill`](../packages/skill/tool-skill), [`tool-subagent`](../packages/subagent/tool-subagent), [`tool-todo`](../packages/todo/tool-todo), [`tool-web`](../packages/web/tool-web) | - | 注册能力和作用域执行器。原生与 PTC 提供者负责工具描述及完整原始调用批次;它们可选用共享流水线处理工具策略和分发。 |
|
||
| `ctx.userQuestions` | `seam` | [`user-questions`](../packages/interaction/user-questions) | - | [`tool-ask-user`](../packages/interaction/tool-ask-user) | - | UI 前端提供当前生效的人工回答提供方;tool-ask-user 在提供方无关的 ask() promise 上暂停工具调用。 |
|
||
| `ctx.planMode` | `core` | [`plan-mode`](../packages/plan/plan-mode) | - | - | - | 折叠已记录的计划/模式状态,在轮次边界刷新用户选择,渲染由部署方拥有的指导信息,注册 /plan,并在状态转换期间保持计划退出 schema 稳定。 |
|
||
| `ctx.agentPresets` | `core` | [`agent-preset-registry`](../packages/preset/agent-preset-registry) | - | - | - | 立即挂载 YAML 声明的 preset 版本,把 Agent 和冷读取绑定到作用域内的贡献,并保留已替换的版本,直到最后一个使用者释放它。 |
|
||
| `ctx.commands` | `core` | [`commands`](../packages/interaction/commands) | - | - | - | 插件注册直接面向人的命令,而不会把调用发送给模型。 |
|
||
| `ctx.sessionProjections` | `core` | [`session-projection`](../packages/session/session-projection) | - | [`api-session-controller`](../packages/api/session-controller), [`tool-todo`](../packages/todo/tool-todo), [`session-title`](../packages/session/session-title) | - | 各领域注册由状态驱动的折叠单元;主动驱动过程维护每个会话的水位状态,Session controller 提供 baseline 并推送发生变化的值。 |
|
||
| `ctx.sessionProjectionCache` | `core` | [`session-projection-cache`](../packages/session/session-projection-cache) | - | [`api-session-controller`](../packages/api/session-controller), [`session-query`](../packages/session-query/session-query), [`session-reference`](../packages/context/session-reference) | - | 按会话持久保存投影单元状态的检查点(节流检查点,以及轮次/结束/分离时的必选检查点),提供缓存投影视图,并加速 prepared Session 的投影恢复。 |
|
||
| `ctx.skills` | `seam` | [`skill`](../packages/skill/skill) | [`sandbox-windows-acl`](../packages/sandbox/sandbox-windows-acl), [`skill-badge`](../packages/experimental/skill-badge), [`skill-filesystem`](../packages/skill/skill-filesystem), [`skill-office`](../packages/skill/skill-office) | [`tool-skill`](../packages/skill/tool-skill) | - | 合并提供方的 skill(技能)目录;tool-skill 渲染会话前缀目录,并加载完整的 skill 正文。 |
|
||
| `ctx.agents` | `core` | [`agent`](../packages/core/agent) | - | [`agent-loop`](../packages/core/agent-loop), [`acp`](../packages/acp/acp), [`subagent`](../packages/subagent/subagent) | - | 拥有实时 Agent 句柄、创建/恢复工厂 seam,以及进程本地的发起方传播。 |
|
||
| `ctx.agentDefaultModel` | `core` | [`agent-default-model`](../packages/core/agent-default-model) | - | [`api-session-controller`](../packages/api/session-controller), [`headless`](../packages/bundle/headless) | - | Reads the default ModelSelection from volatile Config and saves selections through the profile editor. |
|
||
| `ctx.agentLoop` | `bundle` | [`agent-loop`](../packages/core/agent-loop) | - | [`base`](../packages/bundle/base), [`sdk-minimal`](../packages/bundle/sdk-minimal) | - | 唯一的具体循环插件;扩展包依赖 dsh-agent 的事件和服务,而不依赖此包。 |
|
||
| `ctx.schedule` | `core` | [`schedule`](../packages/schedule/schedule) | - | - | - | 独立于 Session 的加载状态存储任务,并将到期消息排入原 Session。 |
|
||
| `ctx.goals` | `core` | [`goal`](../packages/goal/goal) | - | - | - | 从会话日志折叠带修订版本的目标状态,并将实时延续激活保留在进程本地。 |
|
||
| `ctx.ssh` | `core` | [`ssh`](../packages/ssh/ssh) | - | [`fs-ssh`](../packages/ssh/fs-ssh), [`subprocess-ssh`](../packages/ssh/subprocess-ssh), [`sandbox-ssh`](../packages/ssh/sandbox-ssh) | - | 负责一条经过认证的 OpenSSH 连接、已安装辅助程序身份、独立程序流,以及配套远端提供方的断连清理。 |
|
||
| `ctx.subprocess` | `seam` | [`subprocess`](../packages/subprocess/subprocess) | [`subprocess-local`](../packages/subprocess/subprocess-local), [`subprocess-ssh`](../packages/ssh/subprocess-ssh) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash), [`lsp-stdio`](../packages/lsp/lsp-stdio), [`subagent-acp`](../packages/subagent/subagent-acp), [`subagent-codex`](../packages/subagent/subagent-codex), [`subagent-claude-code`](../packages/subagent/subagent-claude-code) | - | Bash 执行器、PTY shell 后端、LSP Host,以及进程外 ACP、Codex 和 Claude Code subagent 后端都通过 ctx.subprocess 执行 spawn;该服务负责进程坐标、进程树/会话生命周期、stdio 处置、终端机制和 kill 升级。 |
|
||
| `ctx.shell` | `seam` | [`shell`](../packages/shell/shell) | [`bash-local`](../packages/shell/bash-local), [`bash-sandbox`](../packages/shell/bash-sandbox), [`pwsh-local`](../packages/shell/pwsh-local) | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh), [`hooks-claude-code`](../packages/experimental/hooks-claude-code), [`hooks-codex`](../packages/experimental/hooks-codex) | - | 面向模型的 shell 工具和钩子桥接消费此 seam;沙箱、远程或 PowerShell 执行器可以替换 bash-local,而无需改动这些消费方。 |
|
||
| `ctx.shellEnv` | `core` | [`shell-env`](../packages/shell/shell-env) | - | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh) | - | 插件声明限定于 effect 作用域的 DSH_* 事实;每个 shell 工具在每次执行时收集一份可信快照,其执行器据此重建命名空间。 |
|
||
| `ctx.terminals` | `seam` | [`terminal`](../packages/terminal/terminal) | [`terminal-bash`](../packages/terminal/terminal-bash) | [`tool-terminal`](../packages/experimental/tool-terminal) | - | 注册表负责精确到 Agent 的会话身份和清理;后端负责终端机制,tool-terminal 则提供限定于所有者作用域的模型接口。 |
|
||
| `ctx.sandbox` | `seam` | [`sandbox`](../packages/sandbox/sandbox) | [`sandbox-local`](../packages/sandbox/sandbox-local), [`sandbox-ssh`](../packages/ssh/sandbox-ssh) | [`bash-sandbox`](../packages/shell/bash-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash) | - | 消费方交出即将执行 spawn 的确切 argv;与配套子进程提供方共享执行环境的后端按每次调用的策略包装该 argv,并报告强制执行情况。 |
|
||
| `ctx.sandboxPolicy` | `core` | [`sandbox-policy`](../packages/sandbox/sandbox-policy) | - | [`bash-sandbox`](../packages/shell/bash-sandbox), [`fs-sandbox`](../packages/fs/fs-sandbox), [`terminal-bash`](../packages/terminal/terminal-bash) | - | 统一保存部署默认模式和工作区根目录;只有沙箱执行器和提供方读取该服务(工具层使用它同时导出的纯 `sandbox/mode` 折叠区)。两类强制执行组件都读取该服务,因此 bash 与 fs 不会限制到不同的根目录。 |
|
||
| `ctx.approval` | `seam` | [`user-approval`](../packages/interaction/user-approval) | - | [`tools`](../packages/core/tools), [`tool-bash`](../packages/shell/tool-bash), [`acp`](../packages/acp/acp) | - | 一次性权限决策通过 `approval/request` waterfall(瀑布式事件)分派;回答方是监听器(即 ACP 为自身 agent 提供的桥接),没有回答方时以 `unavailable` 关闭失败。 |
|
||
| `ctx.permissionPresets` | `core` | [`permission-presets`](../packages/interaction/permission-presets) | - | - | - | 面向用户的预设表(`workspace-write`/`danger-full-access`),将沙箱模式与审批策略选项组合在一起;一次切换会写入一个 `permission/preset` 事件,并贯通到两个选项事件。 |
|
||
| `ctx.ptcRuntime` | `seam` | [`ptc-runtime`](../packages/ptc-runtime/ptc-runtime) | [`ptc-runtime-node`](../packages/ptc-runtime/ptc-runtime-node), [`experimental-ptc-runtime-python`](../packages/experimental/ptc-runtime-python) | [`tool-executor-ptc`](../packages/core/tool-executor-ptc), [`workflow-ptc`](../packages/workflow/workflow-ptc) | - | 使用 Host 提供的异步绑定运行程序;tool-executor-ptc 负责 PTC 呈现,workflow-ptc 负责工作流编排。 |
|
||
| `ctx.fs` | `seam` | [`fs`](../packages/fs/fs) | [`fs-local`](../packages/fs/fs-local), [`fs-sandbox`](../packages/fs/fs-sandbox), [`fs-ssh`](../packages/ssh/fs-ssh) | [`tool-fs`](../packages/fs/tool-fs) | [`fs-observation-policy`](../packages/fs/fs-observation-policy) | tool-fs 通过 ctx.fs 执行读取/写入/编辑;fs-sandbox 按共享沙箱模式限制变更;fs-observation-policy 通过 fs/* 事件门禁贡献基于观测状态的检查。 |
|
||
| `ctx.compaction` | `seam` | [`compaction`](../packages/compaction/compaction) | [`compaction-basic`](../packages/compaction/compaction-basic) | [`compaction-basic`](../packages/compaction/compaction-basic) | - | 基础后端消费步骤后的压力事件和请求错误恢复事件;不存在面向模型的压缩工具。 |
|
||
| `ctx.subagents` | `seam` | [`subagent`](../packages/subagent/subagent) | [`subagent-spawn-in-process`](../packages/subagent/subagent-spawn-in-process), [`subagent-fork-in-process`](../packages/subagent/subagent-fork-in-process), [`subagent-acp`](../packages/subagent/subagent-acp), [`subagent-codex`](../packages/subagent/subagent-codex), [`subagent-claude-code`](../packages/subagent/subagent-claude-code), [`subagent-dsh-sdk`](../packages/subagent/subagent-dsh-sdk) | [`tool-subagent`](../packages/subagent/tool-subagent), [`tool-subagent-control`](../packages/subagent/tool-subagent-control), [`tool-ralph`](../packages/experimental/tool-ralph) | - | 提供方准备本地子级或执行外部任务;一个 activation 管理器持有两类生命周期。委派工具选择后端,控制工具投递本地后续消息,工作流等待 activation 结果。 |
|
||
| `ctx.speechToText` | `seam` | [`experimental-speech-to-text`](../packages/experimental/speech-to-text) | [`experimental-speech-to-text-sensevoice`](../packages/experimental/speech-to-text-sensevoice) | [`experimental-api-speech-to-text`](../packages/experimental/api-speech-to-text) | - | 路由显式选择的识别器;浏览器使用带认证的 Remote,并在提交前将转写保留在草稿中。 |
|
||
| `ctx.agentTeams` | `core` | [`experimental-agent-team`](../packages/experimental/agent-team) | - | [`experimental-tool-agent-team`](../packages/experimental/tool-agent-team) | - | 负责隐式 Root roster、直接 peer inbox 投递、共享任务 DAG 与 continuable child 生命周期;tool-agent-team 提供模型控制工具。 |
|
||
| `ctx.claudeCodeMods` | `core` | [`experimental-claude-code-mods`](../packages/experimental/claude-code-mods) | - | - | - | 加载 defineMod 插件添加的模组,从 harness 扩展点触发其钩子链,并通过其 Remote 绘制提示框上方的横幅。 |
|
||
| `ctx.inspector` | `core` | `inspector` | - | - | - | 负责 Worker 托管的 CDP target,以及独立于传输的 Host 和 Client observation 与 Cordis tree query API。 |
|
||
| `ctx.jobs` | `seam` | [`jobs`](../packages/jobs/jobs) | [`jobs-local`](../packages/jobs/jobs-local) | [`tool-bash`](../packages/shell/tool-bash), [`tool-pwsh`](../packages/shell/tool-pwsh), [`tool-terminal`](../packages/experimental/tool-terminal), [`tool-jobs`](../packages/jobs/tool-jobs), [`api-job-controller`](../packages/api/job-controller) | - | 生产方(后台 bash/pwsh 与 PTY 发送)登记正在运行的工作;声明 record 的 job 还为非消费观察者流式提供原始输出;tool-jobs 是面向模型的控制器,用于读取、列出和终止这些工作;jobs-local 是进程本地注册表。 |
|
||
| `ctx.web` | `seam` | [`web`](../packages/web/web) | [`web-search-exa`](../packages/web/web-search-exa), [`web-search-perplexity`](../packages/web/web-search-perplexity), [`web-search-deepseek`](../packages/web/web-search-deepseek), [`web-deepseek-api`](../packages/web/web-deepseek-api), [`web-fetch-http`](../packages/web/web-fetch-http) | [`tool-web`](../packages/web/tool-web) | - | 搜索和抓取提供方注册到同一个 ctx.web seam;tool-web 负责稳定的面向模型名称。 |
|
||
| `ctx.spillStore` | `seam` | [`spill`](../packages/spill/spill) | [`spill-local`](../packages/spill/spill-local) | [`spill-policy`](../packages/spill/spill-policy) | - | 后端保存过大的工具文本,并返回面向模型的定位信息和取回提示;spill-policy 是 tools/post-execute 消费方,负责决定何时 spill。 |
|
||
| `ctx.directoryPicker` | `seam` | [`host-directory-picker`](../packages/host/directory-picker) | [`host-directory-picker-native`](../packages/host/directory-picker-native), [`host-directory-picker-browse`](../packages/host/directory-picker-browse) | [`api-workspace-controller`](../packages/api/workspace-controller) | - | 带判别标记的交互能力:原生后端在 Host 显示设备上打开一个操作系统选择器,浏览后端为应用内浏览器提供列表与创建原语;双端后端通过其浏览器侧填充 ui-workspace 目录流程的 slot(不通过协议发布)。 |
|
||
| `ctx.webServer` | `core` | [`host-webserver`](../packages/host/webserver) | - | [`client-connection`](../packages/client/connection), [`client-modules`](../packages/client/modules), [`client-hmr`](../packages/client/hmr) | - | 普通的 node:http 载体:具名路由注册表、索引转换 tap,以及静态 dist 回退;Web 传输插件注册自己的路由。 |
|
||
| `ctx.webApp` | `core` | [`web-app`](../packages/bundle/web-app) | - | [`harness-dev-context`](../packages/context/harness-dev-context) | - | web-runtime 行为其 Web GUI 公告一个 URL:配置了 publicUrl 时用它,否则用监听器 origin;DSH_WEB_URL、启动 URL 与 harness-dev-context 读取同一个值。 |
|
||
| `ctx.clientModules` | `core` | [`client-modules`](../packages/client/modules) | - | [`client-hmr`](../packages/client/hmr) | - | 通过增量 `dsh.client` 扫描组合 __DSH_BOOT__ 入口图,提供插件组合包,并通知重建/图变更订阅方。 |
|
||
| `ctx.workflowEngine` | `seam` | [`workflow`](../packages/workflow/workflow) | [`workflow-ptc`](../packages/workflow/workflow-ptc) | [`tool-workflow`](../packages/workflow/tool-workflow), [`tool-ralph`](../packages/experimental/tool-ralph) | - | 每个上下文使用一个引擎,与 bash 相同,且没有具名提供方注册表;通用工作流与固定 Ralph 消费方启动运行,其中的 agent() 调用通过 ctx.subagents 扇出。 |
|
||
| `ctx.webhookRuntime` | `core` | [`webhook`](../packages/experimental/webhook) | - | [`webhook-github`](../packages/experimental/webhook-github) | - | 提供方适配器分派已认证交付;可信插件注册独立的进程本地规则,runtime 把非 null 结果转换为普通的 Workspace-backed Session,不保留交付或完成状态。 |
|
||
| `ctx.lsp` | `seam` | [`lsp`](../packages/lsp/lsp) | [`lsp-stdio`](../packages/lsp/lsp-stdio) | [`tool-lsp`](../packages/lsp/tool-lsp) | - | 提供方注册与选择,加上恰好四种操作的标准化查询执行;该 seam 不提供协议逃生口,后端必须转换为标准化请求和结果。 |
|
||
| `ctx.dynamicCordisRunner` | `core` | [`cordis-host-runner`](../packages/extensions/cordis-host-runner) | - | [`tool-cordis`](../packages/extensions/tool-cordis) | - | 拥有内存定义注册表、Host 半的 vm 沙箱和 request-run 往返流程;浏览器页面通过其 Remote 命名空间在线访问同一服务。 |
|
||
| `ctx.cordisInspect` | `core` | [`cordis-host-runner`](../packages/extensions/cordis-host-runner) | - | [`tool-cordis`](../packages/extensions/tool-cordis) | - | 注册 Host inspect 提供方、镜像 Client 提供方 manifest,并通过动态 Cordis 传输路由 Client 查询。 |
|
||
|
||
维护模式:混合模式。服务从 Cordis 声明中发现;接口、实现和消费方角色在 `scripts/gen-doc-graphs.ts` 中分类,并设有完整性守卫。
|