betterborg 0.1.0__py3-none-any.whl

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 (100) hide show
  1. betterborg-0.1.0.dist-info/METADATA +106 -0
  2. betterborg-0.1.0.dist-info/RECORD +100 -0
  3. betterborg-0.1.0.dist-info/WHEEL +5 -0
  4. betterborg-0.1.0.dist-info/entry_points.txt +2 -0
  5. betterborg-0.1.0.dist-info/licenses/LICENSE +21 -0
  6. betterborg-0.1.0.dist-info/licenses/NOTICE +7 -0
  7. betterborg-0.1.0.dist-info/top_level.txt +1 -0
  8. betterborg_cli/__init__.py +3 -0
  9. betterborg_cli/__main__.py +8 -0
  10. betterborg_cli/agent_runtime/__init__.py +125 -0
  11. betterborg_cli/agent_runtime/anthropic.py +431 -0
  12. betterborg_cli/agent_runtime/api_adapter.py +232 -0
  13. betterborg_cli/agent_runtime/api_tools.py +562 -0
  14. betterborg_cli/agent_runtime/base.py +211 -0
  15. betterborg_cli/agent_runtime/claude.py +302 -0
  16. betterborg_cli/agent_runtime/codex.py +492 -0
  17. betterborg_cli/agent_runtime/mock.py +210 -0
  18. betterborg_cli/agent_runtime/native_cli.py +342 -0
  19. betterborg_cli/agent_runtime/openai.py +503 -0
  20. betterborg_cli/agent_runtime/pricing.py +97 -0
  21. betterborg_cli/agent_runtime/process.py +103 -0
  22. betterborg_cli/agent_runtime/retry.py +109 -0
  23. betterborg_cli/agent_runtime/selection.py +385 -0
  24. betterborg_cli/agent_runtime/structured.py +387 -0
  25. betterborg_cli/claude_plugin.py +576 -0
  26. betterborg_cli/claude_plugin_bundle/__init__.py +1 -0
  27. betterborg_cli/claude_plugin_bundle/marketplace/.claude-plugin/marketplace.json +14 -0
  28. betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/.claude-plugin/plugin.json +11 -0
  29. betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/.mcp.json +8 -0
  30. betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/commands/borg.md +10 -0
  31. betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/skills/orchestrate/SKILL.md +19 -0
  32. betterborg_cli/cli.py +1465 -0
  33. betterborg_cli/codex_plugin.py +570 -0
  34. betterborg_cli/codex_plugin_bundle/__init__.py +1 -0
  35. betterborg_cli/codex_plugin_bundle/marketplace/.agents/plugins/marketplace.json +21 -0
  36. betterborg_cli/codex_plugin_bundle/marketplace/plugins/borg/.codex-plugin/plugin.json +28 -0
  37. betterborg_cli/codex_plugin_bundle/marketplace/plugins/borg/.mcp.json +6 -0
  38. betterborg_cli/codex_plugin_bundle/marketplace/plugins/borg/skills/orchestrate/SKILL.md +19 -0
  39. betterborg_cli/execution_estimate.py +462 -0
  40. betterborg_cli/host_execution/__init__.py +132 -0
  41. betterborg_cli/host_execution/_agent_phase.py +318 -0
  42. betterborg_cli/host_execution/_locking.py +59 -0
  43. betterborg_cli/host_execution/coding.py +503 -0
  44. betterborg_cli/host_execution/compose.py +1145 -0
  45. betterborg_cli/host_execution/environment.py +1142 -0
  46. betterborg_cli/host_execution/git.py +512 -0
  47. betterborg_cli/host_execution/guard.py +155 -0
  48. betterborg_cli/host_execution/merge.py +1159 -0
  49. betterborg_cli/host_execution/preflight.py +1358 -0
  50. betterborg_cli/host_execution/review.py +908 -0
  51. betterborg_cli/host_execution/sanity.py +572 -0
  52. betterborg_cli/host_execution/scheduler.py +374 -0
  53. betterborg_cli/host_execution/service.py +573 -0
  54. betterborg_cli/host_execution/worktrees.py +293 -0
  55. betterborg_cli/mcp_server.py +1237 -0
  56. betterborg_cli/onboarding.py +203 -0
  57. betterborg_cli/planning/__init__.py +121 -0
  58. betterborg_cli/planning/architect.py +611 -0
  59. betterborg_cli/planning/plan_contracts.py +586 -0
  60. betterborg_cli/planning/pm.py +727 -0
  61. betterborg_cli/planning/supervisor.py +639 -0
  62. betterborg_cli/planning/task_publication.py +449 -0
  63. betterborg_cli/planning/task_render.py +63 -0
  64. betterborg_cli/planning/task_validation.py +807 -0
  65. betterborg_cli/planning/tech_lead.py +401 -0
  66. betterborg_cli/planning/turns.py +298 -0
  67. betterborg_cli/planning/worktree.py +433 -0
  68. betterborg_cli/plugin_activation.py +221 -0
  69. betterborg_cli/plugin_installation.py +337 -0
  70. betterborg_cli/plugins.py +149 -0
  71. betterborg_cli/prd_session.py +406 -0
  72. betterborg_cli/repo_analysis/__init__.py +97 -0
  73. betterborg_cli/repo_analysis/analyzer.py +697 -0
  74. betterborg_cli/repo_analysis/discovery.py +631 -0
  75. betterborg_cli/repo_analysis/improvement_prds.py +298 -0
  76. betterborg_cli/repo_analysis/prompts_manager.py +367 -0
  77. betterborg_cli/repo_analysis/reporting.py +618 -0
  78. betterborg_cli/repo_analysis/scoring.py +380 -0
  79. betterborg_cli/repo_analysis/text_rendering.py +42 -0
  80. betterborg_cli/repo_paths.py +116 -0
  81. betterborg_cli/repository_config.py +240 -0
  82. betterborg_cli/repository_files.py +111 -0
  83. betterborg_cli/repository_service.py +340 -0
  84. betterborg_cli/store/__init__.py +91 -0
  85. betterborg_cli/store/migrations/001_initial.sql +30 -0
  86. betterborg_cli/store/migrations/002_analysis_history.sql +91 -0
  87. betterborg_cli/store/migrations/003_borg_prd_sessions.sql +48 -0
  88. betterborg_cli/store/migrations/004_planning_state.sql +159 -0
  89. betterborg_cli/store/migrations/005_task_generations.sql +234 -0
  90. betterborg_cli/store/migrations/006_execution_ownership.sql +312 -0
  91. betterborg_cli/store/migrations/007_open_execution_attempts.sql +141 -0
  92. betterborg_cli/store/migrations/008_execution_attempt_finalization.sql +11 -0
  93. betterborg_cli/store/migrations/009_execution_incarnations.sql +80 -0
  94. betterborg_cli/store/migrations/010_run_environment_attempts.sql +116 -0
  95. betterborg_cli/store/migrations/011_execution_decisions.sql +57 -0
  96. betterborg_cli/store/migrations/__init__.py +1 -0
  97. betterborg_cli/store/models.py +1033 -0
  98. betterborg_cli/store/sqlite.py +4094 -0
  99. betterborg_cli/workflow_service.py +347 -0
  100. betterborg_cli/workspace_trust.py +196 -0
@@ -0,0 +1,106 @@
1
+ Metadata-Version: 2.4
2
+ Name: betterborg
3
+ Version: 0.1.0
4
+ Summary: The open source BetterBorg command-line interface
5
+ Author: BetterBorg
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/betterborg/betterborg-cli
8
+ Project-URL: Repository, https://github.com/betterborg/betterborg-cli
9
+ Project-URL: Issues, https://github.com/betterborg/betterborg-cli/issues
10
+ Classifier: Development Status :: 2 - Pre-Alpha
11
+ Classifier: Environment :: Console
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Python: >=3.11
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ License-File: NOTICE
20
+ Requires-Dist: click<9,>=8.1
21
+ Requires-Dist: mcp<2,>=1.12
22
+ Dynamic: license-file
23
+
24
+ # BetterBorg CLI
25
+
26
+ [![PyPI](https://img.shields.io/pypi/v/betterborg.svg?style=flat-square)](https://pypi.org/project/betterborg/)
27
+ [![npm](https://img.shields.io/npm/v/@betterborg/cli.svg?style=flat-square)](https://www.npmjs.com/package/@betterborg/cli)
28
+ ![Python](https://img.shields.io/badge/Python-3.11%2B-brightgreen?style=flat-square)
29
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE)
30
+
31
+ BetterBorg is an AI engineering team for substantial software projects, not a chat window that makes an isolated edit. You give it a task or a PRD; agents investigate your real code, write a reviewed technical plan, decompose it into a dependency graph of tasks, and implement them — each in its own isolated Git worktree. You approve the plan before anything is decomposed, and the estimate before anything runs. It works locally, on your own Claude Code or Codex subscription.
32
+
33
+ > [!NOTE]
34
+ > Pre-alpha. Interfaces may change between releases.
35
+
36
+ ## Get started
37
+
38
+ 1. Install the CLI:
39
+
40
+ ```bash
41
+ pip install betterborg
42
+ ```
43
+
44
+ Or install the standalone release binary for Darwin or Linux, which needs
45
+ no Python toolchain. It selects ARM64 or x86_64 from the release manifest,
46
+ verifies the SHA-256 digest and exact version before replacing
47
+ `~/.local/bin/borg`, and then runs step 2 for you:
48
+
49
+ ```bash
50
+ curl --proto '=https' --tlsv1.2 -fsSL https://install.betterborg.ai | sh
51
+ ```
52
+
53
+ 2. Activate the agent-host integrations:
54
+
55
+ ```bash
56
+ borg plugins install --all
57
+ ```
58
+
59
+ Then run `/reload-plugins` in any open Claude Code session, and start a new Codex session when prompted.
60
+
61
+ 3. From inside a Git repository, run the loop:
62
+
63
+ ```bash
64
+ borg trust # trust this worktree (machine-local)
65
+ borg init # register and analyze the repository
66
+ borg create my-feature # or: borg create my-feature --prd spec.md
67
+ borg plan start my-feature # agents plan, review, and iterate
68
+ borg plan approve my-feature # your gate — nothing is decomposed before this
69
+ borg task estimate my-feature # P50/P80 work and cost
70
+ borg execute my-feature # approve the estimate, then run
71
+ ```
72
+
73
+ `borg execute` hands off reviewed local branches. Add `--push` or `--pr` to publish them. `borg --help` is the full command index.
74
+
75
+ To try it without installing:
76
+
77
+ ```bash
78
+ npx --yes @betterborg/cli version
79
+ ```
80
+
81
+ Plugin activation needs a persistent install, so it is skipped under `npx`.
82
+
83
+ ## Requirements
84
+
85
+ - Python 3.11+, on macOS or Linux. On Windows, use a WSL2 shell.
86
+ - One agent transport: a `claude` or `codex` CLI on `PATH` and **already logged in**, or `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` exported in your shell.
87
+
88
+ Keep provider keys in your shell or a secret manager, never in `.borg/config.toml` or any tracked file.
89
+
90
+ ## Documentation
91
+
92
+ - [Installation guide](docs/installation.md) — version pinning, WSL2, providers, recovery
93
+ - [Command guide](docs/commands.md) — bootstrap and initialization
94
+ - [Release runbook](docs/releasing.md) — for maintainers
95
+
96
+ ## Reporting bugs
97
+
98
+ File a [GitHub issue](https://github.com/betterborg/betterborg-cli/issues).
99
+
100
+ ## Contributing
101
+
102
+ See [AGENTS.md](AGENTS.md) for repository rules and the standard `make` targets.
103
+
104
+ ## License
105
+
106
+ Copyright 2026 BetterBorg. Licensed under the [MIT License](LICENSE). See [NOTICE](NOTICE) for attribution.
@@ -0,0 +1,100 @@
1
+ betterborg-0.1.0.dist-info/licenses/LICENSE,sha256=EzNV_x-LDSJ7TTHSmZDfhH98T6h7o4ApBnmBVtylSFI,1067
2
+ betterborg-0.1.0.dist-info/licenses/NOTICE,sha256=8nvfKkO6xr1sXAnVoBER3nAhVuIMRQHX8eIHwUDJ_Sg,197
3
+ betterborg_cli/__init__.py,sha256=OZPA9sD01D4rhTTIrIGVF6L6jicvEpTKnVEq54ekTDc,53
4
+ betterborg_cli/__main__.py,sha256=EMEz3_qPbVnmk1lGpkiVMaN4OAWl8ni8CgF_JbhEQnc,170
5
+ betterborg_cli/claude_plugin.py,sha256=MCewfvM4IH1cKtaRSoKtxEfkQWuOZ9mq6gF0a32dnZU,19476
6
+ betterborg_cli/cli.py,sha256=bkctDKvImIjPfJBrIPisbtugqSfOXaZ6tkOd7Bsrf0g,50433
7
+ betterborg_cli/codex_plugin.py,sha256=R5QlNuBQEP6FQAwZgK4p-NuiZAgewFXYK6TZJV6FNy8,19728
8
+ betterborg_cli/execution_estimate.py,sha256=16dn3wrT1IzUdZoRwCG7E_A01EjwqFKHSho4iDbeniw,14725
9
+ betterborg_cli/mcp_server.py,sha256=OgrHwY2vBdUWyB1IipMaG7oFTQZw9KKO_XMJ72zS6M4,38094
10
+ betterborg_cli/onboarding.py,sha256=T3atiOgLtDdroxRKB7xD6O8uYnisXrVL8BD6AhNkVhc,6783
11
+ betterborg_cli/plugin_activation.py,sha256=mVR0NO5JTyIuvCw5B15FAagtpmxgGiaE79yyhB6E-0U,7301
12
+ betterborg_cli/plugin_installation.py,sha256=sC8pa6hKiiD_FmZ2g-ceYColX01DwrycIRVupyQF2ig,11349
13
+ betterborg_cli/plugins.py,sha256=4gFlh08ZG3liwVxo8dbNMNUt7mJPiuLXyErmSH-IKSk,4746
14
+ betterborg_cli/prd_session.py,sha256=RdxreckkQWTfnKkFNWtmObjCjGmhEPTpCqcekeF1EQk,15181
15
+ betterborg_cli/repo_paths.py,sha256=eH1OeOwcAlt9mL7nDOjzT-0li6HJ1xWNYy0RW3Vno8M,3846
16
+ betterborg_cli/repository_config.py,sha256=mdgDMtzUrMtkCMpD0rsIOSgl85xJDACFLFJEEIGJin8,8128
17
+ betterborg_cli/repository_files.py,sha256=JQ95RT5XIhYQ448E7WMOtX39SgJQ0Uwa0ZrcYtQ7zms,3727
18
+ betterborg_cli/repository_service.py,sha256=u5YXorITsCc7qFZHWUrdMf4KrrSVl0QKTYqez9-R5dE,12150
19
+ betterborg_cli/workflow_service.py,sha256=dOUIihVzPMRi4Uw7_RsIi2IbW6jpeSti6eE3Px_g-N4,11602
20
+ betterborg_cli/workspace_trust.py,sha256=tClv9B5STCeMp5-5JfZ2FGdot48UhqIZqeJBooOUw2o,6962
21
+ betterborg_cli/agent_runtime/__init__.py,sha256=Iq9YO8yidkfO0mF-XCVw4d4rQOcj-s5ZMBtBYQI7RiM,3196
22
+ betterborg_cli/agent_runtime/anthropic.py,sha256=dtWshWdJo8u-Ekl8KUuayKS5oif16uqUEk_8ZLzlWIk,15536
23
+ betterborg_cli/agent_runtime/api_adapter.py,sha256=G6xdER_gfYI44_orx3QfENENgEd7XoTc_kCfOOdbIQ4,8061
24
+ betterborg_cli/agent_runtime/api_tools.py,sha256=8tylNMaMg0U6YqSC6Q4d-lLO0jfINWSQ1shi1ywtObY,19972
25
+ betterborg_cli/agent_runtime/base.py,sha256=LhVU59voh5afN1cVy8aIdqy72DFJaLy8aPAOPRkuJSg,6751
26
+ betterborg_cli/agent_runtime/claude.py,sha256=Mf_aQsJm01t9cgtNe46g7LPy6Sm-fJOQ0Qz5huWoaSg,10112
27
+ betterborg_cli/agent_runtime/codex.py,sha256=kwQYAn-K0mKpRvc3cBpNZlNjglH-gaTfRyX9yuAxTdU,17190
28
+ betterborg_cli/agent_runtime/mock.py,sha256=yhCUyKpMYo-MqArYgo2D-jr-ZG_wcAcHVvyVOBVYM0s,7381
29
+ betterborg_cli/agent_runtime/native_cli.py,sha256=4qnSZ3sVWP10HCsAePaN3ryBqCltnbbmNMOLbl7v138,10982
30
+ betterborg_cli/agent_runtime/openai.py,sha256=pr_TOJMT-35WQyQjgtAdPyP4NZalj189htVmpATiO1o,18039
31
+ betterborg_cli/agent_runtime/pricing.py,sha256=uEdkwu5dphibNqJJ5Nf9dbFpEB5OjwbXIRFslQJ4jyA,4091
32
+ betterborg_cli/agent_runtime/process.py,sha256=61shUUsZj7d2VvzCB7kyMoc0_kvKECRWvE-GUuC7pc8,3131
33
+ betterborg_cli/agent_runtime/retry.py,sha256=6cdl3AGdPhQ0AOcJDHQTlwrb4HVHe-OZs7120Hn3dzw,3398
34
+ betterborg_cli/agent_runtime/selection.py,sha256=ZgFOSwPLrQeeJHqmVYEd1Zstg5gS7dSHmPBUI21gf7w,13816
35
+ betterborg_cli/agent_runtime/structured.py,sha256=XfrlcLoa2SdlYZaI3nKthlzwBcb982Xm-Bfbyj1eb0o,14496
36
+ betterborg_cli/claude_plugin_bundle/__init__.py,sha256=kjba3-8XiehhYo7vduOvjMxdRghrXe6Uu-CpJ54JBaI,75
37
+ betterborg_cli/claude_plugin_bundle/marketplace/.claude-plugin/marketplace.json,sha256=gGsYh9GpY1GPZnNobkMK7RjuFOFpAMOg9pfHA7lWUaE,256
38
+ betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/.mcp.json,sha256=m9seMHv6GRQ-etOiyEc3Wx5WR-WmCOZTmqQWLo4m6mo,93
39
+ betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/.claude-plugin/plugin.json,sha256=FvDaBCivXbzCgmzvrBfVB4d8QyzeHyonP3tVeZsXazA,302
40
+ betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/commands/borg.md,sha256=x2QGuhVZcbrpvd-Vo2QwvYmU5j_9qca-AcyT1NCY-o8,352
41
+ betterborg_cli/claude_plugin_bundle/marketplace/plugins/borg/skills/orchestrate/SKILL.md,sha256=f5LsIG3czzKc33UDsFAOpqQkFb5dyuCEdYC3L0q0zuc,879
42
+ betterborg_cli/codex_plugin_bundle/__init__.py,sha256=Rprh-DhH-ZrfAn1iAY1wCLoGQpv6UTQmHCjegAcYzQ0,69
43
+ betterborg_cli/codex_plugin_bundle/marketplace/.agents/plugins/marketplace.json,sha256=TBPXHouZQhwSr3ne45vedKIfbpxTWBRb7WEu6vPkqd8,384
44
+ betterborg_cli/codex_plugin_bundle/marketplace/plugins/borg/.mcp.json,sha256=1soA5BgTuzTounDWqaRUZpoelpmBqltVJnTyWEcdySU,63
45
+ betterborg_cli/codex_plugin_bundle/marketplace/plugins/borg/.codex-plugin/plugin.json,sha256=ShWHQ2QLAN_iHODexozlIpOj2FL6z3t4j5kE0mQRJ7o,1046
46
+ betterborg_cli/codex_plugin_bundle/marketplace/plugins/borg/skills/orchestrate/SKILL.md,sha256=f5LsIG3czzKc33UDsFAOpqQkFb5dyuCEdYC3L0q0zuc,879
47
+ betterborg_cli/host_execution/__init__.py,sha256=3N0aEPLd5YdmKxqe9VDNUHTzrCIbaHvKCs7xGCmKjgc,3315
48
+ betterborg_cli/host_execution/_agent_phase.py,sha256=5rb-dpPaZbodfmpHxgI3bkRNz4lKHRE1cKJH2MbvCZ0,11639
49
+ betterborg_cli/host_execution/_locking.py,sha256=vlFDhrNyVz8r0RZIRRCiUT0Hi2pldLkMPyRPZPATjTs,1860
50
+ betterborg_cli/host_execution/coding.py,sha256=-lV58GjRCusJY9HfR1lFihtuuc2DGMNIqGjWwQ5Nmaw,17947
51
+ betterborg_cli/host_execution/compose.py,sha256=li6NcVyWZK6DFwcyiblR0Yo1Igt-c91z3ZyfDDD0PhE,39455
52
+ betterborg_cli/host_execution/environment.py,sha256=GGu0CzC7_WCqXJFZ16rvyl3NSK4Mp4R4b6VUM-OtExk,42291
53
+ betterborg_cli/host_execution/git.py,sha256=mA1NVk6pCJ0Zqcv3ls0Ek30grdYvsLPKJ9AuJv4mofM,18225
54
+ betterborg_cli/host_execution/guard.py,sha256=ZwusLfbmuro42QtFHqyUdEJhV13OfDUdjDI7TYC60eg,5462
55
+ betterborg_cli/host_execution/merge.py,sha256=hTZ5UPc-Fezi73qPzUT_bEvISHeQD-S2-1Uh9-PkDXI,41670
56
+ betterborg_cli/host_execution/preflight.py,sha256=bZdN9quRcCAWyGYSE0_-t4Wn-oBYNYMONwpTgKDMXww,52716
57
+ betterborg_cli/host_execution/review.py,sha256=pAglWurqsL8yempE1lnJPyYPwVUc62N0cQG4a3nQY7s,32693
58
+ betterborg_cli/host_execution/sanity.py,sha256=KF1qsKDfeaILJ3s8wgA-zAcvVcinoP95LdfEi3MTGjo,23269
59
+ betterborg_cli/host_execution/scheduler.py,sha256=KhPTeyLl69EFOX3D1-l497d43vt25MCx6PWVUXJW-ZU,13337
60
+ betterborg_cli/host_execution/service.py,sha256=UCU6zNA92BQpI-v3YGEOQ5EfDxfFO-t77W7Fyab7ZjY,21427
61
+ betterborg_cli/host_execution/worktrees.py,sha256=NY3MPs_BNVFQQ2ggE7MLmas1FjQKDYMqksENlsf9kbk,12236
62
+ betterborg_cli/planning/__init__.py,sha256=BQkV8cdUwlCtp0C4nl5LCxiLZjtdaBL-CEuwYN_cFyo,3143
63
+ betterborg_cli/planning/architect.py,sha256=xtUYWpREzK3-9lR2Zy09WlsLaRqP0SKrPuIMHrtwwVU,22685
64
+ betterborg_cli/planning/plan_contracts.py,sha256=HE_G8t3HO261iXvvVhPR-cljfSs8f8HjlYIDMvVU1zc,20707
65
+ betterborg_cli/planning/pm.py,sha256=cW93KTYQAOPQOLHoHl9UvDfIMWZUkkkCAPndfZrec14,26810
66
+ betterborg_cli/planning/supervisor.py,sha256=LnrM_x_z12XYBhqdvmO5RJVo4F4yMuCsNx4PreopFFY,23741
67
+ betterborg_cli/planning/task_publication.py,sha256=meKLFdLGqIXZ5ZBPpetaQLpG0Y_a7fILAHfZEIIBeqo,17622
68
+ betterborg_cli/planning/task_render.py,sha256=1h3fzCD-cuvEJuHg-7A5OG7oLbDlM69BsPrGKO0LPwA,1942
69
+ betterborg_cli/planning/task_validation.py,sha256=2rLXYFOux2HFhKnPwhSrGUE3NlxmR-h8eJxzRsSTnYg,29483
70
+ betterborg_cli/planning/tech_lead.py,sha256=oIE0Eh0MgAUrN7stgMWZnIl2fHLGGV7axF6QbpOB1VE,14454
71
+ betterborg_cli/planning/turns.py,sha256=KaWr-dLlq0mbs7Ddp_AkTLRci2qtSvOB3I5t3X1TcFk,10709
72
+ betterborg_cli/planning/worktree.py,sha256=16X_EDh2S4CSThH32hxlc71TDppZ5EOY3o1dgl6-xVQ,14236
73
+ betterborg_cli/repo_analysis/__init__.py,sha256=Pl4Tim5HnInjoBZ2kQsXvXf9CqOvf9R8mz0xAApeH_8,2461
74
+ betterborg_cli/repo_analysis/analyzer.py,sha256=kTL1nY1_fkF7jN7xVMKVqKgBIlErS91Nu5i587NaND4,24218
75
+ betterborg_cli/repo_analysis/discovery.py,sha256=qQ4x571HEmDOZPnJZN7i-OD1dQynhHQrHRMmlSu3XHI,18014
76
+ betterborg_cli/repo_analysis/improvement_prds.py,sha256=xh48-Lkd2WlRQqLhuwM8YhGjepR878XkmOJYO0wUE6k,10496
77
+ betterborg_cli/repo_analysis/prompts_manager.py,sha256=VyA51X79EoLnCbUvf_q5WGGizbvWqeUv59g8GDSJzuM,12704
78
+ betterborg_cli/repo_analysis/reporting.py,sha256=wNfV03y5Fdf0cIeu4iHRp7Wcu4XQ97rr4-dLeDtXXrA,21578
79
+ betterborg_cli/repo_analysis/scoring.py,sha256=_eEZ98qx5UEqE9DdZO2MdgPzv6BqmPmi3P6KV9tUArM,12634
80
+ betterborg_cli/repo_analysis/text_rendering.py,sha256=KhnS9TodkBCsflLPCVvD27DUcECO187DIUWjX_J95m4,1414
81
+ betterborg_cli/store/__init__.py,sha256=7JDloWIQtX7UBAOyLKdchLG_VCO4F3m-o2pawQilgOU,1926
82
+ betterborg_cli/store/models.py,sha256=50KdYl0_ICGJR3ZkCUFOAWhLM7cp7eD694v5nsEVdOw,40015
83
+ betterborg_cli/store/sqlite.py,sha256=t7a5gNlm50F61Lphh4nkXnHee4UIrk15R22dLb0Ly5E,158267
84
+ betterborg_cli/store/migrations/001_initial.sql,sha256=Hu9Jq8UscCF2bMMoDEWMHdNGp72c_pqs0JkL2QAFXF0,799
85
+ betterborg_cli/store/migrations/002_analysis_history.sql,sha256=ZRm5kTlaqvFgpOnijLL0cttt2WrAMQ-3GlTx6DfOEm8,3110
86
+ betterborg_cli/store/migrations/003_borg_prd_sessions.sql,sha256=oPFcolxTPrnSSSMBnF3Jn8dr_IhB4gdTFzDuyIXztBY,1504
87
+ betterborg_cli/store/migrations/004_planning_state.sql,sha256=fIi8dKEjsaI6jUvzzOa7Ni8PeyPdR4yHt4gzNJ9iHlU,5049
88
+ betterborg_cli/store/migrations/005_task_generations.sql,sha256=abkDEmAgyfK4Q4ncpjO-NwcXxETUQ1tRUmyPGYH1TFM,8156
89
+ betterborg_cli/store/migrations/006_execution_ownership.sql,sha256=XY_FUalBNz2BHYYHxHA_C7_hvD8pXgiOAxL6v8cbjZ0,10604
90
+ betterborg_cli/store/migrations/007_open_execution_attempts.sql,sha256=6gVBtXlKpF7VOYOehHXk6ZmNL2dWevorq6WdwFt8rAw,4836
91
+ betterborg_cli/store/migrations/008_execution_attempt_finalization.sql,sha256=voQ8nwY2I90LZOYwLHlZuRDsQnb6MTu7TA-ghmejFDU,397
92
+ betterborg_cli/store/migrations/009_execution_incarnations.sql,sha256=Yu2vsgnrlssZYSg6k0fEDBmFCIfqLKMEpEoFus1rDR4,2472
93
+ betterborg_cli/store/migrations/010_run_environment_attempts.sql,sha256=d-4Y_TJIh1G5-5k99kawGq8JJtIkGbRdVfQ0O6E0TWU,3571
94
+ betterborg_cli/store/migrations/011_execution_decisions.sql,sha256=uyG61VqcFbvquia8mNeatRqFCMxqOPClgoZikZPoGjU,1965
95
+ betterborg_cli/store/migrations/__init__.py,sha256=JVXgffVERORpFDryKaJqXskLYd4P8KcfjAV97Dhahlc,54
96
+ betterborg-0.1.0.dist-info/METADATA,sha256=BhwuPZsE3f8rR2wXg9rs9dBhFwVhdanvAXxz0Ho9w-o,4238
97
+ betterborg-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
98
+ betterborg-0.1.0.dist-info/entry_points.txt,sha256=ZlH7tDQBHLJwmDUK_Dijf9DPEBPU2GYhenSwVNbrWB0,48
99
+ betterborg-0.1.0.dist-info/top_level.txt,sha256=vulHqLOLVup5anj3ck5SX6reBaZGU7XSBrc8pmmMoCA,15
100
+ betterborg-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ borg = betterborg_cli.cli:cli
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 BetterBorg
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,7 @@
1
+ BetterBorg CLI
2
+ Copyright 2026 BetterBorg
3
+
4
+ This product includes software developed by BetterBorg
5
+ (https://github.com/betterborg).
6
+
7
+ BetterBorg CLI is distributed under the MIT License. See LICENSE.
@@ -0,0 +1 @@
1
+ betterborg_cli
@@ -0,0 +1,3 @@
1
+ """BetterBorg CLI package."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,8 @@
1
+ """Executable module used by the standalone Borg binary."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from betterborg_cli.cli import cli
6
+
7
+ if __name__ == "__main__":
8
+ cli()
@@ -0,0 +1,125 @@
1
+ """Provider-neutral agent runtime contracts and helpers."""
2
+
3
+ from betterborg_cli.agent_runtime.anthropic import (
4
+ ANTHROPIC_API_URL,
5
+ ANTHROPIC_API_VERSION,
6
+ AnthropicAdapter,
7
+ AnthropicApiError,
8
+ AnthropicTransport,
9
+ UrllibAnthropicTransport,
10
+ )
11
+ from betterborg_cli.agent_runtime.api_tools import (
12
+ READ_ONLY_API_TOOLS,
13
+ ApiAgentRole,
14
+ ApiToolDefinition,
15
+ ApiToolError,
16
+ CommandResult,
17
+ ContainedApiTools,
18
+ PathContainmentError,
19
+ SearchMatch,
20
+ ToolGrantError,
21
+ api_tool_definition,
22
+ select_api_tool_names,
23
+ )
24
+ from betterborg_cli.agent_runtime.base import (
25
+ AgentAdapter,
26
+ AgentArtifact,
27
+ AgentCapabilities,
28
+ AgentResult,
29
+ AgentRunSpec,
30
+ AgentStatus,
31
+ AgentUsage,
32
+ BillingMode,
33
+ CancellationToken,
34
+ combine_agent_usage,
35
+ )
36
+ from betterborg_cli.agent_runtime.claude import ClaudeAdapter
37
+ from betterborg_cli.agent_runtime.codex import CodexAdapter
38
+ from betterborg_cli.agent_runtime.mock import MockAdapter, MockResponse
39
+ from betterborg_cli.agent_runtime.openai import (
40
+ OPENAI_API_URL,
41
+ OpenAIAdapter,
42
+ OpenAIApiError,
43
+ OpenAITransport,
44
+ UrllibOpenAITransport,
45
+ )
46
+ from betterborg_cli.agent_runtime.process import ProcessRunner, run_streamed
47
+ from betterborg_cli.agent_runtime.retry import (
48
+ DEFAULT_TRANSIENT_BACKOFF_SECONDS,
49
+ DEFAULT_TRANSIENT_MAX_ATTEMPTS,
50
+ RetryOutcome,
51
+ retry_outcome_to_result,
52
+ run_with_transient_retry,
53
+ )
54
+ from betterborg_cli.agent_runtime.selection import (
55
+ AgentSelectionError,
56
+ SelectedAgent,
57
+ require_read_only_agent,
58
+ resolve_adapter_model,
59
+ resolve_agent_model,
60
+ select_agent,
61
+ )
62
+ from betterborg_cli.agent_runtime.structured import (
63
+ StructuredResultError,
64
+ extract_json,
65
+ extract_structured_result,
66
+ extract_structured_result_file,
67
+ validate_structured_result,
68
+ )
69
+
70
+ __all__ = [
71
+ "DEFAULT_TRANSIENT_BACKOFF_SECONDS",
72
+ "DEFAULT_TRANSIENT_MAX_ATTEMPTS",
73
+ "ANTHROPIC_API_URL",
74
+ "ANTHROPIC_API_VERSION",
75
+ "OPENAI_API_URL",
76
+ "AgentAdapter",
77
+ "AgentArtifact",
78
+ "AgentCapabilities",
79
+ "AgentResult",
80
+ "AgentRunSpec",
81
+ "AgentSelectionError",
82
+ "AgentStatus",
83
+ "AgentUsage",
84
+ "AnthropicAdapter",
85
+ "AnthropicApiError",
86
+ "AnthropicTransport",
87
+ "ApiAgentRole",
88
+ "ApiToolDefinition",
89
+ "ApiToolError",
90
+ "BillingMode",
91
+ "CancellationToken",
92
+ "ClaudeAdapter",
93
+ "CodexAdapter",
94
+ "CommandResult",
95
+ "ContainedApiTools",
96
+ "MockAdapter",
97
+ "MockResponse",
98
+ "OpenAIAdapter",
99
+ "OpenAIApiError",
100
+ "OpenAITransport",
101
+ "ProcessRunner",
102
+ "PathContainmentError",
103
+ "READ_ONLY_API_TOOLS",
104
+ "RetryOutcome",
105
+ "StructuredResultError",
106
+ "SearchMatch",
107
+ "SelectedAgent",
108
+ "ToolGrantError",
109
+ "UrllibAnthropicTransport",
110
+ "UrllibOpenAITransport",
111
+ "api_tool_definition",
112
+ "combine_agent_usage",
113
+ "extract_json",
114
+ "extract_structured_result",
115
+ "extract_structured_result_file",
116
+ "retry_outcome_to_result",
117
+ "run_streamed",
118
+ "run_with_transient_retry",
119
+ "require_read_only_agent",
120
+ "resolve_adapter_model",
121
+ "resolve_agent_model",
122
+ "select_api_tool_names",
123
+ "select_agent",
124
+ "validate_structured_result",
125
+ ]