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.
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/CHANGELOG.md +11 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/PKG-INFO +9 -8
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/README.md +8 -7
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/agentpool-skill.md +3 -1
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/mcp-tools.md +4 -2
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/model-catalog.md +27 -4
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/provider-adapters.md +9 -2
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/provider-lifecycle-matrix.md +4 -4
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-claude-code.md +7 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-cursor-cli.md +3 -1
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-droid.md +3 -1
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/pyproject.toml +8 -1
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/server.json +2 -2
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/__init__.py +1 -1
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/cli.py +5 -1
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/config.py +24 -4
- agentpool_cli-0.1.11/src/agentpool/provider_model_catalog.json +4043 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/providers/base.py +5 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/session_manager.py +4 -1
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/provider_model_catalog_golden.json +63 -5
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_models_config_store.py +121 -9
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/uv.lock +1 -1
- agentpool_cli-0.1.10/src/agentpool/provider_model_catalog.json +0 -997
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.cursor/mcp.json.example +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/CODEOWNERS +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/ISSUE_TEMPLATE/provider_probe.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/dependabot.yml +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/workflows/ci.yml +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.github/workflows/release.yml +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.gitignore +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/.mcp.json.example +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/AGENTS.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/CONTRIBUTING.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/LICENSE +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/SECURITY.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/agent-cli-and-mcp.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/architecture.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/examples/README.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/examples.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/install.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/mcp-clients.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/onboarding.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/quickstart.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/release.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/security.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-codex.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-copilot.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-cursor.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/setup-devin.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/stats.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/usage-detection.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/docs/usage-probe-matrix.md +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/scripts/install.sh +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/__main__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/agent_io.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/artifacts.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/event_detection.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/__init__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/__init__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_approval_agent.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_common.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_completed_agent.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_idle_agent.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_limit_agent.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_patch_agent.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/fixtures/fake_agents/fake_question_agent.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/git_worktree.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp/__init__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp/resources.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp/tools.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/mcp_server.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/models.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/onboarding.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/policy.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/preferences.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/providers/__init__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/providers/registry.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/redaction.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/runtimes/__init__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/runtimes/base.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/runtimes/tmux.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/__init__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/card.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/compute.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/queries.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/render.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/stats/window.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/store.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/__init__.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/_common.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/ccusage.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/claude.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/codex.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/codexbar.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/combine.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/copilot.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/devin.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/parsers.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/probes.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/provider_parsers.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/usage/summary.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/src/agentpool/utils.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/stats_seed.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/claude_usage.txt +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/codex_rate_limits.json +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/copilot_user.json +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/fixtures/usage/devin_plan_status.json +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/integration/test_fake_tmux_flow.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_agent_io.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_cli.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_event_policy.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_mcp_surface.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_mcp_tools.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_onboarding.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_redaction.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_stats_cli.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_stats_mcp.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_stats_window.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_subprocess_safety.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_usage_probes.py +0 -0
- {agentpool_cli-0.1.10 → agentpool_cli-0.1.11}/tests/unit/test_usage_provider_parsers.py +0 -0
- {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.
|
|
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.
|
|
151
|
-
accept process-local overrides such as
|
|
152
|
-
`--
|
|
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 |
|
|
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.
|
|
130
|
-
accept process-local overrides such as
|
|
131
|
-
`--
|
|
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 |
|
|
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
|
|
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 `
|
|
104
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
|
41
|
-
| `claude-code` | native `/usage` + CodexBar cli | yes | yes | yes | n/a | yes | yes | yes | 2026-05
|
|
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
|
|
45
|
-
| `opencode` |
|
|
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.
|
|
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.
|
|
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.
|
|
16
|
+
"version": "0.1.11",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
},
|
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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)
|
|
331
|
+
if provider_id not in providers or not isinstance(entry, dict):
|
|
319
332
|
continue
|
|
320
|
-
|
|
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]:
|