agentpool-cli 0.1.0__tar.gz → 0.1.1__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.1/CHANGELOG.md +23 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/PKG-INFO +1 -1
- agentpool_cli-0.1.1/docs/quickstart.md +56 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/pyproject.toml +5 -1
- agentpool_cli-0.1.1/server.json +28 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/__init__.py +1 -1
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/cli.py +9 -9
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/mcp/resources.py +1 -1
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/session_manager.py +2 -1
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_onboarding.py +9 -1
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/uv.lock +1 -1
- agentpool_cli-0.1.0/CHANGELOG.md +0 -10
- agentpool_cli-0.1.0/server.json +0 -12
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.cursor/mcp.json.example +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.github/CODEOWNERS +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.github/ISSUE_TEMPLATE/provider_probe.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.github/dependabot.yml +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.github/workflows/ci.yml +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.github/workflows/release.yml +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.gitignore +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/.mcp.json.example +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/AGENTS.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/CONTRIBUTING.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/LICENSE +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/README.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/SECURITY.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/agent-cli-and-mcp.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/agentpool-skill.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/architecture.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/examples/README.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/examples.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/install.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/mcp-clients.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/mcp-tools.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/model-catalog.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/onboarding.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/provider-adapters.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/provider-lifecycle-matrix.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/release.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/security.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/setup-claude-code.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/setup-codex.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/setup-copilot.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/setup-cursor-cli.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/setup-cursor.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/setup-devin.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/setup-droid.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/stats.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/usage-detection.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/docs/usage-probe-matrix.md +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/scripts/install.sh +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/agent_io.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/artifacts.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/config.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/event_detection.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/__init__.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/__init__.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_approval_agent.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_common.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_completed_agent.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_idle_agent.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_limit_agent.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_patch_agent.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_question_agent.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/git_worktree.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/mcp/__init__.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/mcp/tools.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/mcp_server.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/models.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/onboarding.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/policy.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/provider_model_catalog.json +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/providers/__init__.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/providers/base.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/providers/registry.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/redaction.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/runtimes/__init__.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/runtimes/base.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/runtimes/tmux.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/stats/__init__.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/stats/card.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/stats/compute.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/stats/queries.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/stats/render.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/stats/window.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/store.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/__init__.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/_common.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/ccusage.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/claude.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/codex.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/codexbar.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/combine.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/copilot.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/devin.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/parsers.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/probes.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/provider_parsers.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/usage/summary.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/utils.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/fixtures/provider_model_catalog_golden.json +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/fixtures/stats_seed.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/fixtures/usage/claude_usage.txt +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/fixtures/usage/codex_rate_limits.json +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/fixtures/usage/copilot_user.json +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/fixtures/usage/devin_plan_status.json +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/integration/test_fake_tmux_flow.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_agent_io.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_cli.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_event_policy.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_mcp_surface.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_mcp_tools.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_models_config_store.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_redaction.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_stats_cli.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_stats_mcp.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_stats_window.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_usage_probes.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_usage_provider_parsers.py +0 -0
- {agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/unit/test_usage_summary_enrichment.py +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 0.1.1 - 2026-05-29
|
|
6
|
+
|
|
7
|
+
- Add command descriptions to `doctor`, `init`, `inventory`, `usage`,
|
|
8
|
+
`capacity-summary`, `setup`, `onboard`, `providers`, and `models` so `--help`
|
|
9
|
+
documents the full surface.
|
|
10
|
+
- `spawn` now returns a top-level `session_id` (mirroring the nested
|
|
11
|
+
`session.id`) so it matches `observe`/`send`/`collect`; `terminate` now
|
|
12
|
+
includes `session_id` alongside `ok`/`state`.
|
|
13
|
+
- `agentpool://quickstart` now serves a distinct quickstart guide instead of
|
|
14
|
+
aliasing `agentpool://skill.md`.
|
|
15
|
+
- Publish `agentpool-cli` to PyPI; add the PyPI package entry to `server.json`
|
|
16
|
+
for the MCP registry.
|
|
17
|
+
|
|
18
|
+
## 0.1.0 - 2026-05-29
|
|
19
|
+
|
|
20
|
+
- First public release of AgentPool: local Python CLI, MCP server,
|
|
21
|
+
tmux-backed worker lifecycle, explicit provider/model selection, SQLite state,
|
|
22
|
+
packaged fake providers, conservative usage probes, agent-friendly CLI output,
|
|
23
|
+
lean MCP toolsets, redaction, session reconciliation, and worktree utilities.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# AgentPool Quickstart
|
|
2
|
+
|
|
3
|
+
The shortest path from install to a working worker. AgentPool is a local
|
|
4
|
+
control plane: you pick the provider and model explicitly; it never routes for
|
|
5
|
+
you.
|
|
6
|
+
|
|
7
|
+
## 1. Verify the environment
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
agentpool init
|
|
11
|
+
agentpool doctor --deep --privacy
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
`doctor` confirms `tmux`, SQLite, and the artifact root, and lists each
|
|
15
|
+
provider's install/auth state.
|
|
16
|
+
|
|
17
|
+
## 2. Smoke test without a real provider
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
agentpool smoke --provider fake-question --repo . --json
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
A packaged fake provider runs the full spawn -> question -> send -> complete
|
|
24
|
+
cycle. `"ok": true` means the control plane works end to end.
|
|
25
|
+
|
|
26
|
+
## 3. See live provider and usage state
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
agentpool inventory --json
|
|
30
|
+
agentpool usage-summary --json # add --refresh for live probes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 4. Run a real worker (explicit provider + isolation)
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
agentpool spawn --provider <provider-id> --repo . \
|
|
37
|
+
--task "Inspect this repo and ask one clarifying question." \
|
|
38
|
+
--isolation read_only --json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The result includes a top-level `session_id`. Drive it with:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
agentpool observe <session-id> --wait-for question,completed,error --timeout 120 --json
|
|
45
|
+
agentpool send <session-id> "Continue with the smallest useful check." --json
|
|
46
|
+
agentpool collect <session-id> --json
|
|
47
|
+
agentpool terminate <session-id> --json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Use `--isolation worktree` instead of `read_only` for tasks that edit files.
|
|
51
|
+
|
|
52
|
+
## Next
|
|
53
|
+
|
|
54
|
+
- Full agent guidance: `agentpool://skill.md`
|
|
55
|
+
- Setup and privacy detail: `agentpool://onboarding`
|
|
56
|
+
- MCP host config: `agentpool mcp-config --client <host> --absolute-command --install`
|
|
@@ -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.1"
|
|
8
8
|
description = "Local MCP-exposed control plane for live coding-agent sessions."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -31,6 +31,9 @@ dev = [
|
|
|
31
31
|
|
|
32
32
|
[project.scripts]
|
|
33
33
|
agentpool = "agentpool.cli:app"
|
|
34
|
+
# Alias matching the PyPI distribution name so `uvx agentpool-cli mcp` resolves
|
|
35
|
+
# (MCP registry runs the package by its identifier). Primary command stays `agentpool`.
|
|
36
|
+
agentpool-cli = "agentpool.cli:app"
|
|
34
37
|
|
|
35
38
|
[tool.pytest.ini_options]
|
|
36
39
|
testpaths = ["tests"]
|
|
@@ -51,3 +54,4 @@ include = [
|
|
|
51
54
|
[tool.hatch.build.targets.wheel.force-include]
|
|
52
55
|
"docs/agentpool-skill.md" = "agentpool/docs/agentpool-skill.md"
|
|
53
56
|
"docs/onboarding.md" = "agentpool/docs/onboarding.md"
|
|
57
|
+
"docs/quickstart.md" = "agentpool/docs/quickstart.md"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.sidduhere/agentpool",
|
|
4
|
+
"title": "AgentPool",
|
|
5
|
+
"description": "Local MCP control plane for coding-agent inventory, usage, spawn, and observe.",
|
|
6
|
+
"version": "0.1.1",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "https://github.com/sidduHERE/agentpool",
|
|
9
|
+
"source": "github"
|
|
10
|
+
},
|
|
11
|
+
"websiteUrl": "https://github.com/sidduHERE/agentpool",
|
|
12
|
+
"packages": [
|
|
13
|
+
{
|
|
14
|
+
"registryType": "pypi",
|
|
15
|
+
"identifier": "agentpool-cli",
|
|
16
|
+
"version": "0.1.1",
|
|
17
|
+
"transport": {
|
|
18
|
+
"type": "stdio"
|
|
19
|
+
},
|
|
20
|
+
"packageArguments": [
|
|
21
|
+
{
|
|
22
|
+
"type": "positional",
|
|
23
|
+
"value": "mcp"
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -119,7 +119,7 @@ def _next_command_for_error(exc: ToolError) -> str | None:
|
|
|
119
119
|
return None
|
|
120
120
|
|
|
121
121
|
|
|
122
|
-
@app.command()
|
|
122
|
+
@app.command(help="Check environment, runtime, and provider health.")
|
|
123
123
|
def doctor(
|
|
124
124
|
json_output: Annotated[bool, typer.Option("--json", help="Emit JSON.")] = False,
|
|
125
125
|
deep: Annotated[bool, typer.Option("--deep", help="Run tmux/sqlite/artifact/cache checks.")] = False,
|
|
@@ -179,7 +179,7 @@ def doctor(
|
|
|
179
179
|
console.print(f" {command}")
|
|
180
180
|
|
|
181
181
|
|
|
182
|
-
@app.command("init")
|
|
182
|
+
@app.command("init", help="Initialize AgentPool config and local state.")
|
|
183
183
|
def init_command(
|
|
184
184
|
path: Annotated[Path, typer.Option("--path", help="Config path to initialize.")] = DEFAULT_CONFIG_PATH,
|
|
185
185
|
force: Annotated[bool, typer.Option("--force", help="Back up and overwrite existing config.")] = False,
|
|
@@ -248,7 +248,7 @@ def mcp_config(
|
|
|
248
248
|
console.print_json(json.dumps(data["config"]))
|
|
249
249
|
|
|
250
250
|
|
|
251
|
-
@app.command()
|
|
251
|
+
@app.command(help="List providers with install, auth, model, and usage state.")
|
|
252
252
|
def inventory(json_output: Annotated[bool, typer.Option("--json", help="Emit JSON.")] = False) -> None:
|
|
253
253
|
data = manager().inventory(include_usage=True)
|
|
254
254
|
if json_output:
|
|
@@ -266,7 +266,7 @@ def inventory(json_output: Annotated[bool, typer.Option("--json", help="Emit JSO
|
|
|
266
266
|
console.print(table)
|
|
267
267
|
|
|
268
268
|
|
|
269
|
-
@app.command()
|
|
269
|
+
@app.command(help="Show a provider usage snapshot (cached or freshly probed).")
|
|
270
270
|
def usage(
|
|
271
271
|
provider: Annotated[str | None, typer.Option("--provider", help="Provider id.")] = None,
|
|
272
272
|
backend: Annotated[
|
|
@@ -320,7 +320,7 @@ def usage_summary(
|
|
|
320
320
|
handle_tool_error(exc, json_output)
|
|
321
321
|
|
|
322
322
|
|
|
323
|
-
@app.command("capacity-summary")
|
|
323
|
+
@app.command("capacity-summary", help="Alias of usage-summary (human convenience).")
|
|
324
324
|
def capacity_summary(
|
|
325
325
|
provider: Annotated[str | None, typer.Option("--provider", help="Provider id.")] = None,
|
|
326
326
|
refresh: Annotated[bool, typer.Option("--refresh", help="Run live probes before summarizing.")] = False,
|
|
@@ -333,7 +333,7 @@ def capacity_summary(
|
|
|
333
333
|
usage_summary(provider=provider, refresh=refresh, backend=backend, json_output=json_output)
|
|
334
334
|
|
|
335
335
|
|
|
336
|
-
@app.command("setup")
|
|
336
|
+
@app.command("setup", help="Wire AgentPool into an MCP host or provider and report next steps.")
|
|
337
337
|
def setup_command(
|
|
338
338
|
target: Annotated[
|
|
339
339
|
str,
|
|
@@ -434,7 +434,7 @@ def setup_command(
|
|
|
434
434
|
raise typer.Exit(1)
|
|
435
435
|
|
|
436
436
|
|
|
437
|
-
@app.command()
|
|
437
|
+
@app.command(help="Print onboarding paths, first commands, and MCP host config.")
|
|
438
438
|
def onboard(json_output: Annotated[bool, typer.Option("--json", help="Emit JSON.")] = False) -> None:
|
|
439
439
|
mgr = manager()
|
|
440
440
|
data = {
|
|
@@ -538,7 +538,7 @@ def smoke(
|
|
|
538
538
|
handle_tool_error(exc, json_output)
|
|
539
539
|
|
|
540
540
|
|
|
541
|
-
@app.command()
|
|
541
|
+
@app.command(help="List configured provider ids.")
|
|
542
542
|
def providers(json_output: Annotated[bool, typer.Option("--json", help="Emit JSON.")] = False) -> None:
|
|
543
543
|
data = manager().inventory(include_usage=False)
|
|
544
544
|
if json_output:
|
|
@@ -548,7 +548,7 @@ def providers(json_output: Annotated[bool, typer.Option("--json", help="Emit JSO
|
|
|
548
548
|
console.print(provider["id"])
|
|
549
549
|
|
|
550
550
|
|
|
551
|
-
@app.command("models")
|
|
551
|
+
@app.command("models", help="List the model catalog, or validate it with 'models validate'.")
|
|
552
552
|
def models_command(
|
|
553
553
|
action: Annotated[
|
|
554
554
|
str | None,
|
|
@@ -13,7 +13,7 @@ PROJECT_ROOT = Path(__file__).resolve().parents[3]
|
|
|
13
13
|
|
|
14
14
|
def read_resource(manager: SessionManager, uri: str, lockdown: bool = False) -> str:
|
|
15
15
|
if uri == "agentpool://quickstart":
|
|
16
|
-
return _text_resource("
|
|
16
|
+
return _text_resource("quickstart.md")
|
|
17
17
|
if uri == "agentpool://onboarding":
|
|
18
18
|
return _text_resource("onboarding.md")
|
|
19
19
|
if uri == "agentpool://skill.md":
|
|
@@ -323,6 +323,7 @@ class SessionManager:
|
|
|
323
323
|
self.store.save_session(session)
|
|
324
324
|
self._event(session, "send_initial_prompt", state=session.state.value)
|
|
325
325
|
return {
|
|
326
|
+
"session_id": session.id,
|
|
326
327
|
"session": session.model_dump(mode="json"),
|
|
327
328
|
"attach_command": self.runtime.attach_command(ref),
|
|
328
329
|
"live_control": {
|
|
@@ -703,7 +704,7 @@ class SessionManager:
|
|
|
703
704
|
final_state = state if not active_state(state) else SessionState.CANCELLED
|
|
704
705
|
self.store.update_session_state(session_id, final_state, ended_at=utc_now_iso())
|
|
705
706
|
self._event(session, "terminate", state=final_state.value, metadata={"reason": reason})
|
|
706
|
-
return {"ok": True, "state": final_state.value}
|
|
707
|
+
return {"session_id": session_id, "ok": True, "state": final_state.value}
|
|
707
708
|
|
|
708
709
|
def reconcile_sessions(self) -> dict[str, Any]:
|
|
709
710
|
reconciled = []
|
|
@@ -291,7 +291,15 @@ def test_server_json_matches_package_version() -> None:
|
|
|
291
291
|
from agentpool import __version__
|
|
292
292
|
|
|
293
293
|
assert payload["version"] == __version__
|
|
294
|
-
|
|
294
|
+
# Now that agentpool-cli is on PyPI, server.json advertises the package.
|
|
295
|
+
packages = payload["packages"]
|
|
296
|
+
assert len(packages) == 1
|
|
297
|
+
pkg = packages[0]
|
|
298
|
+
assert pkg["registryType"] == "pypi"
|
|
299
|
+
assert pkg["identifier"] == "agentpool-cli"
|
|
300
|
+
assert pkg["version"] == __version__
|
|
301
|
+
assert pkg["transport"]["type"] == "stdio"
|
|
302
|
+
assert pkg["packageArguments"] == [{"type": "positional", "value": "mcp"}]
|
|
295
303
|
|
|
296
304
|
|
|
297
305
|
def test_setup_provider_codex_reports_checks_and_mcp_config() -> None:
|
agentpool_cli-0.1.0/CHANGELOG.md
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## Unreleased
|
|
4
|
-
|
|
5
|
-
## 0.1.0 - 2026-05-29
|
|
6
|
-
|
|
7
|
-
- First public release of AgentPool: local Python CLI, MCP server,
|
|
8
|
-
tmux-backed worker lifecycle, explicit provider/model selection, SQLite state,
|
|
9
|
-
packaged fake providers, conservative usage probes, agent-friendly CLI output,
|
|
10
|
-
lean MCP toolsets, redaction, session reconciliation, and worktree utilities.
|
agentpool_cli-0.1.0/server.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
-
"name": "io.github.sidduhere/agentpool",
|
|
4
|
-
"title": "AgentPool",
|
|
5
|
-
"description": "Local MCP control plane for coding-agent inventory, usage, spawn, and observe.",
|
|
6
|
-
"version": "0.1.0",
|
|
7
|
-
"repository": {
|
|
8
|
-
"url": "https://github.com/sidduHERE/agentpool",
|
|
9
|
-
"source": "github"
|
|
10
|
-
},
|
|
11
|
-
"websiteUrl": "https://github.com/sidduHERE/agentpool"
|
|
12
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_common.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_idle_agent.py
RENAMED
|
File without changes
|
{agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_limit_agent.py
RENAMED
|
File without changes
|
{agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/src/agentpool/fixtures/fake_agents/fake_patch_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentpool_cli-0.1.0 → agentpool_cli-0.1.1}/tests/fixtures/provider_model_catalog_golden.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|