agentpool-cli 0.1.10__tar.gz → 0.1.12__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/CHANGELOG.md +23 -0
  2. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/PKG-INFO +30 -15
  3. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/README.md +29 -14
  4. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/agentpool-skill.md +3 -1
  5. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/architecture.md +2 -1
  6. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/install.md +6 -5
  7. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/mcp-tools.md +9 -6
  8. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/model-catalog.md +28 -5
  9. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/provider-adapters.md +17 -4
  10. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/provider-lifecycle-matrix.md +4 -4
  11. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/quickstart.md +2 -2
  12. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/setup-claude-code.md +7 -0
  13. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/setup-cursor-cli.md +3 -1
  14. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/setup-droid.md +3 -1
  15. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/usage-detection.md +3 -2
  16. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/pyproject.toml +8 -1
  17. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/server.json +2 -2
  18. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/__init__.py +1 -1
  19. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/artifacts.py +1 -0
  20. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/cli.py +25 -5
  21. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/config.py +46 -4
  22. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/mcp/tools.py +14 -0
  23. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/mcp_server.py +139 -15
  24. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/models.py +22 -1
  25. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/onboarding.py +53 -2
  26. agentpool_cli-0.1.12/src/agentpool/provider_model_catalog.json +4046 -0
  27. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/providers/base.py +27 -3
  28. agentpool_cli-0.1.12/src/agentpool/runtimes/__init__.py +4 -0
  29. agentpool_cli-0.1.12/src/agentpool/runtimes/base.py +45 -0
  30. agentpool_cli-0.1.12/src/agentpool/runtimes/terminal_control.py +252 -0
  31. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/runtimes/tmux.py +13 -0
  32. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/session_manager.py +299 -67
  33. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/stats/compute.py +2 -2
  34. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/copilot.py +0 -1
  35. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/fixtures/provider_model_catalog_golden.json +63 -5
  36. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/fixtures/stats_seed.py +1 -1
  37. agentpool_cli-0.1.12/tests/integration/test_fake_terminal_control_flow.py +59 -0
  38. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_mcp_surface.py +9 -1
  39. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_mcp_tools.py +6 -0
  40. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_models_config_store.py +302 -11
  41. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_onboarding.py +1 -0
  42. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_stats_mcp.py +0 -1
  43. agentpool_cli-0.1.12/tests/unit/test_terminal_control_runtime.py +72 -0
  44. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/uv.lock +1 -1
  45. agentpool_cli-0.1.10/src/agentpool/provider_model_catalog.json +0 -997
  46. agentpool_cli-0.1.10/src/agentpool/runtimes/__init__.py +0 -3
  47. agentpool_cli-0.1.10/src/agentpool/runtimes/base.py +0 -36
  48. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.cursor/mcp.json.example +0 -0
  49. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.github/CODEOWNERS +0 -0
  50. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  51. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.github/ISSUE_TEMPLATE/provider_probe.md +0 -0
  52. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.github/dependabot.yml +0 -0
  53. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.github/workflows/ci.yml +0 -0
  54. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.github/workflows/release.yml +0 -0
  55. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.gitignore +0 -0
  56. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/.mcp.json.example +0 -0
  57. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/AGENTS.md +0 -0
  58. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/CONTRIBUTING.md +0 -0
  59. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/LICENSE +0 -0
  60. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/SECURITY.md +0 -0
  61. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/agent-cli-and-mcp.md +0 -0
  62. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/examples/README.md +0 -0
  63. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/examples.md +0 -0
  64. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/mcp-clients.md +0 -0
  65. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/onboarding.md +0 -0
  66. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/release.md +0 -0
  67. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/security.md +0 -0
  68. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/setup-codex.md +0 -0
  69. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/setup-copilot.md +0 -0
  70. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/setup-cursor.md +0 -0
  71. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/setup-devin.md +0 -0
  72. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/stats.md +0 -0
  73. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/docs/usage-probe-matrix.md +0 -0
  74. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/scripts/install.sh +0 -0
  75. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/__main__.py +0 -0
  76. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/agent_io.py +0 -0
  77. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/event_detection.py +0 -0
  78. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/__init__.py +0 -0
  79. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/__init__.py +0 -0
  80. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/fake_approval_agent.py +0 -0
  81. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/fake_common.py +0 -0
  82. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/fake_completed_agent.py +0 -0
  83. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/fake_idle_agent.py +0 -0
  84. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/fake_limit_agent.py +0 -0
  85. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/fake_patch_agent.py +0 -0
  86. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/fixtures/fake_agents/fake_question_agent.py +0 -0
  87. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/git_worktree.py +0 -0
  88. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/mcp/__init__.py +0 -0
  89. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/mcp/resources.py +0 -0
  90. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/policy.py +0 -0
  91. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/preferences.py +0 -0
  92. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/providers/__init__.py +0 -0
  93. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/providers/registry.py +0 -0
  94. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/redaction.py +0 -0
  95. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/stats/__init__.py +0 -0
  96. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/stats/card.py +0 -0
  97. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/stats/queries.py +0 -0
  98. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/stats/render.py +0 -0
  99. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/stats/window.py +0 -0
  100. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/store.py +0 -0
  101. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/__init__.py +0 -0
  102. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/_common.py +0 -0
  103. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/ccusage.py +0 -0
  104. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/claude.py +0 -0
  105. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/codex.py +0 -0
  106. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/codexbar.py +0 -0
  107. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/combine.py +0 -0
  108. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/devin.py +0 -0
  109. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/parsers.py +0 -0
  110. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/probes.py +0 -0
  111. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/provider_parsers.py +0 -0
  112. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/usage/summary.py +0 -0
  113. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/src/agentpool/utils.py +0 -0
  114. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/fixtures/usage/claude_usage.txt +0 -0
  115. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/fixtures/usage/codex_rate_limits.json +0 -0
  116. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/fixtures/usage/copilot_user.json +0 -0
  117. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/fixtures/usage/devin_plan_status.json +0 -0
  118. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/integration/test_fake_tmux_flow.py +0 -0
  119. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_agent_io.py +0 -0
  120. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_cli.py +0 -0
  121. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_event_policy.py +0 -0
  122. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_redaction.py +0 -0
  123. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_stats_cli.py +0 -0
  124. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_stats_window.py +0 -0
  125. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_subprocess_safety.py +0 -0
  126. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_usage_probes.py +0 -0
  127. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_usage_provider_parsers.py +0 -0
  128. {agentpool_cli-0.1.10 → agentpool_cli-0.1.12}/tests/unit/test_usage_summary_enrichment.py +0 -0
@@ -2,6 +2,29 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.1.12 - 2026-06-06
6
+
7
+ - Add optional Terminal Control runtime support while keeping tmux as the
8
+ default worker runtime.
9
+ - Fix Claude Code steering submission by using provider-specific submit keys
10
+ for both initial prompts and live `send_worker_message` calls.
11
+ - Restore MCP capacity/cache compatibility aliases, add searchable MCP tool
12
+ descriptions and annotations, and make Cursor Agent CLI detection robust when
13
+ MCP hosts launch AgentPool with a minimal `PATH`.
14
+ - Add real-provider and fake-provider coverage for tmux and Terminal Control,
15
+ plus focused regression coverage for MCP aliases and provider binary lookup.
16
+
17
+ ## 0.1.11 - 2026-06-05
18
+
19
+ - Refresh provider model catalogs from current Claude Code, Codex, Cursor,
20
+ Droid, and OpenCode surfaces, including Claude Opus 4.8, Claude Code 1M
21
+ suffixes, and Cursor's explicit 1M/reasoning variants.
22
+ - Forward provider reasoning controls for Claude Code (`--effort`) and Droid
23
+ (`--reasoning-effort`) while keeping Codex reasoning/service-tier overrides
24
+ process-local.
25
+ - Refresh stale installed catalog metadata from the embedded catalog without
26
+ overriding user-selected default or smoke models.
27
+
5
28
  ## 0.1.10 - 2026-06-03
6
29
 
7
30
  - Add an AI-agent start section to root help pointing agents at bundled skill
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentpool-cli
3
- Version: 0.1.10
3
+ Version: 0.1.12
4
4
  Summary: Make full use of every coding-agent subscription you pay for: a local CLI + MCP server that surfaces live usage limits and offloads work to providers with headroom.
5
5
  Author: AgentPool contributors
6
6
  License-Expression: MIT
@@ -40,7 +40,7 @@ informed, never automatic.
40
40
 
41
41
  The v0.1 alpha posture is conservative:
42
42
 
43
- - tmux is the required runtime.
43
+ - tmux is the default runtime; Terminal Control is optional when configured.
44
44
  - Provider selection is explicit; `provider=auto` is rejected.
45
45
  - Usage/capacity summaries are confidence-tagged and keyed by provider id.
46
46
  - CodexBar and ccusage are optional usage helpers when installed or configured.
@@ -51,8 +51,10 @@ The v0.1 alpha posture is conservative:
51
51
 
52
52
  - Python 3.11 or newer.
53
53
  - tmux on `PATH`.
54
+ - Optional: `termctrl` on `PATH` for the Terminal Control runtime.
54
55
  - Git for worktree isolation and diff collection.
55
- - macOS or Linux. Windows is not a v0.1 target except through WSL-like shells.
56
+ - macOS or Linux for live runtimes. Windows is not a v0.1 target except through
57
+ WSL-like shells.
56
58
 
57
59
  ## Install
58
60
 
@@ -72,9 +74,21 @@ agentpool setup codex
72
74
  agentpool doctor --deep --privacy
73
75
  ```
74
76
 
75
- The `agentpool-cli` package installs on macOS, Linux, and Windows, but the
76
- runtime requires `tmux`, so the supported runtime is macOS or Linux (Windows
77
- via WSL).
77
+ The `agentpool-cli` package installs on macOS, Linux, and Windows, but live
78
+ terminal runtimes are supported on macOS or Linux (Windows via WSL).
79
+
80
+ Optional Terminal Control config:
81
+
82
+ ```yaml
83
+ runtime:
84
+ default: tmux
85
+ terminal_control:
86
+ enabled: true
87
+ binary: termctrl
88
+ session_prefix: agentpool
89
+ cols: 120
90
+ rows: 36
91
+ ```
78
92
 
79
93
  Install from source:
80
94
 
@@ -147,9 +161,10 @@ agentpool terminate <session-id> --json
147
161
 
148
162
  `spawn` defaults `--initial-prompt-mode` to `provider_default`. For Codex CLI
149
163
  this resolves to `arg`, which passes the first task as the Codex prompt argument
150
- instead of relying on a paste-and-submit startup cycle. Codex workers also
151
- accept process-local overrides such as `--reasoning-effort high` and
152
- `--service-tier fast`; AgentPool does not edit your Codex config.
164
+ instead of relying on a paste-and-submit startup cycle. Providers that expose
165
+ reasoning controls also accept process-local overrides such as
166
+ `--reasoning-effort high`; Codex also accepts `--service-tier priority`.
167
+ AgentPool does not edit your provider config.
153
168
 
154
169
  For AgentPool-created edit isolation, choose worktrees explicitly:
155
170
 
@@ -184,8 +199,8 @@ agentpool usage-summary --refresh --backend ccusage --provider claude-code --jso
184
199
  ordered and it is not a recommendation list. Each row includes `usable`,
185
200
  `unusable_reason`, quota windows, confidence, age/staleness, and reset timing when
186
201
  the provider exposes it. The older CLI `capacity-summary` command is retained
187
- as a human convenience alias; the MCP surface only exposes `get_usage_snapshot`
188
- and the opt-in `get_usage_summary` tool.
202
+ as a human convenience alias; MCP also exposes `get_capacity_summary` as a
203
+ compatibility alias for `get_usage_summary`.
189
204
 
190
205
  The default buffer is `policy.min_remaining_percent = 10`. If any reported
191
206
  quota window is below that buffer, the provider row is marked unusable for the
@@ -203,13 +218,13 @@ shell script must avoid provider TUI fallback probes.
203
218
 
204
219
  | Provider id | Command | Usage status in v0.1 | Model pinning |
205
220
  | --- | --- | --- | --- |
206
- | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` |
221
+ | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` + config-scoped reasoning/service tier |
207
222
  | `cursor-cli` | `agent` or `cursor-agent` | optional CodexBar Cursor usage; native CLI usage is interactive `/usage` only | `--model` + read-only `--mode ask` |
208
- | `claude-code` | `claude` | temporary `/usage` probe; ccusage telemetry optional | `--model` |
223
+ | `claude-code` | `claude` | temporary `/usage` probe; ccusage telemetry optional | `--model` + `--effort` |
209
224
  | `devin-cli` | `devin` | Devin/Windsurf plan-status API from existing CLI auth, with `/usage` fallback | `--model` |
210
225
  | `copilot-cli` | `gh copilot` | GitHub Copilot usage API from env or `gh auth token` | forwarded `--model` |
211
- | `droid-cli` | `droid` | unknown unless surfaced by future safe probe | process-local settings file |
212
- | `opencode` | `opencode` | configured adapter; usage unknown in this alpha | catalog-driven |
226
+ | `droid-cli` | `droid` | unknown unless surfaced by future safe probe | process-local settings file + `--reasoning-effort` |
227
+ | `opencode` | `opencode` | configured adapter; usage unknown in this alpha | `--model` with provider/model ids |
213
228
 
214
229
  Compatibility note: the PRD calls Factory's coding product `factory-droid`, but
215
230
  AgentPool exposes it as `droid-cli` because the installed command is `droid`.
@@ -19,7 +19,7 @@ informed, never automatic.
19
19
 
20
20
  The v0.1 alpha posture is conservative:
21
21
 
22
- - tmux is the required runtime.
22
+ - tmux is the default runtime; Terminal Control is optional when configured.
23
23
  - Provider selection is explicit; `provider=auto` is rejected.
24
24
  - Usage/capacity summaries are confidence-tagged and keyed by provider id.
25
25
  - CodexBar and ccusage are optional usage helpers when installed or configured.
@@ -30,8 +30,10 @@ The v0.1 alpha posture is conservative:
30
30
 
31
31
  - Python 3.11 or newer.
32
32
  - tmux on `PATH`.
33
+ - Optional: `termctrl` on `PATH` for the Terminal Control runtime.
33
34
  - Git for worktree isolation and diff collection.
34
- - macOS or Linux. Windows is not a v0.1 target except through WSL-like shells.
35
+ - macOS or Linux for live runtimes. Windows is not a v0.1 target except through
36
+ WSL-like shells.
35
37
 
36
38
  ## Install
37
39
 
@@ -51,9 +53,21 @@ agentpool setup codex
51
53
  agentpool doctor --deep --privacy
52
54
  ```
53
55
 
54
- The `agentpool-cli` package installs on macOS, Linux, and Windows, but the
55
- runtime requires `tmux`, so the supported runtime is macOS or Linux (Windows
56
- via WSL).
56
+ The `agentpool-cli` package installs on macOS, Linux, and Windows, but live
57
+ terminal runtimes are supported on macOS or Linux (Windows via WSL).
58
+
59
+ Optional Terminal Control config:
60
+
61
+ ```yaml
62
+ runtime:
63
+ default: tmux
64
+ terminal_control:
65
+ enabled: true
66
+ binary: termctrl
67
+ session_prefix: agentpool
68
+ cols: 120
69
+ rows: 36
70
+ ```
57
71
 
58
72
  Install from source:
59
73
 
@@ -126,9 +140,10 @@ agentpool terminate <session-id> --json
126
140
 
127
141
  `spawn` defaults `--initial-prompt-mode` to `provider_default`. For Codex CLI
128
142
  this resolves to `arg`, which passes the first task as the Codex prompt argument
129
- instead of relying on a paste-and-submit startup cycle. Codex workers also
130
- accept process-local overrides such as `--reasoning-effort high` and
131
- `--service-tier fast`; AgentPool does not edit your Codex config.
143
+ instead of relying on a paste-and-submit startup cycle. Providers that expose
144
+ reasoning controls also accept process-local overrides such as
145
+ `--reasoning-effort high`; Codex also accepts `--service-tier priority`.
146
+ AgentPool does not edit your provider config.
132
147
 
133
148
  For AgentPool-created edit isolation, choose worktrees explicitly:
134
149
 
@@ -163,8 +178,8 @@ agentpool usage-summary --refresh --backend ccusage --provider claude-code --jso
163
178
  ordered and it is not a recommendation list. Each row includes `usable`,
164
179
  `unusable_reason`, quota windows, confidence, age/staleness, and reset timing when
165
180
  the provider exposes it. The older CLI `capacity-summary` command is retained
166
- as a human convenience alias; the MCP surface only exposes `get_usage_snapshot`
167
- and the opt-in `get_usage_summary` tool.
181
+ as a human convenience alias; MCP also exposes `get_capacity_summary` as a
182
+ compatibility alias for `get_usage_summary`.
168
183
 
169
184
  The default buffer is `policy.min_remaining_percent = 10`. If any reported
170
185
  quota window is below that buffer, the provider row is marked unusable for the
@@ -182,13 +197,13 @@ shell script must avoid provider TUI fallback probes.
182
197
 
183
198
  | Provider id | Command | Usage status in v0.1 | Model pinning |
184
199
  | --- | --- | --- | --- |
185
- | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` |
200
+ | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` + config-scoped reasoning/service tier |
186
201
  | `cursor-cli` | `agent` or `cursor-agent` | optional CodexBar Cursor usage; native CLI usage is interactive `/usage` only | `--model` + read-only `--mode ask` |
187
- | `claude-code` | `claude` | temporary `/usage` probe; ccusage telemetry optional | `--model` |
202
+ | `claude-code` | `claude` | temporary `/usage` probe; ccusage telemetry optional | `--model` + `--effort` |
188
203
  | `devin-cli` | `devin` | Devin/Windsurf plan-status API from existing CLI auth, with `/usage` fallback | `--model` |
189
204
  | `copilot-cli` | `gh copilot` | GitHub Copilot usage API from env or `gh auth token` | forwarded `--model` |
190
- | `droid-cli` | `droid` | unknown unless surfaced by future safe probe | process-local settings file |
191
- | `opencode` | `opencode` | configured adapter; usage unknown in this alpha | catalog-driven |
205
+ | `droid-cli` | `droid` | unknown unless surfaced by future safe probe | process-local settings file + `--reasoning-effort` |
206
+ | `opencode` | `opencode` | configured adapter; usage unknown in this alpha | `--model` with provider/model ids |
192
207
 
193
208
  Compatibility note: the PRD calls Factory's coding product `factory-droid`, but
194
209
  AgentPool exposes it as `droid-cli` because the installed command is `droid`.
@@ -96,7 +96,9 @@ that directory is acceptable. Then observe again.
96
96
  When spawning Codex workers, leave `initial_prompt_mode` unset unless you have a
97
97
  reason to force it. The provider default uses the Codex CLI prompt argument path.
98
98
  Pass `reasoning_effort="high"` or another explicit value when the task needs a
99
- different Codex reasoning setting from the catalog default.
99
+ different provider reasoning setting from the catalog default. AgentPool
100
+ forwards that to Codex config overrides, Claude Code `--effort`, or Droid
101
+ `--reasoning-effort` depending on the selected provider.
100
102
 
101
103
  ## Safety Boundaries
102
104
 
@@ -15,7 +15,8 @@ Core modules:
15
15
  - `models.py`: Pydantic response and persistence models.
16
16
  - `config.py`: `~/.agentpool/config.yaml` loader and defaults.
17
17
  - `providers/`: conservative CLI detection and launch templates.
18
- - `runtimes/tmux.py`: required v0.1 runtime.
18
+ - `runtimes/tmux.py`: default worker runtime.
19
+ - `runtimes/terminal_control.py`: optional named-session Terminal Control runtime.
19
20
  - `store.py`: SQLite sessions, events, usage snapshots, artifacts, and leases.
20
21
  - `session_manager.py`: policy enforcement and worker lifecycle orchestration.
21
22
  - `mcp_server.py`: MCP tools and resources.
@@ -1,16 +1,17 @@
1
1
  # Install AgentPool
2
2
 
3
3
  AgentPool is a local CLI and MCP server. Install it on the same machine where
4
- your coding-agent CLIs are logged in and where `tmux` is available.
4
+ your coding-agent CLIs are logged in and where your selected runtime is
5
+ available.
5
6
 
6
7
  ## Requirements
7
8
 
8
9
  - Python 3.11 or newer.
9
- - `tmux` on `PATH`.
10
+ - `tmux` on `PATH` for the default runtime.
11
+ - Optional: `termctrl` on `PATH` for the Terminal Control runtime.
10
12
  - Git on `PATH`.
11
- - macOS or Linux for the runtime. The `agentpool-cli` package installs on
12
- Windows too, but `tmux` is not native there, so Windows is supported only
13
- through WSL.
13
+ - macOS or Linux for live runtimes. The `agentpool-cli` package installs on
14
+ Windows too, but terminal runtimes are supported only through WSL.
14
15
 
15
16
  ## Install From PyPI
16
17
 
@@ -32,7 +32,9 @@ The default toolset is the smallest worker lifecycle surface:
32
32
 
33
33
  - `get_inventory`
34
34
  - `get_usage_summary`
35
+ - `get_capacity_summary`
35
36
  - `get_usage_snapshot`
37
+ - `get_cached_usage_snapshot`
36
38
  - `get_provider_models`
37
39
  - `get_delegation_preferences`
38
40
  - `spawn_worker`
@@ -44,11 +46,10 @@ The default toolset is the smallest worker lifecycle surface:
44
46
  - `read_worker_transcript`
45
47
  - `terminate_worker`
46
48
 
47
- Removed MCP aliases:
49
+ Compatibility aliases:
48
50
 
49
- - `send_message`
50
- - `get_capacity_summary`
51
- - `get_cached_usage_snapshot`
51
+ - `get_capacity_summary`: alias for `get_usage_summary`
52
+ - `get_cached_usage_snapshot`: alias for `get_usage_snapshot(refresh=false)`
52
53
 
53
54
  Use `get_usage_summary(refresh=false)` for the compact provider-capacity view.
54
55
  Use `get_usage_snapshot(refresh=false)` only when you need raw snapshots; cached
@@ -100,8 +101,10 @@ initial prompt as a process argument and avoids first-turn paste/submission
100
101
  drift.
101
102
 
102
103
  `spawn_worker.reasoning_effort` and `spawn_worker.service_tier` are optional
103
- provider controls. For `codex-cli`, they become process-local Codex overrides;
104
- AgentPool does not edit the user's Codex config.
104
+ provider controls. For `claude-code`, reasoning becomes `--effort`; for
105
+ `droid-cli`, it becomes `--reasoning-effort`; for `codex-cli`, reasoning and
106
+ service tier become process-local Codex overrides. AgentPool does not edit the
107
+ user's provider config.
105
108
 
106
109
  ## Output Detail And Lockdown
107
110
 
@@ -8,6 +8,7 @@ It is not a ranking table and it must not be used to implement `provider=auto`.
8
8
 
9
9
  ```bash
10
10
  agentpool models
11
+ agentpool models --provider claude-code
11
12
  agentpool models --provider droid-cli
12
13
  agentpool models --provider codex-cli --json
13
14
  agentpool models validate --path ~/.agentpool/models.json
@@ -20,7 +21,9 @@ Each provider entry can describe:
20
21
  - `models`: known model slugs, display names, aliases, confidence, and metadata.
21
22
  - `model_arg`: the CLI flag used by providers with native model selection.
22
23
  - `model_selection`: non-flag pinning mode, such as Droid runtime settings.
23
- - `submit_keys`: tmux keys needed for interactive submit quirks.
24
+ - `reasoning_effort_arg`: the CLI flag used by providers with native effort
25
+ selection, such as Claude Code `--effort` or Droid `--reasoning-effort`.
26
+ - `submit_keys`: runtime keys needed for interactive submit quirks.
24
27
  - `quirks`: operator-facing notes for harness behavior.
25
28
 
26
29
  ## Override
@@ -79,10 +82,18 @@ This lets a user or a primary agent pin a local default without changing the
79
82
  provider adapter. Explicit `--model` on `agentpool spawn` or `agentpool smoke`
80
83
  still overrides both catalog and provider config.
81
84
 
82
- Compatibility note: the PRD calls the Factory coding product `factory-droid`,
83
- but AgentPool exposes it as `droid-cli` because the installed command is
84
- `droid`. Keep the catalog keyed by `droid-cli` unless a separate Factory Droid
85
- binary or harness appears.
85
+ ## Claude Code
86
+
87
+ Claude Code supports aliases such as `sonnet`, `opus`, `haiku`, and `opusplan`,
88
+ plus full model names such as `claude-opus-4-8`. The catalog also includes
89
+ supported `[1m]` suffix entries, for example `claude-opus-4-8[1m]`. Account and
90
+ plan access still belongs to Claude Code; AgentPool only forwards the selected
91
+ model with `--model`.
92
+
93
+ Claude Code effort is model-dependent. AgentPool stores the supported effort
94
+ levels per model and forwards `--reasoning-effort` as Claude Code `--effort`.
95
+ When you pass an explicit Claude model without an effort, AgentPool uses that
96
+ model's catalog default.
86
97
 
87
98
  ## Droid
88
99
 
@@ -92,6 +103,18 @@ the configured or requested model by writing a process-local settings file under
92
103
  This avoids mutating the user's global Factory settings and avoids accidentally
93
104
  using a custom default model backed by a local proxy.
94
105
 
106
+ Compatibility note: the PRD calls the Factory coding product `factory-droid`,
107
+ but AgentPool exposes it as `droid-cli` because the installed command is
108
+ `droid`. Keep the catalog keyed by `droid-cli` unless a separate Factory Droid
109
+ binary or harness appears.
110
+
111
+ ## Cursor And OpenCode
112
+
113
+ Cursor Agent CLI exposes reasoning and 1M context variants as model ids from
114
+ `agent models`, so AgentPool lists those explicit ids instead of inventing a
115
+ separate effort flag. OpenCode model ids use provider/model form, for example
116
+ `opencode/claude-opus-4-8`, and AgentPool forwards them with `--model`.
117
+
95
118
  ## Catalog Confidence
96
119
 
97
120
  Model lists are conservative. Providers that expose a complete local list, such
@@ -8,7 +8,8 @@ Default real-provider behavior is intentionally limited:
8
8
  - Probe version with a short timeout.
9
9
  - Report auth as `unknown` unless a safe probe exists.
10
10
  - Report usage as `unknown` unless a safe explicit probe exists.
11
- - Launch through tmux using the provider's normal CLI command.
11
+ - Launch through the selected runtime using the provider's normal CLI command;
12
+ tmux is the default runtime and Terminal Control is optional.
12
13
  - Pin a requested model only when the provider exposes a safe process-local
13
14
  mechanism for it.
14
15
 
@@ -37,18 +38,30 @@ Model pinning behavior:
37
38
  - `cursor-cli` uses `agent` or `cursor-agent`, adds `--workspace <path>`, and
38
39
  uses `--mode ask` for `read_only` isolation because Cursor documents Ask mode
39
40
  as read-only Q&A. Its provider default initial prompt mode is `arg`, matching
40
- Cursor's documented `[prompt...]` argument.
41
+ Cursor's documented `[prompt...]` argument. Cursor's reasoning and 1M context
42
+ variants are explicit model ids from `agent models`, not a separate effort
43
+ flag.
44
+ - `claude-code` uses `--model` for model pinning and `--effort` for supported
45
+ Claude Code effort levels. Full model names such as `claude-opus-4-8` and
46
+ `[1m]` suffixes are catalog entries, but account and plan access still belong
47
+ to Claude Code.
41
48
  - `droid-cli` does not expose interactive `--model`; AgentPool
42
49
  writes a minimal `~/.agentpool/runtime-settings/droid-<model>.json` and starts
43
- Droid with `--settings <path>`.
50
+ Droid with `--settings <path>`. Droid `exec` exposes reasoning through
51
+ `--reasoning-effort`, which AgentPool forwards when requested.
44
52
  - AgentPool does not edit or persist provider credentials or user defaults.
45
53
 
46
- Tmux submit behavior:
54
+ Runtime submit behavior:
47
55
 
48
56
  - Most providers submit pasted text with terminal Enter.
49
57
  - `codex-cli` submits with `C-m` in tmux.
58
+ - `claude-code` receives an explicit `Enter` after pasted steering so
59
+ multi-line messages ending in a newline are submitted instead of left in the
60
+ composer.
50
61
  - Short menu selections such as startup trust or update prompts still use normal
51
62
  Enter so they do not go through provider composer shortcuts.
63
+ - Terminal Control maps the same submit keys onto its named key vocabulary, for
64
+ example `C-m` to `enter` and `C-c` to `ctrl-c`.
52
65
 
53
66
  Fake providers under `src/agentpool/fixtures/fake_agents/` are the executable contract for v0.1.
54
67
  They are packaged with AgentPool so `agentpool smoke --provider fake-question`
@@ -37,12 +37,12 @@ Cursor has two separate surfaces: `cursor` is an MCP host integration, while
37
37
  | `fake-limit` | native fake | yes | yes | pending | pending | pending | pending | pending | tests | Limit warning fixture. |
38
38
  | `fake-patch` | native fake | yes | yes | pending | pending | pending | pending | pending | tests | Worktree/edit fixture; use only with explicit mutating tests. |
39
39
  | `codex-cli` | native + CodexBar combined | yes | yes | yes | yes | yes | yes | yes | 2026-05-09 | Verified with explicit `--model gpt-5.5` on Codex CLI v0.130.0. Known startup trust prompts can be accepted only for the smoke temp repo. The harness detects Codex update prompts and skips them before sending task text. Codex tmux submit uses `C-m`. Codex usage supports 5h and weekly windows. |
40
- | `cursor-cli` | CodexBar cursor optional, native unknown | partial | yes | pending | yes | yes | yes | yes | 2026-05-24 | Local command is `agent` v2026.05.24-dda726e. Adapter pins models with `--model`, sets `--workspace`, and uses `--mode ask` for read-only. Local smoke reached Cursor login/auth prompt and was terminated cleanly; full completion requires `agent login` to make the installed CLI usable. `agent models` returned no account models on this machine. CodexBar cursor usage returned primary/secondary/tertiary windows through the optional backend. |
41
- | `claude-code` | native `/usage` + CodexBar cli | yes | yes | yes | n/a | yes | yes | yes | 2026-05-09 | Verified with explicit `--model sonnet`; generated `AGENTPOOL_SMOKE_DONE`, collected, terminated, and left git clean. Startup can show Warp/tmux focus and optional MCP warnings; they did not block lifecycle detection. CodexBar safe source gives 5h usage; native `/usage` is interactive. |
40
+ | `cursor-cli` | CodexBar cursor optional, native unknown | partial | yes | pending | yes | yes | yes | yes | 2026-06-05 | Local command is `agent` v2026.06.02-8c11d9f. Adapter pins models with `--model`, sets `--workspace`, and uses `--mode ask` for read-only. `agent models` returned account models including Composer 2.5, Claude Opus 4.8 1M variants, and GPT 5.5/5.4 variants. CodexBar cursor usage returned primary/secondary/tertiary windows through the optional backend. |
41
+ | `claude-code` | native `/usage` + CodexBar cli | yes | yes | yes | n/a | yes | yes | yes | 2026-06-05 | Verified previously with explicit `--model sonnet`; generated `AGENTPOOL_SMOKE_DONE`, collected, terminated, and left git clean. Local Claude Code v2.1.165 documents `--model` full names such as `claude-opus-4-8` and `--effort low/medium/high/xhigh/max`; AgentPool forwards both. Startup can show Warp/tmux focus and optional MCP warnings; they did not block lifecycle detection. CodexBar safe source gives 5h usage; native `/usage` is interactive. |
42
42
  | `copilot-cli` | native GitHub API + CodexBar api | yes | yes | yes | n/a | yes | yes | yes | 2026-05-09 | Verified with explicit `--model gpt-5.5`; GitHub Copilot CLI generated `AGENTPOOL_SMOKE_DONE`, collected, terminated, and left git clean. Usage percentages are available through native/CodexBar API paths. |
43
43
  | `devin-cli` | native plan-status API | yes | yes | yes | n/a | yes | yes | yes | 2026-05-09 | Verified with explicit `--model codex`; generated `AGENTPOOL_SMOKE_DONE`, collected, terminated, and left git clean. Native usage includes daily, weekly, and on-demand balance. |
44
- | `droid-cli` | unknown | yes | yes | yes | n/a | yes | yes | yes | 2026-05-09 | Verified with explicit `--model glm-5.1`, which AgentPool applies through a process-local Droid `--settings` file. This avoids the user's custom default localhost-backed model. No safe subscription quota probe confirmed. |
45
- | `opencode` | CodexBar mapped, native unknown | skipped | skipped | skipped | skipped | skipped | skipped | skipped | skipped | Skipped for now because no OpenCode Go plan is available. CodexBar is mapped as a safe optional usage backend; native usage remains unknown. |
44
+ | `droid-cli` | unknown | yes | yes | yes | n/a | yes | yes | yes | 2026-06-05 | Verified previously with explicit `--model glm-5.1`, which AgentPool applies through a process-local Droid `--settings` file. This avoids the user's custom default localhost-backed model. Local Droid v0.122.0 exposes `--reasoning-effort`; AgentPool forwards it. No safe subscription quota probe confirmed. |
45
+ | `opencode` | native unknown | skipped | skipped | skipped | skipped | skipped | skipped | skipped | 2026-06-05 | Local `opencode models` returned provider/model ids, and AgentPool can forward them with `--model`. Real lifecycle smoke remains skipped; native usage remains unknown. |
46
46
 
47
47
  ## Smoke Commands
48
48
 
@@ -20,8 +20,8 @@ agentpool init
20
20
  agentpool doctor --deep --privacy
21
21
  ```
22
22
 
23
- `doctor` confirms `tmux`, SQLite, and the artifact root, and lists each
24
- provider's install/auth state.
23
+ `doctor` confirms runtime availability, SQLite, and the artifact root, and lists
24
+ each provider's install/auth state.
25
25
 
26
26
  ## 2. Smoke test without a real provider
27
27
 
@@ -75,7 +75,14 @@ agentpool usage-summary --provider claude-code --refresh --json
75
75
  agentpool models --provider claude-code
76
76
  agentpool spawn \
77
77
  --provider claude-code \
78
+ --model claude-opus-4-8 \
79
+ --reasoning-effort high \
78
80
  --repo . \
79
81
  --task "Inspect this repo read-only and summarize the main entry points." \
80
82
  --isolation read_only
81
83
  ```
84
+
85
+ Claude Code accepts aliases such as `sonnet` and `opus`, full names such as
86
+ `claude-opus-4-8`, and supported `[1m]` suffixes such as
87
+ `claude-opus-4-8[1m]`. Availability of 1M context depends on the Claude account
88
+ and plan; AgentPool only forwards the explicit model id.
@@ -50,4 +50,6 @@ agentpool spawn \
50
50
 
51
51
  AgentPool launches Cursor with `--workspace <repo>` and uses `--mode ask` for
52
52
  read-only isolation. Cursor's `--trust` flag is documented for headless print
53
- mode, so AgentPool does not use it for interactive tmux workers.
53
+ mode, so AgentPool does not use it for interactive tmux workers. Cursor exposes
54
+ reasoning and 1M context as explicit model ids from `agent models`; choose those
55
+ ids with `--model` when you want them.
@@ -45,6 +45,7 @@ agentpool models --provider droid-cli
45
45
  agentpool spawn \
46
46
  --provider droid-cli \
47
47
  --model glm-5.1 \
48
+ --reasoning-effort high \
48
49
  --repo . \
49
50
  --task "Inspect this repo read-only and summarize the main entry points." \
50
51
  --isolation read_only
@@ -52,4 +53,5 @@ agentpool spawn \
52
53
 
53
54
  AgentPool pins Droid models through a process-local `--settings` file under
54
55
  `~/.agentpool/runtime-settings/` so it does not mutate your global Factory
55
- settings.
56
+ settings. Droid reasoning effort is forwarded with `--reasoning-effort` when
57
+ you provide it.
@@ -7,8 +7,9 @@ Allowed confidence values include `official`, `local_cli`, `local_config`, `prov
7
7
  Live probes are only run by explicit usage requests. Inventory remains non-invasive and reports whether a provider supports an explicit usage probe. Successful explicit probes are persisted to SQLite; `agentpool usage --cached`, `get_usage_summary(refresh=false)`, and `get_usage_snapshot(refresh=false)` read the latest persisted snapshots without refreshing providers. MCP refreshes do not run interactive provider TUI probes, because those can interfere with the host agent that is calling AgentPool. CLI callers can use `--no-interactive` on `usage` / `usage-summary`, or set `AGENTPOOL_NO_INTERACTIVE_USAGE=1`, to take the same headless posture. MCP refreshes are also bounded by a short server-side budget; if a provider is slow, AgentPool returns a partial response with an unknown row instead of holding the MCP connection open.
8
8
 
9
9
  `agentpool usage-summary` returns a `providers` map keyed by provider id. The
10
- CLI `capacity-summary` command is a human convenience alias; MCP does not expose
11
- a capacity alias. Each row includes `usable`, `unusable_reason`, `stale`, and
10
+ CLI `capacity-summary` command and MCP `get_capacity_summary` tool are
11
+ compatibility aliases for `usage-summary` / `get_usage_summary`. Each row
12
+ includes `usable`, `unusable_reason`, `stale`, and
12
13
  `age_seconds`. `stale` is informational age metadata only; it does not by
13
14
  itself make a provider unusable. `usable` is derived from install/auth status,
14
15
  provider usage status, confidence, and reported quota windows. The default
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentpool-cli"
7
- version = "0.1.10"
7
+ version = "0.1.12"
8
8
  description = "Make full use of every coding-agent subscription you pay for: a local CLI + MCP server that surfaces live usage limits and offloads work to providers with headroom."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -57,3 +57,10 @@ include = [
57
57
  "docs/examples.md" = "agentpool/docs/examples.md"
58
58
  "docs/onboarding.md" = "agentpool/docs/onboarding.md"
59
59
  "docs/quickstart.md" = "agentpool/docs/quickstart.md"
60
+
61
+ [tool.hatch.build.targets.sdist]
62
+ exclude = [
63
+ "/.firecrawl",
64
+ "/demo",
65
+ "/dist",
66
+ ]
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.sidduHERE/agentpool",
4
4
  "title": "AgentPool",
5
5
  "description": "See each coding-agent subscription's live limits and offload work to one with headroom.",
6
- "version": "0.1.10",
6
+ "version": "0.1.12",
7
7
  "repository": {
8
8
  "url": "https://github.com/sidduHERE/agentpool",
9
9
  "source": "github"
@@ -13,7 +13,7 @@
13
13
  {
14
14
  "registryType": "pypi",
15
15
  "identifier": "agentpool-cli",
16
- "version": "0.1.10",
16
+ "version": "0.1.12",
17
17
  "transport": {
18
18
  "type": "stdio"
19
19
  },
@@ -1,3 +1,3 @@
1
1
  """AgentPool local agent control plane."""
2
2
 
3
- __version__ = "0.1.10"
3
+ __version__ = "0.1.12"
@@ -13,6 +13,7 @@ from agentpool.utils import repo_hash, sha256_file, write_json
13
13
  def create_artifact_dir(root: Path, repo_path: Path, session_id: str) -> Path:
14
14
  artifact_dir = root / repo_hash(repo_path) / session_id
15
15
  (artifact_dir / "raw" / "tmux-captures").mkdir(parents=True, exist_ok=True)
16
+ (artifact_dir / "raw" / "terminal-control").mkdir(parents=True, exist_ok=True)
16
17
  return artifact_dir
17
18
 
18
19