Skip to content

[chore] The tmux, kitty and iTerm2 Operators are one agent wearing three names — declare backend-exclusive tools (no code) #403

Description

@serge-ivo

The smallest correct step out of #402, available today with no primitive and no code — a change to three agent rows.

The state

All three Operator agents declare the generic terminal connector's tools:

terminal_list_targets · terminal_capture · terminal_run_command
terminal_send_keys · terminal_new_target · terminal_kill_target

terminal_list_targets takes backend: "all" | "tmux" | "kitty" | "iterm2" and defaults to all (connectors/terminal.ts:50). So the tmux Operator, the kitty Operator and the iTerm2 Operator are the same agent with three names and three descriptions, each of which is false about the other two.

Observed: the owner asked the tmux Operator about tmux sessions and it correctly reported two iTerm2 windows, because that is genuinely what it can reach.

The fix

A tmux-only connector already exists in the registry (registry.ts id: "tmux") with six backend-exclusive tools — tmux_list_sessions, tmux_capture_pane, tmux_run_command, tmux_send_keys, tmux_new_session, tmux_kill_session. Declaring those in the tmux Operator's capabilities.tools makes it a tmux agent by construction: there is no iTerm2 code path behind them to reach.

Why bother, given #402 supersedes it

Because it is free and it makes one agent honest now, and because it clarifies the general ticket: the reason kitty and iTerm2 cannot be fixed the same way is precisely the argument for the primitive. Shipping a third and fourth parallel connector to express "one backend" is the workaround that does not scale.

Direction: docs/capability-constraints.md.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions