Add @deepseek-ai/dsh-tmux-context: an opt-in per-turn context plugin that
reads which tmux session/window/pane this agent process runs in (plus the
window layout tree) via the ctx.bash seam, and injects it as one durable,
source-attributed user/message when the location changes.
- Pull on the first step of each turn; no tmux hook or background process.
- Detect a real pane by tty, not $TMUX_PANE alone: a terminal launched from
a tmux shell inherits $TMUX/$TMUX_PANE from that ancestor, so the command
also matches the pane's #{pane_tty} against this process's controlling
terminal and emits fields only on a match.
- No-op outside a real pane, without a bash executor, or on a malformed
reading.
- Own location and layout only: no pane sizes, no sibling-pane scraping.
- Unit tests at 100% per-file coverage, plus a keyless Loader e2e with a
mock bash provider so it replays without tmux.
- Agent Note: 2026-07-27-tmux-location-context.
84 lines
3.9 KiB
JSON
84 lines
3.9 KiB
JSON
{
|
|
"name": "dsh-examples",
|
|
"private": true,
|
|
"version": "0.0.1",
|
|
"type": "module",
|
|
"description": "Workspace umbrella for runnable demos and example-owned test compositions: declares their cordis.yml packages so plain Node resolves real exports→lib. Not a build target.",
|
|
"dependencies": {
|
|
"@cordisjs/plugin-hmr": "workspace:*",
|
|
"@cordisjs/plugin-include": "workspace:*",
|
|
"@deepseek-ai/dsh-acp-demo": "workspace:*",
|
|
"@deepseek-ai/dsh-agent-spine-demo": "workspace:*",
|
|
"@deepseek-ai/dsh-app-boot": "workspace:*",
|
|
"@deepseek-ai/dsh-bash": "workspace:*",
|
|
"@deepseek-ai/dsh-bash-local": "workspace:*",
|
|
"@deepseek-ai/dsh-bash-sandbox": "workspace:*",
|
|
"@deepseek-ai/dsh-cli-demo": "workspace:*",
|
|
"@deepseek-ai/dsh-code-runtime-worker": "workspace:*",
|
|
"@deepseek-ai/dsh-compact-basic": "workspace:*",
|
|
"@deepseek-ai/dsh-compact-tool-result-prune": "workspace:*",
|
|
"@deepseek-ai/dsh-fs-local": "workspace:*",
|
|
"@deepseek-ai/dsh-fs-policy": "workspace:*",
|
|
"@deepseek-ai/dsh-fs-sandbox": "workspace:^",
|
|
"@deepseek-ai/dsh-goal": "workspace:*",
|
|
"@deepseek-ai/dsh-goal-session": "workspace:*",
|
|
"@deepseek-ai/dsh-hooks-claude": "workspace:*",
|
|
"@deepseek-ai/dsh-hooks-codex": "workspace:*",
|
|
"@deepseek-ai/dsh-jsonrpc": "workspace:*",
|
|
"@deepseek-ai/dsh-llm": "workspace:*",
|
|
"@deepseek-ai/dsh-llm-deepseek": "workspace:*",
|
|
"@deepseek-ai/dsh-llm-pi-ai": "workspace:*",
|
|
"@deepseek-ai/dsh-llm-replay": "workspace:*",
|
|
"@deepseek-ai/dsh-lsp": "workspace:*",
|
|
"@deepseek-ai/dsh-lsp-local": "workspace:*",
|
|
"@deepseek-ai/dsh-permission": "workspace:*",
|
|
"@deepseek-ai/dsh-plan-mode": "workspace:*",
|
|
"@deepseek-ai/dsh-subprocess-local": "workspace:*",
|
|
"@deepseek-ai/dsh-pty": "workspace:*",
|
|
"@deepseek-ai/dsh-pty-local": "workspace:*",
|
|
"@deepseek-ai/dsh-repeat-tool-guard": "workspace:*",
|
|
"@deepseek-ai/dsh-sandbox-local": "workspace:*",
|
|
"@deepseek-ai/dsh-sandbox-policy": "workspace:^",
|
|
"@deepseek-ai/dsh-session-checkpoint-policy": "workspace:*",
|
|
"@deepseek-ai/dsh-session-persistence-jsonl": "workspace:*",
|
|
"@deepseek-ai/dsh-session-query": "workspace:*",
|
|
"@deepseek-ai/dsh-session-query-sqlite": "workspace:*",
|
|
"@deepseek-ai/dsh-session-telemetry-otel": "workspace:*",
|
|
"@deepseek-ai/dsh-session-title-first-message-llm": "workspace:*",
|
|
"@deepseek-ai/dsh-spill-local": "workspace:*",
|
|
"@deepseek-ai/dsh-spill-policy": "workspace:*",
|
|
"@deepseek-ai/dsh-subagent": "workspace:*",
|
|
"@deepseek-ai/dsh-subagent-acp": "workspace:*",
|
|
"@deepseek-ai/dsh-subagent-fork": "workspace:*",
|
|
"@deepseek-ai/dsh-subagent-dsh-sdk": "workspace:*",
|
|
"@deepseek-ai/dsh-subagent-spawn": "workspace:*",
|
|
"@deepseek-ai/dsh-tasks-local": "workspace:*",
|
|
"@deepseek-ai/dsh-time-context": "workspace:*",
|
|
"@deepseek-ai/dsh-timeout-policy": "workspace:*",
|
|
"@deepseek-ai/dsh-tmux-context": "workspace:*",
|
|
"@deepseek-ai/dsh-token-meter": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-ask-user": "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-lsp": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-pty": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-ralph": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-session-query": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-subagent": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-todo": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-web": "workspace:*",
|
|
"@deepseek-ai/dsh-tool-workflow": "workspace:*",
|
|
"@deepseek-ai/dsh-tools": "workspace:*",
|
|
"@deepseek-ai/dsh-tui-demo": "workspace:*",
|
|
"@deepseek-ai/dsh-user-approval": "workspace:*",
|
|
"@deepseek-ai/dsh-web": "workspace:*",
|
|
"@deepseek-ai/dsh-web-fetch-local": "workspace:*",
|
|
"@deepseek-ai/dsh-workflow-workerthread": "workspace:*"
|
|
},
|
|
"devDependencies": {
|
|
"node-pty": "1.1.0"
|
|
}
|
|
}
|