agentpack-cli 0.3.5__tar.gz → 0.3.9__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 (99) hide show
  1. agentpack_cli-0.3.5/README.md → agentpack_cli-0.3.9/PKG-INFO +107 -3
  2. agentpack_cli-0.3.5/PKG-INFO → agentpack_cli-0.3.9/README.md +68 -42
  3. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/pyproject.toml +2 -2
  4. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/__init__.py +1 -1
  5. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/ranking.py +565 -36
  6. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/application/pack_service.py +298 -24
  7. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/cli.py +2 -0
  8. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/doctor.py +18 -0
  9. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/explain.py +106 -4
  10. agentpack_cli-0.3.9/src/agentpack/commands/ignore_cmd.py +51 -0
  11. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/init.py +31 -8
  12. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/install.py +42 -4
  13. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/pack.py +8 -0
  14. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/stats.py +8 -3
  15. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/context_pack.py +48 -0
  16. agentpack_cli-0.3.9/src/agentpack/core/ignore.py +448 -0
  17. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/integrations/global_install.py +61 -34
  18. agentpack_cli-0.3.5/src/agentpack/core/ignore.py +0 -90
  19. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/.gitignore +0 -0
  20. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/LICENSE +0 -0
  21. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/__init__.py +0 -0
  22. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/antigravity.py +0 -0
  23. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/base.py +0 -0
  24. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/claude.py +0 -0
  25. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/codex.py +0 -0
  26. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/cursor.py +0 -0
  27. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/detect.py +0 -0
  28. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/generic.py +0 -0
  29. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/adapters/windsurf.py +0 -0
  30. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/__init__.py +0 -0
  31. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/dependency_graph.py +0 -0
  32. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/go_imports.py +0 -0
  33. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/java_imports.py +0 -0
  34. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/js_ts_imports.py +0 -0
  35. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/monorepo.py +0 -0
  36. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/naming_signals.py +0 -0
  37. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/python_imports.py +0 -0
  38. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/repo_map.py +0 -0
  39. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/role_inference.py +0 -0
  40. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/rust_imports.py +0 -0
  41. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/symbols.py +0 -0
  42. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/task_classifier.py +0 -0
  43. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/analysis/tests.py +0 -0
  44. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/application/__init__.py +0 -0
  45. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/__init__.py +0 -0
  46. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/_shared.py +0 -0
  47. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/benchmark.py +0 -0
  48. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/claude_cmd.py +0 -0
  49. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/diff.py +0 -0
  50. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/guard.py +0 -0
  51. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/hook_cmd.py +0 -0
  52. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/mcp_cmd.py +0 -0
  53. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/migrate.py +0 -0
  54. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/monitor.py +0 -0
  55. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/quickstart.py +0 -0
  56. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/repair.py +0 -0
  57. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/scan.py +0 -0
  58. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/status.py +0 -0
  59. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/summarize.py +0 -0
  60. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/tune.py +0 -0
  61. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/commands/watch.py +0 -0
  62. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/__init__.py +0 -0
  63. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/bootstrap.py +0 -0
  64. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/cache.py +0 -0
  65. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/config.py +0 -0
  66. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/diff.py +0 -0
  67. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/git.py +0 -0
  68. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/git_hooks.py +0 -0
  69. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/global_install.py +0 -0
  70. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/merkle.py +0 -0
  71. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/models.py +0 -0
  72. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/redactor.py +0 -0
  73. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/scanner.py +0 -0
  74. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/snapshot.py +0 -0
  75. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/task_freshness.py +0 -0
  76. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/token_estimator.py +0 -0
  77. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/core/vscode_tasks.py +0 -0
  78. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/data/agentpack.md +0 -0
  79. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/installers/__init__.py +0 -0
  80. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/installers/antigravity.py +0 -0
  81. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/installers/claude.py +0 -0
  82. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/installers/codex.py +0 -0
  83. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/installers/cursor.py +0 -0
  84. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/installers/windsurf.py +0 -0
  85. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/integrations/__init__.py +0 -0
  86. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/integrations/agents.py +0 -0
  87. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/integrations/git_hooks.py +0 -0
  88. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/integrations/platform.py +0 -0
  89. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/integrations/vscode_tasks.py +0 -0
  90. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/mcp_server.py +0 -0
  91. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/renderers/__init__.py +0 -0
  92. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/renderers/compact.py +0 -0
  93. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/renderers/markdown.py +0 -0
  94. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/renderers/receipts.py +0 -0
  95. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/session/__init__.py +0 -0
  96. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/session/state.py +0 -0
  97. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/summaries/__init__.py +0 -0
  98. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/summaries/base.py +0 -0
  99. {agentpack_cli-0.3.5 → agentpack_cli-0.3.9}/src/agentpack/summaries/offline.py +0 -0
@@ -1,3 +1,42 @@
1
+ Metadata-Version: 2.4
2
+ Name: agentpack-cli
3
+ Version: 0.3.9
4
+ Summary: Local context engine for AI coding agents that ranks relevant files and builds task-focused context packs.
5
+ License: MIT
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
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Topic :: Software Development :: Build Tools
16
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
+ Requires-Python: >=3.10
18
+ Requires-Dist: pathspec>=0.12.1
19
+ Requires-Dist: pydantic>=2.0.0
20
+ Requires-Dist: rich>=13.0.0
21
+ Requires-Dist: tiktoken>=0.7.0
22
+ Requires-Dist: tomli-w>=1.0.0
23
+ Requires-Dist: tomli>=2.0.0; python_version < '3.11'
24
+ Requires-Dist: typer>=0.12.0
25
+ Provides-Extra: all
26
+ Requires-Dist: mcp>=1.0.0; extra == 'all'
27
+ Requires-Dist: watchdog>=4.0.0; extra == 'all'
28
+ Provides-Extra: dev
29
+ Requires-Dist: mypy; extra == 'dev'
30
+ Requires-Dist: pytest; extra == 'dev'
31
+ Requires-Dist: pytest-cov; extra == 'dev'
32
+ Requires-Dist: ruff; extra == 'dev'
33
+ Requires-Dist: tomli>=2.0.0; (python_version < '3.11') and extra == 'dev'
34
+ Provides-Extra: mcp
35
+ Requires-Dist: mcp>=1.0.0; extra == 'mcp'
36
+ Provides-Extra: watch
37
+ Requires-Dist: watchdog>=4.0.0; extra == 'watch'
38
+ Description-Content-Type: text/markdown
39
+
1
40
  # AgentPack
2
41
 
3
42
  [![PyPI version](https://img.shields.io/pypi/v/agentpack-cli.svg)](https://pypi.org/project/agentpack-cli/)
@@ -7,7 +46,7 @@
7
46
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
8
47
  [![CI](https://github.com/vishal2612200/agentpack/actions/workflows/ci.yml/badge.svg)](https://github.com/vishal2612200/agentpack/actions/workflows/ci.yml)
9
48
 
10
- > **Status: alpha (v0.3.5).** Works, tested, used in real sessions. Python and JavaScript/TypeScript are the best-supported languages. Public benchmark proof exists for the current suite, but broader repo coverage is still growing. API may change before 1.0.
49
+ > **Status: alpha (v0.3.9).** Works, tested, used in real sessions. Python and JavaScript/TypeScript are the best-supported languages. Public benchmark proof exists for the current suite, but broader repo coverage is still growing. API may change before 1.0.
11
50
  >
12
51
  > **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.
13
52
 
@@ -109,7 +148,19 @@ printf '%s\n' "fix auth token expiry" > .agentpack/task.md
109
148
  agentpack pack
110
149
  ```
111
150
 
112
- This creates `.agentpack/` state, installs the requested agent integration, generates a ranked context pack, and writes the adapter output for that agent. For active local work, keep context fresh with:
151
+ This creates `.agentpack/` state, installs the requested agent integration, seeds `.agentignore` with safe defaults, imports obvious generated/noisy rules from git ignore sources, generates a ranked context pack, and writes the adapter output for that agent.
152
+
153
+ Task text matters. Good task text names the concrete feature, route, service, or file you are about to change. Bad task text uses repo-meta words like `improve context`, `pack quality`, `stats`, or `ignore`, which can pull README or tool internals by keyword.
154
+
155
+ ```bash
156
+ # good
157
+ printf '%s\n' "fix billing webhook retry handling in app/api/billing/route.ts" > .agentpack/task.md
158
+
159
+ # too broad
160
+ printf '%s\n' "improve context pack quality from stats" > .agentpack/task.md
161
+ ```
162
+
163
+ For active local work, keep context fresh with:
113
164
 
114
165
  ```bash
115
166
  agentpack watch
@@ -202,6 +253,23 @@ agentpack explain --task "fix billing webhook" --budget-plan
202
253
 
203
254
  This is the core reliability loop: pack, measure recall, inspect misses, then tune task wording, `.agentignore`, or scoring weights.
204
255
 
256
+ If top includes look noisy:
257
+
258
+ 1. Rewrite `.agentpack/task.md` with concrete domain nouns, entrypoints, or filenames.
259
+ 2. Re-pack and re-check `agentpack stats`.
260
+ 3. If generated output still dominates, add that path to `.agentignore` or run `agentpack ignore sync`.
261
+ 4. Use `agentpack explain --file <path>` on repeat offenders before changing scoring.
262
+
263
+ `.agentignore` is for AgentPack ranking noise, not general git hygiene. `agentpack init` seeds it with safe defaults and imports obvious generated/noisy entries from the root `.gitignore`, nested `.gitignore` files, `.git/info/exclude`, and your global git ignore when they look safe to carry over. You should still add repo-specific outputs such as deploy artifacts, exports, or generated SDK folders when they are not useful context.
264
+
265
+ When ignore sources change later, re-sync with:
266
+
267
+ ```bash
268
+ agentpack ignore sync
269
+ agentpack ignore sync --dry-run
270
+ agentpack ignore sync --check
271
+ ```
272
+
205
273
  ## MCP-First Workflow
206
274
 
207
275
  For MCP-capable agents, the preferred workflow is pull-based:
@@ -539,6 +607,7 @@ Command map:
539
607
  | `agentpack monitor` | Review recent pack runs and quality signals |
540
608
  | `agentpack scan` | Inspect packable, ignored, binary, and largest files |
541
609
  | `agentpack global-install` | Install opt-in global hooks for initialized repos |
610
+ | `agentpack global-repair-hooks` | Repair stale global template hooks and current repo git hooks |
542
611
 
543
612
  ### `agentpack global-install`
544
613
 
@@ -554,7 +623,7 @@ agentpack global-install --agent antigravity # Antigravity
554
623
  ```
555
624
 
556
625
  What it does:
557
- - **Git template hooks** (`~/.git-templates/hooks/`) — git copies these into every repo on `git init` / `git clone`. On `post-commit`, `post-merge`, `post-checkout`: silently repacks **only if `.agentpack/config.toml` exists** no-op in repos that haven't opted in.
626
+ - **Git template hooks** (`~/.git-templates/hooks/`) — git copies these into every repo on `git init` / `git clone`. On `post-commit`, `post-merge`, `post-checkout` they call AgentPack's cross-platform `GitAutoRepack` hook runner and always exit cleanly. Repacking still happens only in opted-in repos; fresh clones without `.agentpack/config.toml` remain a safe no-op.
558
627
  - **Shell cd hook** (`~/.zshrc`, `~/.bashrc`, or the PowerShell profile on Windows) — on `cd` or prompt refresh, repacks if stale **only in opted-in repos**. Never touches repos without `.agentpack/config.toml`. Never auto-inits.
559
628
  - **Agent config** — same agent-specific files that `agentpack init --agent <x>` or `agentpack install --agent <x>` writes for the current project.
560
629
 
@@ -576,6 +645,27 @@ Preview before committing:
576
645
  agentpack global-install --dry-run
577
646
  ```
578
647
 
648
+ If you installed an older AgentPack build and want to refresh copied git hooks after an upgrade, run:
649
+
650
+ ```bash
651
+ agentpack global-repair-hooks
652
+ ```
653
+
654
+ That repairs `~/.git-templates/hooks/`, reasserts `git config --global init.templateDir`, and updates the current repo's `.git/hooks/` to the safe `GitAutoRepack` path.
655
+
656
+ ### `agentpack global-repair-hooks`
657
+
658
+ Refresh AgentPack's global git template hooks and the current repo's local git hooks after an upgrade.
659
+
660
+ ```bash
661
+ agentpack global-repair-hooks
662
+ ```
663
+
664
+ Use this when:
665
+ - old template hooks were copied before the `GitAutoRepack` runner existed
666
+ - a stale hook script still shells out directly instead of calling `agentpack hook`
667
+ - you want new clones and the current repo to pick up the latest non-destructive hook behavior immediately
668
+
579
669
  ---
580
670
 
581
671
  ### `agentpack global-uninstall`
@@ -817,6 +907,20 @@ agentpack quickstart --task "fix auth token expiry" --write
817
907
 
818
908
  ---
819
909
 
910
+ ### `agentpack ignore sync`
911
+
912
+ Refresh imported generated/noisy rules inside `.agentignore` without touching your manual entries.
913
+
914
+ ```bash
915
+ agentpack ignore sync
916
+ agentpack ignore sync --dry-run
917
+ agentpack ignore sync --check
918
+ ```
919
+
920
+ Use this after editing `.gitignore`, nested workspace ignores, or `.git/info/exclude`. `doctor` also warns when the imported `.agentignore` block is stale.
921
+
922
+ ---
923
+
820
924
  ### `agentpack watch`
821
925
 
822
926
  Watch for file and task changes, refresh context automatically.
@@ -1,42 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: agentpack-cli
3
- Version: 0.3.5
4
- Summary: Local context engine for AI coding agents that ranks relevant files and builds task-focused context packs.
5
- License: MIT
6
- License-File: LICENSE
7
- Keywords: ai,ai-coding-agents,antigravity,ci,claude,claude-code,codex,context,context-engine,context-packing,cursor,developer-tools,llm,mcp,packing,prompt-context,repo-analysis,windsurf
8
- Classifier: Development Status :: 3 - Alpha
9
- Classifier: Intended Audience :: Developers
10
- Classifier: License :: OSI Approved :: MIT License
11
- Classifier: Programming Language :: Python :: 3.10
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Programming Language :: Python :: 3.12
14
- Classifier: Programming Language :: Python :: 3.13
15
- Classifier: Topic :: Software Development :: Build Tools
16
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
17
- Requires-Python: >=3.10
18
- Requires-Dist: pathspec>=0.12.1
19
- Requires-Dist: pydantic>=2.0.0
20
- Requires-Dist: rich>=13.0.0
21
- Requires-Dist: tiktoken>=0.7.0
22
- Requires-Dist: tomli-w>=1.0.0
23
- Requires-Dist: tomli>=2.0.0; python_version < '3.11'
24
- Requires-Dist: typer>=0.12.0
25
- Provides-Extra: all
26
- Requires-Dist: mcp>=1.0.0; extra == 'all'
27
- Requires-Dist: watchdog>=4.0.0; extra == 'all'
28
- Provides-Extra: dev
29
- Requires-Dist: mypy; extra == 'dev'
30
- Requires-Dist: pytest; extra == 'dev'
31
- Requires-Dist: pytest-cov; extra == 'dev'
32
- Requires-Dist: ruff; extra == 'dev'
33
- Requires-Dist: tomli>=2.0.0; (python_version < '3.11') and extra == 'dev'
34
- Provides-Extra: mcp
35
- Requires-Dist: mcp>=1.0.0; extra == 'mcp'
36
- Provides-Extra: watch
37
- Requires-Dist: watchdog>=4.0.0; extra == 'watch'
38
- Description-Content-Type: text/markdown
39
-
40
1
  # AgentPack
41
2
 
42
3
  [![PyPI version](https://img.shields.io/pypi/v/agentpack-cli.svg)](https://pypi.org/project/agentpack-cli/)
@@ -46,7 +7,7 @@ Description-Content-Type: text/markdown
46
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
47
8
  [![CI](https://github.com/vishal2612200/agentpack/actions/workflows/ci.yml/badge.svg)](https://github.com/vishal2612200/agentpack/actions/workflows/ci.yml)
48
9
 
49
- > **Status: alpha (v0.3.5).** Works, tested, used in real sessions. Python and JavaScript/TypeScript are the best-supported languages. Public benchmark proof exists for the current suite, but broader repo coverage is still growing. API may change before 1.0.
10
+ > **Status: alpha (v0.3.9).** Works, tested, used in real sessions. Python and JavaScript/TypeScript are the best-supported languages. Public benchmark proof exists for the current suite, but broader repo coverage is still growing. API may change before 1.0.
50
11
  >
51
12
  > **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.
52
13
 
@@ -148,7 +109,19 @@ printf '%s\n' "fix auth token expiry" > .agentpack/task.md
148
109
  agentpack pack
149
110
  ```
150
111
 
151
- This creates `.agentpack/` state, installs the requested agent integration, generates a ranked context pack, and writes the adapter output for that agent. For active local work, keep context fresh with:
112
+ This creates `.agentpack/` state, installs the requested agent integration, seeds `.agentignore` with safe defaults, imports obvious generated/noisy rules from git ignore sources, generates a ranked context pack, and writes the adapter output for that agent.
113
+
114
+ Task text matters. Good task text names the concrete feature, route, service, or file you are about to change. Bad task text uses repo-meta words like `improve context`, `pack quality`, `stats`, or `ignore`, which can pull README or tool internals by keyword.
115
+
116
+ ```bash
117
+ # good
118
+ printf '%s\n' "fix billing webhook retry handling in app/api/billing/route.ts" > .agentpack/task.md
119
+
120
+ # too broad
121
+ printf '%s\n' "improve context pack quality from stats" > .agentpack/task.md
122
+ ```
123
+
124
+ For active local work, keep context fresh with:
152
125
 
153
126
  ```bash
154
127
  agentpack watch
@@ -241,6 +214,23 @@ agentpack explain --task "fix billing webhook" --budget-plan
241
214
 
242
215
  This is the core reliability loop: pack, measure recall, inspect misses, then tune task wording, `.agentignore`, or scoring weights.
243
216
 
217
+ If top includes look noisy:
218
+
219
+ 1. Rewrite `.agentpack/task.md` with concrete domain nouns, entrypoints, or filenames.
220
+ 2. Re-pack and re-check `agentpack stats`.
221
+ 3. If generated output still dominates, add that path to `.agentignore` or run `agentpack ignore sync`.
222
+ 4. Use `agentpack explain --file <path>` on repeat offenders before changing scoring.
223
+
224
+ `.agentignore` is for AgentPack ranking noise, not general git hygiene. `agentpack init` seeds it with safe defaults and imports obvious generated/noisy entries from the root `.gitignore`, nested `.gitignore` files, `.git/info/exclude`, and your global git ignore when they look safe to carry over. You should still add repo-specific outputs such as deploy artifacts, exports, or generated SDK folders when they are not useful context.
225
+
226
+ When ignore sources change later, re-sync with:
227
+
228
+ ```bash
229
+ agentpack ignore sync
230
+ agentpack ignore sync --dry-run
231
+ agentpack ignore sync --check
232
+ ```
233
+
244
234
  ## MCP-First Workflow
245
235
 
246
236
  For MCP-capable agents, the preferred workflow is pull-based:
@@ -578,6 +568,7 @@ Command map:
578
568
  | `agentpack monitor` | Review recent pack runs and quality signals |
579
569
  | `agentpack scan` | Inspect packable, ignored, binary, and largest files |
580
570
  | `agentpack global-install` | Install opt-in global hooks for initialized repos |
571
+ | `agentpack global-repair-hooks` | Repair stale global template hooks and current repo git hooks |
581
572
 
582
573
  ### `agentpack global-install`
583
574
 
@@ -593,7 +584,7 @@ agentpack global-install --agent antigravity # Antigravity
593
584
  ```
594
585
 
595
586
  What it does:
596
- - **Git template hooks** (`~/.git-templates/hooks/`) — git copies these into every repo on `git init` / `git clone`. On `post-commit`, `post-merge`, `post-checkout`: silently repacks **only if `.agentpack/config.toml` exists** no-op in repos that haven't opted in.
587
+ - **Git template hooks** (`~/.git-templates/hooks/`) — git copies these into every repo on `git init` / `git clone`. On `post-commit`, `post-merge`, `post-checkout` they call AgentPack's cross-platform `GitAutoRepack` hook runner and always exit cleanly. Repacking still happens only in opted-in repos; fresh clones without `.agentpack/config.toml` remain a safe no-op.
597
588
  - **Shell cd hook** (`~/.zshrc`, `~/.bashrc`, or the PowerShell profile on Windows) — on `cd` or prompt refresh, repacks if stale **only in opted-in repos**. Never touches repos without `.agentpack/config.toml`. Never auto-inits.
598
589
  - **Agent config** — same agent-specific files that `agentpack init --agent <x>` or `agentpack install --agent <x>` writes for the current project.
599
590
 
@@ -615,6 +606,27 @@ Preview before committing:
615
606
  agentpack global-install --dry-run
616
607
  ```
617
608
 
609
+ If you installed an older AgentPack build and want to refresh copied git hooks after an upgrade, run:
610
+
611
+ ```bash
612
+ agentpack global-repair-hooks
613
+ ```
614
+
615
+ That repairs `~/.git-templates/hooks/`, reasserts `git config --global init.templateDir`, and updates the current repo's `.git/hooks/` to the safe `GitAutoRepack` path.
616
+
617
+ ### `agentpack global-repair-hooks`
618
+
619
+ Refresh AgentPack's global git template hooks and the current repo's local git hooks after an upgrade.
620
+
621
+ ```bash
622
+ agentpack global-repair-hooks
623
+ ```
624
+
625
+ Use this when:
626
+ - old template hooks were copied before the `GitAutoRepack` runner existed
627
+ - a stale hook script still shells out directly instead of calling `agentpack hook`
628
+ - you want new clones and the current repo to pick up the latest non-destructive hook behavior immediately
629
+
618
630
  ---
619
631
 
620
632
  ### `agentpack global-uninstall`
@@ -856,6 +868,20 @@ agentpack quickstart --task "fix auth token expiry" --write
856
868
 
857
869
  ---
858
870
 
871
+ ### `agentpack ignore sync`
872
+
873
+ Refresh imported generated/noisy rules inside `.agentignore` without touching your manual entries.
874
+
875
+ ```bash
876
+ agentpack ignore sync
877
+ agentpack ignore sync --dry-run
878
+ agentpack ignore sync --check
879
+ ```
880
+
881
+ Use this after editing `.gitignore`, nested workspace ignores, or `.git/info/exclude`. `doctor` also warns when the imported `.agentignore` block is stale.
882
+
883
+ ---
884
+
859
885
  ### `agentpack watch`
860
886
 
861
887
  Watch for file and task changes, refresh context automatically.
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "agentpack-cli"
3
- version = "0.3.5"
3
+ version = "0.3.9"
4
4
  description = "Local context engine for AI coding agents that ranks relevant files and builds task-focused context packs."
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", "claude-code", "codex", "cursor", "windsurf", "antigravity", "ai", "llm", "context", "packing", "claude"]
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"]
9
9
  classifiers = [
10
10
  "Development Status :: 3 - Alpha",
11
11
  "Intended Audience :: Developers",
@@ -1,3 +1,3 @@
1
1
  """AgentPack — task-aware context packing for AI coding agents."""
2
2
 
3
- __version__ = "0.3.5"
3
+ __version__ = "0.3.9"