agentpool-cli 0.1.0__tar.gz → 0.1.2__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 (121) hide show
  1. agentpool_cli-0.1.2/CHANGELOG.md +29 -0
  2. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/PKG-INFO +2 -2
  3. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/README.md +1 -1
  4. agentpool_cli-0.1.2/docs/quickstart.md +56 -0
  5. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/release.md +6 -1
  6. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/pyproject.toml +5 -1
  7. agentpool_cli-0.1.2/server.json +28 -0
  8. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/__init__.py +1 -1
  9. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/cli.py +9 -9
  10. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/mcp/resources.py +1 -1
  11. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/session_manager.py +2 -1
  12. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_onboarding.py +9 -1
  13. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/uv.lock +1 -1
  14. agentpool_cli-0.1.0/CHANGELOG.md +0 -10
  15. agentpool_cli-0.1.0/server.json +0 -12
  16. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.cursor/mcp.json.example +0 -0
  17. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.github/CODEOWNERS +0 -0
  18. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  19. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.github/ISSUE_TEMPLATE/provider_probe.md +0 -0
  20. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.github/dependabot.yml +0 -0
  21. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.github/workflows/ci.yml +0 -0
  22. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.github/workflows/release.yml +0 -0
  23. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.gitignore +0 -0
  24. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/.mcp.json.example +0 -0
  25. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/AGENTS.md +0 -0
  26. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/CONTRIBUTING.md +0 -0
  27. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/LICENSE +0 -0
  28. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/SECURITY.md +0 -0
  29. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/agent-cli-and-mcp.md +0 -0
  30. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/agentpool-skill.md +0 -0
  31. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/architecture.md +0 -0
  32. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/examples/README.md +0 -0
  33. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/examples.md +0 -0
  34. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/install.md +0 -0
  35. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/mcp-clients.md +0 -0
  36. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/mcp-tools.md +0 -0
  37. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/model-catalog.md +0 -0
  38. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/onboarding.md +0 -0
  39. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/provider-adapters.md +0 -0
  40. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/provider-lifecycle-matrix.md +0 -0
  41. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/security.md +0 -0
  42. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/setup-claude-code.md +0 -0
  43. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/setup-codex.md +0 -0
  44. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/setup-copilot.md +0 -0
  45. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/setup-cursor-cli.md +0 -0
  46. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/setup-cursor.md +0 -0
  47. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/setup-devin.md +0 -0
  48. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/setup-droid.md +0 -0
  49. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/stats.md +0 -0
  50. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/usage-detection.md +0 -0
  51. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/docs/usage-probe-matrix.md +0 -0
  52. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/scripts/install.sh +0 -0
  53. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/agent_io.py +0 -0
  54. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/artifacts.py +0 -0
  55. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/config.py +0 -0
  56. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/event_detection.py +0 -0
  57. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/__init__.py +0 -0
  58. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/__init__.py +0 -0
  59. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/fake_approval_agent.py +0 -0
  60. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/fake_common.py +0 -0
  61. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/fake_completed_agent.py +0 -0
  62. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/fake_idle_agent.py +0 -0
  63. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/fake_limit_agent.py +0 -0
  64. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/fake_patch_agent.py +0 -0
  65. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/fixtures/fake_agents/fake_question_agent.py +0 -0
  66. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/git_worktree.py +0 -0
  67. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/mcp/__init__.py +0 -0
  68. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/mcp/tools.py +0 -0
  69. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/mcp_server.py +0 -0
  70. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/models.py +0 -0
  71. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/onboarding.py +0 -0
  72. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/policy.py +0 -0
  73. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/provider_model_catalog.json +0 -0
  74. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/providers/__init__.py +0 -0
  75. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/providers/base.py +0 -0
  76. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/providers/registry.py +0 -0
  77. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/redaction.py +0 -0
  78. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/runtimes/__init__.py +0 -0
  79. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/runtimes/base.py +0 -0
  80. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/runtimes/tmux.py +0 -0
  81. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/stats/__init__.py +0 -0
  82. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/stats/card.py +0 -0
  83. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/stats/compute.py +0 -0
  84. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/stats/queries.py +0 -0
  85. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/stats/render.py +0 -0
  86. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/stats/window.py +0 -0
  87. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/store.py +0 -0
  88. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/__init__.py +0 -0
  89. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/_common.py +0 -0
  90. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/ccusage.py +0 -0
  91. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/claude.py +0 -0
  92. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/codex.py +0 -0
  93. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/codexbar.py +0 -0
  94. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/combine.py +0 -0
  95. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/copilot.py +0 -0
  96. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/devin.py +0 -0
  97. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/parsers.py +0 -0
  98. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/probes.py +0 -0
  99. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/provider_parsers.py +0 -0
  100. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/usage/summary.py +0 -0
  101. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/src/agentpool/utils.py +0 -0
  102. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/fixtures/provider_model_catalog_golden.json +0 -0
  103. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/fixtures/stats_seed.py +0 -0
  104. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/fixtures/usage/claude_usage.txt +0 -0
  105. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/fixtures/usage/codex_rate_limits.json +0 -0
  106. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/fixtures/usage/copilot_user.json +0 -0
  107. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/fixtures/usage/devin_plan_status.json +0 -0
  108. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/integration/test_fake_tmux_flow.py +0 -0
  109. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_agent_io.py +0 -0
  110. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_cli.py +0 -0
  111. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_event_policy.py +0 -0
  112. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_mcp_surface.py +0 -0
  113. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_mcp_tools.py +0 -0
  114. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_models_config_store.py +0 -0
  115. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_redaction.py +0 -0
  116. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_stats_cli.py +0 -0
  117. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_stats_mcp.py +0 -0
  118. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_stats_window.py +0 -0
  119. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_usage_probes.py +0 -0
  120. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_usage_provider_parsers.py +0 -0
  121. {agentpool_cli-0.1.0 → agentpool_cli-0.1.2}/tests/unit/test_usage_summary_enrichment.py +0 -0
@@ -0,0 +1,29 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ## 0.1.2 - 2026-05-29
6
+
7
+ - Fix MCP namespace casing to `io.github.sidduHERE/agentpool` in `server.json`
8
+ and the README `mcp-name` comment so it matches the GitHub-verified namespace
9
+ required by the MCP registry.
10
+
11
+ ## 0.1.1 - 2026-05-29
12
+
13
+ - Add command descriptions to `doctor`, `init`, `inventory`, `usage`,
14
+ `capacity-summary`, `setup`, `onboard`, `providers`, and `models` so `--help`
15
+ documents the full surface.
16
+ - `spawn` now returns a top-level `session_id` (mirroring the nested
17
+ `session.id`) so it matches `observe`/`send`/`collect`; `terminate` now
18
+ includes `session_id` alongside `ok`/`state`.
19
+ - `agentpool://quickstart` now serves a distinct quickstart guide instead of
20
+ aliasing `agentpool://skill.md`.
21
+ - Publish `agentpool-cli` to PyPI; add the PyPI package entry to `server.json`
22
+ for the MCP registry.
23
+
24
+ ## 0.1.0 - 2026-05-29
25
+
26
+ - First public release of AgentPool: local Python CLI, MCP server,
27
+ tmux-backed worker lifecycle, explicit provider/model selection, SQLite state,
28
+ packaged fake providers, conservative usage probes, agent-friendly CLI output,
29
+ lean MCP toolsets, redaction, session reconciliation, and worktree utilities.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentpool-cli
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Local MCP-exposed control plane for live coding-agent sessions.
5
5
  Author: AgentPool contributors
6
6
  License-Expression: MIT
@@ -20,7 +20,7 @@ Description-Content-Type: text/markdown
20
20
 
21
21
  # AgentPool
22
22
 
23
- <!-- mcp-name: io.github.sidduhere/agentpool -->
23
+ <!-- mcp-name: io.github.sidduHERE/agentpool -->
24
24
 
25
25
  AgentPool is a local Python CLI and MCP server for explicitly controlling coding-agent CLIs as worker sessions.
26
26
 
@@ -1,6 +1,6 @@
1
1
  # AgentPool
2
2
 
3
- <!-- mcp-name: io.github.sidduhere/agentpool -->
3
+ <!-- mcp-name: io.github.sidduHERE/agentpool -->
4
4
 
5
5
  AgentPool is a local Python CLI and MCP server for explicitly controlling coding-agent CLIs as worker sessions.
6
6
 
@@ -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`
@@ -106,7 +106,12 @@ Publish sequence:
106
106
 
107
107
  1. Publish `agentpool-cli` to PyPI with Trusted Publishing (the release job).
108
108
  2. Add the `packages` entry to `server.json`.
109
- 3. Keep the README metadata comment `mcp-name: io.github.sidduhere/agentpool`.
109
+ 3. Keep the README metadata comment `mcp-name: io.github.sidduHERE/agentpool`.
110
+ The namespace casing must match the GitHub username exactly (`sidduHERE`, not
111
+ `sidduhere`); the registry grants `io.github.<login>/*` with the login's
112
+ casing. The registry also validates that the README **published in the PyPI
113
+ package** contains this `mcp-name`, so any casing fix must ship in a PyPI
114
+ release *before* `mcp-publisher publish` points `packages[].version` at it.
110
115
  4. Publish [server.json](../server.json) with `mcp-publisher`.
111
116
  5. Keep Docker/remote MCP out of the primary path unless AgentPool stops needing
112
117
  local tmux and local provider CLIs.
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "agentpool-cli"
7
- version = "0.1.0"
7
+ version = "0.1.2"
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.2",
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.2",
17
+ "transport": {
18
+ "type": "stdio"
19
+ },
20
+ "packageArguments": [
21
+ {
22
+ "type": "positional",
23
+ "value": "mcp"
24
+ }
25
+ ]
26
+ }
27
+ ]
28
+ }
@@ -1,3 +1,3 @@
1
1
  """AgentPool local agent control plane."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.1.2"
@@ -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("agentpool-skill.md")
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
- assert "packages" not in payload
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:
@@ -3,7 +3,7 @@ requires-python = ">=3.11"
3
3
 
4
4
  [[package]]
5
5
  name = "agentpool-cli"
6
- version = "0.1.0"
6
+ version = "0.1.2"
7
7
  source = { editable = "." }
8
8
  dependencies = [
9
9
  { name = "mcp" },
@@ -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.
@@ -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