* fix(web-search-deepseek): disable thinking for auxiliary search requests The provider discards the generated text of the auxiliary Messages turn, so reasoning tokens have no consumer. DeepSeek enables thinking by default, which adds latency and output tokens to every search. Fixes #6099. * feat(web): add opt-in traditional Search and Fetch APIs * test(web): verify API settings persistence and refresh Session evidence * fix(web): require an explicit Search API base with its route prefix * docs(web): document direct Search and Fetch API decisions * fix(web): keep Messages search default behind the new Web Search API switch - Rename useTraditionalApi/traditionalBaseURL to useSearchApi/searchApiBaseURL and label the switch "Use the new Web Search API"; Messages search stays the default. - Default the Search / Fetch API base to https://api.deepseek.com/v1/tools. - Authenticate the Search API with an API key only: DeepSeek Account tokens returned an empty HTTP 404 on /v1/tools/* when probed on 2026-10-16. - Remove the count setting, which tool-web's maxResults always overrides, and the undocumented DeepSeek-API-Version header. - Name the active API's base URL field and the current settings path in endpoint guidance; re-record the endpoint guidance Session. - Keep WebFetchResult.statusCode required: DeepSeek Fetch reports HTTP 200 and drops the page title, so the fetch-metadata widening and its upgrade guide are removed. * fix(web): accept account sign-in on the live Search API The public Search and Fetch routes went live on 2026-10-16 and accept the DeepSeek Account token, so account-route Sessions send it to the Search API as they do for Messages search, and the settings copy no longer says account sign-in does not apply. Record the live behavior in the README and Agent Note: summaries of 1,000-2,300 characters, an HTTP 500 for an unresolvable Fetch target, and migration notes for gateways without /v1/tools routes. Test doubles now use the live response fields and RFC 3339 offsets. * feat(web): configure Search API result count and send the triggering question - Add web-search-deepseek.count (1-50, default 10, the service default) and show it as "Results per search" in Search API mode, where "Max searches per request" applies only to Messages; a smaller request maxResults still wins. - Send the initiating Session's latest human prompt as ori_question, with whitespace collapsed and cut to the API's 128-character limit; blank or absent prompts omit it, and sendOriginalQuestion: false disables it. The settings hint states that the question is sent. - Match the web search double on the request's query field, since ori_question now carries every query in the prompt. * fix(client): unify web search endpoint override controls * feat(web): configure registered search and fetch providers through shared settings * feat(web): include Exa and Perplexity in provider settings * test(web): cover provider settings branches and refresh plugin snapshots * revert(web): drop the provider dropdown, schema-driven form, and Exa/Perplexity settings Revert aed8c5cb609, d88c47dcd80, and 036a5a337d3. The Web search settings page returns to the DeepSeek toggle; the DeepSeek Search and Fetch API split is reintroduced as one plugin in the following commit. * feat(web): move the DeepSeek Search and Fetch APIs into web-deepseek-api The new web-deepseek-api plugin registers deepseek-search-api and deepseek-fetch-api over one credential and API base, and exports the authentication and redirect-rejecting transport that web-search-deepseek now reuses for Messages search only. The web service reads searchProvider and fetchProvider for each operation, so the Web search settings switch selects both APIs together on save and restores Messages search with local HTTP fetch when turned off. The switch hint links to the DeepSeek search and fetch guide. * refactor(client): keep the web search endpoint fields on the shared override controls Drop the always-visible reset and the inherited-address placeholder from the Web search page, restoring ui-primitives to its base. Each endpoint field shows the selected section's effective value and offers Reset to default only for an override, like every other settings field. * refactor(web): keep Messages search independent of web-deepseek-api Restore dsh-web-search-deepseek to its own credential and transport code, keeping only the disabled-thinking request and the current settings guidance, so the Messages plugin no longer depends on the Search and Fetch API package. dsh-web-deepseek-api keeps its transport internal; the regions that repeat the Messages helpers carry jscpd:ignore markers, with the rationale recorded in the Search and Fetch API Agent Note. * refactor(web): keep the web-deepseek-api request type module-private --------- Co-authored-by: LegGasai <[email protected]>
18 KiB
18 KiB
DSH Base Composition
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_tool_plugin_manager["tool-plugin-manager<br/>@deepseek-ai/dsh-plugin-manager/tools"]
cfg --> plugin_dsh_base_tool_plugin_manager
plugin_dsh_base_plugin_manager["plugin-manager<br/>@deepseek-ai/dsh-plugin-manager"]
cfg --> plugin_dsh_base_plugin_manager
plugin_dsh_base_timer["timer<br/>@deepseek-ai/cordis-plugin-timer"]
cfg --> plugin_dsh_base_timer
plugin_dsh_base_hmr["hmr<br/>@deepseek-ai/dsh-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_remote_access["remote-access<br/>@deepseek-ai/dsh-api-remote-access"]
cfg --> plugin_dsh_base_remote_access
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_config_editor["config-editor<br/>@deepseek-ai/dsh-config-editor"]
cfg --> plugin_dsh_base_config_editor
plugin_dsh_base_settings["settings<br/>@deepseek-ai/dsh-settings"]
cfg --> plugin_dsh_base_settings
plugin_dsh_base_authorization["authorization<br/>@deepseek-ai/dsh-authorization"]
cfg --> plugin_dsh_base_authorization
plugin_dsh_base_deepseek_account["deepseek-account<br/>@deepseek-ai/dsh-deepseek-account-platform"]
cfg --> plugin_dsh_base_deepseek_account
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_working_directory["working-directory<br/>@deepseek-ai/dsh-working-directory"]
cfg --> plugin_dsh_base_working_directory
plugin_dsh_base_tool_working_directory["tool-working-directory<br/>@deepseek-ai/dsh-tool-working-directory"]
cfg --> plugin_dsh_base_tool_working_directory
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_otel["otel<br/>@deepseek-ai/dsh-otel"]
cfg --> plugin_dsh_base_otel
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_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_ptc_runtime["ptc-runtime<br/>@deepseek-ai/dsh-ptc-runtime-node"]
cfg --> plugin_dsh_base_ptc_runtime
plugin_dsh_base_workflow_ptc["workflow-ptc<br/>@deepseek-ai/dsh-workflow-ptc"]
cfg --> plugin_dsh_base_workflow_ptc
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_image_offload["image-offload<br/>@deepseek-ai/dsh-compaction-image-offload"]
cfg --> plugin_dsh_base_image_offload
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_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_deepseek_api["web-deepseek-api<br/>@deepseek-ai/dsh-web-deepseek-api"]
cfg --> plugin_dsh_base_web_deepseek_api
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_mcp_resources["mcp-resources<br/>@deepseek-ai/dsh-mcp-resources"]
cfg --> plugin_dsh_base_mcp_resources
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-api-key"]
cfg --> plugin_dsh_base_llm_deepseek
plugin_dsh_base_llm_deepseek_account["llm-deepseek-account<br/>@deepseek-ai/dsh-llm-deepseek-account"]
cfg --> plugin_dsh_base_llm_deepseek_account
| Plugin id | Package / module |
|---|---|
tool-plugin-manager |
@deepseek-ai/dsh-plugin-manager/tools |
plugin-manager |
@deepseek-ai/dsh-plugin-manager |
timer |
@deepseek-ai/cordis-plugin-timer |
hmr |
@deepseek-ai/dsh-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 |
remote-access |
@deepseek-ai/dsh-api-remote-access |
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 |
config-editor |
@deepseek-ai/dsh-config-editor |
settings |
@deepseek-ai/dsh-settings |
authorization |
@deepseek-ai/dsh-authorization |
deepseek-account |
@deepseek-ai/dsh-deepseek-account-platform |
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 |
working-directory |
@deepseek-ai/dsh-working-directory |
tool-working-directory |
@deepseek-ai/dsh-tool-working-directory |
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 |
otel |
@deepseek-ai/dsh-otel |
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 |
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 |
ptc-runtime |
@deepseek-ai/dsh-ptc-runtime-node |
workflow-ptc |
@deepseek-ai/dsh-workflow-ptc |
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 |
image-offload |
@deepseek-ai/dsh-compaction-image-offload |
tool-todo |
@deepseek-ai/dsh-tool-todo |
tool-goal |
@deepseek-ai/dsh-tool-goal |
repeat-tool-reminder |
@deepseek-ai/dsh-repeat-tool-reminder |
web |
@deepseek-ai/dsh-web |
web-search-deepseek |
@deepseek-ai/dsh-web-search-deepseek |
web-deepseek-api |
@deepseek-ai/dsh-web-deepseek-api |
web-fetch-http |
@deepseek-ai/dsh-web-fetch-http |
tool-web |
@deepseek-ai/dsh-tool-web |
mcp-resources |
@deepseek-ai/dsh-mcp-resources |
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-api-key |
llm-deepseek-account |
@deepseek-ai/dsh-llm-deepseek-account |
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.