agent-borg 3.3.2__tar.gz → 3.3.3__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 (337) hide show
  1. {agent_borg-3.3.2 → agent_borg-3.3.3}/LICENSE +1 -1
  2. agent_borg-3.3.3/PKG-INFO +30 -0
  3. agent_borg-3.3.3/README.md +259 -0
  4. agent_borg-3.3.3/agent_borg.egg-info/PKG-INFO +30 -0
  5. {agent_borg-3.3.2 → agent_borg-3.3.3}/agent_borg.egg-info/SOURCES.txt +34 -106
  6. {agent_borg-3.3.2 → agent_borg-3.3.3}/agent_borg.egg-info/entry_points.txt +1 -0
  7. agent_borg-3.3.3/agent_borg.egg-info/requires.txt +24 -0
  8. agent_borg-3.3.3/borg/__init__.py +49 -0
  9. agent_borg-3.3.3/borg/cli/__init__.py +11 -0
  10. agent_borg-3.3.3/borg/cli/__main__.py +11 -0
  11. agent_borg-3.3.3/borg/cli/doctor.py +169 -0
  12. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/cli/install.py +16 -44
  13. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/cli.py +467 -90
  14. agent_borg-3.3.3/borg/core/__init__.py +29 -0
  15. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/apply.py +4 -57
  16. agent_borg-3.3.3/borg/core/atom_policy.py +84 -0
  17. agent_borg-3.3.3/borg/core/atom_retrieval.py +39 -0
  18. agent_borg-3.3.3/borg/core/atom_store.py +170 -0
  19. agent_borg-3.3.3/borg/core/atom_tenant.py +70 -0
  20. agent_borg-3.3.3/borg/core/confidence_gate.py +261 -0
  21. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/convert.py +21 -6
  22. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/crypto.py +3 -1
  23. agent_borg-3.3.3/borg/core/dirs.py +124 -0
  24. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/embeddings.py +49 -17
  25. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/failure_memory.py +8 -4
  26. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/feedback_loop.py +30 -32
  27. agent_borg-3.3.3/borg/core/first_user_readiness.py +214 -0
  28. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/generate.py +12 -7
  29. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/generator.py +22 -13
  30. agent_borg-3.3.3/borg/core/learning_atoms.py +248 -0
  31. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/mutation_engine.py +23 -125
  32. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/openclaw_converter.py +2 -2
  33. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/pack_taxonomy.py +1 -1
  34. agent_borg-3.3.3/borg/core/privacy.py +224 -0
  35. agent_borg-3.3.3/borg/core/prompt_injection.py +72 -0
  36. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/publish.py +85 -32
  37. agent_borg-3.3.3/borg/core/rescue.py +299 -0
  38. agent_borg-3.3.3/borg/core/runtime_fingerprint.py +172 -0
  39. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/search.py +9 -7
  40. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/session.py +1 -1
  41. agent_borg-3.3.3/borg/core/telemetry.py +114 -0
  42. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/trace_matcher.py +27 -48
  43. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/traces.py +32 -18
  44. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/uri.py +93 -77
  45. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/v3_integration.py +59 -64
  46. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/db/embeddings.py +3 -1
  47. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/fleet/syncer.py +7 -5
  48. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/integrations/mcp_server.py +246 -286
  49. agent_borg-3.3.3/borg/seeds_data/packs/systematic-debugging.workflow.yaml +41 -0
  50. agent_borg-3.3.3/borg/tests/test_atom_policy.py +57 -0
  51. agent_borg-3.3.3/borg/tests/test_atom_retrieval_firewall.py +48 -0
  52. agent_borg-3.3.3/borg/tests/test_atom_store.py +57 -0
  53. agent_borg-3.3.3/borg/tests/test_atom_tenant.py +81 -0
  54. agent_borg-3.3.3/borg/tests/test_borg_observe_confidence_gate.py +170 -0
  55. agent_borg-3.3.3/borg/tests/test_borg_observe_wrapper.py +238 -0
  56. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_cli.py +170 -9
  57. agent_borg-3.3.3/borg/tests/test_cli_atom.py +83 -0
  58. agent_borg-3.3.3/borg/tests/test_confidence_gate.py +178 -0
  59. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_convert_openclaw.py +38 -20
  60. agent_borg-3.3.3/borg/tests/test_dirs.py +60 -0
  61. agent_borg-3.3.3/borg/tests/test_distribution_readiness.py +55 -0
  62. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_e2e_learning_loop.py +4 -4
  63. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_e2e_learning_loop_v3.py +27 -41
  64. agent_borg-3.3.3/borg/tests/test_embeddings_schema_compat.py +62 -0
  65. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_feedback_loop.py +7 -55
  66. agent_borg-3.3.3/borg/tests/test_first_10_readiness.py +146 -0
  67. agent_borg-3.3.3/borg/tests/test_first_user_cli_contract.py +182 -0
  68. agent_borg-3.3.3/borg/tests/test_learning_atom_publish.py +76 -0
  69. agent_borg-3.3.3/borg/tests/test_learning_atoms.py +111 -0
  70. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_mcp_server.py +22 -9
  71. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_mcp_server_extended.py +38 -25
  72. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_mutation_engine.py +4 -34
  73. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_pack_compatibility.py +18 -3
  74. agent_borg-3.3.3/borg/tests/test_privacy_structured.py +54 -0
  75. agent_borg-3.3.3/borg/tests/test_prompt_injection.py +43 -0
  76. agent_borg-3.3.3/borg/tests/test_public_api_check.py +51 -0
  77. agent_borg-3.3.3/borg/tests/test_release_packaging_contract.py +43 -0
  78. agent_borg-3.3.3/borg/tests/test_rescue.py +81 -0
  79. agent_borg-3.3.3/borg/tests/test_runtime_doctor.py +13 -0
  80. agent_borg-3.3.3/borg/tests/test_runtime_fingerprint.py +43 -0
  81. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_search.py +3 -2
  82. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_start_signals.py +11 -7
  83. agent_borg-3.3.3/borg/tests/test_storage_paths.py +91 -0
  84. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_uri.py +15 -5
  85. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_v3_integration.py +11 -6
  86. agent_borg-3.3.3/borg/tests/test_version_consistency.py +32 -0
  87. agent_borg-3.3.3/pyproject.toml +63 -0
  88. agent_borg-3.3.2/PKG-INFO +0 -128
  89. agent_borg-3.3.2/README.md +0 -103
  90. agent_borg-3.3.2/agent_borg.egg-info/PKG-INFO +0 -128
  91. agent_borg-3.3.2/agent_borg.egg-info/requires.txt +0 -7
  92. agent_borg-3.3.2/borg/__init__.py +0 -8
  93. agent_borg-3.3.2/borg/cli/__init__.py +0 -42
  94. agent_borg-3.3.2/borg/cli/doctor.py +0 -111
  95. agent_borg-3.3.2/borg/core/action_policy.py +0 -24
  96. agent_borg-3.3.2/borg/core/canonical_truth.py +0 -66
  97. agent_borg-3.3.2/borg/core/dirs.py +0 -52
  98. agent_borg-3.3.2/borg/core/outcome_ledger.py +0 -68
  99. agent_borg-3.3.2/borg/core/privacy.py +0 -144
  100. agent_borg-3.3.2/borg/core/provider_router.py +0 -19
  101. agent_borg-3.3.2/borg/core/quality_gate.py +0 -60
  102. agent_borg-3.3.2/borg/core/rate_limiter.py +0 -69
  103. agent_borg-3.3.2/borg/core/response_formatter.py +0 -26
  104. agent_borg-3.3.2/borg/core/sanitizer.py +0 -62
  105. agent_borg-3.3.2/borg/core/status.py +0 -27
  106. agent_borg-3.3.2/borg/core/telemetry.py +0 -71
  107. agent_borg-3.3.2/borg/defi/__init__.py +0 -123
  108. agent_borg-3.3.2/borg/defi/alpha_signal.py +0 -1044
  109. agent_borg-3.3.2/borg/defi/api_clients/__init__.py +0 -27
  110. agent_borg-3.3.2/borg/defi/api_clients/alchemy.py +0 -346
  111. agent_borg-3.3.2/borg/defi/api_clients/arkham.py +0 -354
  112. agent_borg-3.3.2/borg/defi/api_clients/base.py +0 -377
  113. agent_borg-3.3.2/borg/defi/api_clients/birdeye.py +0 -224
  114. agent_borg-3.3.2/borg/defi/api_clients/cache.py +0 -282
  115. agent_borg-3.3.2/borg/defi/api_clients/defillama.py +0 -211
  116. agent_borg-3.3.2/borg/defi/api_clients/dexscreener.py +0 -167
  117. agent_borg-3.3.2/borg/defi/api_clients/goplus.py +0 -401
  118. agent_borg-3.3.2/borg/defi/api_clients/helius.py +0 -310
  119. agent_borg-3.3.2/borg/defi/cli.py +0 -161
  120. agent_borg-3.3.2/borg/defi/cron/__init__.py +0 -64
  121. agent_borg-3.3.2/borg/defi/cron/alpha_cron.py +0 -177
  122. agent_borg-3.3.2/borg/defi/cron/delivery.py +0 -215
  123. agent_borg-3.3.2/borg/defi/cron/liquidation_cron.py +0 -66
  124. agent_borg-3.3.2/borg/defi/cron/live_scans.py +0 -442
  125. agent_borg-3.3.2/borg/defi/cron/portfolio_cron.py +0 -106
  126. agent_borg-3.3.2/borg/defi/cron/risk_cron.py +0 -144
  127. agent_borg-3.3.2/borg/defi/cron/state.py +0 -182
  128. agent_borg-3.3.2/borg/defi/cron/whale_cron.py +0 -110
  129. agent_borg-3.3.2/borg/defi/cron/yield_cron.py +0 -106
  130. agent_borg-3.3.2/borg/defi/data_models.py +0 -447
  131. agent_borg-3.3.2/borg/defi/dojo_bridge.py +0 -696
  132. agent_borg-3.3.2/borg/defi/liquidation_watcher.py +0 -682
  133. agent_borg-3.3.2/borg/defi/lp_manager.py +0 -868
  134. agent_borg-3.3.2/borg/defi/mcp_tools.py +0 -158
  135. agent_borg-3.3.2/borg/defi/mev/__init__.py +0 -25
  136. agent_borg-3.3.2/borg/defi/mev/flashbots.py +0 -234
  137. agent_borg-3.3.2/borg/defi/mev/jito.py +0 -169
  138. agent_borg-3.3.2/borg/defi/portfolio_monitor.py +0 -681
  139. agent_borg-3.3.2/borg/defi/risk_engine.py +0 -725
  140. agent_borg-3.3.2/borg/defi/security/__init__.py +0 -36
  141. agent_borg-3.3.2/borg/defi/security/keystore.py +0 -559
  142. agent_borg-3.3.2/borg/defi/security/tx_guard.py +0 -581
  143. agent_borg-3.3.2/borg/defi/strategy_backtester.py +0 -814
  144. agent_borg-3.3.2/borg/defi/strategy_selector.py +0 -702
  145. agent_borg-3.3.2/borg/defi/swap_executor.py +0 -1438
  146. agent_borg-3.3.2/borg/defi/tests/__init__.py +0 -1
  147. agent_borg-3.3.2/borg/defi/tests/test_alchemy.py +0 -426
  148. agent_borg-3.3.2/borg/defi/tests/test_alpha_signal.py +0 -905
  149. agent_borg-3.3.2/borg/defi/tests/test_api_clients.py +0 -558
  150. agent_borg-3.3.2/borg/defi/tests/test_arkham.py +0 -651
  151. agent_borg-3.3.2/borg/defi/tests/test_base_client.py +0 -292
  152. agent_borg-3.3.2/borg/defi/tests/test_cache.py +0 -503
  153. agent_borg-3.3.2/borg/defi/tests/test_cli.py +0 -279
  154. agent_borg-3.3.2/borg/defi/tests/test_cron.py +0 -708
  155. agent_borg-3.3.2/borg/defi/tests/test_cron_delivery.py +0 -246
  156. agent_borg-3.3.2/borg/defi/tests/test_cron_state.py +0 -315
  157. agent_borg-3.3.2/borg/defi/tests/test_data_models.py +0 -754
  158. agent_borg-3.3.2/borg/defi/tests/test_dojo_bridge.py +0 -976
  159. agent_borg-3.3.2/borg/defi/tests/test_e2e_live.py +0 -304
  160. agent_borg-3.3.2/borg/defi/tests/test_goplus.py +0 -469
  161. agent_borg-3.3.2/borg/defi/tests/test_keystore_unit.py +0 -536
  162. agent_borg-3.3.2/borg/defi/tests/test_liquidation_watcher.py +0 -776
  163. agent_borg-3.3.2/borg/defi/tests/test_live_scans.py +0 -1048
  164. agent_borg-3.3.2/borg/defi/tests/test_lp_manager.py +0 -740
  165. agent_borg-3.3.2/borg/defi/tests/test_mcp_tools.py +0 -335
  166. agent_borg-3.3.2/borg/defi/tests/test_mev.py +0 -721
  167. agent_borg-3.3.2/borg/defi/tests/test_portfolio_monitor.py +0 -621
  168. agent_borg-3.3.2/borg/defi/tests/test_risk_engine.py +0 -729
  169. agent_borg-3.3.2/borg/defi/tests/test_strategy_backtester.py +0 -728
  170. agent_borg-3.3.2/borg/defi/tests/test_strategy_selector.py +0 -1009
  171. agent_borg-3.3.2/borg/defi/tests/test_swap_executor.py +0 -1219
  172. agent_borg-3.3.2/borg/defi/tests/test_tx_guard_unit.py +0 -651
  173. agent_borg-3.3.2/borg/defi/tests/test_v2_borg_bridge.py +0 -374
  174. agent_borg-3.3.2/borg/defi/tests/test_v2_circuit_breaker.py +0 -590
  175. agent_borg-3.3.2/borg/defi/tests/test_v2_drift.py +0 -393
  176. agent_borg-3.3.2/borg/defi/tests/test_v2_integration.py +0 -610
  177. agent_borg-3.3.2/borg/defi/tests/test_v2_models.py +0 -537
  178. agent_borg-3.3.2/borg/defi/tests/test_v2_outcome_store.py +0 -364
  179. agent_borg-3.3.2/borg/defi/tests/test_v2_pack_store.py +0 -379
  180. agent_borg-3.3.2/borg/defi/tests/test_v2_recommender.py +0 -859
  181. agent_borg-3.3.2/borg/defi/tests/test_v2_reputation.py +0 -413
  182. agent_borg-3.3.2/borg/defi/tests/test_v2_seed_packs.py +0 -285
  183. agent_borg-3.3.2/borg/defi/tests/test_v2_warnings.py +0 -428
  184. agent_borg-3.3.2/borg/defi/tests/test_whale_tracker.py +0 -515
  185. agent_borg-3.3.2/borg/defi/tests/test_yield_scanner.py +0 -593
  186. agent_borg-3.3.2/borg/defi/v2/__init__.py +0 -27
  187. agent_borg-3.3.2/borg/defi/v2/borg_bridge.py +0 -300
  188. agent_borg-3.3.2/borg/defi/v2/circuit_breaker.py +0 -397
  189. agent_borg-3.3.2/borg/defi/v2/daily_brief.py +0 -129
  190. agent_borg-3.3.2/borg/defi/v2/drift.py +0 -151
  191. agent_borg-3.3.2/borg/defi/v2/models.py +0 -388
  192. agent_borg-3.3.2/borg/defi/v2/outcome_store.py +0 -168
  193. agent_borg-3.3.2/borg/defi/v2/pack_store.py +0 -180
  194. agent_borg-3.3.2/borg/defi/v2/recommender.py +0 -582
  195. agent_borg-3.3.2/borg/defi/v2/reputation.py +0 -216
  196. agent_borg-3.3.2/borg/defi/v2/seed_packs.py +0 -399
  197. agent_borg-3.3.2/borg/defi/v2/warnings.py +0 -216
  198. agent_borg-3.3.2/borg/defi/whale_tracker.py +0 -585
  199. agent_borg-3.3.2/borg/defi/yield_scanner.py +0 -405
  200. agent_borg-3.3.2/borg/seeds_data/borg/SKILL.md +0 -147
  201. agent_borg-3.3.2/borg/seeds_data/borg-autopilot/SKILL.md +0 -140
  202. agent_borg-3.3.2/borg/tests/__init__.py +0 -0
  203. agent_borg-3.3.2/borg/tests/test_dirs.py +0 -55
  204. agent_borg-3.3.2/borg/tests/test_invariants.py +0 -98
  205. agent_borg-3.3.2/borg/tests/test_perf_candidate_cache.py +0 -58
  206. agent_borg-3.3.2/borg/tests/test_version_consistency.py +0 -27
  207. agent_borg-3.3.2/pyproject.toml +0 -47
  208. {agent_borg-3.3.2 → agent_borg-3.3.3}/agent_borg.egg-info/dependency_links.txt +0 -0
  209. {agent_borg-3.3.2 → agent_borg-3.3.3}/agent_borg.egg-info/top_level.txt +0 -0
  210. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmark/skills/test_skills.py +0 -0
  211. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmarks/__init__.py +0 -0
  212. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmarks/report.py +0 -0
  213. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmarks/runner.py +0 -0
  214. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmarks/scorer.py +0 -0
  215. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmarks/tasks.py +0 -0
  216. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmarks/tests/__init__.py +0 -0
  217. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/benchmarks/tests/test_benchmarks.py +0 -0
  218. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/agentskills_converter.py +0 -0
  219. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/aggregator.py +0 -0
  220. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/bm25_index.py +0 -0
  221. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/causal.py +0 -0
  222. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/changes.py +0 -0
  223. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/clustering.py +0 -0
  224. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/cold_start.py +0 -0
  225. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/conditions.py +0 -0
  226. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/contextual_selector.py +0 -0
  227. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/negative_traces.py +0 -0
  228. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/proof_gates.py +0 -0
  229. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/safety.py +0 -0
  230. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/schema.py +0 -0
  231. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/seed_loader.py +0 -0
  232. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/seeds.py +0 -0
  233. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/semantic_search.py +0 -0
  234. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/signals.py +0 -0
  235. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/stack.py +0 -0
  236. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/synthesis.py +0 -0
  237. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/core/temporal.py +0 -0
  238. {agent_borg-3.3.2/borg/core → agent_borg-3.3.3/borg/db}/__init__.py +0 -0
  239. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/db/analytics.py +0 -0
  240. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/db/migrations.py +0 -0
  241. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/db/reputation.py +0 -0
  242. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/db/store.py +0 -0
  243. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/__init__.py +0 -0
  244. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/auto_fixer.py +0 -0
  245. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/cron_runner.py +0 -0
  246. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/data_models.py +0 -0
  247. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/failure_classifier.py +0 -0
  248. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/learning_curve.py +0 -0
  249. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/pipeline.py +0 -0
  250. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/report_generator.py +0 -0
  251. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/session_reader.py +0 -0
  252. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/skill_gap_detector.py +0 -0
  253. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/__init__.py +0 -0
  254. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/test_auto_fixer.py +0 -0
  255. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/test_failure_classifier.py +0 -0
  256. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/test_learning_curve.py +0 -0
  257. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/test_pipeline.py +0 -0
  258. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/test_report_generator.py +0 -0
  259. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/test_session_reader.py +0 -0
  260. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/dojo/tests/test_skill_gap_detector.py +0 -0
  261. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/eval/__init__.py +0 -0
  262. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/eval/ab_test.py +0 -0
  263. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/eval/e1a_seed_pack_validation.py +0 -0
  264. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/eval/production_smoke_test.py +0 -0
  265. {agent_borg-3.3.2/borg/db → agent_borg-3.3.3/borg/integrations}/__init__.py +0 -0
  266. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/integrations/agent_hook.py +0 -0
  267. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/integrations/http_server.py +0 -0
  268. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/integrations/nudge.py +0 -0
  269. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/circular-dependency-migration.md +0 -0
  270. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/code-review.md +0 -0
  271. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/collective_seed.json +0 -0
  272. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/configuration-error.md +0 -0
  273. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/defi-risk-check.md +0 -0
  274. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/defi-yield-strategy.md +0 -0
  275. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/extended_seeds.yaml +0 -0
  276. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/import-cycle.md +0 -0
  277. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/migration-state-desync.md +0 -0
  278. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/missing-dependency.md +0 -0
  279. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/missing-foreign-key.md +0 -0
  280. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/null-pointer-chain.md +0 -0
  281. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/bash-permission-denied.yaml +0 -0
  282. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/django-circular-dependency.yaml +0 -0
  283. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/django-migration-state.yaml +0 -0
  284. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/django-null-pointer.yaml +0 -0
  285. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/django-schema-drift.yaml +0 -0
  286. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/docker-no-space.yaml +0 -0
  287. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/git-merge-conflict.yaml +0 -0
  288. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/pytest-flaky-test.yaml +0 -0
  289. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/python-import-cycle.yaml +0 -0
  290. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/packs/python-missing-dependency.yaml +0 -0
  291. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/permission-denied.md +0 -0
  292. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/race-condition.md +0 -0
  293. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/schema-drift.md +0 -0
  294. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/systematic-debugging.md +0 -0
  295. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/test-driven-development.md +0 -0
  296. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/timeout-hang.md +0 -0
  297. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/seeds_data/type-mismatch.md +0 -0
  298. {agent_borg-3.3.2/borg/integrations → agent_borg-3.3.3/borg/tests}/__init__.py +0 -0
  299. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/fixtures/openclaw/quick_validate.py +0 -0
  300. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_agent_hook.py +0 -0
  301. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_aggregator.py +0 -0
  302. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_analytics.py +0 -0
  303. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_apply.py +0 -0
  304. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_change_awareness.py +0 -0
  305. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_classify_error.py +0 -0
  306. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_conditions.py +0 -0
  307. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_contextual_selector.py +0 -0
  308. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_convert.py +0 -0
  309. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_dojo_pipeline.py +0 -0
  310. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_failure_memory.py +0 -0
  311. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_fleet_syncer.py +0 -0
  312. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_generate.py +0 -0
  313. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_generator.py +0 -0
  314. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_golden_queries.py +0 -0
  315. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_mcp_hardening.py +0 -0
  316. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_nudge.py +0 -0
  317. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_observe_search_roundtrip.py +0 -0
  318. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_openclaw_converter.py +0 -0
  319. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_privacy.py +0 -0
  320. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_proof_gates.py +0 -0
  321. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_publish.py +0 -0
  322. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_publish_flow_debug.py +0 -0
  323. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_publish_flow_integration.py +0 -0
  324. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_publish_sybil.py +0 -0
  325. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_pull_network.py +0 -0
  326. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_reputation.py +0 -0
  327. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_reputation_integration.py +0 -0
  328. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_safety.py +0 -0
  329. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_schema.py +0 -0
  330. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_semantic_search.py +0 -0
  331. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_session.py +0 -0
  332. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_store.py +0 -0
  333. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_store_concurrency.py +0 -0
  334. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_telemetry.py +0 -0
  335. {agent_borg-3.3.2 → agent_borg-3.3.3}/borg/tests/test_wiring.py +0 -0
  336. {agent_borg-3.3.2 → agent_borg-3.3.3}/setup.cfg +0 -0
  337. {agent_borg-3.3.2 → agent_borg-3.3.3}/tests/test_e2e_verify.py +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 Borg contributors
3
+ Copyright (c) 2026 Borg Contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,30 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-borg
3
+ Version: 3.3.3
4
+ Summary: Collective memory MCP server for AI coding agents
5
+ Project-URL: Homepage, https://github.com/borg-farther/Borg-Directory
6
+ Project-URL: Repository, https://github.com/borg-farther/Borg-Directory
7
+ Project-URL: Documentation, https://github.com/borg-farther/Borg-Directory#readme
8
+ Project-URL: Issues, https://github.com/borg-farther/Borg-Directory/issues
9
+ Requires-Python: >=3.10
10
+ License-File: LICENSE
11
+ Requires-Dist: pyyaml>=6.0
12
+ Provides-Extra: semantic
13
+ Requires-Dist: sentence-transformers>=2.2.0; extra == "semantic"
14
+ Requires-Dist: numpy>=1.24.0; extra == "semantic"
15
+ Requires-Dist: scikit-learn>=1.3.0; extra == "semantic"
16
+ Provides-Extra: embeddings
17
+ Requires-Dist: sentence-transformers>=2.2.0; extra == "embeddings"
18
+ Requires-Dist: numpy>=1.24.0; extra == "embeddings"
19
+ Requires-Dist: scikit-learn>=1.3.0; extra == "embeddings"
20
+ Provides-Extra: crypto
21
+ Requires-Dist: pynacl>=1.5.0; extra == "crypto"
22
+ Provides-Extra: dev
23
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
24
+ Provides-Extra: all
25
+ Requires-Dist: pytest>=8.0.0; extra == "all"
26
+ Requires-Dist: sentence-transformers>=2.2.0; extra == "all"
27
+ Requires-Dist: numpy>=1.24.0; extra == "all"
28
+ Requires-Dist: scikit-learn>=1.3.0; extra == "all"
29
+ Requires-Dist: pynacl>=1.5.0; extra == "all"
30
+ Dynamic: license-file
@@ -0,0 +1,259 @@
1
+ # Borg — collective memory for AI agents
2
+
3
+ **Install:** `pip install agent-borg`
4
+ **CLI:** `borg`
5
+ **MCP server:** `borg-mcp`
6
+ **Canonical repo:** https://github.com/borg-farther/Borg-Directory
7
+
8
+ Borg helps coding agents avoid rediscovering the same fixes and dead ends. When an agent hits an error, it can check Borg first, get prior guidance, and record whether the guidance helped.
9
+
10
+ Borg is not marketed here as a magic success-rate booster. Current local security/readiness gates are green; statistically significant external agent-level lift is still unproven.
11
+
12
+ ---
13
+
14
+ ## 1. Install
15
+
16
+ ```bash
17
+ python3 -m pip install agent-borg
18
+ borg version
19
+ borg-doctor --json
20
+ ```
21
+
22
+ Expected first check:
23
+
24
+ ```text
25
+ borg version # prints the installed version, currently 3.3.3 in this repo
26
+ borg-doctor # returns ok=true / PASS-style checks when the install is healthy
27
+ ```
28
+
29
+ For isolated installs:
30
+
31
+ ```bash
32
+ pipx install agent-borg
33
+ ```
34
+
35
+ For controlled or offline environments, pre-download wheels on a connected machine and install from that local wheelhouse:
36
+
37
+ ```bash
38
+ python -m pip download agent-borg -d ./wheelhouse
39
+ python -m pip install --no-index --find-links ./wheelhouse agent-borg
40
+ ```
41
+
42
+ Optional extras:
43
+
44
+ ```bash
45
+ pip install 'agent-borg[embeddings]' # semantic search
46
+ pip install 'agent-borg[crypto]' # Ed25519 signing support
47
+ pip install 'agent-borg[all]' # dev + semantic + crypto
48
+ ```
49
+
50
+ Requires Python 3.10+.
51
+
52
+ ---
53
+
54
+ ## 2. One-command Claude setup
55
+
56
+ ```bash
57
+ borg setup-claude --scope user --verify --fix
58
+ ```
59
+
60
+ What this does:
61
+
62
+ 1. Finds the MCP launch command.
63
+ 2. Creates Borg home storage if missing.
64
+ 3. Writes user-level Claude MCP config.
65
+ 4. Runs an MCP initialize verification.
66
+ 5. Prints a binary pass/fail result with remediation if something is wrong.
67
+
68
+ If your agent config needs manual MCP wiring, use this:
69
+
70
+ ```json
71
+ {
72
+ "mcpServers": {
73
+ "borg": {
74
+ "command": "borg-mcp",
75
+ "args": [],
76
+ "env": { "BORG_HOME": "/absolute/path/to/.borg" }
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ Fallback if `borg-mcp` is not on PATH:
83
+
84
+ ```json
85
+ {
86
+ "mcpServers": {
87
+ "borg": {
88
+ "command": "python3",
89
+ "args": ["-m", "borg.integrations.mcp_server"],
90
+ "env": { "BORG_HOME": "/absolute/path/to/.borg" }
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ Use absolute paths in MCP env blocks. Do not rely on `~` expansion inside MCP clients.
97
+
98
+ ---
99
+
100
+ ## 3. First useful commands
101
+
102
+ ```bash
103
+ # Fastest day-one value: paste an error, get ACTION / STOP / VERIFY
104
+ borg rescue "ModuleNotFoundError: No module named flask"
105
+
106
+ # Pipe failing command output into Borg
107
+ pytest -q 2>&1 | borg rescue --json
108
+
109
+ # Interactive onboarding uses the same rescue engine
110
+ borg start
111
+
112
+ # First-10 beta contract / readiness packet
113
+ borg first-10
114
+ borg first-10 --json
115
+
116
+ # Search existing guidance
117
+ borg search "django migration table already exists"
118
+
119
+ # Preview a workflow pack safely
120
+ borg try borg://hermes/systematic-debugging
121
+
122
+ # Pull the pack locally
123
+ borg pull borg://hermes/systematic-debugging
124
+
125
+ # Apply it to a real task
126
+ borg apply systematic-debugging --task "Fix Django migration table already exists error"
127
+
128
+ # After completion, generate feedback
129
+ borg feedback <session_id>
130
+ ```
131
+
132
+ For Python callers:
133
+
134
+ ```python
135
+ import borg
136
+
137
+ hits = borg.check("TypeError: unsupported operand type(s)", top_k=3)
138
+ for hit in hits:
139
+ print(hit.get("name"), hit.get("tier"))
140
+ ```
141
+
142
+ ---
143
+
144
+ ## 4. Agent instruction / priming
145
+
146
+ Put this in your project `CLAUDE.md`, agent system prompt, or first user message:
147
+
148
+ ```text
149
+ Before attempting technical fixes for errors, bugs, installs, configs, deployments, or tests, call Borg first. Prefer borg_rescue(input="<exact error or failing command output>") when there is a concrete failure; use borg_observe(task="<exact task or error>", context="<tech stack>") at task start. Treat Borg output as advisory: follow ACTION when relevant, avoid STOP/AVOID patterns, and disclose when retrieved guidance is weak or does not fit. After the fix, call borg_rate(helpful=True/False) or record the outcome.
150
+ ```
151
+
152
+ Why: agents often do not discover optional tools unless explicitly primed.
153
+
154
+ ---
155
+
156
+ ## 5. MCP tools
157
+
158
+ Core tools available through the MCP server include:
159
+
160
+ - `borg_rescue` — agent-ready ACTION / STOP / VERIFY packet for concrete failures
161
+ - `borg_observe` — passive guidance before a technical fix
162
+ - `borg_search` — search packs / traces
163
+ - `borg_try` — preview a pack before saving
164
+ - `borg_pull` — fetch and validate a pack
165
+ - `borg_apply` — phase-by-phase execution
166
+ - `borg_feedback` — structured feedback artifact
167
+ - `borg_suggest` — suggest after repeated failures
168
+ - `borg_convert` — convert skills/rules into Borg-compatible artifacts
169
+ - `borg_publish` — publish artifacts with safety gates
170
+ - `borg_first_10` — first-10 beta gates, smoke path, priming paragraph, feedback fields
171
+
172
+ Use `borg_rescue` for concrete errors/failing command output. Use `borg_observe` first for broader debugging/config/install/deploy/test tasks.
173
+
174
+ ---
175
+
176
+ ## 6. What is proven right now
177
+
178
+ Current local gate snapshot in this repo:
179
+
180
+ - Version consistency: PASS
181
+ - First-user install surface: PASS
182
+ - Security/privacy/prompt-injection surface: PASS
183
+ - Learning-atom safety tests: PASS
184
+ - Local 10/100/1000 logical-user soak: PASS
185
+ - Latest focused verification: source + wheel + PyPI first-user gates must pass; first-user public launch remains gated by real external-user evidence
186
+
187
+ Canonical local artifacts:
188
+
189
+ - [`PROJECT_STATUS.md`](PROJECT_STATUS.md)
190
+ - [`GO_NO_GO_DECISION.md`](GO_NO_GO_DECISION.md)
191
+ - [`docs/20260504-1123_BORG_PRODUCTION_1000_READINESS_STATUS.md`](docs/20260504-1123_BORG_PRODUCTION_1000_READINESS_STATUS.md)
192
+ - [`docs/FIRST_10_BETA_READINESS.md`](docs/FIRST_10_BETA_READINESS.md)
193
+ - [`eval/uat_scoreboard_snapshot.json`](eval/uat_scoreboard_snapshot.json)
194
+ - [`docs/SECURITY_HARDENING_BASELINE.md`](docs/SECURITY_HARDENING_BASELINE.md)
195
+ - [`docs/PRIVACY_MODEL.md`](docs/PRIVACY_MODEL.md)
196
+ - [`docs/PROMPT_INJECTION_THREAT_MODEL.md`](docs/PROMPT_INJECTION_THREAT_MODEL.md)
197
+ - [`docs/TRUST_AND_PROMOTION.md`](docs/TRUST_AND_PROMOTION.md)
198
+ - [`docs/REVOCATION_AND_DELETION.md`](docs/REVOCATION_AND_DELETION.md)
199
+
200
+ ---
201
+
202
+ ## 7. Honest limitations
203
+
204
+ Not yet proven:
205
+
206
+ - Statistically significant agent-level success lift.
207
+ - Real external-user network effects.
208
+ - Global/federated multi-node reliability.
209
+ - Broad non-Python generalization.
210
+ - Navigation cache as a shipped first-user feature.
211
+
212
+ Security boundary:
213
+
214
+ - Learning atoms are signed, privacy-scanned, prompt-injection scanned, and revocable.
215
+ - Ed25519 primitives exist, but do not interpret that as “every pack from every source is cryptographically trusted” unless the specific command reports verified signature state.
216
+
217
+ ---
218
+
219
+ ## 8. For evaluators
220
+
221
+ If you are evaluating Borg, run this exact smoke path from a clean environment:
222
+
223
+ ```bash
224
+ python3 -m venv /tmp/borg-smoke
225
+ . /tmp/borg-smoke/bin/activate
226
+ python -m pip install --upgrade pip
227
+ python -m pip install agent-borg
228
+ borg version
229
+ borg-doctor --json
230
+ borg search "django migration table already exists"
231
+ borg first-10 --json
232
+ python - <<'PY'
233
+ import borg
234
+ print(borg.check('TypeError: unsupported operand type(s)', top_k=2))
235
+ PY
236
+ ```
237
+
238
+ Then connect MCP using `borg setup-claude --scope user --verify --fix` or the manual config above.
239
+
240
+ A good first evaluation is whether Borg reduces redundant investigation, not whether it magically solves every bug.
241
+
242
+ ---
243
+
244
+ ## 9. Development verification
245
+
246
+ From a source checkout:
247
+
248
+ ```bash
249
+ python -m pytest -q borg/tests/test_public_api_check.py borg/tests/test_version_consistency.py borg/tests/test_runtime_doctor.py
250
+ python scripts/security_gate_check.py
251
+ BORG_READINESS_SOAK_SECONDS=5 python eval/run_readiness_gates.py
252
+ python eval/uat_scoreboard.py
253
+ ```
254
+
255
+ ---
256
+
257
+ ## License
258
+
259
+ MIT. See [`LICENSE`](LICENSE).
@@ -0,0 +1,30 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-borg
3
+ Version: 3.3.3
4
+ Summary: Collective memory MCP server for AI coding agents
5
+ Project-URL: Homepage, https://github.com/borg-farther/Borg-Directory
6
+ Project-URL: Repository, https://github.com/borg-farther/Borg-Directory
7
+ Project-URL: Documentation, https://github.com/borg-farther/Borg-Directory#readme
8
+ Project-URL: Issues, https://github.com/borg-farther/Borg-Directory/issues
9
+ Requires-Python: >=3.10
10
+ License-File: LICENSE
11
+ Requires-Dist: pyyaml>=6.0
12
+ Provides-Extra: semantic
13
+ Requires-Dist: sentence-transformers>=2.2.0; extra == "semantic"
14
+ Requires-Dist: numpy>=1.24.0; extra == "semantic"
15
+ Requires-Dist: scikit-learn>=1.3.0; extra == "semantic"
16
+ Provides-Extra: embeddings
17
+ Requires-Dist: sentence-transformers>=2.2.0; extra == "embeddings"
18
+ Requires-Dist: numpy>=1.24.0; extra == "embeddings"
19
+ Requires-Dist: scikit-learn>=1.3.0; extra == "embeddings"
20
+ Provides-Extra: crypto
21
+ Requires-Dist: pynacl>=1.5.0; extra == "crypto"
22
+ Provides-Extra: dev
23
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
24
+ Provides-Extra: all
25
+ Requires-Dist: pytest>=8.0.0; extra == "all"
26
+ Requires-Dist: sentence-transformers>=2.2.0; extra == "all"
27
+ Requires-Dist: numpy>=1.24.0; extra == "all"
28
+ Requires-Dist: scikit-learn>=1.3.0; extra == "all"
29
+ Requires-Dist: pynacl>=1.5.0; extra == "all"
30
+ Dynamic: license-file
@@ -18,20 +18,24 @@ borg/benchmarks/tasks.py
18
18
  borg/benchmarks/tests/__init__.py
19
19
  borg/benchmarks/tests/test_benchmarks.py
20
20
  borg/cli/__init__.py
21
+ borg/cli/__main__.py
21
22
  borg/cli/doctor.py
22
23
  borg/cli/install.py
23
24
  borg/core/__init__.py
24
- borg/core/action_policy.py
25
25
  borg/core/agentskills_converter.py
26
26
  borg/core/aggregator.py
27
27
  borg/core/apply.py
28
+ borg/core/atom_policy.py
29
+ borg/core/atom_retrieval.py
30
+ borg/core/atom_store.py
31
+ borg/core/atom_tenant.py
28
32
  borg/core/bm25_index.py
29
- borg/core/canonical_truth.py
30
33
  borg/core/causal.py
31
34
  borg/core/changes.py
32
35
  borg/core/clustering.py
33
36
  borg/core/cold_start.py
34
37
  borg/core/conditions.py
38
+ borg/core/confidence_gate.py
35
39
  borg/core/contextual_selector.py
36
40
  borg/core/convert.py
37
41
  borg/core/crypto.py
@@ -39,22 +43,21 @@ borg/core/dirs.py
39
43
  borg/core/embeddings.py
40
44
  borg/core/failure_memory.py
41
45
  borg/core/feedback_loop.py
46
+ borg/core/first_user_readiness.py
42
47
  borg/core/generate.py
43
48
  borg/core/generator.py
49
+ borg/core/learning_atoms.py
44
50
  borg/core/mutation_engine.py
45
51
  borg/core/negative_traces.py
46
52
  borg/core/openclaw_converter.py
47
- borg/core/outcome_ledger.py
48
53
  borg/core/pack_taxonomy.py
49
54
  borg/core/privacy.py
55
+ borg/core/prompt_injection.py
50
56
  borg/core/proof_gates.py
51
- borg/core/provider_router.py
52
57
  borg/core/publish.py
53
- borg/core/quality_gate.py
54
- borg/core/rate_limiter.py
55
- borg/core/response_formatter.py
58
+ borg/core/rescue.py
59
+ borg/core/runtime_fingerprint.py
56
60
  borg/core/safety.py
57
- borg/core/sanitizer.py
58
61
  borg/core/schema.py
59
62
  borg/core/search.py
60
63
  borg/core/seed_loader.py
@@ -63,7 +66,6 @@ borg/core/semantic_search.py
63
66
  borg/core/session.py
64
67
  borg/core/signals.py
65
68
  borg/core/stack.py
66
- borg/core/status.py
67
69
  borg/core/synthesis.py
68
70
  borg/core/telemetry.py
69
71
  borg/core/temporal.py
@@ -77,99 +79,6 @@ borg/db/embeddings.py
77
79
  borg/db/migrations.py
78
80
  borg/db/reputation.py
79
81
  borg/db/store.py
80
- borg/defi/__init__.py
81
- borg/defi/alpha_signal.py
82
- borg/defi/cli.py
83
- borg/defi/data_models.py
84
- borg/defi/dojo_bridge.py
85
- borg/defi/liquidation_watcher.py
86
- borg/defi/lp_manager.py
87
- borg/defi/mcp_tools.py
88
- borg/defi/portfolio_monitor.py
89
- borg/defi/risk_engine.py
90
- borg/defi/strategy_backtester.py
91
- borg/defi/strategy_selector.py
92
- borg/defi/swap_executor.py
93
- borg/defi/whale_tracker.py
94
- borg/defi/yield_scanner.py
95
- borg/defi/api_clients/__init__.py
96
- borg/defi/api_clients/alchemy.py
97
- borg/defi/api_clients/arkham.py
98
- borg/defi/api_clients/base.py
99
- borg/defi/api_clients/birdeye.py
100
- borg/defi/api_clients/cache.py
101
- borg/defi/api_clients/defillama.py
102
- borg/defi/api_clients/dexscreener.py
103
- borg/defi/api_clients/goplus.py
104
- borg/defi/api_clients/helius.py
105
- borg/defi/cron/__init__.py
106
- borg/defi/cron/alpha_cron.py
107
- borg/defi/cron/delivery.py
108
- borg/defi/cron/liquidation_cron.py
109
- borg/defi/cron/live_scans.py
110
- borg/defi/cron/portfolio_cron.py
111
- borg/defi/cron/risk_cron.py
112
- borg/defi/cron/state.py
113
- borg/defi/cron/whale_cron.py
114
- borg/defi/cron/yield_cron.py
115
- borg/defi/mev/__init__.py
116
- borg/defi/mev/flashbots.py
117
- borg/defi/mev/jito.py
118
- borg/defi/security/__init__.py
119
- borg/defi/security/keystore.py
120
- borg/defi/security/tx_guard.py
121
- borg/defi/tests/__init__.py
122
- borg/defi/tests/test_alchemy.py
123
- borg/defi/tests/test_alpha_signal.py
124
- borg/defi/tests/test_api_clients.py
125
- borg/defi/tests/test_arkham.py
126
- borg/defi/tests/test_base_client.py
127
- borg/defi/tests/test_cache.py
128
- borg/defi/tests/test_cli.py
129
- borg/defi/tests/test_cron.py
130
- borg/defi/tests/test_cron_delivery.py
131
- borg/defi/tests/test_cron_state.py
132
- borg/defi/tests/test_data_models.py
133
- borg/defi/tests/test_dojo_bridge.py
134
- borg/defi/tests/test_e2e_live.py
135
- borg/defi/tests/test_goplus.py
136
- borg/defi/tests/test_keystore_unit.py
137
- borg/defi/tests/test_liquidation_watcher.py
138
- borg/defi/tests/test_live_scans.py
139
- borg/defi/tests/test_lp_manager.py
140
- borg/defi/tests/test_mcp_tools.py
141
- borg/defi/tests/test_mev.py
142
- borg/defi/tests/test_portfolio_monitor.py
143
- borg/defi/tests/test_risk_engine.py
144
- borg/defi/tests/test_strategy_backtester.py
145
- borg/defi/tests/test_strategy_selector.py
146
- borg/defi/tests/test_swap_executor.py
147
- borg/defi/tests/test_tx_guard_unit.py
148
- borg/defi/tests/test_v2_borg_bridge.py
149
- borg/defi/tests/test_v2_circuit_breaker.py
150
- borg/defi/tests/test_v2_drift.py
151
- borg/defi/tests/test_v2_integration.py
152
- borg/defi/tests/test_v2_models.py
153
- borg/defi/tests/test_v2_outcome_store.py
154
- borg/defi/tests/test_v2_pack_store.py
155
- borg/defi/tests/test_v2_recommender.py
156
- borg/defi/tests/test_v2_reputation.py
157
- borg/defi/tests/test_v2_seed_packs.py
158
- borg/defi/tests/test_v2_warnings.py
159
- borg/defi/tests/test_whale_tracker.py
160
- borg/defi/tests/test_yield_scanner.py
161
- borg/defi/v2/__init__.py
162
- borg/defi/v2/borg_bridge.py
163
- borg/defi/v2/circuit_breaker.py
164
- borg/defi/v2/daily_brief.py
165
- borg/defi/v2/drift.py
166
- borg/defi/v2/models.py
167
- borg/defi/v2/outcome_store.py
168
- borg/defi/v2/pack_store.py
169
- borg/defi/v2/recommender.py
170
- borg/defi/v2/reputation.py
171
- borg/defi/v2/seed_packs.py
172
- borg/defi/v2/warnings.py
173
82
  borg/dojo/__init__.py
174
83
  borg/dojo/auto_fixer.py
175
84
  borg/dojo/cron_runner.py
@@ -217,8 +126,6 @@ borg/seeds_data/systematic-debugging.md
217
126
  borg/seeds_data/test-driven-development.md
218
127
  borg/seeds_data/timeout-hang.md
219
128
  borg/seeds_data/type-mismatch.md
220
- borg/seeds_data/borg/SKILL.md
221
- borg/seeds_data/borg-autopilot/SKILL.md
222
129
  borg/seeds_data/packs/bash-permission-denied.yaml
223
130
  borg/seeds_data/packs/django-circular-dependency.yaml
224
131
  borg/seeds_data/packs/django-migration-state.yaml
@@ -229,29 +136,43 @@ borg/seeds_data/packs/git-merge-conflict.yaml
229
136
  borg/seeds_data/packs/pytest-flaky-test.yaml
230
137
  borg/seeds_data/packs/python-import-cycle.yaml
231
138
  borg/seeds_data/packs/python-missing-dependency.yaml
139
+ borg/seeds_data/packs/systematic-debugging.workflow.yaml
232
140
  borg/tests/__init__.py
233
141
  borg/tests/test_agent_hook.py
234
142
  borg/tests/test_aggregator.py
235
143
  borg/tests/test_analytics.py
236
144
  borg/tests/test_apply.py
145
+ borg/tests/test_atom_policy.py
146
+ borg/tests/test_atom_retrieval_firewall.py
147
+ borg/tests/test_atom_store.py
148
+ borg/tests/test_atom_tenant.py
149
+ borg/tests/test_borg_observe_confidence_gate.py
150
+ borg/tests/test_borg_observe_wrapper.py
237
151
  borg/tests/test_change_awareness.py
238
152
  borg/tests/test_classify_error.py
239
153
  borg/tests/test_cli.py
154
+ borg/tests/test_cli_atom.py
240
155
  borg/tests/test_conditions.py
156
+ borg/tests/test_confidence_gate.py
241
157
  borg/tests/test_contextual_selector.py
242
158
  borg/tests/test_convert.py
243
159
  borg/tests/test_convert_openclaw.py
244
160
  borg/tests/test_dirs.py
161
+ borg/tests/test_distribution_readiness.py
245
162
  borg/tests/test_dojo_pipeline.py
246
163
  borg/tests/test_e2e_learning_loop.py
247
164
  borg/tests/test_e2e_learning_loop_v3.py
165
+ borg/tests/test_embeddings_schema_compat.py
248
166
  borg/tests/test_failure_memory.py
249
167
  borg/tests/test_feedback_loop.py
168
+ borg/tests/test_first_10_readiness.py
169
+ borg/tests/test_first_user_cli_contract.py
250
170
  borg/tests/test_fleet_syncer.py
251
171
  borg/tests/test_generate.py
252
172
  borg/tests/test_generator.py
253
173
  borg/tests/test_golden_queries.py
254
- borg/tests/test_invariants.py
174
+ borg/tests/test_learning_atom_publish.py
175
+ borg/tests/test_learning_atoms.py
255
176
  borg/tests/test_mcp_hardening.py
256
177
  borg/tests/test_mcp_server.py
257
178
  borg/tests/test_mcp_server_extended.py
@@ -260,22 +181,29 @@ borg/tests/test_nudge.py
260
181
  borg/tests/test_observe_search_roundtrip.py
261
182
  borg/tests/test_openclaw_converter.py
262
183
  borg/tests/test_pack_compatibility.py
263
- borg/tests/test_perf_candidate_cache.py
264
184
  borg/tests/test_privacy.py
185
+ borg/tests/test_privacy_structured.py
186
+ borg/tests/test_prompt_injection.py
265
187
  borg/tests/test_proof_gates.py
188
+ borg/tests/test_public_api_check.py
266
189
  borg/tests/test_publish.py
267
190
  borg/tests/test_publish_flow_debug.py
268
191
  borg/tests/test_publish_flow_integration.py
269
192
  borg/tests/test_publish_sybil.py
270
193
  borg/tests/test_pull_network.py
194
+ borg/tests/test_release_packaging_contract.py
271
195
  borg/tests/test_reputation.py
272
196
  borg/tests/test_reputation_integration.py
197
+ borg/tests/test_rescue.py
198
+ borg/tests/test_runtime_doctor.py
199
+ borg/tests/test_runtime_fingerprint.py
273
200
  borg/tests/test_safety.py
274
201
  borg/tests/test_schema.py
275
202
  borg/tests/test_search.py
276
203
  borg/tests/test_semantic_search.py
277
204
  borg/tests/test_session.py
278
205
  borg/tests/test_start_signals.py
206
+ borg/tests/test_storage_paths.py
279
207
  borg/tests/test_store.py
280
208
  borg/tests/test_store_concurrency.py
281
209
  borg/tests/test_telemetry.py
@@ -2,3 +2,4 @@
2
2
  borg = borg.cli:main
3
3
  borg-doctor = borg.cli.doctor:run_doctor
4
4
  borg-install = borg.cli.install:main
5
+ borg-mcp = borg.integrations.mcp_server:main
@@ -0,0 +1,24 @@
1
+ pyyaml>=6.0
2
+
3
+ [all]
4
+ pytest>=8.0.0
5
+ sentence-transformers>=2.2.0
6
+ numpy>=1.24.0
7
+ scikit-learn>=1.3.0
8
+ pynacl>=1.5.0
9
+
10
+ [crypto]
11
+ pynacl>=1.5.0
12
+
13
+ [dev]
14
+ pytest>=8.0.0
15
+
16
+ [embeddings]
17
+ sentence-transformers>=2.2.0
18
+ numpy>=1.24.0
19
+ scikit-learn>=1.3.0
20
+
21
+ [semantic]
22
+ sentence-transformers>=2.2.0
23
+ numpy>=1.24.0
24
+ scikit-learn>=1.3.0
@@ -0,0 +1,49 @@
1
+ """Borg — collective memory for AI coding agents.
2
+
3
+ The top-level :func:`check` helper is intentionally tiny, but it must be real:
4
+ it is the first API many agents try after ``import borg``. Returning an empty
5
+ placeholder silently destroys first-user value, so this wrapper delegates to the
6
+ same search path used by the CLI/MCP server and fails closed with an empty list
7
+ only when the search layer itself is unavailable.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import json
13
+ from typing import Any
14
+
15
+ __version__ = "3.3.3"
16
+
17
+
18
+ def check(context: str, constraints: dict | None = None, top_k: int = 3) -> list[dict[str, Any]]:
19
+ """Return relevant Borg memories/packs for ``context``.
20
+
21
+ Args:
22
+ context: Error text, task description, or debugging context.
23
+ constraints: Optional hints. Supported keys today:
24
+ ``mode`` (``text``/``semantic``/``hybrid``), ``agent_id``.
25
+ top_k: Maximum number of results to return.
26
+
27
+ Returns:
28
+ A list of result dictionaries from ``borg.core.search.borg_search``.
29
+ Empty means no confident match or search unavailable; it no longer means
30
+ "API not implemented".
31
+ """
32
+ if not context or not str(context).strip():
33
+ return []
34
+ hints = constraints or {}
35
+ mode = str(hints.get("mode", "hybrid"))
36
+ agent_id = hints.get("agent_id")
37
+ try:
38
+ from borg.core.search import borg_search
39
+
40
+ raw = borg_search(str(context), mode=mode, requesting_agent_id=agent_id)
41
+ payload = json.loads(raw) if isinstance(raw, str) else raw
42
+ if not isinstance(payload, dict) or not payload.get("success"):
43
+ return []
44
+ matches = payload.get("matches", [])
45
+ if not isinstance(matches, list):
46
+ return []
47
+ return [m for m in matches[: max(0, int(top_k))] if isinstance(m, dict)]
48
+ except Exception:
49
+ return []
@@ -0,0 +1,11 @@
1
+ """Load legacy CLI implementation into package namespace.
2
+
3
+ This keeps `import borg.cli` patch-friendly for tests that monkeypatch
4
+ symbols like `borg.cli.load_session` and `borg.cli.get_borg_dir`.
5
+ """
6
+
7
+ from pathlib import Path
8
+
9
+ _cli_py_path = Path(__file__).parents[1] / "cli.py"
10
+ _source = _cli_py_path.read_text(encoding="utf-8")
11
+ exec(compile(_source, str(_cli_py_path), "exec"), globals(), globals())
@@ -0,0 +1,11 @@
1
+ """Module execution support for ``python -m borg.cli``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import sys
6
+
7
+ from . import main
8
+
9
+
10
+ if __name__ == "__main__":
11
+ sys.exit(main())