agentpack-cli 0.3.12__tar.gz → 0.3.14__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.
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/PKG-INFO +95 -9
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/README.md +92 -6
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/pyproject.toml +3 -3
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/__init__.py +1 -1
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/dependency_graph.py +11 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/application/pack_service.py +259 -11
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/cli.py +2 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/benchmark.py +618 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/dev_check.py +14 -1
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/init.py +18 -0
- agentpack_cli-0.3.14/src/agentpack/commands/learn.py +179 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/pack.py +13 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/release_check.py +16 -1
- agentpack_cli-0.3.14/src/agentpack/core/changed_paths.py +46 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/config.py +62 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/context_pack.py +158 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/git.py +84 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/models.py +16 -0
- agentpack_cli-0.3.14/src/agentpack/core/scanner.py +334 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/snapshot.py +5 -2
- agentpack_cli-0.3.14/src/agentpack/learning/__init__.py +25 -0
- agentpack_cli-0.3.14/src/agentpack/learning/collector.py +64 -0
- agentpack_cli-0.3.14/src/agentpack/learning/extractor.py +261 -0
- agentpack_cli-0.3.14/src/agentpack/learning/feedback.py +171 -0
- agentpack_cli-0.3.14/src/agentpack/learning/lesson_ranker.py +39 -0
- agentpack_cli-0.3.14/src/agentpack/learning/models.py +99 -0
- agentpack_cli-0.3.14/src/agentpack/learning/provider.py +52 -0
- agentpack_cli-0.3.14/src/agentpack/learning/quality.py +47 -0
- agentpack_cli-0.3.14/src/agentpack/learning/renderers.py +235 -0
- agentpack_cli-0.3.14/src/agentpack/learning/skill_map.py +142 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/renderers/markdown.py +70 -1
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/summaries/base.py +41 -13
- agentpack_cli-0.3.12/src/agentpack/core/scanner.py +0 -204
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/.gitignore +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/LICENSE +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/antigravity.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/base.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/claude.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/codex.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/cursor.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/detect.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/generic.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/adapters/windsurf.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/go_imports.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/java_imports.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/js_ts_imports.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/monorepo.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/naming_signals.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/python_imports.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/ranking.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/repo_map.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/role_inference.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/rust_imports.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/symbols.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/task_classifier.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/analysis/tests.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/application/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/_shared.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/ci_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/claude_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/diagnose_selection.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/diff.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/doctor.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/eval_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/explain.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/guard.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/hook_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/ignore_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/install.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/mcp_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/migrate.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/monitor.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/next_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/quickstart.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/release_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/repair.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/route.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/scan.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/skills.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/start_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/state_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/stats.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/status.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/summarize.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/task_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/threads.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/tune.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/verify_wheel.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/watch.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/commands/workflow_cmd.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/bootstrap.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/cache.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/diff.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/evals.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/execution_state.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/git_hooks.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/global_install.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/ignore.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/merkle.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/redactor.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/task_freshness.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/thread_context.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/token_estimator.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/core/vscode_tasks.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/data/agentpack.md +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/installers/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/installers/antigravity.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/installers/claude.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/installers/codex.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/installers/cursor.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/installers/windsurf.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/integrations/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/integrations/agents.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/integrations/git_hooks.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/integrations/global_install.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/integrations/platform.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/integrations/vscode_tasks.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/mcp_server.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/renderers/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/renderers/compact.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/renderers/receipts.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/router/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/router/discovery.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/router/models.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/router/parser.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/router/prompt_builder.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/router/scoring.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/router/service.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/session/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/session/state.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/summaries/__init__.py +0 -0
- {agentpack_cli-0.3.12 → agentpack_cli-0.3.14}/src/agentpack/summaries/offline.py +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentpack-cli
|
|
3
|
-
Version: 0.3.
|
|
4
|
-
Summary: Local context
|
|
3
|
+
Version: 0.3.14
|
|
4
|
+
Summary: Local MCP context router for Claude Code, Codex, Cursor, and AI coding agents.
|
|
5
5
|
License: MIT
|
|
6
6
|
License-File: LICENSE
|
|
7
|
-
Keywords: ai,ai-coding-agents,antigravity,ci,codex,context,context-engine,context-packing,cursor,developer-tools,llm,mcp,packing,prompt-context,repo-analysis,windsurf
|
|
7
|
+
Keywords: ai,ai-agent,ai-coding-agents,antigravity,ci,claude-code,codex,coding-agent,context,context-engine,context-packing,context-router,cursor,developer-tools,llm,mcp,mcp-context-engine,packing,prompt-context,reduce-token-usage,repo-analysis,repo-context,windsurf
|
|
8
8
|
Classifier: Development Status :: 3 - Alpha
|
|
9
9
|
Classifier: Intended Audience :: Developers
|
|
10
10
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -47,15 +47,60 @@ Description-Content-Type: text/markdown
|
|
|
47
47
|
[](https://opensource.org/licenses/MIT)
|
|
48
48
|
[](https://github.com/vishal2612200/agentpack/actions/workflows/ci.yml)
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
**Local MCP context router for AI coding agents.**
|
|
51
|
+
|
|
52
|
+
Claude Code, Codex, Cursor, and other coding agents can waste tool calls rediscovering your repo before they make the edit you asked for.
|
|
53
|
+
|
|
54
|
+
AgentPack gives them a ranked map of likely relevant files, tests, rules, and skills for each task. It analyzes your repo locally and packages compact context for CLI and MCP workflows.
|
|
55
|
+
|
|
56
|
+
No cloud indexing. No embeddings required. No API calls for scan, summarize, rank, pack, stats, or benchmark. AgentPack is a context preparation tool, not a coding agent.
|
|
57
|
+
|
|
58
|
+
Try the read-only task router without writing context files:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pipx run --spec agentpack-cli agentpack route --task "fix auth token expiry"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+

|
|
65
|
+
|
|
66
|
+
> **Status: alpha (v0.3.14).** Works, tested, and used in real sessions. Python and JavaScript/TypeScript are the best-supported languages. Current benchmarks are useful regression checks, not broad proof that AgentPack improves coding-agent success. API may change before 1.0.
|
|
51
67
|
>
|
|
52
68
|
> **Platform note:** macOS, Linux, and Windows are supported. Windows support targets PowerShell plus Git for Windows. `cmd.exe` and bare Git setups are not a supported path yet.
|
|
69
|
+
>
|
|
70
|
+
> **Name note:** PyPI package is `agentpack-cli`, npm package is `@vishal2612200/agentpack`, and the command is `agentpack`. This project is unrelated to AgentPack dataset papers or other repos with the same name.
|
|
71
|
+
|
|
72
|
+
## Before vs After
|
|
73
|
+
|
|
74
|
+
Without AgentPack, a cold coding-agent session often starts with manual repo orientation:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
Task: fix auth token expiry
|
|
78
|
+
|
|
79
|
+
Agent:
|
|
80
|
+
- searches for auth files
|
|
81
|
+
- opens nearby middleware and config
|
|
82
|
+
- may miss related tests
|
|
83
|
+
- spends early turns building a repo map
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
With AgentPack:
|
|
53
87
|
|
|
54
|
-
|
|
88
|
+
```bash
|
|
89
|
+
agentpack route --task "fix auth token expiry"
|
|
90
|
+
```
|
|
55
91
|
|
|
56
|
-
|
|
92
|
+
```text
|
|
93
|
+
Task:
|
|
94
|
+
fix auth token expiry
|
|
57
95
|
|
|
58
|
-
|
|
96
|
+
Relevant files:
|
|
97
|
+
- tests/test_auth.py
|
|
98
|
+
- src/app/auth.py
|
|
99
|
+
- src/app/users.py
|
|
100
|
+
|
|
101
|
+
Suggested commands:
|
|
102
|
+
- pytest tests/test_auth.py -q
|
|
103
|
+
```
|
|
59
104
|
|
|
60
105
|
## Features
|
|
61
106
|
|
|
@@ -66,6 +111,7 @@ Use AgentPack when a repo is too large to paste and you want faster, more consis
|
|
|
66
111
|
- **Execution state**: optional task state files and git-derived fallback status show whether work is planned, in progress, blocked, done, committed, or committed but not pushed.
|
|
67
112
|
- **Thread-scoped context**: explicit `--thread <id>` or `--thread auto` isolates task/context files for multiple agents in one repo and warns on same-branch file overlap.
|
|
68
113
|
- **Task router**: MCP and CLI surfaces route a task to relevant files, scoped rules, installed skills, suggested commands, and safety warnings without executing skills automatically.
|
|
114
|
+
- **Learning layer**: turns task diffs into developer learning notes, skill evidence, and compact lessons future agents can reuse.
|
|
69
115
|
- **Agent integrations**: installs Claude Code, Cursor, Windsurf, Codex, Antigravity, VS Code tasks, git hooks, and MCP configuration.
|
|
70
116
|
- **Local and measurable**: no API calls for scan, summarize, rank, pack, stats, or benchmark; quality is measured with expected-file evals.
|
|
71
117
|
|
|
@@ -82,6 +128,17 @@ Latest public release gate: 8 real commits from Pallets Click, ItsDangerous, and
|
|
|
82
128
|
|
|
83
129
|
Full table: [`benchmarks/results/2026-05-27-public.md`](benchmarks/results/2026-05-27-public.md). This is public smoke proof, not a claim of universal ranking quality; expand cases for your own repo with `agentpack benchmark capture`.
|
|
84
130
|
|
|
131
|
+
## Use Cases
|
|
132
|
+
|
|
133
|
+
- [Claude Code context engine](docs/claude-code-context-engine.md)
|
|
134
|
+
- [MCP context engine](docs/mcp-context-engine.md)
|
|
135
|
+
- [Cursor context packing](docs/cursor-context-packing.md)
|
|
136
|
+
- [AI coding agent context packing](docs/ai-coding-agent-context.md)
|
|
137
|
+
- [Reduce Claude Code token usage](docs/reduce-claude-code-token-usage.md)
|
|
138
|
+
- [AgentPack vs Repomix](docs/agentpack-vs-repomix.md)
|
|
139
|
+
- [AgentPack vs Augment Context Engine](docs/agentpack-vs-augment-context-engine.md)
|
|
140
|
+
- [Docs index](docs/index.md)
|
|
141
|
+
|
|
85
142
|
## Install
|
|
86
143
|
|
|
87
144
|
```bash
|
|
@@ -138,6 +195,27 @@ agentpack finish --since main
|
|
|
138
195
|
|
|
139
196
|
Use `agentpack quickstart --task "..." --write` when you want AgentPack to print the next commands and write the task file for you. Use `agentpack start "..." --pack-only` when you want only a fresh pack and not the guard path.
|
|
140
197
|
|
|
198
|
+
### Learn from AI-assisted work
|
|
199
|
+
|
|
200
|
+
Generate local post-task learning artifacts from `.agentpack/task.md` and git changes:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
agentpack learn
|
|
204
|
+
agentpack learn --today
|
|
205
|
+
agentpack learn --since main
|
|
206
|
+
agentpack learn --json
|
|
207
|
+
agentpack learn --llm-prompt --pr-comment
|
|
208
|
+
agentpack learn --provider-preview
|
|
209
|
+
agentpack learn --provider-command "python scripts/learn_provider.py"
|
|
210
|
+
agentpack learn --dashboard --team-export
|
|
211
|
+
agentpack learn --skills
|
|
212
|
+
agentpack learn --drills
|
|
213
|
+
agentpack learn --ci
|
|
214
|
+
agentpack learn --feedback helpful --feedback-target "skill:CLI design" --feedback-note "Useful review prompts"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
AgentPack writes developer notes to `.agentpack/learning.md` or `.agentpack/daily-summary.md`, updates a local skill memory in `.agentpack/skills-progress.json`, writes ranked `.agentpack/agent-lessons.md` for future coding agents, and can emit `.agentpack/learning.prompt.md`, `.agentpack/pr-learning-comment.md`, `.agentpack/learning-dashboard.html`, or `.agentpack/team-lessons.md`. Learn is local-first by default: `--provider-preview` shows the bounded payload for optional external refinement without making a network call, `--provider-command` runs only the local command you provide, and feedback stays in `.agentpack/learning-feedback.jsonl`.
|
|
218
|
+
|
|
141
219
|
## Agent Setup
|
|
142
220
|
|
|
143
221
|
AgentPack can install repo-local instructions and hooks for the coding agent you use. The installer is idempotent and merges with existing config where possible.
|
|
@@ -247,6 +325,7 @@ gate.
|
|
|
247
325
|
| `agentpack work "task"` | Initialize if needed, start task, refresh context, show next steps |
|
|
248
326
|
| `agentpack start "task"` | Write task and run the guard/refresh workflow |
|
|
249
327
|
| `agentpack finish --since main` | Diagnose, capture benchmark case, run checks, mark done |
|
|
328
|
+
| `agentpack learn` | Generate developer learning notes, skill memory, feedback-aware drills, and future-agent lessons |
|
|
250
329
|
| `agentpack task show|set|clear` | Manage global or thread-scoped task files |
|
|
251
330
|
| `agentpack pack` | Generate a ranked context pack for `.agentpack/task.md` |
|
|
252
331
|
| `agentpack next --fix-all-safe` | Ask AgentPack what command or safe repair should happen next |
|
|
@@ -294,7 +373,7 @@ AGENTPACK_THREAD_ID=codex-local make context-thread
|
|
|
294
373
|
|
|
295
374
|
## Benchmark Proof
|
|
296
375
|
|
|
297
|
-
AgentPack is best treated as a ranked starting map. It
|
|
376
|
+
AgentPack is best treated as a ranked starting map. It can reduce repeated orientation work, but the agent and reviewer still own correctness.
|
|
298
377
|
|
|
299
378
|
Use real repo evals instead of trusting compression numbers:
|
|
300
379
|
|
|
@@ -302,7 +381,7 @@ Use real repo evals instead of trusting compression numbers:
|
|
|
302
381
|
agentpack benchmark --release-gate
|
|
303
382
|
```
|
|
304
383
|
|
|
305
|
-
Current
|
|
384
|
+
Current benchmark evidence is documented in [`benchmarks/README.md`](benchmarks/README.md) and the generated tables under `benchmarks/results/`. Treat these as scoped evidence for the included cases, not a universal performance claim.
|
|
306
385
|
|
|
307
386
|
## What A Pack Contains
|
|
308
387
|
|
|
@@ -329,6 +408,13 @@ AgentPack writes local artifacts under `.agentpack/`:
|
|
|
329
408
|
| `.agentpack/task_state.md` | optional global execution state |
|
|
330
409
|
| `.agentpack/context.md` | generic/Codex/Cursor/Windsurf fallback context |
|
|
331
410
|
| `.agentpack/context.claude.md` | Claude-flavored fallback context |
|
|
411
|
+
| `.agentpack/learning.md` | local post-task developer learning notes |
|
|
412
|
+
| `.agentpack/daily-summary.md` | local daily learning rollup from `agentpack learn --today` |
|
|
413
|
+
| `.agentpack/skills-progress.json` | local skill evidence map from task work |
|
|
414
|
+
| `.agentpack/agent-lessons.md` | compact repo-specific lessons injected into future packs |
|
|
415
|
+
| `.agentpack/learning.prompt.md` | optional source-backed prompt for external LLM refinement |
|
|
416
|
+
| `.agentpack/pr-learning-comment.md` | optional PR-comment-ready learning summary |
|
|
417
|
+
| `.agentpack/learning-feedback.jsonl` | optional local helpful/not-helpful feedback records |
|
|
332
418
|
| `.agentpack/pack_metadata.json` | freshness and pack metadata |
|
|
333
419
|
| `.agentpack/cache/` | offline file summaries keyed by hash |
|
|
334
420
|
| `.agentpack/snapshots/` | repo snapshot hashes |
|
|
@@ -8,15 +8,60 @@
|
|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
9
9
|
[](https://github.com/vishal2612200/agentpack/actions/workflows/ci.yml)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**Local MCP context router for AI coding agents.**
|
|
12
|
+
|
|
13
|
+
Claude Code, Codex, Cursor, and other coding agents can waste tool calls rediscovering your repo before they make the edit you asked for.
|
|
14
|
+
|
|
15
|
+
AgentPack gives them a ranked map of likely relevant files, tests, rules, and skills for each task. It analyzes your repo locally and packages compact context for CLI and MCP workflows.
|
|
16
|
+
|
|
17
|
+
No cloud indexing. No embeddings required. No API calls for scan, summarize, rank, pack, stats, or benchmark. AgentPack is a context preparation tool, not a coding agent.
|
|
18
|
+
|
|
19
|
+
Try the read-only task router without writing context files:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pipx run --spec agentpack-cli agentpack route --task "fix auth token expiry"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+

|
|
26
|
+
|
|
27
|
+
> **Status: alpha (v0.3.14).** Works, tested, and used in real sessions. Python and JavaScript/TypeScript are the best-supported languages. Current benchmarks are useful regression checks, not broad proof that AgentPack improves coding-agent success. API may change before 1.0.
|
|
12
28
|
>
|
|
13
29
|
> **Platform note:** macOS, Linux, and Windows are supported. Windows support targets PowerShell plus Git for Windows. `cmd.exe` and bare Git setups are not a supported path yet.
|
|
30
|
+
>
|
|
31
|
+
> **Name note:** PyPI package is `agentpack-cli`, npm package is `@vishal2612200/agentpack`, and the command is `agentpack`. This project is unrelated to AgentPack dataset papers or other repos with the same name.
|
|
32
|
+
|
|
33
|
+
## Before vs After
|
|
34
|
+
|
|
35
|
+
Without AgentPack, a cold coding-agent session often starts with manual repo orientation:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
Task: fix auth token expiry
|
|
39
|
+
|
|
40
|
+
Agent:
|
|
41
|
+
- searches for auth files
|
|
42
|
+
- opens nearby middleware and config
|
|
43
|
+
- may miss related tests
|
|
44
|
+
- spends early turns building a repo map
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
With AgentPack:
|
|
14
48
|
|
|
15
|
-
|
|
49
|
+
```bash
|
|
50
|
+
agentpack route --task "fix auth token expiry"
|
|
51
|
+
```
|
|
16
52
|
|
|
17
|
-
|
|
53
|
+
```text
|
|
54
|
+
Task:
|
|
55
|
+
fix auth token expiry
|
|
18
56
|
|
|
19
|
-
|
|
57
|
+
Relevant files:
|
|
58
|
+
- tests/test_auth.py
|
|
59
|
+
- src/app/auth.py
|
|
60
|
+
- src/app/users.py
|
|
61
|
+
|
|
62
|
+
Suggested commands:
|
|
63
|
+
- pytest tests/test_auth.py -q
|
|
64
|
+
```
|
|
20
65
|
|
|
21
66
|
## Features
|
|
22
67
|
|
|
@@ -27,6 +72,7 @@ Use AgentPack when a repo is too large to paste and you want faster, more consis
|
|
|
27
72
|
- **Execution state**: optional task state files and git-derived fallback status show whether work is planned, in progress, blocked, done, committed, or committed but not pushed.
|
|
28
73
|
- **Thread-scoped context**: explicit `--thread <id>` or `--thread auto` isolates task/context files for multiple agents in one repo and warns on same-branch file overlap.
|
|
29
74
|
- **Task router**: MCP and CLI surfaces route a task to relevant files, scoped rules, installed skills, suggested commands, and safety warnings without executing skills automatically.
|
|
75
|
+
- **Learning layer**: turns task diffs into developer learning notes, skill evidence, and compact lessons future agents can reuse.
|
|
30
76
|
- **Agent integrations**: installs Claude Code, Cursor, Windsurf, Codex, Antigravity, VS Code tasks, git hooks, and MCP configuration.
|
|
31
77
|
- **Local and measurable**: no API calls for scan, summarize, rank, pack, stats, or benchmark; quality is measured with expected-file evals.
|
|
32
78
|
|
|
@@ -43,6 +89,17 @@ Latest public release gate: 8 real commits from Pallets Click, ItsDangerous, and
|
|
|
43
89
|
|
|
44
90
|
Full table: [`benchmarks/results/2026-05-27-public.md`](benchmarks/results/2026-05-27-public.md). This is public smoke proof, not a claim of universal ranking quality; expand cases for your own repo with `agentpack benchmark capture`.
|
|
45
91
|
|
|
92
|
+
## Use Cases
|
|
93
|
+
|
|
94
|
+
- [Claude Code context engine](docs/claude-code-context-engine.md)
|
|
95
|
+
- [MCP context engine](docs/mcp-context-engine.md)
|
|
96
|
+
- [Cursor context packing](docs/cursor-context-packing.md)
|
|
97
|
+
- [AI coding agent context packing](docs/ai-coding-agent-context.md)
|
|
98
|
+
- [Reduce Claude Code token usage](docs/reduce-claude-code-token-usage.md)
|
|
99
|
+
- [AgentPack vs Repomix](docs/agentpack-vs-repomix.md)
|
|
100
|
+
- [AgentPack vs Augment Context Engine](docs/agentpack-vs-augment-context-engine.md)
|
|
101
|
+
- [Docs index](docs/index.md)
|
|
102
|
+
|
|
46
103
|
## Install
|
|
47
104
|
|
|
48
105
|
```bash
|
|
@@ -99,6 +156,27 @@ agentpack finish --since main
|
|
|
99
156
|
|
|
100
157
|
Use `agentpack quickstart --task "..." --write` when you want AgentPack to print the next commands and write the task file for you. Use `agentpack start "..." --pack-only` when you want only a fresh pack and not the guard path.
|
|
101
158
|
|
|
159
|
+
### Learn from AI-assisted work
|
|
160
|
+
|
|
161
|
+
Generate local post-task learning artifacts from `.agentpack/task.md` and git changes:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
agentpack learn
|
|
165
|
+
agentpack learn --today
|
|
166
|
+
agentpack learn --since main
|
|
167
|
+
agentpack learn --json
|
|
168
|
+
agentpack learn --llm-prompt --pr-comment
|
|
169
|
+
agentpack learn --provider-preview
|
|
170
|
+
agentpack learn --provider-command "python scripts/learn_provider.py"
|
|
171
|
+
agentpack learn --dashboard --team-export
|
|
172
|
+
agentpack learn --skills
|
|
173
|
+
agentpack learn --drills
|
|
174
|
+
agentpack learn --ci
|
|
175
|
+
agentpack learn --feedback helpful --feedback-target "skill:CLI design" --feedback-note "Useful review prompts"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
AgentPack writes developer notes to `.agentpack/learning.md` or `.agentpack/daily-summary.md`, updates a local skill memory in `.agentpack/skills-progress.json`, writes ranked `.agentpack/agent-lessons.md` for future coding agents, and can emit `.agentpack/learning.prompt.md`, `.agentpack/pr-learning-comment.md`, `.agentpack/learning-dashboard.html`, or `.agentpack/team-lessons.md`. Learn is local-first by default: `--provider-preview` shows the bounded payload for optional external refinement without making a network call, `--provider-command` runs only the local command you provide, and feedback stays in `.agentpack/learning-feedback.jsonl`.
|
|
179
|
+
|
|
102
180
|
## Agent Setup
|
|
103
181
|
|
|
104
182
|
AgentPack can install repo-local instructions and hooks for the coding agent you use. The installer is idempotent and merges with existing config where possible.
|
|
@@ -208,6 +286,7 @@ gate.
|
|
|
208
286
|
| `agentpack work "task"` | Initialize if needed, start task, refresh context, show next steps |
|
|
209
287
|
| `agentpack start "task"` | Write task and run the guard/refresh workflow |
|
|
210
288
|
| `agentpack finish --since main` | Diagnose, capture benchmark case, run checks, mark done |
|
|
289
|
+
| `agentpack learn` | Generate developer learning notes, skill memory, feedback-aware drills, and future-agent lessons |
|
|
211
290
|
| `agentpack task show|set|clear` | Manage global or thread-scoped task files |
|
|
212
291
|
| `agentpack pack` | Generate a ranked context pack for `.agentpack/task.md` |
|
|
213
292
|
| `agentpack next --fix-all-safe` | Ask AgentPack what command or safe repair should happen next |
|
|
@@ -255,7 +334,7 @@ AGENTPACK_THREAD_ID=codex-local make context-thread
|
|
|
255
334
|
|
|
256
335
|
## Benchmark Proof
|
|
257
336
|
|
|
258
|
-
AgentPack is best treated as a ranked starting map. It
|
|
337
|
+
AgentPack is best treated as a ranked starting map. It can reduce repeated orientation work, but the agent and reviewer still own correctness.
|
|
259
338
|
|
|
260
339
|
Use real repo evals instead of trusting compression numbers:
|
|
261
340
|
|
|
@@ -263,7 +342,7 @@ Use real repo evals instead of trusting compression numbers:
|
|
|
263
342
|
agentpack benchmark --release-gate
|
|
264
343
|
```
|
|
265
344
|
|
|
266
|
-
Current
|
|
345
|
+
Current benchmark evidence is documented in [`benchmarks/README.md`](benchmarks/README.md) and the generated tables under `benchmarks/results/`. Treat these as scoped evidence for the included cases, not a universal performance claim.
|
|
267
346
|
|
|
268
347
|
## What A Pack Contains
|
|
269
348
|
|
|
@@ -290,6 +369,13 @@ AgentPack writes local artifacts under `.agentpack/`:
|
|
|
290
369
|
| `.agentpack/task_state.md` | optional global execution state |
|
|
291
370
|
| `.agentpack/context.md` | generic/Codex/Cursor/Windsurf fallback context |
|
|
292
371
|
| `.agentpack/context.claude.md` | Claude-flavored fallback context |
|
|
372
|
+
| `.agentpack/learning.md` | local post-task developer learning notes |
|
|
373
|
+
| `.agentpack/daily-summary.md` | local daily learning rollup from `agentpack learn --today` |
|
|
374
|
+
| `.agentpack/skills-progress.json` | local skill evidence map from task work |
|
|
375
|
+
| `.agentpack/agent-lessons.md` | compact repo-specific lessons injected into future packs |
|
|
376
|
+
| `.agentpack/learning.prompt.md` | optional source-backed prompt for external LLM refinement |
|
|
377
|
+
| `.agentpack/pr-learning-comment.md` | optional PR-comment-ready learning summary |
|
|
378
|
+
| `.agentpack/learning-feedback.jsonl` | optional local helpful/not-helpful feedback records |
|
|
293
379
|
| `.agentpack/pack_metadata.json` | freshness and pack metadata |
|
|
294
380
|
| `.agentpack/cache/` | offline file summaries keyed by hash |
|
|
295
381
|
| `.agentpack/snapshots/` | repo snapshot hashes |
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "agentpack-cli"
|
|
3
|
-
version = "0.3.
|
|
4
|
-
description = "Local context
|
|
3
|
+
version = "0.3.14"
|
|
4
|
+
description = "Local MCP context router for Claude Code, Codex, Cursor, and AI coding agents."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
7
7
|
license = {text = "MIT"}
|
|
8
|
-
keywords = ["ai-coding-agents", "developer-tools", "repo-analysis", "context-engine", "context-packing", "prompt-context", "mcp", "ci", "codex", "cursor", "windsurf", "antigravity", "ai", "llm", "context", "packing"]
|
|
8
|
+
keywords = ["ai-coding-agents", "coding-agent", "ai-agent", "claude-code", "developer-tools", "repo-analysis", "repo-context", "context-engine", "mcp-context-engine", "context-router", "context-packing", "prompt-context", "reduce-token-usage", "mcp", "ci", "codex", "cursor", "windsurf", "antigravity", "ai", "llm", "context", "packing"]
|
|
9
9
|
classifiers = [
|
|
10
10
|
"Development Status :: 3 - Alpha",
|
|
11
11
|
"Intended Audience :: Developers",
|
|
@@ -11,6 +11,8 @@ from agentpack.analysis.go_imports import extract_imports as go_imports
|
|
|
11
11
|
from agentpack.analysis.rust_imports import extract_imports as rust_imports
|
|
12
12
|
from agentpack.analysis.java_imports import extract_imports as java_imports
|
|
13
13
|
|
|
14
|
+
_GRAPH_CACHE: dict[tuple[tuple[tuple[str, str | None], ...], bool], DependencyGraph] = {}
|
|
15
|
+
|
|
14
16
|
|
|
15
17
|
def build(
|
|
16
18
|
files: list[FileInfo],
|
|
@@ -28,6 +30,14 @@ def build(
|
|
|
28
30
|
DependencyGraph with typed DependencyNode entries. Caller fills tests
|
|
29
31
|
via find_related_tests after construction.
|
|
30
32
|
"""
|
|
33
|
+
cache_key = (
|
|
34
|
+
tuple(sorted((fi.path, fi.hash) for fi in files)),
|
|
35
|
+
bool(summaries),
|
|
36
|
+
)
|
|
37
|
+
cached_graph = _GRAPH_CACHE.get(cache_key)
|
|
38
|
+
if cached_graph is not None:
|
|
39
|
+
return cached_graph.model_copy(deep=True)
|
|
40
|
+
|
|
31
41
|
graph = DependencyGraph(
|
|
32
42
|
nodes={fi.path: DependencyNode(path=fi.path) for fi in files}
|
|
33
43
|
)
|
|
@@ -66,6 +76,7 @@ def build(
|
|
|
66
76
|
if dep in graph:
|
|
67
77
|
graph.nodes[dep].imported_by.append(fi.path)
|
|
68
78
|
|
|
79
|
+
_GRAPH_CACHE[cache_key] = graph.model_copy(deep=True)
|
|
69
80
|
return graph
|
|
70
81
|
|
|
71
82
|
|