agentpool-cli 0.1.10__tar.gz → 0.1.11__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 (123) hide show
  1. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/CHANGELOG.md +11 -0
  2. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/PKG-INFO +9 -8
  3. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/README.md +8 -7
  4. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/agentpool-skill.md +3 -1
  5. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/mcp-tools.md +4 -2
  6. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/model-catalog.md +27 -4
  7. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/provider-adapters.md +9 -2
  8. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/provider-lifecycle-matrix.md +4 -4
  9. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-claude-code.md +7 -0
  10. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-cursor-cli.md +3 -1
  11. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-droid.md +3 -1
  12. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/pyproject.toml +8 -1
  13. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/server.json +2 -2
  14. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/__init__.py +1 -1
  15. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/cli.py +5 -1
  16. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/config.py +24 -4
  17. agentpool_cli-0.1.11/src/agentpool/provider_model_catalog.json +4043 -0
  18. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/providers/base.py +5 -0
  19. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/session_manager.py +4 -1
  20. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/provider_model_catalog_golden.json +63 -5
  21. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_models_config_store.py +121 -9
  22. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/uv.lock +1 -1
  23. agentpool_cli-0.1.10/src/agentpool/provider_model_catalog.json +0 -997
  24. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.cursor/mcp.json.example +0 -0
  25. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/CODEOWNERS +0 -0
  26. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/ISSUE_TEMPLATE/provider_probe.md +0 -0
  28. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/dependabot.yml +0 -0
  29. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/workflows/ci.yml +0 -0
  30. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/workflows/release.yml +0 -0
  31. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.gitignore +0 -0
  32. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.mcp.json.example +0 -0
  33. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/AGENTS.md +0 -0
  34. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/CONTRIBUTING.md +0 -0
  35. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/LICENSE +0 -0
  36. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/SECURITY.md +0 -0
  37. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/agent-cli-and-mcp.md +0 -0
  38. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/architecture.md +0 -0
  39. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/examples/README.md +0 -0
  40. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/examples.md +0 -0
  41. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/install.md +0 -0
  42. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/mcp-clients.md +0 -0
  43. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/onboarding.md +0 -0
  44. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/quickstart.md +0 -0
  45. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/release.md +0 -0
  46. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/security.md +0 -0
  47. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-codex.md +0 -0
  48. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-copilot.md +0 -0
  49. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-cursor.md +0 -0
  50. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-devin.md +0 -0
  51. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/stats.md +0 -0
  52. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/usage-detection.md +0 -0
  53. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/usage-probe-matrix.md +0 -0
  54. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/scripts/install.sh +0 -0
  55. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/__main__.py +0 -0
  56. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/agent_io.py +0 -0
  57. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/artifacts.py +0 -0
  58. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/event_detection.py +0 -0
  59. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/__init__.py +0 -0
  60. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/__init__.py +0 -0
  61. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_approval_agent.py +0 -0
  62. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_common.py +0 -0
  63. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_completed_agent.py +0 -0
  64. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_idle_agent.py +0 -0
  65. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_limit_agent.py +0 -0
  66. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_patch_agent.py +0 -0
  67. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_question_agent.py +0 -0
  68. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/git_worktree.py +0 -0
  69. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp/__init__.py +0 -0
  70. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp/resources.py +0 -0
  71. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp/tools.py +0 -0
  72. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp_server.py +0 -0
  73. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/models.py +0 -0
  74. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/onboarding.py +0 -0
  75. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/policy.py +0 -0
  76. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/preferences.py +0 -0
  77. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/providers/__init__.py +0 -0
  78. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/providers/registry.py +0 -0
  79. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/redaction.py +0 -0
  80. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/runtimes/__init__.py +0 -0
  81. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/runtimes/base.py +0 -0
  82. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/runtimes/tmux.py +0 -0
  83. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/__init__.py +0 -0
  84. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/card.py +0 -0
  85. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/compute.py +0 -0
  86. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/queries.py +0 -0
  87. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/render.py +0 -0
  88. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/window.py +0 -0
  89. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/store.py +0 -0
  90. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/__init__.py +0 -0
  91. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/_common.py +0 -0
  92. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/ccusage.py +0 -0
  93. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/claude.py +0 -0
  94. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/codex.py +0 -0
  95. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/codexbar.py +0 -0
  96. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/combine.py +0 -0
  97. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/copilot.py +0 -0
  98. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/devin.py +0 -0
  99. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/parsers.py +0 -0
  100. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/probes.py +0 -0
  101. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/provider_parsers.py +0 -0
  102. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/summary.py +0 -0
  103. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/utils.py +0 -0
  104. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/stats_seed.py +0 -0
  105. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/claude_usage.txt +0 -0
  106. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/codex_rate_limits.json +0 -0
  107. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/copilot_user.json +0 -0
  108. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/devin_plan_status.json +0 -0
  109. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/integration/test_fake_tmux_flow.py +0 -0
  110. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_agent_io.py +0 -0
  111. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_cli.py +0 -0
  112. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_event_policy.py +0 -0
  113. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_mcp_surface.py +0 -0
  114. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_mcp_tools.py +0 -0
  115. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_onboarding.py +0 -0
  116. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_redaction.py +0 -0
  117. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_stats_cli.py +0 -0
  118. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_stats_mcp.py +0 -0
  119. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_stats_window.py +0 -0
  120. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_subprocess_safety.py +0 -0
  121. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_usage_probes.py +0 -0
  122. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_usage_provider_parsers.py +0 -0
  123. {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_usage_summary_enrichment.py +0 -0
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.1.11 - 2026-06-05
6
+
7
+ - Refresh provider model catalogs from current Claude Code, Codex, Cursor,
8
+ Droid, and OpenCode surfaces, including Claude Opus 4.8, Claude Code 1M
9
+ suffixes, and Cursor's explicit 1M/reasoning variants.
10
+ - Forward provider reasoning controls for Claude Code (`--effort`) and Droid
11
+ (`--reasoning-effort`) while keeping Codex reasoning/service-tier overrides
12
+ process-local.
13
+ - Refresh stale installed catalog metadata from the embedded catalog without
14
+ overriding user-selected default or smoke models.
15
+
5
16
  ## 0.1.10 - 2026-06-03
6
17
 
7
18
  - 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.11
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
@@ -147,9 +147,10 @@ agentpool terminate <session-id> --json
147
147
 
148
148
  `spawn` defaults `--initial-prompt-mode` to `provider_default`. For Codex CLI
149
149
  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.
150
+ instead of relying on a paste-and-submit startup cycle. Providers that expose
151
+ reasoning controls also accept process-local overrides such as
152
+ `--reasoning-effort high`; Codex also accepts `--service-tier priority`.
153
+ AgentPool does not edit your provider config.
153
154
 
154
155
  For AgentPool-created edit isolation, choose worktrees explicitly:
155
156
 
@@ -203,13 +204,13 @@ shell script must avoid provider TUI fallback probes.
203
204
 
204
205
  | Provider id | Command | Usage status in v0.1 | Model pinning |
205
206
  | --- | --- | --- | --- |
206
- | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` |
207
+ | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` + config-scoped reasoning/service tier |
207
208
  | `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` |
209
+ | `claude-code` | `claude` | temporary `/usage` probe; ccusage telemetry optional | `--model` + `--effort` |
209
210
  | `devin-cli` | `devin` | Devin/Windsurf plan-status API from existing CLI auth, with `/usage` fallback | `--model` |
210
211
  | `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 |
212
+ | `droid-cli` | `droid` | unknown unless surfaced by future safe probe | process-local settings file + `--reasoning-effort` |
213
+ | `opencode` | `opencode` | configured adapter; usage unknown in this alpha | `--model` with provider/model ids |
213
214
 
214
215
  Compatibility note: the PRD calls Factory's coding product `factory-droid`, but
215
216
  AgentPool exposes it as `droid-cli` because the installed command is `droid`.
@@ -126,9 +126,10 @@ agentpool terminate <session-id> --json
126
126
 
127
127
  `spawn` defaults `--initial-prompt-mode` to `provider_default`. For Codex CLI
128
128
  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.
129
+ instead of relying on a paste-and-submit startup cycle. Providers that expose
130
+ reasoning controls also accept process-local overrides such as
131
+ `--reasoning-effort high`; Codex also accepts `--service-tier priority`.
132
+ AgentPool does not edit your provider config.
132
133
 
133
134
  For AgentPool-created edit isolation, choose worktrees explicitly:
134
135
 
@@ -182,13 +183,13 @@ shell script must avoid provider TUI fallback probes.
182
183
 
183
184
  | Provider id | Command | Usage status in v0.1 | Model pinning |
184
185
  | --- | --- | --- | --- |
185
- | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` |
186
+ | `codex-cli` | `codex` | native local app-server rate-limit probe; CodexBar optional | `--model` + config-scoped reasoning/service tier |
186
187
  | `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` |
188
+ | `claude-code` | `claude` | temporary `/usage` probe; ccusage telemetry optional | `--model` + `--effort` |
188
189
  | `devin-cli` | `devin` | Devin/Windsurf plan-status API from existing CLI auth, with `/usage` fallback | `--model` |
189
190
  | `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 |
191
+ | `droid-cli` | `droid` | unknown unless surfaced by future safe probe | process-local settings file + `--reasoning-effort` |
192
+ | `opencode` | `opencode` | configured adapter; usage unknown in this alpha | `--model` with provider/model ids |
192
193
 
193
194
  Compatibility note: the PRD calls Factory's coding product `factory-droid`, but
194
195
  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
 
@@ -100,8 +100,10 @@ initial prompt as a process argument and avoids first-turn paste/submission
100
100
  drift.
101
101
 
102
102
  `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.
103
+ provider controls. For `claude-code`, reasoning becomes `--effort`; for
104
+ `droid-cli`, it becomes `--reasoning-effort`; for `codex-cli`, reasoning and
105
+ service tier become process-local Codex overrides. AgentPool does not edit the
106
+ user's provider config.
105
107
 
106
108
  ## Output Detail And Lockdown
107
109
 
@@ -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,6 +21,8 @@ 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.
24
+ - `reasoning_effort_arg`: the CLI flag used by providers with native effort
25
+ selection, such as Claude Code `--effort` or Droid `--reasoning-effort`.
23
26
  - `submit_keys`: tmux keys needed for interactive submit quirks.
24
27
  - `quirks`: operator-facing notes for harness behavior.
25
28
 
@@ -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
@@ -37,10 +37,17 @@ Model pinning behavior:
37
37
  - `cursor-cli` uses `agent` or `cursor-agent`, adds `--workspace <path>`, and
38
38
  uses `--mode ask` for `read_only` isolation because Cursor documents Ask mode
39
39
  as read-only Q&A. Its provider default initial prompt mode is `arg`, matching
40
- Cursor's documented `[prompt...]` argument.
40
+ Cursor's documented `[prompt...]` argument. Cursor's reasoning and 1M context
41
+ variants are explicit model ids from `agent models`, not a separate effort
42
+ flag.
43
+ - `claude-code` uses `--model` for model pinning and `--effort` for supported
44
+ Claude Code effort levels. Full model names such as `claude-opus-4-8` and
45
+ `[1m]` suffixes are catalog entries, but account and plan access still belong
46
+ to Claude Code.
41
47
  - `droid-cli` does not expose interactive `--model`; AgentPool
42
48
  writes a minimal `~/.agentpool/runtime-settings/droid-<model>.json` and starts
43
- Droid with `--settings <path>`.
49
+ Droid with `--settings <path>`. Droid `exec` exposes reasoning through
50
+ `--reasoning-effort`, which AgentPool forwards when requested.
44
51
  - AgentPool does not edit or persist provider credentials or user defaults.
45
52
 
46
53
  Tmux submit behavior:
@@ -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
 
@@ -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.
@@ -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.11"
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.11",
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.11",
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.11"
@@ -1281,6 +1281,10 @@ def models_command(
1281
1281
  console.print(f"default: {row['default_model'] or ''}")
1282
1282
  console.print(f"smoke: {row['smoke_model'] or ''}")
1283
1283
  console.print(f"selection: {row['model_selection'] or ''}")
1284
+ if row.get("reasoning_effort_arg"):
1285
+ console.print(f"reasoning: {row['reasoning_effort_arg']}")
1286
+ elif row.get("reasoning_effort_config_key"):
1287
+ console.print(f"reasoning config: {row['reasoning_effort_config_key']}")
1284
1288
  console.print(f"catalog: {row['catalog_completeness'] or ''}")
1285
1289
  if row["quirks"]:
1286
1290
  console.print("quirks:")
@@ -1648,7 +1652,7 @@ def spawn(
1648
1652
  ] = None,
1649
1653
  service_tier: Annotated[
1650
1654
  str | None,
1651
- typer.Option("--service-tier", help="Provider service tier override when supported, for example fast."),
1655
+ typer.Option("--service-tier", help="Provider service tier override when supported, for example priority."),
1652
1656
  ] = None,
1653
1657
  json_output: Annotated[bool, typer.Option("--json", help="Emit JSON.")] = False,
1654
1658
  ) -> None:
@@ -30,6 +30,19 @@ FAKE_PROVIDER_SCRIPTS = {
30
30
  "fake-limit": "fake_limit_agent.py",
31
31
  "fake-patch": "fake_patch_agent.py",
32
32
  }
33
+ CATALOG_METADATA_REFRESH_KEYS = {
34
+ "catalog_completeness",
35
+ "default_initial_prompt_mode",
36
+ "forward_separator",
37
+ "model_arg",
38
+ "model_selection",
39
+ "quirks",
40
+ "read_only_mode_arg",
41
+ "reasoning_effort_arg",
42
+ "reasoning_effort_config_key",
43
+ "service_tier_config_key",
44
+ "submit_keys",
45
+ }
33
46
 
34
47
 
35
48
  class StorageConfig(BaseModel):
@@ -303,21 +316,28 @@ def load_config(path: Path | None = None) -> AgentPoolConfig:
303
316
  ).model_dump(mode="json")
304
317
  merged = deep_merge(base, raw)
305
318
  merged_config = AgentPoolConfig.model_validate(merged)
306
- _refresh_provider_models_from_catalog(merged_config.providers, load_model_catalog(model_catalog_paths))
319
+ _refresh_provider_catalog_fields(merged_config.providers, load_model_catalog(model_catalog_paths))
307
320
  merged = merged_config.model_dump(mode="json")
308
321
  _repair_packaged_fake_provider_paths(merged)
309
322
  _drop_deprecated_providers(merged)
310
323
  return AgentPoolConfig.model_validate(merged)
311
324
 
312
325
 
313
- def _refresh_provider_models_from_catalog(
326
+ def _refresh_provider_catalog_fields(
314
327
  providers: dict[str, ProviderConfig],
315
328
  catalog: dict[str, Any],
316
329
  ) -> None:
317
330
  for provider_id, entry in (catalog.get("providers") or {}).items():
318
- if provider_id not in providers or not isinstance(entry, dict) or "models" not in entry:
331
+ if provider_id not in providers or not isinstance(entry, dict):
319
332
  continue
320
- providers[provider_id].models = list(entry["models"] or [])
333
+ provider = providers[provider_id]
334
+ if "models" in entry:
335
+ provider.models = list(entry["models"] or [])
336
+ for key in CATALOG_METADATA_REFRESH_KEYS:
337
+ if key in entry:
338
+ provider.metadata[key] = entry[key]
339
+ else:
340
+ provider.metadata.pop(key, None)
321
341
 
322
342
 
323
343
  def validate_config(config: AgentPoolConfig) -> dict[str, Any]: