agentorch 2.0.1__tar.gz → 2.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. {agentorch-2.0.1 → agentorch-2.0.2}/PKG-INFO +65 -8
  2. {agentorch-2.0.1 → agentorch-2.0.2}/README.md +64 -7
  3. {agentorch-2.0.1 → agentorch-2.0.2}/agentorch.egg-info/PKG-INFO +65 -8
  4. {agentorch-2.0.1 → agentorch-2.0.2}/agentorch.egg-info/SOURCES.txt +12 -0
  5. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/swe_bench/patch_utils.py +39 -0
  6. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/swe_bench/run_devtorch.py +24 -0
  7. agentorch-2.0.2/devtorch_cli/__main__.py +6 -0
  8. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_cli/main.py +12 -0
  9. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/cloud/client_config.py +12 -2
  10. agentorch-2.0.2/devtorch_core/cloud/client_configs/.opencode.json +14 -0
  11. agentorch-2.0.2/devtorch_core/cloud/devtorch-mcp-bridge.js +340 -0
  12. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/mcp/server.py +113 -0
  13. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning_plus/__init__.py +10 -0
  14. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning_plus/augmenter.py +81 -1
  15. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning_plus/config.py +9 -0
  16. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/__init__.py +39 -0
  17. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/api.py +199 -0
  18. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/composer.py +50 -0
  19. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/extractor.py +80 -0
  20. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/models.py +116 -0
  21. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/recorder.py +81 -0
  22. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/relevance.py +59 -0
  23. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/state.py +86 -0
  24. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/store.py +93 -0
  25. {agentorch-2.0.1 → agentorch-2.0.2}/pyproject.toml +1 -1
  26. agentorch-2.0.2/tests/test_cloud_bridge.py +332 -0
  27. agentorch-2.0.2/tests/test_s24_reasoning_plus_learning.py +509 -0
  28. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s7_mcp_hooks.py +5 -2
  29. agentorch-2.0.1/devtorch_core/cloud/client_configs/.opencode.json +0 -14
  30. agentorch-2.0.1/devtorch_core/cloud/devtorch-mcp-bridge.js +0 -115
  31. {agentorch-2.0.1 → agentorch-2.0.2}/MANIFEST.in +0 -0
  32. {agentorch-2.0.1 → agentorch-2.0.2}/agentorch.egg-info/dependency_links.txt +0 -0
  33. {agentorch-2.0.1 → agentorch-2.0.2}/agentorch.egg-info/entry_points.txt +0 -0
  34. {agentorch-2.0.1 → agentorch-2.0.2}/agentorch.egg-info/requires.txt +0 -0
  35. {agentorch-2.0.1 → agentorch-2.0.2}/agentorch.egg-info/top_level.txt +0 -0
  36. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/hidden_profile/run_baseline.py +0 -0
  37. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/hidden_profile/run_devtorch.py +0 -0
  38. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/hidden_profile/score.py +0 -0
  39. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/swe_bench/compare.py +0 -0
  40. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/swe_bench/context_utils.py +0 -0
  41. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/swe_bench/evaluate.py +0 -0
  42. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/swe_bench/run_baseline.py +0 -0
  43. {agentorch-2.0.1 → agentorch-2.0.2}/benchmarks/swe_bench/seed_gcc.py +0 -0
  44. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_cli/__init__.py +0 -0
  45. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/__init__.py +0 -0
  46. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/aggphi_textual.py +0 -0
  47. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/__init__.py +0 -0
  48. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/base.py +0 -0
  49. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/config.py +0 -0
  50. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/dispatcher.py +0 -0
  51. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/jira.py +0 -0
  52. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/linear.py +0 -0
  53. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/pagerduty.py +0 -0
  54. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/slack.py +0 -0
  55. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/alerts/teams.py +0 -0
  56. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/broadcast/__init__.py +0 -0
  57. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/broadcast/broadcaster.py +0 -0
  58. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/broadcast/watcher.py +0 -0
  59. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/capability.py +0 -0
  60. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/cloud/__init__.py +0 -0
  61. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/cloud/client_configs/.claude-opencode-fallback.json +0 -0
  62. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/cloud/client_configs/.claude-stdio.json +0 -0
  63. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/cloud/client_configs/.cursor-mcp.json +0 -0
  64. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/cloud/client_configs/.opencode-bridge.json +0 -0
  65. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/cloud/client_configs/.vscode-mcp.json +0 -0
  66. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/codex/__init__.py +0 -0
  67. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/codex/__main__.py +0 -0
  68. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/codex/capture.py +0 -0
  69. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/codex/proxy.py +0 -0
  70. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/consolidation/__init__.py +0 -0
  71. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/consolidation/synthesizer.py +0 -0
  72. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/consolidation/workflow.py +0 -0
  73. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/dashboard_api.py +0 -0
  74. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/deltaf.py +0 -0
  75. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/disclosure.py +0 -0
  76. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/divergence/__init__.py +0 -0
  77. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/divergence/detector.py +0 -0
  78. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gateway/__init__.py +0 -0
  79. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gateway/key_manager.py +0 -0
  80. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gateway/metrics_webhook.py +0 -0
  81. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gateway/policy.py +0 -0
  82. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gateway/server.py +0 -0
  83. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gateway/sso.py +0 -0
  84. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gcc.py +0 -0
  85. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/github/__init__.py +0 -0
  86. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/github/app.py +0 -0
  87. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/github/comment_builder.py +0 -0
  88. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/github/pat.py +0 -0
  89. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/github/pr_parser.py +0 -0
  90. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/gitlab/__init__.py +0 -0
  91. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hitl/__init__.py +0 -0
  92. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hitl/channels.py +0 -0
  93. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hitl/orchestrator.py +0 -0
  94. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hooks/__init__.py +0 -0
  95. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hooks/claude_code.py +0 -0
  96. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hooks/git_commit.py +0 -0
  97. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hooks/installer.py +0 -0
  98. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/hooks/runner.py +0 -0
  99. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/identity/__init__.py +0 -0
  100. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/identity/agent.py +0 -0
  101. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/identity/providers.py +0 -0
  102. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/invariants.py +0 -0
  103. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/mcp/__init__.py +0 -0
  104. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/mcp/auth.py +0 -0
  105. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/__init__.py +0 -0
  106. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/aggregate.py +0 -0
  107. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/calibrate.py +0 -0
  108. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/calibration.py +0 -0
  109. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/credibility.py +0 -0
  110. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/dhs.py +0 -0
  111. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/mcs.py +0 -0
  112. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/roi.py +0 -0
  113. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/session_writer.py +0 -0
  114. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/shadow_ai.py +0 -0
  115. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/metrics/sprint_writer.py +0 -0
  116. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/observability/__init__.py +0 -0
  117. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/observability/datadog.py +0 -0
  118. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/observability/formatter.py +0 -0
  119. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/observability/report.py +0 -0
  120. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/observability/servicenow.py +0 -0
  121. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/observability/splunk.py +0 -0
  122. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/observability/webhook.py +0 -0
  123. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/parser/__init__.py +0 -0
  124. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/parser/blocks.py +0 -0
  125. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/parser/inference.py +0 -0
  126. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/parser/thinking.py +0 -0
  127. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/projects.py +0 -0
  128. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/prompt_artifact.py +0 -0
  129. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/proxy/__init__.py +0 -0
  130. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/proxy/routes/__init__.py +0 -0
  131. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/proxy/routes/anthropic.py +0 -0
  132. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/proxy/routes/gemini.py +0 -0
  133. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/proxy/routes/openai.py +0 -0
  134. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/proxy/server.py +0 -0
  135. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/rdp.py +0 -0
  136. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning/__init__.py +0 -0
  137. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning/entry.py +0 -0
  138. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning/store.py +0 -0
  139. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning_plus/capture.py +0 -0
  140. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning_plus/context.py +0 -0
  141. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/reasoning_plus/prompt.py +0 -0
  142. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/rep.py +0 -0
  143. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/rep_network/__init__.py +0 -0
  144. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/rep_network/merge.py +0 -0
  145. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/rep_network/node.py +0 -0
  146. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/rep_network/server.py +0 -0
  147. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/rep_network/sync.py +0 -0
  148. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/sensitivity.py +0 -0
  149. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/signing.py +0 -0
  150. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/sis.py +0 -0
  151. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/storage.py +0 -0
  152. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/theta.py +0 -0
  153. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/theta_synthesis.py +0 -0
  154. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/variance.py +0 -0
  155. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/wrapper/__init__.py +0 -0
  156. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/wrapper/anthropic.py +0 -0
  157. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/wrapper/base.py +0 -0
  158. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/wrapper/bedrock.py +0 -0
  159. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/wrapper/gemini.py +0 -0
  160. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/wrapper/ollama.py +0 -0
  161. {agentorch-2.0.1 → agentorch-2.0.2}/devtorch_core/wrapper/openai.py +0 -0
  162. {agentorch-2.0.1 → agentorch-2.0.2}/docs/generate_faq_pdf.py +0 -0
  163. {agentorch-2.0.1 → agentorch-2.0.2}/docs/paper/figures/fig_architecture.py +0 -0
  164. {agentorch-2.0.1 → agentorch-2.0.2}/docs/paper/figures/fig_comparison.py +0 -0
  165. {agentorch-2.0.1 → agentorch-2.0.2}/docs/paper/figures/fig_coordination.py +0 -0
  166. {agentorch-2.0.1 → agentorch-2.0.2}/docs/paper/figures/fig_hashchain.py +0 -0
  167. {agentorch-2.0.1 → agentorch-2.0.2}/docs/paper/figures/fig_racp_flow.py +0 -0
  168. {agentorch-2.0.1 → agentorch-2.0.2}/setup.cfg +0 -0
  169. {agentorch-2.0.1 → agentorch-2.0.2}/tests/conftest.py +0 -0
  170. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_backend_factory.py +0 -0
  171. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_broadcast.py +0 -0
  172. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_cloud_auth.py +0 -0
  173. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_cloud_integration.py +0 -0
  174. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_cloud_sse.py +0 -0
  175. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_cloud_storage.py +0 -0
  176. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_doctor_ci.py +0 -0
  177. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_getting_started.py +0 -0
  178. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_github_app.py +0 -0
  179. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_github_pat.py +0 -0
  180. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_hidden_profile_benchmark.py +0 -0
  181. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_rep_merge.py +0 -0
  182. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s0_gcc.py +0 -0
  183. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s10_jetbrains.py +0 -0
  184. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s10_vscode.py +0 -0
  185. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s11_codex.py +0 -0
  186. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s11_hooks_installer.py +0 -0
  187. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s12_github.py +0 -0
  188. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s12_gitlab.py +0 -0
  189. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s13_dashboard_api.py +0 -0
  190. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s13_forensic.py +0 -0
  191. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s14_audit_export.py +0 -0
  192. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s14_ciso_api.py +0 -0
  193. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s15_rep_network.py +0 -0
  194. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s16_alerts.py +0 -0
  195. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s17a_metrics.py +0 -0
  196. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s17b_observability.py +0 -0
  197. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s17b_sso.py +0 -0
  198. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s18_credibility.py +0 -0
  199. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s18_identity.py +0 -0
  200. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s19_projects.py +0 -0
  201. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s19_reasoning_query.py +0 -0
  202. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s1_branch_merge.py +0 -0
  203. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s20_divergence.py +0 -0
  204. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s20_metrics.py +0 -0
  205. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s20_wrapper_capture.py +0 -0
  206. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s21_hitl.py +0 -0
  207. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s22_swe_bench.py +0 -0
  208. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s22_swe_bench_dry_run.py +0 -0
  209. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s23_reasoning_plus.py +0 -0
  210. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s2_context.py +0 -0
  211. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s3_sensitivity.py +0 -0
  212. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s4_invariants.py +0 -0
  213. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s4_variance_lock.py +0 -0
  214. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s5_privacy_disclosure.py +0 -0
  215. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s5_rep_sis.py +0 -0
  216. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s6_debug.py +0 -0
  217. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s7_ollama_wrapper.py +0 -0
  218. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s7_parser.py +0 -0
  219. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s7_proxy.py +0 -0
  220. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s7_wrappers.py +0 -0
  221. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s7ent_gateway.py +0 -0
  222. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s7ent_helm.py +0 -0
  223. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s8_aggphi.py +0 -0
  224. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s8_theta_synthesis.py +0 -0
  225. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_s9_gaps.py +0 -0
  226. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_setup_command.py +0 -0
  227. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_setup_targets.py +0 -0
  228. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_signing.py +0 -0
  229. {agentorch-2.0.1 → agentorch-2.0.2}/tests/test_storage_azure.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentorch
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: DevTorch — AI reasoning capture, audit trail, and governance for agent-assisted development
5
5
  Author-email: Hemant Joshi <hemant@flotorch.ai>
6
6
  License: Apache-2.0
@@ -52,10 +52,10 @@ Requires-Dist: agentorch[cloud,mcp,proxy,wrapper]; extra == "all"
52
52
 
53
53
  **Local-first AI agent governance.** DevTorch gives multi-agent systems a shared on-disk audit trail, coordination vector, privacy controls, and LLM integration layer — all without a remote service.
54
54
 
55
- > **Latest release:** `agentorch 2.0.1` — OpenCode cloud client config and `AGENTS.md` updates are now built into the CLI. Install or upgrade with `pip install -U agentorch`.
55
+ > **Latest release:** `agentorch 2.0.2` — MCP bridge with automatic local fallback, plus upgrade/reinstall docs for all IDE integrations. Install or upgrade with `pip install -U agentorch`.
56
56
 
57
57
  ```bash
58
- pip install -U agentorch>=2.0.0
58
+ pip install -U agentorch>=2.0.2
59
59
  devtorch init
60
60
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
61
61
  devtorch debug timeline
@@ -78,13 +78,13 @@ devtorch debug timeline
78
78
 
79
79
  ### Reasoning Plus
80
80
 
81
- Reasoning Plus is DevTorch’s default augmentation mode: before every LLM call, it gathers smart context from your workspace and asks the model to produce inline `<thinking>` reasoning before the final answer. The reasoning is captured to `.GCC/` automatically and stripped from the response your tool sees.
81
+ Reasoning Plus is DevTorch’s default augmentation mode: before every LLM call, it gathers smart context from your workspace, asks the model to produce inline `<thinking>` reasoning, and learns from previous calls by re-injecting relevant reasoning into subsequent prompts. The reasoning is captured to `.GCC/` automatically and stripped from the response your tool sees.
82
82
 
83
83
  ```bash
84
84
  devtorch reasoning-plus status # show current settings
85
85
  devtorch reasoning-plus enable # turn on per project
86
86
  devtorch reasoning-plus disable # turn off per project
87
- devtorch reasoning-plus config --smart-top-n 3 --smart-max-lines 150
87
+ devtorch reasoning-plus config --smart-top-n 3 --smart-max-lines 150 --learning-top-n 3
88
88
  ```
89
89
 
90
90
  Set `DEVTORCH_REASONING_PLUS=0` to disable it for a single session. See [REASONING_PLUS.md](REASONING_PLUS.md) for details.
@@ -113,6 +113,35 @@ pip install agentorch[all] # everything
113
113
 
114
114
  ---
115
115
 
116
+ ## Upgrade from an older version
117
+
118
+ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE configs, hooks, or governance instructions, so you should re-run `devtorch setup` after upgrading.
119
+
120
+ **Upgrade any time:**
121
+
122
+ ```bash
123
+ pip install -U agentorch>=2.0.2
124
+ cd /path/to/your/project
125
+ devtorch setup # or: devtorch setup --target <ide>
126
+ devtorch doctor
127
+ ```
128
+
129
+ `devtorch setup` is idempotent:
130
+ - It rewrites `CLAUDE.md` / `AGENTS.md` with the latest governance instructions.
131
+ - It regenerates IDE-specific config files (`.claude/settings.json`, `.cursor/mcp.json`, `opencode.json`, etc.).
132
+ - It leaves existing `.GCC/` data untouched.
133
+
134
+ **If you use the cloud MCP server**, re-run the client config installer after upgrade to get the latest bridge and fallback settings:
135
+
136
+ ```bash
137
+ export DEVTORCH_MCP_DOMAIN=devtorch-mcp.your-domain.com
138
+ devtorch cloud client-config <ide> --org <org> --repo <repo> --api-key <api-key>
139
+ ```
140
+
141
+ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
142
+
143
+ ---
144
+
116
145
  ## Getting Started
117
146
 
118
147
  DevTorch takes **5 minutes to set up**. Pick your AI coding tool below.
@@ -155,6 +184,8 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
155
184
 
156
185
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
157
186
 
187
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
188
+
158
189
  ---
159
190
 
160
191
  ### Cursor
@@ -197,6 +228,8 @@ devtorch doctor
197
228
 
198
229
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
199
230
 
231
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
232
+
200
233
  ---
201
234
 
202
235
  ### Google Antigravity
@@ -227,11 +260,13 @@ devtorch doctor
227
260
 
228
261
  **What you get:** Full RACP integration. The multi-agent nature of Antigravity makes Θ accumulation especially valuable — multiple agents share the same reasoning state through `devtorch_context`.
229
262
 
263
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
264
+
230
265
  ---
231
266
 
232
267
  ### OpenCode
233
268
 
234
- OpenCode connects to the DevTorch cloud MCP server over SSE. It uses `opencode.json` for the MCP config and `AGENTS.md` for persistent governance instructions.
269
+ OpenCode connects to DevTorch through the local stdio SSE bridge. The bridge talks to the cloud MCP server first, and if the cloud is unreachable or slow it automatically falls back to the local `devtorch` CLI so your `.GCC/` audit trail is never lost.
235
270
 
236
271
  **Step 1 — Install DevTorch**
237
272
  ```bash
@@ -251,7 +286,7 @@ devtorch cloud client-config opencode --org myorg --repo myrepo --api-key <api-k
251
286
  ```
252
287
 
253
288
  This creates:
254
- - `opencode.json` — the OpenCode MCP server config
289
+ - `opencode.json` — the OpenCode MCP server config (uses the local bridge)
255
290
  - `AGENTS.md` — DevTorch governance instructions for the model
256
291
 
257
292
  **Step 3 — Verify**
@@ -261,7 +296,9 @@ devtorch doctor
261
296
 
262
297
  Open the project in OpenCode. The DevTorch MCP tools will be listed, and the model will be instructed to call `devtorch_context` at the start of each task and `devtorch_commit` before every file edit.
263
298
 
264
- **What you get:** Cloud-hosted MCP server integration, automatic reasoning commits via `AGENTS.md` instructions, and a shared Θ state across sessions.
299
+ **What you get:** Cloud-hosted MCP server integration with automatic local fallback, automatic reasoning commits via `AGENTS.md` instructions, and a shared Θ state across sessions.
300
+
301
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch cloud client-config opencode --org <org> --repo <repo> --api-key <api-key>` will regenerate `opencode.json` with the latest bridge and fallback settings. **Restart OpenCode** after updating the config.
265
302
 
266
303
  ---
267
304
 
@@ -293,6 +330,8 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
293
330
 
294
331
  **What you get:** Sidebar panel (read-only), git-commit-level event capture, manual reasoning commits. Full capture requires switching to Claude Code, Cursor, Kiro, or Antigravity.
295
332
 
333
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup` will reinstall the git hook and update the governance instructions.
334
+
296
335
  ---
297
336
 
298
337
  ### AWS Kiro
@@ -356,6 +395,8 @@ devtorch doctor
356
395
 
357
396
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
358
397
 
398
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
399
+
359
400
  ---
360
401
 
361
402
  ### AWS Bedrock (Python SDK)
@@ -387,6 +428,8 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
387
428
  devtorch doctor
388
429
  ```
389
430
 
431
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
432
+
390
433
  ---
391
434
 
392
435
  ### Azure AI Foundry (Python SDK)
@@ -419,6 +462,8 @@ client = AzureOpenAI(
419
462
  devtorch doctor
420
463
  ```
421
464
 
465
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
466
+
422
467
  ---
423
468
 
424
469
  ### OpenAI Codex CLI
@@ -443,6 +488,8 @@ codex "Add error handling to the payment service"
443
488
 
444
489
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
445
490
 
491
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2`.
492
+
446
493
  ---
447
494
 
448
495
  ### Ollama (local models)
@@ -475,6 +522,8 @@ devtorch doctor
475
522
 
476
523
  No API key required. Fully local — RACP context and captures stay on-device.
477
524
 
525
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
526
+
478
527
  ---
479
528
 
480
529
  ### Cloud MCP server (team-wide shared governance)
@@ -516,6 +565,14 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
516
565
 
517
566
  **Full walkthrough:** `IDE_SETUP.md` has step-by-step setup for OpenCode, Claude Code, Cursor, VS Code, Kiro, Antigravity, JetBrains, and generic MCP clients.
518
567
 
568
+ > **Updating from an older version:** You do **not** need to redeploy the Cloudflare Worker for client-side changes. Just regenerate the IDE config on each machine after upgrading `agentorch`:
569
+ > ```bash
570
+ > pip install -U agentorch>=2.0.2
571
+ > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
572
+ > /path/to/DevTorch/Implementation/deploy/cloudflare-worker/install-client-config.sh \
573
+ > <ide> <org> <repo> <api-key>
574
+ > ```
575
+
519
576
  ---
520
577
 
521
578
  ### Platform comparison
@@ -2,10 +2,10 @@
2
2
 
3
3
  **Local-first AI agent governance.** DevTorch gives multi-agent systems a shared on-disk audit trail, coordination vector, privacy controls, and LLM integration layer — all without a remote service.
4
4
 
5
- > **Latest release:** `agentorch 2.0.1` — OpenCode cloud client config and `AGENTS.md` updates are now built into the CLI. Install or upgrade with `pip install -U agentorch`.
5
+ > **Latest release:** `agentorch 2.0.2` — MCP bridge with automatic local fallback, plus upgrade/reinstall docs for all IDE integrations. Install or upgrade with `pip install -U agentorch`.
6
6
 
7
7
  ```bash
8
- pip install -U agentorch>=2.0.0
8
+ pip install -U agentorch>=2.0.2
9
9
  devtorch init
10
10
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
11
11
  devtorch debug timeline
@@ -28,13 +28,13 @@ devtorch debug timeline
28
28
 
29
29
  ### Reasoning Plus
30
30
 
31
- Reasoning Plus is DevTorch’s default augmentation mode: before every LLM call, it gathers smart context from your workspace and asks the model to produce inline `<thinking>` reasoning before the final answer. The reasoning is captured to `.GCC/` automatically and stripped from the response your tool sees.
31
+ Reasoning Plus is DevTorch’s default augmentation mode: before every LLM call, it gathers smart context from your workspace, asks the model to produce inline `<thinking>` reasoning, and learns from previous calls by re-injecting relevant reasoning into subsequent prompts. The reasoning is captured to `.GCC/` automatically and stripped from the response your tool sees.
32
32
 
33
33
  ```bash
34
34
  devtorch reasoning-plus status # show current settings
35
35
  devtorch reasoning-plus enable # turn on per project
36
36
  devtorch reasoning-plus disable # turn off per project
37
- devtorch reasoning-plus config --smart-top-n 3 --smart-max-lines 150
37
+ devtorch reasoning-plus config --smart-top-n 3 --smart-max-lines 150 --learning-top-n 3
38
38
  ```
39
39
 
40
40
  Set `DEVTORCH_REASONING_PLUS=0` to disable it for a single session. See [REASONING_PLUS.md](REASONING_PLUS.md) for details.
@@ -63,6 +63,35 @@ pip install agentorch[all] # everything
63
63
 
64
64
  ---
65
65
 
66
+ ## Upgrade from an older version
67
+
68
+ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE configs, hooks, or governance instructions, so you should re-run `devtorch setup` after upgrading.
69
+
70
+ **Upgrade any time:**
71
+
72
+ ```bash
73
+ pip install -U agentorch>=2.0.2
74
+ cd /path/to/your/project
75
+ devtorch setup # or: devtorch setup --target <ide>
76
+ devtorch doctor
77
+ ```
78
+
79
+ `devtorch setup` is idempotent:
80
+ - It rewrites `CLAUDE.md` / `AGENTS.md` with the latest governance instructions.
81
+ - It regenerates IDE-specific config files (`.claude/settings.json`, `.cursor/mcp.json`, `opencode.json`, etc.).
82
+ - It leaves existing `.GCC/` data untouched.
83
+
84
+ **If you use the cloud MCP server**, re-run the client config installer after upgrade to get the latest bridge and fallback settings:
85
+
86
+ ```bash
87
+ export DEVTORCH_MCP_DOMAIN=devtorch-mcp.your-domain.com
88
+ devtorch cloud client-config <ide> --org <org> --repo <repo> --api-key <api-key>
89
+ ```
90
+
91
+ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
92
+
93
+ ---
94
+
66
95
  ## Getting Started
67
96
 
68
97
  DevTorch takes **5 minutes to set up**. Pick your AI coding tool below.
@@ -105,6 +134,8 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
105
134
 
106
135
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
107
136
 
137
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
138
+
108
139
  ---
109
140
 
110
141
  ### Cursor
@@ -147,6 +178,8 @@ devtorch doctor
147
178
 
148
179
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
149
180
 
181
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
182
+
150
183
  ---
151
184
 
152
185
  ### Google Antigravity
@@ -177,11 +210,13 @@ devtorch doctor
177
210
 
178
211
  **What you get:** Full RACP integration. The multi-agent nature of Antigravity makes Θ accumulation especially valuable — multiple agents share the same reasoning state through `devtorch_context`.
179
212
 
213
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
214
+
180
215
  ---
181
216
 
182
217
  ### OpenCode
183
218
 
184
- OpenCode connects to the DevTorch cloud MCP server over SSE. It uses `opencode.json` for the MCP config and `AGENTS.md` for persistent governance instructions.
219
+ OpenCode connects to DevTorch through the local stdio SSE bridge. The bridge talks to the cloud MCP server first, and if the cloud is unreachable or slow it automatically falls back to the local `devtorch` CLI so your `.GCC/` audit trail is never lost.
185
220
 
186
221
  **Step 1 — Install DevTorch**
187
222
  ```bash
@@ -201,7 +236,7 @@ devtorch cloud client-config opencode --org myorg --repo myrepo --api-key <api-k
201
236
  ```
202
237
 
203
238
  This creates:
204
- - `opencode.json` — the OpenCode MCP server config
239
+ - `opencode.json` — the OpenCode MCP server config (uses the local bridge)
205
240
  - `AGENTS.md` — DevTorch governance instructions for the model
206
241
 
207
242
  **Step 3 — Verify**
@@ -211,7 +246,9 @@ devtorch doctor
211
246
 
212
247
  Open the project in OpenCode. The DevTorch MCP tools will be listed, and the model will be instructed to call `devtorch_context` at the start of each task and `devtorch_commit` before every file edit.
213
248
 
214
- **What you get:** Cloud-hosted MCP server integration, automatic reasoning commits via `AGENTS.md` instructions, and a shared Θ state across sessions.
249
+ **What you get:** Cloud-hosted MCP server integration with automatic local fallback, automatic reasoning commits via `AGENTS.md` instructions, and a shared Θ state across sessions.
250
+
251
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch cloud client-config opencode --org <org> --repo <repo> --api-key <api-key>` will regenerate `opencode.json` with the latest bridge and fallback settings. **Restart OpenCode** after updating the config.
215
252
 
216
253
  ---
217
254
 
@@ -243,6 +280,8 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
243
280
 
244
281
  **What you get:** Sidebar panel (read-only), git-commit-level event capture, manual reasoning commits. Full capture requires switching to Claude Code, Cursor, Kiro, or Antigravity.
245
282
 
283
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup` will reinstall the git hook and update the governance instructions.
284
+
246
285
  ---
247
286
 
248
287
  ### AWS Kiro
@@ -306,6 +345,8 @@ devtorch doctor
306
345
 
307
346
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
308
347
 
348
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
349
+
309
350
  ---
310
351
 
311
352
  ### AWS Bedrock (Python SDK)
@@ -337,6 +378,8 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
337
378
  devtorch doctor
338
379
  ```
339
380
 
381
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
382
+
340
383
  ---
341
384
 
342
385
  ### Azure AI Foundry (Python SDK)
@@ -369,6 +412,8 @@ client = AzureOpenAI(
369
412
  devtorch doctor
370
413
  ```
371
414
 
415
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
416
+
372
417
  ---
373
418
 
374
419
  ### OpenAI Codex CLI
@@ -393,6 +438,8 @@ codex "Add error handling to the payment service"
393
438
 
394
439
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
395
440
 
441
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2`.
442
+
396
443
  ---
397
444
 
398
445
  ### Ollama (local models)
@@ -425,6 +472,8 @@ devtorch doctor
425
472
 
426
473
  No API key required. Fully local — RACP context and captures stay on-device.
427
474
 
475
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
476
+
428
477
  ---
429
478
 
430
479
  ### Cloud MCP server (team-wide shared governance)
@@ -466,6 +515,14 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
466
515
 
467
516
  **Full walkthrough:** `IDE_SETUP.md` has step-by-step setup for OpenCode, Claude Code, Cursor, VS Code, Kiro, Antigravity, JetBrains, and generic MCP clients.
468
517
 
518
+ > **Updating from an older version:** You do **not** need to redeploy the Cloudflare Worker for client-side changes. Just regenerate the IDE config on each machine after upgrading `agentorch`:
519
+ > ```bash
520
+ > pip install -U agentorch>=2.0.2
521
+ > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
522
+ > /path/to/DevTorch/Implementation/deploy/cloudflare-worker/install-client-config.sh \
523
+ > <ide> <org> <repo> <api-key>
524
+ > ```
525
+
469
526
  ---
470
527
 
471
528
  ### Platform comparison
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentorch
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: DevTorch — AI reasoning capture, audit trail, and governance for agent-assisted development
5
5
  Author-email: Hemant Joshi <hemant@flotorch.ai>
6
6
  License: Apache-2.0
@@ -52,10 +52,10 @@ Requires-Dist: agentorch[cloud,mcp,proxy,wrapper]; extra == "all"
52
52
 
53
53
  **Local-first AI agent governance.** DevTorch gives multi-agent systems a shared on-disk audit trail, coordination vector, privacy controls, and LLM integration layer — all without a remote service.
54
54
 
55
- > **Latest release:** `agentorch 2.0.1` — OpenCode cloud client config and `AGENTS.md` updates are now built into the CLI. Install or upgrade with `pip install -U agentorch`.
55
+ > **Latest release:** `agentorch 2.0.2` — MCP bridge with automatic local fallback, plus upgrade/reinstall docs for all IDE integrations. Install or upgrade with `pip install -U agentorch`.
56
56
 
57
57
  ```bash
58
- pip install -U agentorch>=2.0.0
58
+ pip install -U agentorch>=2.0.2
59
59
  devtorch init
60
60
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
61
61
  devtorch debug timeline
@@ -78,13 +78,13 @@ devtorch debug timeline
78
78
 
79
79
  ### Reasoning Plus
80
80
 
81
- Reasoning Plus is DevTorch’s default augmentation mode: before every LLM call, it gathers smart context from your workspace and asks the model to produce inline `<thinking>` reasoning before the final answer. The reasoning is captured to `.GCC/` automatically and stripped from the response your tool sees.
81
+ Reasoning Plus is DevTorch’s default augmentation mode: before every LLM call, it gathers smart context from your workspace, asks the model to produce inline `<thinking>` reasoning, and learns from previous calls by re-injecting relevant reasoning into subsequent prompts. The reasoning is captured to `.GCC/` automatically and stripped from the response your tool sees.
82
82
 
83
83
  ```bash
84
84
  devtorch reasoning-plus status # show current settings
85
85
  devtorch reasoning-plus enable # turn on per project
86
86
  devtorch reasoning-plus disable # turn off per project
87
- devtorch reasoning-plus config --smart-top-n 3 --smart-max-lines 150
87
+ devtorch reasoning-plus config --smart-top-n 3 --smart-max-lines 150 --learning-top-n 3
88
88
  ```
89
89
 
90
90
  Set `DEVTORCH_REASONING_PLUS=0` to disable it for a single session. See [REASONING_PLUS.md](REASONING_PLUS.md) for details.
@@ -113,6 +113,35 @@ pip install agentorch[all] # everything
113
113
 
114
114
  ---
115
115
 
116
+ ## Upgrade from an older version
117
+
118
+ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE configs, hooks, or governance instructions, so you should re-run `devtorch setup` after upgrading.
119
+
120
+ **Upgrade any time:**
121
+
122
+ ```bash
123
+ pip install -U agentorch>=2.0.2
124
+ cd /path/to/your/project
125
+ devtorch setup # or: devtorch setup --target <ide>
126
+ devtorch doctor
127
+ ```
128
+
129
+ `devtorch setup` is idempotent:
130
+ - It rewrites `CLAUDE.md` / `AGENTS.md` with the latest governance instructions.
131
+ - It regenerates IDE-specific config files (`.claude/settings.json`, `.cursor/mcp.json`, `opencode.json`, etc.).
132
+ - It leaves existing `.GCC/` data untouched.
133
+
134
+ **If you use the cloud MCP server**, re-run the client config installer after upgrade to get the latest bridge and fallback settings:
135
+
136
+ ```bash
137
+ export DEVTORCH_MCP_DOMAIN=devtorch-mcp.your-domain.com
138
+ devtorch cloud client-config <ide> --org <org> --repo <repo> --api-key <api-key>
139
+ ```
140
+
141
+ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
142
+
143
+ ---
144
+
116
145
  ## Getting Started
117
146
 
118
147
  DevTorch takes **5 minutes to set up**. Pick your AI coding tool below.
@@ -155,6 +184,8 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
155
184
 
156
185
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
157
186
 
187
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
188
+
158
189
  ---
159
190
 
160
191
  ### Cursor
@@ -197,6 +228,8 @@ devtorch doctor
197
228
 
198
229
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
199
230
 
231
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
232
+
200
233
  ---
201
234
 
202
235
  ### Google Antigravity
@@ -227,11 +260,13 @@ devtorch doctor
227
260
 
228
261
  **What you get:** Full RACP integration. The multi-agent nature of Antigravity makes Θ accumulation especially valuable — multiple agents share the same reasoning state through `devtorch_context`.
229
262
 
263
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
264
+
230
265
  ---
231
266
 
232
267
  ### OpenCode
233
268
 
234
- OpenCode connects to the DevTorch cloud MCP server over SSE. It uses `opencode.json` for the MCP config and `AGENTS.md` for persistent governance instructions.
269
+ OpenCode connects to DevTorch through the local stdio SSE bridge. The bridge talks to the cloud MCP server first, and if the cloud is unreachable or slow it automatically falls back to the local `devtorch` CLI so your `.GCC/` audit trail is never lost.
235
270
 
236
271
  **Step 1 — Install DevTorch**
237
272
  ```bash
@@ -251,7 +286,7 @@ devtorch cloud client-config opencode --org myorg --repo myrepo --api-key <api-k
251
286
  ```
252
287
 
253
288
  This creates:
254
- - `opencode.json` — the OpenCode MCP server config
289
+ - `opencode.json` — the OpenCode MCP server config (uses the local bridge)
255
290
  - `AGENTS.md` — DevTorch governance instructions for the model
256
291
 
257
292
  **Step 3 — Verify**
@@ -261,7 +296,9 @@ devtorch doctor
261
296
 
262
297
  Open the project in OpenCode. The DevTorch MCP tools will be listed, and the model will be instructed to call `devtorch_context` at the start of each task and `devtorch_commit` before every file edit.
263
298
 
264
- **What you get:** Cloud-hosted MCP server integration, automatic reasoning commits via `AGENTS.md` instructions, and a shared Θ state across sessions.
299
+ **What you get:** Cloud-hosted MCP server integration with automatic local fallback, automatic reasoning commits via `AGENTS.md` instructions, and a shared Θ state across sessions.
300
+
301
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch cloud client-config opencode --org <org> --repo <repo> --api-key <api-key>` will regenerate `opencode.json` with the latest bridge and fallback settings. **Restart OpenCode** after updating the config.
265
302
 
266
303
  ---
267
304
 
@@ -293,6 +330,8 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
293
330
 
294
331
  **What you get:** Sidebar panel (read-only), git-commit-level event capture, manual reasoning commits. Full capture requires switching to Claude Code, Cursor, Kiro, or Antigravity.
295
332
 
333
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2 && devtorch setup` will reinstall the git hook and update the governance instructions.
334
+
296
335
  ---
297
336
 
298
337
  ### AWS Kiro
@@ -356,6 +395,8 @@ devtorch doctor
356
395
 
357
396
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
358
397
 
398
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
399
+
359
400
  ---
360
401
 
361
402
  ### AWS Bedrock (Python SDK)
@@ -387,6 +428,8 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
387
428
  devtorch doctor
388
429
  ```
389
430
 
431
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
432
+
390
433
  ---
391
434
 
392
435
  ### Azure AI Foundry (Python SDK)
@@ -419,6 +462,8 @@ client = AzureOpenAI(
419
462
  devtorch doctor
420
463
  ```
421
464
 
465
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
466
+
422
467
  ---
423
468
 
424
469
  ### OpenAI Codex CLI
@@ -443,6 +488,8 @@ codex "Add error handling to the payment service"
443
488
 
444
489
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
445
490
 
491
+ > **Updating from an older version:** `pip install -U agentorch>=2.0.2`.
492
+
446
493
  ---
447
494
 
448
495
  ### Ollama (local models)
@@ -475,6 +522,8 @@ devtorch doctor
475
522
 
476
523
  No API key required. Fully local — RACP context and captures stay on-device.
477
524
 
525
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
526
+
478
527
  ---
479
528
 
480
529
  ### Cloud MCP server (team-wide shared governance)
@@ -516,6 +565,14 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
516
565
 
517
566
  **Full walkthrough:** `IDE_SETUP.md` has step-by-step setup for OpenCode, Claude Code, Cursor, VS Code, Kiro, Antigravity, JetBrains, and generic MCP clients.
518
567
 
568
+ > **Updating from an older version:** You do **not** need to redeploy the Cloudflare Worker for client-side changes. Just regenerate the IDE config on each machine after upgrading `agentorch`:
569
+ > ```bash
570
+ > pip install -U agentorch>=2.0.2
571
+ > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
572
+ > /path/to/DevTorch/Implementation/deploy/cloudflare-worker/install-client-config.sh \
573
+ > <ide> <org> <repo> <api-key>
574
+ > ```
575
+
519
576
  ---
520
577
 
521
578
  ### Platform comparison
@@ -18,6 +18,7 @@ benchmarks/swe_bench/run_baseline.py
18
18
  benchmarks/swe_bench/run_devtorch.py
19
19
  benchmarks/swe_bench/seed_gcc.py
20
20
  devtorch_cli/__init__.py
21
+ devtorch_cli/__main__.py
21
22
  devtorch_cli/main.py
22
23
  devtorch_core/__init__.py
23
24
  devtorch_core/aggphi_textual.py
@@ -131,6 +132,15 @@ devtorch_core/reasoning_plus/capture.py
131
132
  devtorch_core/reasoning_plus/config.py
132
133
  devtorch_core/reasoning_plus/context.py
133
134
  devtorch_core/reasoning_plus/prompt.py
135
+ devtorch_core/reasoning_plus/learning/__init__.py
136
+ devtorch_core/reasoning_plus/learning/api.py
137
+ devtorch_core/reasoning_plus/learning/composer.py
138
+ devtorch_core/reasoning_plus/learning/extractor.py
139
+ devtorch_core/reasoning_plus/learning/models.py
140
+ devtorch_core/reasoning_plus/learning/recorder.py
141
+ devtorch_core/reasoning_plus/learning/relevance.py
142
+ devtorch_core/reasoning_plus/learning/state.py
143
+ devtorch_core/reasoning_plus/learning/store.py
134
144
  devtorch_core/rep_network/__init__.py
135
145
  devtorch_core/rep_network/merge.py
136
146
  devtorch_core/rep_network/node.py
@@ -153,6 +163,7 @@ tests/conftest.py
153
163
  tests/test_backend_factory.py
154
164
  tests/test_broadcast.py
155
165
  tests/test_cloud_auth.py
166
+ tests/test_cloud_bridge.py
156
167
  tests/test_cloud_integration.py
157
168
  tests/test_cloud_sse.py
158
169
  tests/test_cloud_storage.py
@@ -190,6 +201,7 @@ tests/test_s21_hitl.py
190
201
  tests/test_s22_swe_bench.py
191
202
  tests/test_s22_swe_bench_dry_run.py
192
203
  tests/test_s23_reasoning_plus.py
204
+ tests/test_s24_reasoning_plus_learning.py
193
205
  tests/test_s2_context.py
194
206
  tests/test_s3_sensitivity.py
195
207
  tests/test_s4_invariants.py
@@ -9,6 +9,10 @@ import shutil
9
9
  import subprocess
10
10
  import tempfile
11
11
  from pathlib import Path
12
+ from typing import TYPE_CHECKING
13
+
14
+ if TYPE_CHECKING:
15
+ from devtorch_core.reasoning_plus.learning import ReasoningPlusLearning
12
16
 
13
17
 
14
18
  def extract_file_paths_from_patch(patch_text: str) -> list[str]:
@@ -292,15 +296,21 @@ def self_correct_patch(
292
296
  base_commit: str,
293
297
  original_patch: str,
294
298
  max_retries: int = 2,
299
+ learning: "ReasoningPlusLearning | None" = None,
300
+ session_id: str = "",
295
301
  ) -> tuple[str, int, bool, str]:
296
302
  """
297
303
  Try to fix a malformed patch by asking the model again.
298
304
 
305
+ If a `learning` object is provided, each failed attempt is recorded and the
306
+ distilled learnings are injected into the next correction prompt.
307
+
299
308
  Returns (final_patch, attempts_used, applies_cleanly, last_error).
300
309
  """
301
310
  patch = normalize_patch(original_patch)
302
311
  attempts = 0
303
312
  last_error = ""
313
+ previous_error = ""
304
314
 
305
315
  for attempt in range(1, max_retries + 1):
306
316
  temp_repo = None
@@ -311,6 +321,23 @@ def self_correct_patch(
311
321
  return patch, attempts, True, ""
312
322
  last_error = error
313
323
 
324
+ # Record the failed patch application as a learning opportunity.
325
+ if learning and previous_error != error:
326
+ try:
327
+ call_id = learning.record_call(
328
+ call_type="tool",
329
+ name="git_apply_check",
330
+ reasoning=f"The patch failed to apply: {error}",
331
+ input=patch,
332
+ output=error,
333
+ outcome="failure",
334
+ session_id=session_id,
335
+ )
336
+ learning.extract_learnings(call_id)
337
+ except Exception:
338
+ pass
339
+ previous_error = error
340
+
314
341
  correction_prompt = (
315
342
  "Your previous patch failed to apply to the repository. "
316
343
  "Please produce a corrected unified diff patch that applies cleanly. "
@@ -318,6 +345,18 @@ def self_correct_patch(
318
345
  f"Apply error:\n{error}\n\n"
319
346
  "Original issue and files are above."
320
347
  )
348
+
349
+ # Inject relevant learnings from previous attempts into the correction prompt.
350
+ if learning:
351
+ try:
352
+ learnings = learning.get_relevant_learnings(
353
+ correction_prompt,
354
+ top_n=learning._config.learning_top_n,
355
+ )
356
+ correction_prompt = learning.compose_user_prompt(correction_prompt, learnings)
357
+ except Exception:
358
+ pass
359
+
321
360
  response = client.messages.create(
322
361
  model=model,
323
362
  max_tokens=4096,