# Plan-Mode ACP Agent App Composition The plan-mode demo composes session modes onto the ACP server: the editor mode picker drives plan mode, and the model exits through the user-reviewed exit_plan_mode tool. ```mermaid flowchart LR cfg["examples/plan-acp-agent
cordis.yml"] plugin_plan-acp_llm_deepseek["llm-deepseek
@deepseek-ai/dsh-llm-deepseek"] cfg --> plugin_plan-acp_llm_deepseek plugin_plan-acp_acp_agent["acp-agent
@deepseek-ai/dsh-acp-demo"] cfg --> plugin_plan-acp_acp_agent plugin_plan-acp_acp_agent --> bundle_agent_core["@deepseek-ai/dsh-agent-spine-demo"] plugin_plan-acp_acp_agent --> bundle_jsonl["@deepseek-ai/dsh-session-persistence-jsonl"] plugin_plan-acp_acp_agent --> frontdoor_acp["@deepseek-ai/dsh-acp
JSON-RPC stdio bridge
sessions created by client"] bundle_agent_core --> spine_llm["ctx.llm"] bundle_agent_core --> spine_sessions["ctx.sessions"] bundle_agent_core --> spine_tools["ctx.tools + tool-bash"] bundle_agent_core --> spine_loop["ctx.agents + ctx.agentLoop"] plugin_plan-acp_mode["mode
@deepseek-ai/dsh-mode"] cfg --> plugin_plan-acp_mode plugin_plan-acp_sandbox["sandbox
@deepseek-ai/dsh-sandbox-local"] cfg --> plugin_plan-acp_sandbox plugin_plan-acp_bash["bash
@deepseek-ai/dsh-bash-sandbox"] cfg --> plugin_plan-acp_bash plugin_plan-acp_approval["approval
@deepseek-ai/dsh-user-approval"] cfg --> plugin_plan-acp_approval plugin_plan-acp_tool_ask_user["tool-ask-user
@deepseek-ai/dsh-tool-ask-user"] cfg --> plugin_plan-acp_tool_ask_user plugin_plan-acp_fs_local["fs-local
@deepseek-ai/dsh-fs-local"] cfg --> plugin_plan-acp_fs_local plugin_plan-acp_fs_policy["fs-policy
@deepseek-ai/dsh-fs-policy"] cfg --> plugin_plan-acp_fs_policy plugin_plan-acp_tool_fs["tool-fs
@deepseek-ai/dsh-tool-fs"] cfg --> plugin_plan-acp_tool_fs plugin_plan-acp_tool_todo["tool-todo
@deepseek-ai/dsh-tool-todo"] cfg --> plugin_plan-acp_tool_todo ``` | Plugin id | Package / module | | --- | --- | | `llm-deepseek` | `@deepseek-ai/dsh-llm-deepseek` | | `acp-agent` | `@deepseek-ai/dsh-acp-demo` | | `mode` | `@deepseek-ai/dsh-mode` | | `sandbox` | `@deepseek-ai/dsh-sandbox-local` | | `bash` | `@deepseek-ai/dsh-bash-sandbox` | | `approval` | `@deepseek-ai/dsh-user-approval` | | `tool-ask-user` | `@deepseek-ai/dsh-tool-ask-user` | | `fs-local` | `@deepseek-ai/dsh-fs-local` | | `fs-policy` | `@deepseek-ai/dsh-fs-policy` | | `tool-fs` | `@deepseek-ai/dsh-tool-fs` | | `tool-todo` | `@deepseek-ai/dsh-tool-todo` | Source config: [`examples/plan-acp-agent/cordis.yml`](cordis.yml). Maintenance mode: hybrid: the leaf plugin list is parsed from its `cordis.yml`; app package expansion is curated from package source.