DSH Base Composition
September 4, 2026 ยท View on GitHub
The dsh-base bundle patch shared by the web, headless, sdk, and acp profiles; their mode bundles and user layers patch over it, while sdk-minimal owns a separate standalone tree.
flowchart LR cfg["packages/bundle/base/cordis.patch.yml<br/>cordis.yml"] plugin_dsh_base_timer["timer<br/>@deepseek-ai/cordis-plugin-timer"] cfg --> plugin_dsh_base_timer plugin_dsh_base_hmr["hmr<br/>@deepseek-ai/cordis-plugin-hmr"] cfg --> plugin_dsh_base_hmr plugin_dsh_base_llm["llm<br/>@deepseek-ai/dsh-llm"] cfg --> plugin_dsh_base_llm plugin_dsh_base_deepseek_llm_api_extensions["deepseek-llm-api-extensions<br/>@deepseek-ai/dsh-deepseek-llm-api-extensions"] cfg --> plugin_dsh_base_deepseek_llm_api_extensions plugin_dsh_base_session["session<br/>@deepseek-ai/dsh-session"] cfg --> plugin_dsh_base_session plugin_dsh_base_session_log_deepseek["session-log-deepseek<br/>@deepseek-ai/dsh-session-log-deepseek"] cfg --> plugin_dsh_base_session_log_deepseek plugin_dsh_base_typert["typert<br/>@deepseek-ai/dsh-typert-registry"] cfg --> plugin_dsh_base_typert plugin_dsh_base_typert_loader["typert-loader<br/>@deepseek-ai/dsh-typert-loader"] cfg --> plugin_dsh_base_typert_loader plugin_dsh_base_typert_gateway["typert-gateway<br/>@deepseek-ai/dsh-api-gateway"] cfg --> plugin_dsh_base_typert_gateway plugin_dsh_base_session_title["session-title<br/>@deepseek-ai/dsh-session-title"] cfg --> plugin_dsh_base_session_title plugin_dsh_base_session_title_llm["session-title-llm<br/>@deepseek-ai/dsh-session-title-first-prompt-llm"] cfg --> plugin_dsh_base_session_title_llm plugin_dsh_base_user_questions["user-questions<br/>@deepseek-ai/dsh-user-questions"] cfg --> plugin_dsh_base_user_questions plugin_dsh_base_agent["agent<br/>@deepseek-ai/dsh-agent"] cfg --> plugin_dsh_base_agent plugin_dsh_base_plugin_package_inventory_deepseek["plugin-package-inventory-deepseek<br/>@deepseek-ai/dsh-plugin-package-inventory-deepseek"] cfg --> plugin_dsh_base_plugin_package_inventory_deepseek plugin_dsh_base_agent_default_model["agent-default-model<br/>@deepseek-ai/dsh-agent-default-model"] cfg --> plugin_dsh_base_agent_default_model plugin_dsh_base_jobs["jobs<br/>@deepseek-ai/dsh-jobs-local"] cfg --> plugin_dsh_base_jobs plugin_dsh_base_llm_retry["llm-retry<br/>@deepseek-ai/dsh-llm-retry"] cfg --> plugin_dsh_base_llm_retry plugin_dsh_base_settings["settings<br/>@deepseek-ai/dsh-settings-file"] cfg --> plugin_dsh_base_settings plugin_dsh_base_credentials["credentials<br/>@deepseek-ai/dsh-credentials-local"] cfg --> plugin_dsh_base_credentials plugin_dsh_base_llm_pi_ai["llm-pi-ai<br/>@deepseek-ai/dsh-llm-pi-ai"] cfg --> plugin_dsh_base_llm_pi_ai plugin_dsh_base_session_persistence_jsonl["session-persistence-jsonl<br/>@deepseek-ai/dsh-session-persistence-jsonl"] cfg --> plugin_dsh_base_session_persistence_jsonl plugin_dsh_base_attachment_local["attachment-local<br/>@deepseek-ai/dsh-attachment-local"] cfg --> plugin_dsh_base_attachment_local plugin_dsh_base_session_query_sqlite["session-query-sqlite<br/>@deepseek-ai/dsh-session-query-sqlite"] cfg --> plugin_dsh_base_session_query_sqlite plugin_dsh_base_session_projection["session-projection<br/>@deepseek-ai/dsh-session-projection"] cfg --> plugin_dsh_base_session_projection plugin_dsh_base_storage["storage<br/>@deepseek-ai/dsh-storage"] cfg --> plugin_dsh_base_storage plugin_dsh_base_storage_json["storage-json<br/>@deepseek-ai/dsh-storage-json"] cfg --> plugin_dsh_base_storage_json plugin_dsh_base_storage_domain["storage-domain<br/>@deepseek-ai/dsh-storage-domain"] cfg --> plugin_dsh_base_storage_domain plugin_dsh_base_session_projection_cache["session-projection-cache<br/>@deepseek-ai/dsh-session-projection-cache"] cfg --> plugin_dsh_base_session_projection_cache plugin_dsh_base_session_telemetry_otel["session-telemetry-otel<br/>@deepseek-ai/dsh-session-telemetry-otel"] cfg --> plugin_dsh_base_session_telemetry_otel plugin_dsh_base_subprocess["subprocess<br/>@deepseek-ai/dsh-subprocess-local"] cfg --> plugin_dsh_base_subprocess plugin_dsh_base_sandbox["sandbox<br/>@deepseek-ai/dsh-sandbox-local"] cfg --> plugin_dsh_base_sandbox plugin_dsh_base_sandbox_policy["sandbox-policy<br/>@deepseek-ai/dsh-sandbox-policy"] cfg --> plugin_dsh_base_sandbox_policy plugin_dsh_base_bash_sandbox["bash-sandbox<br/>@deepseek-ai/dsh-bash-sandbox"] cfg --> plugin_dsh_base_bash_sandbox plugin_dsh_base_pwsh_sandbox["pwsh-sandbox<br/>@deepseek-ai/dsh-pwsh-sandbox"] cfg --> plugin_dsh_base_pwsh_sandbox plugin_dsh_base_approval["approval<br/>@deepseek-ai/dsh-user-approval"] cfg --> plugin_dsh_base_approval plugin_dsh_base_permission["permission<br/>@deepseek-ai/dsh-permission-presets"] cfg --> plugin_dsh_base_permission plugin_dsh_base_shell_env["shell-env<br/>@deepseek-ai/dsh-shell-env"] cfg --> plugin_dsh_base_shell_env plugin_dsh_base_tool_bash["tool-bash<br/>@deepseek-ai/dsh-tool-bash"] cfg --> plugin_dsh_base_tool_bash plugin_dsh_base_tool_pwsh["tool-pwsh<br/>@deepseek-ai/dsh-tool-pwsh"] cfg --> plugin_dsh_base_tool_pwsh plugin_dsh_base_tool_jobs["tool-jobs<br/>@deepseek-ai/dsh-tool-jobs"] cfg --> plugin_dsh_base_tool_jobs plugin_dsh_base_fs_observation_policy["fs-observation-policy<br/>@deepseek-ai/dsh-fs-observation-policy"] cfg --> plugin_dsh_base_fs_observation_policy plugin_dsh_base_tool_fs["tool-fs<br/>@deepseek-ai/dsh-tool-fs"] cfg --> plugin_dsh_base_tool_fs plugin_dsh_base_tool_fs_search["tool-fs-search<br/>@deepseek-ai/dsh-tool-fs-search"] cfg --> plugin_dsh_base_tool_fs_search plugin_dsh_base_agent_instructions["agent-instructions<br/>@deepseek-ai/dsh-agent-instructions"] cfg --> plugin_dsh_base_agent_instructions plugin_dsh_base_skill["skill<br/>@deepseek-ai/dsh-skill"] cfg --> plugin_dsh_base_skill plugin_dsh_base_skill_filesystem["skill-filesystem<br/>@deepseek-ai/dsh-skill-filesystem"] cfg --> plugin_dsh_base_skill_filesystem plugin_dsh_base_skill_badge["skill-badge<br/>@deepseek-ai/dsh-skill-badge"] cfg --> plugin_dsh_base_skill_badge plugin_dsh_base_tool_skill["tool-skill<br/>@deepseek-ai/dsh-tool-skill"] cfg --> plugin_dsh_base_tool_skill plugin_dsh_base_commands["commands<br/>@deepseek-ai/dsh-commands"] cfg --> plugin_dsh_base_commands plugin_dsh_base_command_feedback["command-feedback<br/>@deepseek-ai/dsh-command-feedback"] cfg --> plugin_dsh_base_command_feedback plugin_dsh_base_goal["goal<br/>@deepseek-ai/dsh-goal"] cfg --> plugin_dsh_base_goal plugin_dsh_base_goal_round_driver["goal-round-driver<br/>@deepseek-ai/dsh-goal-round-driver"] cfg --> plugin_dsh_base_goal_round_driver plugin_dsh_base_command_goal["command-goal<br/>@deepseek-ai/dsh-command-goal"] cfg --> plugin_dsh_base_command_goal plugin_dsh_base_plan_mode["plan-mode<br/>@deepseek-ai/dsh-plan-mode"] cfg --> plugin_dsh_base_plan_mode plugin_dsh_base_token_meter["token-meter<br/>@deepseek-ai/dsh-token-meter"] cfg --> plugin_dsh_base_token_meter plugin_dsh_base_compaction_basic["compaction-basic<br/>@deepseek-ai/dsh-compaction-basic"] cfg --> plugin_dsh_base_compaction_basic plugin_dsh_base_command_compact["command-compact<br/>@deepseek-ai/dsh-command-compact"] cfg --> plugin_dsh_base_command_compact plugin_dsh_base_subagent["subagent<br/>@deepseek-ai/dsh-subagent"] cfg --> plugin_dsh_base_subagent plugin_dsh_base_subagent_spawn_in_process["subagent-spawn-in-process<br/>@deepseek-ai/dsh-subagent-spawn-in-process"] cfg --> plugin_dsh_base_subagent_spawn_in_process plugin_dsh_base_subagent_fork_in_process["subagent-fork-in-process<br/>@deepseek-ai/dsh-subagent-fork-in-process"] cfg --> plugin_dsh_base_subagent_fork_in_process plugin_dsh_base_tool_subagent_control["tool-subagent-control<br/>@deepseek-ai/dsh-tool-subagent-control"] cfg --> plugin_dsh_base_tool_subagent_control plugin_dsh_base_tool_subagent_list_agents["tool-subagent-list-agents<br/>@deepseek-ai/dsh-tool-subagent-control/list-agents"] cfg --> plugin_dsh_base_tool_subagent_list_agents plugin_dsh_base_tool_subagent["tool-subagent<br/>@deepseek-ai/dsh-tool-subagent"] cfg --> plugin_dsh_base_tool_subagent plugin_dsh_base_tool_subagent_fork["tool-subagent-fork<br/>@deepseek-ai/dsh-tool-subagent"] cfg --> plugin_dsh_base_tool_subagent_fork plugin_dsh_base_workflow_worker_thread["workflow-worker-thread<br/>@deepseek-ai/dsh-workflow-worker-thread"] cfg --> plugin_dsh_base_workflow_worker_thread plugin_dsh_base_tool_workflow["tool-workflow<br/>@deepseek-ai/dsh-tool-workflow"] cfg --> plugin_dsh_base_tool_workflow plugin_dsh_base_timeout_policy["timeout-policy<br/>@deepseek-ai/dsh-tool-call-timeout-policy"] cfg --> plugin_dsh_base_timeout_policy plugin_dsh_base_spill_local["spill-local<br/>@deepseek-ai/dsh-spill-local"] cfg --> plugin_dsh_base_spill_local plugin_dsh_base_spill_policy["spill-policy<br/>@deepseek-ai/dsh-spill-policy"] cfg --> plugin_dsh_base_spill_policy plugin_dsh_base_session_checkpoint_policy["session-checkpoint-policy<br/>@deepseek-ai/dsh-session-checkpoint-policy"] cfg --> plugin_dsh_base_session_checkpoint_policy plugin_dsh_base_tool_result_pruner["tool-result-pruner<br/>@deepseek-ai/dsh-compaction-tool-result-pruner"] cfg --> plugin_dsh_base_tool_result_pruner plugin_dsh_base_tool_todo["tool-todo<br/>@deepseek-ai/dsh-tool-todo"] cfg --> plugin_dsh_base_tool_todo plugin_dsh_base_tool_goal["tool-goal<br/>@deepseek-ai/dsh-tool-goal"] cfg --> plugin_dsh_base_tool_goal plugin_dsh_base_tool_ralph["tool-ralph<br/>@deepseek-ai/dsh-tool-ralph"] cfg --> plugin_dsh_base_tool_ralph plugin_dsh_base_tool_str_replace_editor["tool-str-replace-editor<br/>@deepseek-ai/dsh-tool-str-replace-editor"] cfg --> plugin_dsh_base_tool_str_replace_editor plugin_dsh_base_repeat_tool_reminder["repeat-tool-reminder<br/>@deepseek-ai/dsh-repeat-tool-reminder"] cfg --> plugin_dsh_base_repeat_tool_reminder plugin_dsh_base_web["web<br/>@deepseek-ai/dsh-web"] cfg --> plugin_dsh_base_web plugin_dsh_base_web_search_deepseek["web-search-deepseek<br/>@deepseek-ai/dsh-web-search-deepseek"] cfg --> plugin_dsh_base_web_search_deepseek plugin_dsh_base_web_fetch_http["web-fetch-http<br/>@deepseek-ai/dsh-web-fetch-http"] cfg --> plugin_dsh_base_web_fetch_http plugin_dsh_base_tool_web["tool-web<br/>@deepseek-ai/dsh-tool-web"] cfg --> plugin_dsh_base_tool_web plugin_dsh_base_tools["tools<br/>@deepseek-ai/dsh-tools"] cfg --> plugin_dsh_base_tools plugin_dsh_base_system_prompt["system-prompt<br/>@deepseek-ai/dsh-system-prompt"] cfg --> plugin_dsh_base_system_prompt plugin_dsh_base_agent_loop["agent-loop<br/>@deepseek-ai/dsh-agent-loop"] cfg --> plugin_dsh_base_agent_loop plugin_dsh_base_fs_sandbox["fs-sandbox<br/>@deepseek-ai/dsh-fs-sandbox"] cfg --> plugin_dsh_base_fs_sandbox plugin_dsh_base_llm_deepseek["llm-deepseek<br/>@deepseek-ai/dsh-llm-deepseek"] cfg --> plugin_dsh_base_llm_deepseek
| Plugin id | Package / module |
|---|---|
timer | @deepseek-ai/cordis-plugin-timer |
hmr | @deepseek-ai/cordis-plugin-hmr |
llm | @deepseek-ai/dsh-llm |
deepseek-llm-api-extensions | @deepseek-ai/dsh-deepseek-llm-api-extensions |
session | @deepseek-ai/dsh-session |
session-log-deepseek | @deepseek-ai/dsh-session-log-deepseek |
typert | @deepseek-ai/dsh-typert-registry |
typert-loader | @deepseek-ai/dsh-typert-loader |
typert-gateway | @deepseek-ai/dsh-api-gateway |
session-title | @deepseek-ai/dsh-session-title |
session-title-llm | @deepseek-ai/dsh-session-title-first-prompt-llm |
user-questions | @deepseek-ai/dsh-user-questions |
agent | @deepseek-ai/dsh-agent |
plugin-package-inventory-deepseek | @deepseek-ai/dsh-plugin-package-inventory-deepseek |
agent-default-model | @deepseek-ai/dsh-agent-default-model |
jobs | @deepseek-ai/dsh-jobs-local |
llm-retry | @deepseek-ai/dsh-llm-retry |
settings | @deepseek-ai/dsh-settings-file |
credentials | @deepseek-ai/dsh-credentials-local |
llm-pi-ai | @deepseek-ai/dsh-llm-pi-ai |
session-persistence-jsonl | @deepseek-ai/dsh-session-persistence-jsonl |
attachment-local | @deepseek-ai/dsh-attachment-local |
session-query-sqlite | @deepseek-ai/dsh-session-query-sqlite |
session-projection | @deepseek-ai/dsh-session-projection |
storage | @deepseek-ai/dsh-storage |
storage-json | @deepseek-ai/dsh-storage-json |
storage-domain | @deepseek-ai/dsh-storage-domain |
session-projection-cache | @deepseek-ai/dsh-session-projection-cache |
session-telemetry-otel | @deepseek-ai/dsh-session-telemetry-otel |
subprocess | @deepseek-ai/dsh-subprocess-local |
sandbox | @deepseek-ai/dsh-sandbox-local |
sandbox-policy | @deepseek-ai/dsh-sandbox-policy |
bash-sandbox | @deepseek-ai/dsh-bash-sandbox |
pwsh-sandbox | @deepseek-ai/dsh-pwsh-sandbox |
approval | @deepseek-ai/dsh-user-approval |
permission | @deepseek-ai/dsh-permission-presets |
shell-env | @deepseek-ai/dsh-shell-env |
tool-bash | @deepseek-ai/dsh-tool-bash |
tool-pwsh | @deepseek-ai/dsh-tool-pwsh |
tool-jobs | @deepseek-ai/dsh-tool-jobs |
fs-observation-policy | @deepseek-ai/dsh-fs-observation-policy |
tool-fs | @deepseek-ai/dsh-tool-fs |
tool-fs-search | @deepseek-ai/dsh-tool-fs-search |
agent-instructions | @deepseek-ai/dsh-agent-instructions |
skill | @deepseek-ai/dsh-skill |
skill-filesystem | @deepseek-ai/dsh-skill-filesystem |
skill-badge | @deepseek-ai/dsh-skill-badge |
tool-skill | @deepseek-ai/dsh-tool-skill |
commands | @deepseek-ai/dsh-commands |
command-feedback | @deepseek-ai/dsh-command-feedback |
goal | @deepseek-ai/dsh-goal |
goal-round-driver | @deepseek-ai/dsh-goal-round-driver |
command-goal | @deepseek-ai/dsh-command-goal |
plan-mode | @deepseek-ai/dsh-plan-mode |
token-meter | @deepseek-ai/dsh-token-meter |
compaction-basic | @deepseek-ai/dsh-compaction-basic |
command-compact | @deepseek-ai/dsh-command-compact |
subagent | @deepseek-ai/dsh-subagent |
subagent-spawn-in-process | @deepseek-ai/dsh-subagent-spawn-in-process |
subagent-fork-in-process | @deepseek-ai/dsh-subagent-fork-in-process |
tool-subagent-control | @deepseek-ai/dsh-tool-subagent-control |
tool-subagent-list-agents | @deepseek-ai/dsh-tool-subagent-control/list-agents |
tool-subagent | @deepseek-ai/dsh-tool-subagent |
tool-subagent-fork | @deepseek-ai/dsh-tool-subagent |
workflow-worker-thread | @deepseek-ai/dsh-workflow-worker-thread |
tool-workflow | @deepseek-ai/dsh-tool-workflow |
timeout-policy | @deepseek-ai/dsh-tool-call-timeout-policy |
spill-local | @deepseek-ai/dsh-spill-local |
spill-policy | @deepseek-ai/dsh-spill-policy |
session-checkpoint-policy | @deepseek-ai/dsh-session-checkpoint-policy |
tool-result-pruner | @deepseek-ai/dsh-compaction-tool-result-pruner |
tool-todo | @deepseek-ai/dsh-tool-todo |
tool-goal | @deepseek-ai/dsh-tool-goal |
tool-ralph | @deepseek-ai/dsh-tool-ralph |
tool-str-replace-editor | @deepseek-ai/dsh-tool-str-replace-editor |
repeat-tool-reminder | @deepseek-ai/dsh-repeat-tool-reminder |
web | @deepseek-ai/dsh-web |
web-search-deepseek | @deepseek-ai/dsh-web-search-deepseek |
web-fetch-http | @deepseek-ai/dsh-web-fetch-http |
tool-web | @deepseek-ai/dsh-tool-web |
tools | @deepseek-ai/dsh-tools |
system-prompt | @deepseek-ai/dsh-system-prompt |
agent-loop | @deepseek-ai/dsh-agent-loop |
fs-sandbox | @deepseek-ai/dsh-fs-sandbox |
llm-deepseek | @deepseek-ai/dsh-llm-deepseek |
Source config: packages/bundle/base/cordis.patch.yml.
Maintenance mode: hybrid: the patch row list is parsed from its cordis.yml; app package expansion is curated from package source.