feat(context): add tmux-context plugin injecting the agent's tmux location
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.
This commit is contained in:
37
pnpm-lock.yaml
generated
37
pnpm-lock.yaml
generated
@@ -412,6 +412,9 @@ importers:
|
||||
'@deepseek-ai/dsh-app-boot':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/ui/app-boot
|
||||
'@deepseek-ai/dsh-bash':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/bash/bash
|
||||
'@deepseek-ai/dsh-bash-local':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/bash/bash-local
|
||||
@@ -544,6 +547,9 @@ importers:
|
||||
'@deepseek-ai/dsh-timeout-policy':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/timeout/timeout-policy
|
||||
'@deepseek-ai/dsh-tmux-context':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/context/tmux-context
|
||||
'@deepseek-ai/dsh-token-meter':
|
||||
specifier: workspace:*
|
||||
version: link:../packages/llm/token-meter
|
||||
@@ -1690,6 +1696,37 @@ importers:
|
||||
specifier: ^4.0.0-rc.7
|
||||
version: 4.0.0-rc.7(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.5)
|
||||
|
||||
packages/context/tmux-context:
|
||||
dependencies:
|
||||
schemastery:
|
||||
specifier: ^3.18.0
|
||||
version: 3.18.0
|
||||
devDependencies:
|
||||
'@deepseek-ai/dsh-agent':
|
||||
specifier: workspace:^
|
||||
version: link:../../core/agent
|
||||
'@deepseek-ai/dsh-bash':
|
||||
specifier: workspace:^
|
||||
version: link:../../bash/bash
|
||||
'@deepseek-ai/dsh-invariants':
|
||||
specifier: workspace:^
|
||||
version: link:../../support/invariants
|
||||
'@deepseek-ai/dsh-llm':
|
||||
specifier: workspace:^
|
||||
version: link:../../llm/llm
|
||||
'@deepseek-ai/dsh-loader-smoke':
|
||||
specifier: workspace:^
|
||||
version: link:../../support/loader-smoke
|
||||
'@deepseek-ai/dsh-session':
|
||||
specifier: workspace:^
|
||||
version: link:../../core/session
|
||||
'@deepseek-ai/dsh-system-prompt':
|
||||
specifier: workspace:^
|
||||
version: link:../../core/system-prompt
|
||||
cordis:
|
||||
specifier: ^4.0.0-rc.7
|
||||
version: 4.0.0-rc.7(@cordisjs/plugin-include@1.0.4)(@cordisjs/plugin-loader@1.0.0-rc.5)
|
||||
|
||||
packages/context/workspace-context:
|
||||
dependencies:
|
||||
schemastery:
|
||||
|
||||
Reference in New Issue
Block a user