# dsh-capability-menu aggregate bundle patch: mounts the meta plugins in one # layer, from a single installable package. # # One package, five plugin entries — four mount a subpath of # `@daweifu/capability-menu` (the loader resolves package subpath exports; see # `@deepseek-ai/dsh-web-app/startup` for the same pattern in the harness), and # the root entry loads the package main to mount the browser-facing gateway # (and thereby registers the package itself as a `dsh.client` loader entry): # # - id: capability-menu-registry # name: '@daweifu/capability-menu/registry' # - id: capability-menu-search # name: '@daweifu/capability-menu/search' # - id: capability-menu-invoke # name: '@daweifu/capability-menu/invoke' # - id: capability-menu-policy # name: '@daweifu/capability-menu/policy' # config: # # Rule syntax — tier keys `resident` / `on-demand` / `disabled` # # (exact names, `*` globs, or `server::*`), plus `metaTools` — # # and the priority order are documented in the README「配置文件」 # # section; the shipped defaults live in the insert block below. # # - `capability-menu-registry` (P0): builds/indexes the capability catalog and # exposes the `ctx.capability` service (search/get/getDetail/refresh). It registers # no model-facing tool itself. Indexes every visible tool — MCP tools by their # server and harness-native tools (bash/read/write/…) under the reserved # `built-in` pseudo-server — plus skills from the global layer and every # mountable preset's standing scope. The single on-demand catalog is emitted to # `catalogFile` (default `~/.dsh/capability-catalog.yaml`) for grep/read. # - `capability-menu-search` (P1): registers the `meta_search` tool (list + detail). # - `capability-menu-invoke` (P2): registers the `meta_invoke` tool (unified # execution of tools — MCP or native — and skill loading). Executes on the GLOBAL # view (no agent) so On-demand tools stay runnable; dedups already-loaded skills. # Rejects Disabled capabilities. # - `capability-menu-policy` (P3): Resident/On-demand/Disabled projection # strategy + 能力菜单 surface. Reads explicit resident/on-demand/disabled # rules (exact name + glob + server::*) and filters `assembly.tools` at # `system-prompt/assemble` to Resident + meta tools only. The execution chain # (`ctx.tools.execute`) is untouched, so On-demand capabilities remain executable # via `meta_invoke`. Exposes `ctx.capabilityPolicy` with # `classifyAll`/`getConfig`/`updateConfig` for the frontend 能力菜单 tab # (Resident/On-demand/Disabled rules + click-to-cycle classification + # read-only list), plus skill file browsing (`getDetail`/`listSkillDir`/ # `readSkillFile`) via the Typert gateway. # # Default (policy present but no config): every capability is Resident — the # `classify` fallback, nothing is hidden. Add explicit `on-demand`/`disabled` # rules to pull capabilities out of the model surface. - insert: - id: capability-menu-registry name: '@daweifu/capability-menu/registry' - id: capability-menu-search name: '@daweifu/capability-menu/search' - id: capability-menu-invoke name: '@daweifu/capability-menu/invoke' - id: capability-menu-policy name: '@daweifu/capability-menu/policy' config: # Native coding tools are cataloged under the reserved `built-in` # pseudo-server and are fully manageable like MCP tools. Unlisted # capabilities default to Resident; list them under `on-demand`/ # `disabled` to pull MCP servers, native tools, or skills out of the # model surface. On-demand native tools stay invocable through # `meta_search` → `meta_invoke`. The `meta_search`/`meta_invoke` # control-plane tools and the reserved `run_code` transport never enter # the catalog. Do not name a real MCP server `built-in`. tools: resident: - bash - read - write - edit - read_image - glob - grep # Root entry: loads the package main, which mounts the Typert gateway that # exposes ctx.capabilityPolicy to the browser. Makes this package a loader # entry itself so @deepseek-ai/dsh-client-modules discovers its `dsh.client` # declaration and serves the 能力菜单 browser bundle (`./client`). - id: capability-menu name: '@daweifu/capability-menu'