Moving the agent plane behind presets left two readers on the wrong side of the host/agent line. `dsh-token-meter` was disabled on the host and mounted inside each preset's `compaction` realm, but its three projection units register into the process-wide `sessionProjections` table. A unit registered from one preset answers for every session, so whether a `minimal` session showed a context meter depended on whether some other session had mounted `standard` since boot, and a process that only ever ran `minimal` showed none. The meter takes no configuration, keys every fold by Session, and registers no tool or prompt section, so it returns to the host composition and leaves the presets' `isolate` map; the realm and `compact-basic` stay, because what a preset chooses is whether its agent compacts, not whether its tokens are counted. Nothing named an agent that joined no preset. The join is a scope-parent link, and without it the tools, prompt-section, and skill views resolve the empty global layer: the agent publishes, the turn runs, and the model receives nothing. `AgentPresets` now logs one warning per such agent while a roster is configured, and the invariant companion fails outright — at `system-prompt/assemble` rather than at publication, because an unjoined agent is legal until it addresses a model and `recompose` binds exactly such an agent. The warning stays advisory: a synchronous `agent/created` throw vetoes publication, and the ACP bridge, SDK server, and headless bundle all create an unjoined agent today. Three limits are recorded rather than fixed: projection key presence is not a per-session capability signal, a superseded standing generation is never reclaimed, and a `cordis_mount` temporary plugin belongs to the composition rather than the session that mounted it. Fixes #2203
88 lines
3.6 KiB
JSON
88 lines
3.6 KiB
JSON
{
|
|
"name": "@deepseek-ai/dsh",
|
|
"description": "dsh CLI: profile boot, plugin management, and the browser UI alias",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"type": "module",
|
|
"bin": {
|
|
"dsh": "lib/bin.js"
|
|
},
|
|
"files": [
|
|
"lib/*.js",
|
|
"config"
|
|
],
|
|
"license": "BSD-3-Clause",
|
|
"dependencies": {
|
|
"@cordisjs/plugin-hmr": "workspace:*",
|
|
"@cordisjs/plugin-include": "workspace:*",
|
|
"@cordisjs/plugin-loader": "workspace:*",
|
|
"@cordisjs/plugin-timer": "workspace:*",
|
|
"@deepseek-ai/dsh-agent-tool-mode": "workspace:^",
|
|
"@deepseek-ai/dsh-app-boot": "workspace:^",
|
|
"@deepseek-ai/dsh-base": "workspace:^",
|
|
"@deepseek-ai/dsh-client-ui-agent-preset": "workspace:^",
|
|
"@deepseek-ai/dsh-command-compact": "workspace:^",
|
|
"@deepseek-ai/dsh-command-goal": "workspace:^",
|
|
"@deepseek-ai/dsh-compact-basic": "workspace:^",
|
|
"@deepseek-ai/dsh-compact-tool-result-prune": "workspace:^",
|
|
"@deepseek-ai/dsh-goal": "workspace:^",
|
|
"@deepseek-ai/dsh-goal-session": "workspace:^",
|
|
"@deepseek-ai/dsh-headless": "workspace:^",
|
|
"@deepseek-ai/dsh-mcp-client": "workspace:^",
|
|
"@deepseek-ai/dsh-paths": "workspace:^",
|
|
"@deepseek-ai/dsh-persona": "workspace:^",
|
|
"@deepseek-ai/dsh-plan-mode": "workspace:^",
|
|
"@deepseek-ai/dsh-pty": "workspace:^",
|
|
"@deepseek-ai/dsh-pty-local": "workspace:^",
|
|
"@deepseek-ai/dsh-pwsh-local": "workspace:^",
|
|
"@deepseek-ai/dsh-pwsh-sandbox": "workspace:^",
|
|
"@deepseek-ai/dsh-session-projection": "workspace:^",
|
|
"@deepseek-ai/dsh-session-reference": "workspace:^",
|
|
"@deepseek-ai/dsh-skill": "workspace:^",
|
|
"@deepseek-ai/dsh-skill-local": "workspace:^",
|
|
"@deepseek-ai/dsh-tasks-local": "workspace:^",
|
|
"@deepseek-ai/dsh-tmux-context": "workspace:^",
|
|
"@deepseek-ai/dsh-token-meter": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-ask-user": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-bash": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-bash-persistent": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-cordis": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-fs": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-fs-search": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-goal": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-pwsh": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-ralph": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-skill": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-str-replace-editor": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-subagent": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-subagent-control": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-tasks": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-todo": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-web": "workspace:^",
|
|
"@deepseek-ai/dsh-tool-workflow": "workspace:^",
|
|
"@deepseek-ai/dsh-web-app": "workspace:^",
|
|
"@deepseek-ai/dsh-workflow-workerthread": "workspace:^",
|
|
"@deepseek-ai/dsh-workspace-context": "workspace:^",
|
|
"commander": "^15.0.0",
|
|
"cordis": "^4.0.0-rc.7",
|
|
"js-yaml": "^4.2.0",
|
|
"node-addon-require-builtin": "^0.1.4"
|
|
},
|
|
"devDependencies": {
|
|
"@deepseek-ai/dsh-agent": "workspace:^",
|
|
"@deepseek-ai/dsh-frontend-static": "workspace:^",
|
|
"@deepseek-ai/dsh-host-apiproxy": "workspace:^",
|
|
"@deepseek-ai/dsh-host-webserver": "workspace:^",
|
|
"@deepseek-ai/dsh-llm": "workspace:^",
|
|
"@deepseek-ai/dsh-llm-mock-server": "workspace:^",
|
|
"@deepseek-ai/dsh-loader-smoke": "workspace:^",
|
|
"@deepseek-ai/dsh-session": "workspace:^",
|
|
"@deepseek-ai/dsh-settings": "workspace:^",
|
|
"@deepseek-ai/dsh-subagent": "workspace:^",
|
|
"@deepseek-ai/dsh-system-prompt": "workspace:^",
|
|
"@deepseek-ai/dsh-tools": "workspace:^",
|
|
"@types/js-yaml": "^4.0.9",
|
|
"execa": "^10.0.0"
|
|
}
|
|
}
|