Швы возможностей и сервисы ядра
Сервис может быть сервисом ядра (spine), заменяемым швом возможностей, точкой композиции бандла или самостоятельным сервисом. На графе показаны пакет, которому принадлежит объявление сервиса, известные пакеты-реализации и пакеты, которые потребляют сервис напрямую.
flowchart LR
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"]
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_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_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_tool_fs["tool-fs"]
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_subagent_in_process_driver["subagent-in-process-driver"]
pkg_invariants["invariants"]
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"]
svc_invariants["ctx.invariants<br/>Package-owned invariant registry"]
pkg_scope["scope"]
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"]
svc_sessionPersistence["ctx.sessionPersistence<br/>Durable session persistence seam"]
pkg_session_persistence_jsonl["session-persistence-jsonl"]
pkg_tool_bash["tool-bash"]
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_host_product_telemetry_otel["host-product-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_session_telemetry_otel["session-telemetry-otel"]
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/>Tool registry and guarded execution pipeline"]
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_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"]
pkg_headless["headless"]
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_tool_pwsh["tool-pwsh"]
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_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"]
pkg_subagent["subagent"]
svc_subagents["ctx.subagents<br/>Subagent provider and continuation service"]
pkg_subagent_spawn_in_process["subagent-spawn-in-process"]
pkg_subagent_fork_in_process["subagent-fork-in-process"]
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_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_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"]
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_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_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_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_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_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_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_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_invariants --> svc_invariants
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_permission_presets --> svc_permissionPresets
pkg_plan_mode --> svc_planMode
pkg_plugin_manager --> svc_pluginManager
pkg_plugin_package_inventory_deepseek --> svc_deepseekLlmApiExtensions
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_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_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_workspace --> svc_workspaceRegistry
pkg_workspace_changes --> svc_workspaceChanges
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_in_process_driver
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_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_hmr --> pkg_app_boot
svc_invariants --> pkg_agent
svc_invariants --> pkg_agent_loop
svc_invariants --> pkg_scope
svc_invariants --> pkg_session
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_subagent
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_pluginManager --> pkg_plugin_manager
svc_pluginManager --> pkg_ui_settings_plugin_inventory
svc_pluginRegistryProbe --> pkg_client_ui_plugin_manager
svc_profileContext --> pkg_plugin_manager
svc_ptcRuntime --> pkg_tools
svc_ptcRuntime --> pkg_workflow_ptc
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_invariants
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_in_process_driver
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_typert --> pkg_api_gateway
svc_typert --> pkg_typert_loader
svc_userQuestions --> pkg_tool_ask_user
svc_web --> pkg_tool_web
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_workspaceRegistry --> pkg_api_session_controller
svc_workspaceRegistry --> pkg_api_workspace_controller
svc_fs -. event gate .-> pkg_fs_observation_policy
| Ключ ctx | Роль | Владелец | Реализации | Прямые потребители | Плагины-компаньоны | Примечание |
|---|---|---|---|---|---|---|
ctx.hmr | core | hmr | - | app-boot | - | Владеет наблюдателями за модулями и точной конфигурацией; мутации приложения делят с ним очередь, а автоматические перезагрузки ждут файловой блокировки приложения. |
ctx.pluginRegistryProbe | core | client-ui-plugin-manager | - | client-ui-plugin-manager | - | Сравнивает на Host скорость ответов публичных реестров; первоначальную рекомендацию реестра даёт Client. |
ctx.pluginManager | core | plugin-manager | - | plugin-manager, ui-settings-plugin-inventory | - | Делит операции над пакетами профиля с CLI и сообщает сохранённое и текущее состояние вызывающим со стороны Web и агента. |
ctx.profileContext | core | app-boot | - | plugin-manager | - | Лаунчер dsh поставляет расположение профилей (только данные) и входы композиции; планирование перезагрузок принадлежит dsh-hmr. |
ctx.connection | core | client-connection | - | api-gateway, host-frontend-static | - | Владеет аутентификацией браузера и общей диспетчеризацией HTTP-запросов; адаптеры API регистрируют свои endpoint и стримы. |
ctx.mcpResources | seam | mcp-resources | mcp-client | mcp-resources | - | Провайдеры, принадлежащие соединению, обслуживают общие инструменты ресурсов в области вызывающего агента. |
ctx.browserUse | seam | browser-use | experimental-browser-use-playwright-mcp, experimental-browser-use-chrome-devtools-mcp, experimental-browser-use-stagehand-native | experimental-browser-use-playwright-mcp, experimental-browser-use-chrome-devtools-mcp, experimental-browser-use-stagehand-native | - | Одно имя, принадлежащее провайдеру, на экземпляр сервиса. Провайдеры владеют своими инструментами и браузерными ресурсами для каждой живой Session; у общего сервиса нет API операций с браузером. |
ctx.computerUse | seam | computer-use | experimental-computer-use-cua-driver-mcp, experimental-computer-use-cua-driver-native | experimental-computer-use-cua-driver-mcp, experimental-computer-use-cua-driver-native | - | Одно имя, принадлежащее провайдеру, на экземпляр сервиса. Каждый провайдер также владеет своими инструментами для модели; у сервиса нет общего API действий, выбора во время выполнения и блокировки workflow на Session. |
ctx.officeToPdf | core | office-to-pdf | - | client-ui-sidebar-documentpreview | - | Авторизованные байты Office конвертируются на Host объявленным нативным движком, а если нативная цель не объявлена — через Node WASM. |
ctx.attachments | seam | attachment | attachment-local | api-session-controller, tool-fs, llm-pi-ai, llm-deepseek | - | Хост фиксирует принятые изображения до событий сессии; адаптеры провайдеров разрешают авторизованные устойчивые ссылки в контент в формате провайдера. |
ctx.fileUploads | core | client-file-upload | - | api-session-controller | - | Владеет потоковым приёмом, устойчивым хранением и временем жизни промежуточных квитанций; контроллер Session привязывает квитанции к принятым отправкам. |
ctx.llm | seam | llm | llm-deepseek, llm-pi-ai, llm-replay | agent-loop, compaction-basic | - | Адаптеры регистрируют реализации провайдеров; цикл и сжатие контекста вызывают сервис стриминга, не зависящий от провайдера. |
ctx.deepseekLlmApiExtensions | seam | deepseek-llm-api-extensions | session-log-deepseek, plugin-package-inventory-deepseek | llm-deepseek | - | Плагины готовят независимые поля верхнего уровня; официальный адаптер сливает их и фиксирует состояние доставки после принятия по HTTP. |
ctx.tokenMeter | core | token-meter | - | compaction-basic | - | Владеет изолированными свёртками replay для каждой сессии; потребители давления на контекст делят неизменяемые версионированные измерения. |
ctx.toolResultPruner | core | compaction-tool-result-pruner | - | compaction-basic | - | Переписывает слишком большие текущие результаты инструментов через воспроизводимые замены одного узла поверхности до сжатия сводкой. |
ctx.sessions | core | session | - | agent-loop, agent, session-persistence, session-query, session-query-sqlite, subagent-in-process-driver, invariants, message-feedback | - | Владеет экземплярами Session, работающими только на дозапись, и порождает устойчивую ленту событий сессии. |
ctx.speechController | core | experimental-api-speech-to-text | - | - | - | Проверяет ограниченное по размеру аудио из браузера перед отправкой провайдеру. |
ctx.sessionController | core | api-session-controller | - | - | - | Владеет командами Session, холодным чтением, слежением за устойчивыми событиями, живым состоянием управления, каталогами моделей, открытием рабочей области и политикой активации Agent. |
ctx.sessionFileReferences | core | api-session-controller | - | - | - | Делегирует поиск ссылок на файлы через уже установленную политику поиска Agent в контроллере Session. |
ctx.sessionSkillCatalog | core | api-session-controller | - | - | - | Перечисляет навыки из композиции Session, которые может вызвать пользователь, не активируя холодного Agent. |
ctx.jobController | core | api-job-controller | - | - | - | Стримит запись наблюдения одного фонового задания через сгенерированное пространство имён Remote; список заданий остаётся в потоке управления сессией. |
ctx.credentialsController | core | api-settings-controller | - | - | - | Проецирует шов ссылок на учётные данные на сгенерированное пространство имён Remote: пакетная рассылка, проекция представлений и отображение отказов живут здесь, а не в Definition шва. |
ctx.settingsController | core | api-settings-controller | - | - | - | Проецирует шов пользовательских настроек на сгенерированное пространство имён Remote: чтение всегда отдаётся с замаскированными секретами, и каждый отказ классифицируется здесь, а не в Definition шва. |
ctx.workspaceFiles | core | api-workspace-files | - | - | - | Отдаёт stat, постраничный текст, байтовые окна, списки каталогов и ленту изменений для файлов внутри корня рабочей области Session; границы держат lstat, проверка вложенности и повторный stat. |
ctx.workspaceChanges | core | workspace-changes | - | - | - | Отдаёт сводку, объявленную каждым событием workspace/changes, и сравнение каждого перечисленного файла на начало и конец хода, по Session и номеру события, пока эта Session не будет уничтожена; в логе хранится только ход. |
ctx.terminalController | core | api-terminal-controller | - | - | - | Владеет пользовательскими процессами терминала, выбором оболочки по умолчанию и ограниченным восстановлением экрана через провайдер subprocess и типизированный транспорт Remote. |
ctx.workspaceController | core | api-workspace-controller | - | - | - | Владеет командами Workspace и доставкой состояния Workspace, безопасной к переподключению, через сгенерированное пространство имён Remote. |
ctx.directoryPickerController | core | api-workspace-controller | - | - | - | Выносит шов выбора каталога на провод: проверка доступности возможности, отмена и закодированные швом ошибки, по которым браузерный сценарий выбора каталога различает исходы. |
ctx.invariants | core | invariants | - | session, agent, scope, agent-loop | - | Подпути-компаньоны регистрируют локальные для владельца проверки; сервис владеет выбором, уникальностью, дочерними fiber и ошибками с привязкой к пакету. |
ctx.typert | core | typert-registry | - | typert-loader, api-gateway | - | Плагины регистрируют живые вклады zod напрямую или через dsh-typert-loader; API Gateway потребляет дескрипторы вызовов и провайдеры, а остальные потребители во время выполнения запрашивают схемы и метаданные рефлексии на своих границах. |
ctx.typertGateway | core | api-gateway | - | - | - | Связывает сгенерированные дескрипторы Remote с живыми сервисами Cordis, разрешает зарегистрированные идентичности и открывает унарные вызовы через общий RPC-носитель Connection. |
ctx.sessionPersistence | seam | session-persistence | session-persistence-jsonl | agent-loop, tool-bash, hooks-claude-code, hooks-codex, session-query, session-query-sqlite, message-feedback | - | Бэкенд JSONL сохраняет словарь SessionEvent как один артефакт на Session. |
ctx.configEditor | core | config-editor | - | settings, agent-default-model | - | Сохраняет патчи конфига профиля под файловой блокировкой приложения и в очереди HMR, затем согласует записи Loader. |
ctx.settings | core | settings | - | api-settings-controller | - | Формы проецируют volatile-поля Config из активных записей профиля и передают проверенные правки в config-editor. Плагины потребляют собственные ссылки Config. |
ctx.subagentModelSelection | core | tool-subagent | - | tool-subagent | - | Владеет выключенным по умолчанию пространством имён настроек, из которого инструменты делегирования в области Agent берут выбор модели при композиции новой Session верхнего уровня. |
ctx.credentials | seam | credentials | credentials-local | api-settings-controller, llm-deepseek, llm-pi-ai | - | Конфигурация несёт ссылки на секреты; значениями владеют провайдеры. Потребители разрешают ссылку на каждую операцию, поэтому ротированный ключ попадает уже в следующий запрос; контроллер настроек открывает представления без значений и хранилище только на запись. |
ctx.deepseekAccount | seam | deepseek-account | deepseek-account-platform | api-account-controller, llm-deepseek | - | Авторизацией в браузере и локальными учётными данными владеет Host; потребители UI получают состояние без токенов. |
ctx.authorization | seam | authorization | - | llm-pi-ai | - | Сценарии регистрирует плагин, который умеет получить одну учётную запись, и ключом служит запись, которую они пишут; шов владеет диалогом и жизненным циклом «одна попытка на ключ», но никогда протоколом. |
ctx.productTelemetry | service | host-product-telemetry-otel | - | - | - | Экспортирует явно отправленные аналитические события через OTLP/HTTP; само по себе монтирование ничего не собирает. |
ctx.sessionTelemetry | seam | session-telemetry | session-telemetry-otel | - | - | Шов захватывает записи сессии, маскирует секреты и передаёт их одному бэкенду; больше сервис никто не потребляет: его вывод покидает процесс. |
ctx.storage | seam | storage | storage-json, storage-sqlite | storage-domain | - | Бэкенды регистрируются рядом друг с другом под именами; формы данных (первая — domain) монтируются на хаб и переводят типизированные операции в непрозрачные примитивы KV-единиц. |
ctx.storageDomain | core | storage-domain | - | workspace | - | Дожидается каждого настроенного бэкенда, затем публикует форму domain как один сервис, привязанный к жизненному циклу, для типизированного устойчивого состояния. |
ctx.messageFeedback | core | message-feedback | - | - | - | Владеет отзывами на каждое сообщение ассистента в каноническом логе Session, проверкой цели, compare-and-set по каждому элементу и унарным контрактом Remote на Host. Отзывы остаются вне истории модели; экспорт лога следует политике потребителя. |
ctx.sessionFeedback | core | command-feedback | - | - | - | Записывает одно замечание уровня Session вместе с категорией как событие feedback/record только в лог живой Session через унарный контракт Remote на Host; команда /feedback использует того же производителя. |
ctx.workspaceRegistry | core | workspace | - | api-workspace-controller, api-session-controller | - | Владеет записями с брендированным WorkspaceId поверх средства domain; стабильные учёты sessionIds управляют RPC на Host и проекциями GUI. |
ctx.sessionQuery | seam | session-query | session-query-sqlite | session-reference, tool-session-query | - | Интерфейс даёт точные чтения, фильтры и трассировки; конкретный бэкенд добавляет полнотекстовую сверку, ранжирование, сниппеты и поколения курсоров, а потребитель на стороне модели владеет полномочиями по рабочей области и рендером без курсоров. |
ctx.fileReferences | seam | file-reference | file-reference-local | api-session-controller | - | Интерфейс возвращает кандидаты автодополнения (только пути) внутри cwd Agent; провайдеры владеют доступом к пространству имён и ранжированием, не читая содержимое файлов. |
ctx.sessionReferenceResolver | core | session-reference | - | - | - | Проецирует ограниченные снимки разговора с текущей поверхности в устойчивый недоверенный контекст сообщения; синтаксисом упоминаний владеют адаптеры хоста. |
ctx.sessionTitle | seam | session-title | session-title-first-prompt-llm, session-title-all-prompts-llm | - | - | Владеет детерминированным запасным вариантом, свёрткой последнего заголовка и регистрацией единственного необязательного асинхронного провайдера. |
ctx.systemPrompt | core | system-prompt | - | agent-loop, tools, tool-fs, tool-terminal, tool-web | - | Собирает секции промпта и схемы инструментов для модели на каждый шаг. |
ctx.tools | core | tools | - | agent-loop, tool-ask-user, tool-bash, tool-cordis, tool-fs, tool-terminal, tool-skill, tool-subagent, tool-todo, tool-web | - | Регистрирует возможности, владеет транспортом режима PTC и проводит вызовы через предварительную политику, монотонные защиты, обёртку диспетчеризации, последующую политику и наблюдение итогового результата. |
ctx.userQuestions | seam | user-questions | - | tool-ask-user | - | Фронтенды UI предоставляют активного провайдера ответов человека; tool-ask-user приостанавливает вызов инструмента на промисе ask(), не зависящем от провайдера. |
ctx.planMode | core | plan-mode | - | - | - | Сворачивает залогированное состояние plan/mode, сбрасывает выбор пользователя на границах хода, рендерит указания, принадлежащие развёртыванию, регистрирует /plan и держит схему выхода из плана стабильной при переходах. |
ctx.agentPresets | core | agent-preset-registry | - | - | - | Сразу монтирует ревизии пресетов, объявленные в YAML, привязывает Agent и холодных читателей к вкладам в своей области и держит выведенные из работы ревизии, пока их не отпустит последний пользователь. |
ctx.commands | core | commands | - | - | - | Плагины регистрируют прямые команды для человека, не отправляя вызовы модели. |
ctx.sessionProjections | core | session-projection | - | api-session-controller, tool-todo, session-title | - | Домены регистрируют единицы свёртки, управляемые состоянием; жадный привод держит состояния водяных знаков для каждой сессии, а контроллер Session отдаёт базовые срезы и проталкивает изменившиеся значения. |
ctx.sessionProjectionCache | core | session-projection-cache | - | api-session-controller, session-query, session-reference | - | Устойчиво сохраняет контрольные точки состояний единиц проекции для каждой сессии (с троттлингом плюс обязательные точки turn/end и detach), отдаёт кэшированные представления проекций и ускоряет гидратацию проекций подготовленной Session. |
ctx.skills | seam | skill | skill-badge, skill-filesystem, skill-office | tool-skill | - | Сливает каталоги навыков провайдеров; tool-skill рендерит каталог для префикса сессии и загружает полные тела навыков. |
ctx.agents | core | agent | - | agent-loop, acp, subagent-in-process-driver | - | Владеет живыми дескрипторами Agent, швом фабрики create/resume и распространением инициатора в пределах процесса. |
ctx.agentDefaultModel | core | agent-default-model | - | api-session-controller, headless | - | Читает ModelSelection по умолчанию из volatile-полей Config и сохраняет выбор через редактор профиля. |
ctx.agentLoop | bundle | agent-loop | - | base, sdk-minimal | - | Единственный конкретный плагин цикла; пакеты-расширения зависят от событий и сервисов dsh-agent, а не от этого пакета. |
ctx.schedule | core | schedule | - | - | - | Хранит задачи независимо от активации Session и ставит наступившие сообщения в очередь исходной Session. |
ctx.goals | core | goal | - | - | - | Сворачивает версионированное состояние цели из лога сессии и держит активацию живого продолжения в пределах процесса. |
ctx.ssh | core | ssh | - | fs-ssh, subprocess-ssh, sandbox-ssh | - | Владеет одним аутентифицированным соединением OpenSSH, идентичностью установленного хелпера, независимыми потоками программ и очисткой при отключении для парных удалённых провайдеров. |
ctx.subprocess | seam | subprocess | subprocess-local, subprocess-ssh | bash-local, bash-sandbox, terminal-bash, lsp-stdio, subagent-acp, subagent-codex, subagent-claude-code | - | Исполнители bash, бэкенд оболочки PTY, хост LSP и внепроцессные бэкенды субагентов ACP, Codex и Claude Code порождают процессы через ctx.subprocess; сервис владеет координатами процессов, временем жизни дерева/сессии, распоряжением stdio, механикой терминала и эскалацией kill. |
ctx.shell | seam | shell | bash-local, bash-sandbox, pwsh-local | tool-bash, tool-pwsh, hooks-claude-code, hooks-codex | - | Этот шов потребляют инструменты оболочки для модели и мосты хуков; исполнители в песочнице, удалённые или PowerShell заменяют bash-local, не трогая потребителей. |
ctx.shellEnv | core | shell-env | - | tool-bash, tool-pwsh | - | Плагины объявляют факты DSH_* в области эффекта; каждый инструмент оболочки собирает один доверенный снимок на выполнение, а его исполнитель пересобирает пространство имён. |
ctx.terminals | seam | terminal | terminal-bash | tool-terminal | - | Реестр владеет идентичностью сессии с точной привязкой к Agent и очисткой; бэкенды владеют механикой терминала, а tool-terminal открывает инструменты для модели в области владельца. |
ctx.sandbox | seam | sandbox | sandbox-local, sandbox-ssh | bash-sandbox, terminal-bash | - | Потребители передают точный argv, который собираются запустить; бэкенды того же мира оборачивают его политикой на каждый вызов и сообщают о применении. |
ctx.sandboxPolicy | core | sandbox-policy | - | bash-sandbox, fs-sandbox, terminal-bash | - | Единственное место для режима по умолчанию развёртывания + корня рабочей области; сервис читают только исполнитель и провайдер песочницы (слои инструментов используют чистую свёртку sandbox/mode, которую он тоже экспортирует). Его читают оба применяющих семейства, чтобы bash и fs не могли ограничиться разными корнями. |
ctx.approval | seam | user-approval | - | tools, tool-bash, acp | - | Разовые решения о разрешении, диспетчеризуемые через waterfall approval/request; отвечающие — слушатели (мост ACP для своих агентов), а их отсутствие безопасно завершается отказом unavailable. |
ctx.permissionPresets | core | permission-presets | - | - | - | Пользовательская таблица пресетов (workspace-write/danger-full-access), объединяющая ручки режима песочницы и политики подтверждений; переключение записывает одно событие permission/preset, которое проходит в оба события ручек. |
ctx.ptcRuntime | seam | ptc-runtime | ptc-runtime-node, experimental-ptc-runtime-python | tools, workflow-ptc | - | Запускает программы поверх асинхронных привязок, предоставленных хостом; tools владеет представлением PTC, а workflow-ptc — оркестрацией рабочих процессов. |
ctx.fs | seam | fs | fs-local, fs-sandbox, fs-ssh | tool-fs | fs-observation-policy | tool-fs выполняет read/write/edit через ctx.fs; fs-sandbox ограждает мутации общим режимом песочницы; fs-observation-policy добавляет проверки наблюдаемого состояния через шлюз событий fs/*. |
ctx.compaction | seam | compaction | compaction-basic | compaction-basic | - | Базовый бэкенд потребляет события давления после шага и восстановления после ошибки запроса; инструмента compact для модели нет. |
ctx.subagents | seam | subagent | subagent-spawn-in-process, subagent-fork-in-process, subagent-acp, subagent-codex, subagent-claude-code, subagent-dsh-sdk | tool-subagent, tool-subagent-control, tool-ralph | - | Провайдеры реализуют транспорты; сервис также владеет необязательной оркестрацией продолжения на основе Activation, tool-subagent выбирает разовое или продолжаемое делегирование, tool-subagent-control доставляет последующие сообщения, а tool-ralph требует один свежий маршрут структурированного вывода. |
ctx.speechToText | seam | experimental-speech-to-text | experimental-speech-to-text-sensevoice | experimental-api-speech-to-text | - | Маршрутизирует запросы к явно заданным распознавателям; браузер пользуется аутентифицированным Remote и держит расшифровку в черновике до отправки. |
ctx.agentTeams | core | experimental-agent-team | - | experimental-tool-agent-team | - | Владеет реестром участников с неявным корнем, устойчивым почтовым ящиком пиров, общим DAG задач и жизненным циклом продолжаемых потомков; tool-agent-team добавляет элементы управления для модели. |
ctx.inspector | core | inspector | - | - | - | Владеет целью CDP, размещённой в Worker, и независимым от транспорта API наблюдения за Host и Client и запросов к дереву Cordis. |
ctx.jobs | seam | jobs | jobs-local | tool-bash, tool-pwsh, tool-terminal, tool-subagent, tool-jobs, api-job-controller | - | Производители (фоновый bash/pwsh, отправки в PTY и делегирования субагентам) регистрируют выполняемую работу; задания, объявляющие запись, дополнительно стримят сырой вывод для непотребляющих наблюдателей; tool-jobs — контроллер для модели, который её читает, перечисляет и убивает; jobs-local — реестр в пределах процесса. |
ctx.web | seam | web | web-search-exa, web-search-perplexity, web-search-deepseek, web-fetch-http | tool-web | - | Провайдеры поиска и загрузки регистрируются в один шов ctx.web; tool-web владеет стабильными именами для модели. |
ctx.spillStore | seam | spill | spill-local | spill-policy | - | Бэкенд сохраняет слишком большой текст инструмента и возвращает модели локатор плюс подсказку для извлечения; spill-policy — потребитель tools/post-execute, который решает, когда сбрасывать. |
ctx.directoryPicker | seam | host-directory-picker | host-directory-picker-native, host-directory-picker-browse | api-workspace-controller | - | Дискриминируемая возможность взаимодействия: нативный бэкенд открывает один системный диалог выбора на дисплее хоста, бэкенд browse отдаёт примитивы листинга/создания для встроенного обозревателя; двуликие бэкенды заполняют слоты сценария выбора каталога в ui-workspace из своих браузерных половин (без объявления по проводу). |
ctx.webServer | core | host-webserver | - | client-connection, client-modules, client-hmr | - | Простой носитель node:http: реестр именованных маршрутов, точки преобразования index и запасная отдача статического dist; плагины веб-транспорта регистрируют свои маршруты сами. |
ctx.clientModules | core | client-modules | - | client-hmr | - | Собирает граф входа DSH_BOOT из инкрементального сканирования dsh.client, отдаёт бандлы плагинов и уведомляет подписчиков о пересборке и изменении графа. |
ctx.workflowEngine | seam | workflow | workflow-ptc | tool-workflow, tool-ralph | - | Один движок на контекст, как у bash, без реестра именованных провайдеров; общий потребитель workflow и фиксированный потребитель Ralph запускают прогоны, чьи вызовы agent() расходятся через ctx.subagents. |
ctx.webhookRuntime | core | webhook | - | webhook-github | - | Адаптеры провайдеров диспетчеризуют аутентифицированные доставки; доверенные плагины регистрируют независимые правила в пределах процесса, а рантайм превращает ненулевые результаты в обычные Session поверх Workspace без состояния доставки или завершения. |
ctx.lsp | seam | lsp | lsp-stdio | tool-lsp | - | Регистрация и выбор провайдера плюс нормализованное выполнение запросов ровно по четырём операциям; шов не даёт лазейки к протоколу, так что бэкенд переводит всё в нормализованный запрос и результат. |
ctx.dynamicCordisRunner | core | cordis-host-runner | - | tool-cordis | - | Владеет реестром определений в памяти, песочницей vm для хостовых половин и круговым циклом request-run; страницы браузера достигают того же сервиса по проводу через его пространство имён remote. |
ctx.cordisInspect | core | cordis-host-runner | - | tool-cordis | - | Регистрирует провайдеры инспекции на хосте, зеркалит манифест клиентских провайдеров и проводит клиентские запросы через динамический транспорт Cordis. |
Режим сопровождения: гибридный. Сервисы обнаруживаются по объявлениям Cordis; роли интерфейса, реализации и потребителя классифицируются в scripts/gen-doc-graphs.ts с проверкой полноты.