agentorch 2.0.2__tar.gz → 2.1.0__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 (231) hide show
  1. {agentorch-2.0.2 → agentorch-2.1.0}/PKG-INFO +18 -16
  2. {agentorch-2.0.2 → agentorch-2.1.0}/README.md +14 -14
  3. {agentorch-2.0.2 → agentorch-2.1.0}/agentorch.egg-info/PKG-INFO +18 -16
  4. {agentorch-2.0.2 → agentorch-2.1.0}/agentorch.egg-info/SOURCES.txt +2 -0
  5. {agentorch-2.0.2 → agentorch-2.1.0}/agentorch.egg-info/requires.txt +4 -1
  6. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_cli/main.py +16 -0
  7. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/mcp/server.py +4 -0
  8. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/augmenter.py +62 -3
  9. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/config.py +27 -0
  10. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/learning/api.py +104 -6
  11. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/learning/composer.py +23 -2
  12. agentorch-2.1.0/devtorch_core/reasoning_plus/learning/embeddings.py +209 -0
  13. agentorch-2.1.0/devtorch_core/reasoning_plus/learning/extractor.py +207 -0
  14. agentorch-2.1.0/devtorch_core/reasoning_plus/learning/provenance.py +126 -0
  15. agentorch-2.1.0/devtorch_core/reasoning_plus/learning/relevance.py +101 -0
  16. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/learning/store.py +68 -1
  17. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/wrapper/anthropic.py +142 -20
  18. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/wrapper/base.py +91 -4
  19. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/wrapper/bedrock.py +88 -21
  20. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/wrapper/gemini.py +117 -14
  21. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/wrapper/ollama.py +108 -17
  22. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/wrapper/openai.py +141 -19
  23. {agentorch-2.0.2 → agentorch-2.1.0}/pyproject.toml +5 -2
  24. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s24_reasoning_plus_learning.py +359 -1
  25. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s7_wrappers.py +418 -0
  26. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/extractor.py +0 -80
  27. agentorch-2.0.2/devtorch_core/reasoning_plus/learning/relevance.py +0 -59
  28. {agentorch-2.0.2 → agentorch-2.1.0}/MANIFEST.in +0 -0
  29. {agentorch-2.0.2 → agentorch-2.1.0}/agentorch.egg-info/dependency_links.txt +0 -0
  30. {agentorch-2.0.2 → agentorch-2.1.0}/agentorch.egg-info/entry_points.txt +0 -0
  31. {agentorch-2.0.2 → agentorch-2.1.0}/agentorch.egg-info/top_level.txt +0 -0
  32. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/hidden_profile/run_baseline.py +0 -0
  33. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/hidden_profile/run_devtorch.py +0 -0
  34. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/hidden_profile/score.py +0 -0
  35. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/swe_bench/compare.py +0 -0
  36. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/swe_bench/context_utils.py +0 -0
  37. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/swe_bench/evaluate.py +0 -0
  38. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/swe_bench/patch_utils.py +0 -0
  39. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/swe_bench/run_baseline.py +0 -0
  40. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/swe_bench/run_devtorch.py +0 -0
  41. {agentorch-2.0.2 → agentorch-2.1.0}/benchmarks/swe_bench/seed_gcc.py +0 -0
  42. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_cli/__init__.py +0 -0
  43. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_cli/__main__.py +0 -0
  44. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/__init__.py +0 -0
  45. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/aggphi_textual.py +0 -0
  46. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/__init__.py +0 -0
  47. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/base.py +0 -0
  48. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/config.py +0 -0
  49. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/dispatcher.py +0 -0
  50. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/jira.py +0 -0
  51. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/linear.py +0 -0
  52. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/pagerduty.py +0 -0
  53. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/slack.py +0 -0
  54. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/alerts/teams.py +0 -0
  55. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/broadcast/__init__.py +0 -0
  56. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/broadcast/broadcaster.py +0 -0
  57. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/broadcast/watcher.py +0 -0
  58. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/capability.py +0 -0
  59. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/__init__.py +0 -0
  60. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/client_config.py +0 -0
  61. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/client_configs/.claude-opencode-fallback.json +0 -0
  62. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/client_configs/.claude-stdio.json +0 -0
  63. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/client_configs/.cursor-mcp.json +0 -0
  64. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/client_configs/.opencode-bridge.json +0 -0
  65. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/client_configs/.opencode.json +0 -0
  66. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/client_configs/.vscode-mcp.json +0 -0
  67. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/cloud/devtorch-mcp-bridge.js +0 -0
  68. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/codex/__init__.py +0 -0
  69. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/codex/__main__.py +0 -0
  70. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/codex/capture.py +0 -0
  71. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/codex/proxy.py +0 -0
  72. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/consolidation/__init__.py +0 -0
  73. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/consolidation/synthesizer.py +0 -0
  74. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/consolidation/workflow.py +0 -0
  75. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/dashboard_api.py +0 -0
  76. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/deltaf.py +0 -0
  77. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/disclosure.py +0 -0
  78. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/divergence/__init__.py +0 -0
  79. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/divergence/detector.py +0 -0
  80. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gateway/__init__.py +0 -0
  81. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gateway/key_manager.py +0 -0
  82. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gateway/metrics_webhook.py +0 -0
  83. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gateway/policy.py +0 -0
  84. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gateway/server.py +0 -0
  85. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gateway/sso.py +0 -0
  86. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gcc.py +0 -0
  87. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/github/__init__.py +0 -0
  88. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/github/app.py +0 -0
  89. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/github/comment_builder.py +0 -0
  90. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/github/pat.py +0 -0
  91. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/github/pr_parser.py +0 -0
  92. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/gitlab/__init__.py +0 -0
  93. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hitl/__init__.py +0 -0
  94. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hitl/channels.py +0 -0
  95. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hitl/orchestrator.py +0 -0
  96. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hooks/__init__.py +0 -0
  97. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hooks/claude_code.py +0 -0
  98. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hooks/git_commit.py +0 -0
  99. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hooks/installer.py +0 -0
  100. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/hooks/runner.py +0 -0
  101. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/identity/__init__.py +0 -0
  102. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/identity/agent.py +0 -0
  103. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/identity/providers.py +0 -0
  104. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/invariants.py +0 -0
  105. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/mcp/__init__.py +0 -0
  106. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/mcp/auth.py +0 -0
  107. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/__init__.py +0 -0
  108. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/aggregate.py +0 -0
  109. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/calibrate.py +0 -0
  110. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/calibration.py +0 -0
  111. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/credibility.py +0 -0
  112. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/dhs.py +0 -0
  113. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/mcs.py +0 -0
  114. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/roi.py +0 -0
  115. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/session_writer.py +0 -0
  116. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/shadow_ai.py +0 -0
  117. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/metrics/sprint_writer.py +0 -0
  118. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/observability/__init__.py +0 -0
  119. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/observability/datadog.py +0 -0
  120. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/observability/formatter.py +0 -0
  121. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/observability/report.py +0 -0
  122. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/observability/servicenow.py +0 -0
  123. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/observability/splunk.py +0 -0
  124. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/observability/webhook.py +0 -0
  125. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/parser/__init__.py +0 -0
  126. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/parser/blocks.py +0 -0
  127. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/parser/inference.py +0 -0
  128. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/parser/thinking.py +0 -0
  129. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/projects.py +0 -0
  130. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/prompt_artifact.py +0 -0
  131. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/proxy/__init__.py +0 -0
  132. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/proxy/routes/__init__.py +0 -0
  133. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/proxy/routes/anthropic.py +0 -0
  134. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/proxy/routes/gemini.py +0 -0
  135. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/proxy/routes/openai.py +0 -0
  136. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/proxy/server.py +0 -0
  137. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/rdp.py +0 -0
  138. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning/__init__.py +0 -0
  139. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning/entry.py +0 -0
  140. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning/store.py +0 -0
  141. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/__init__.py +0 -0
  142. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/capture.py +0 -0
  143. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/context.py +0 -0
  144. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/learning/__init__.py +0 -0
  145. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/learning/models.py +0 -0
  146. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/learning/recorder.py +0 -0
  147. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/learning/state.py +0 -0
  148. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/reasoning_plus/prompt.py +0 -0
  149. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/rep.py +0 -0
  150. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/rep_network/__init__.py +0 -0
  151. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/rep_network/merge.py +0 -0
  152. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/rep_network/node.py +0 -0
  153. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/rep_network/server.py +0 -0
  154. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/rep_network/sync.py +0 -0
  155. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/sensitivity.py +0 -0
  156. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/signing.py +0 -0
  157. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/sis.py +0 -0
  158. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/storage.py +0 -0
  159. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/theta.py +0 -0
  160. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/theta_synthesis.py +0 -0
  161. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/variance.py +0 -0
  162. {agentorch-2.0.2 → agentorch-2.1.0}/devtorch_core/wrapper/__init__.py +0 -0
  163. {agentorch-2.0.2 → agentorch-2.1.0}/docs/generate_faq_pdf.py +0 -0
  164. {agentorch-2.0.2 → agentorch-2.1.0}/docs/paper/figures/fig_architecture.py +0 -0
  165. {agentorch-2.0.2 → agentorch-2.1.0}/docs/paper/figures/fig_comparison.py +0 -0
  166. {agentorch-2.0.2 → agentorch-2.1.0}/docs/paper/figures/fig_coordination.py +0 -0
  167. {agentorch-2.0.2 → agentorch-2.1.0}/docs/paper/figures/fig_hashchain.py +0 -0
  168. {agentorch-2.0.2 → agentorch-2.1.0}/docs/paper/figures/fig_racp_flow.py +0 -0
  169. {agentorch-2.0.2 → agentorch-2.1.0}/setup.cfg +0 -0
  170. {agentorch-2.0.2 → agentorch-2.1.0}/tests/conftest.py +0 -0
  171. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_backend_factory.py +0 -0
  172. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_broadcast.py +0 -0
  173. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_cloud_auth.py +0 -0
  174. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_cloud_bridge.py +0 -0
  175. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_cloud_integration.py +0 -0
  176. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_cloud_sse.py +0 -0
  177. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_cloud_storage.py +0 -0
  178. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_doctor_ci.py +0 -0
  179. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_getting_started.py +0 -0
  180. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_github_app.py +0 -0
  181. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_github_pat.py +0 -0
  182. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_hidden_profile_benchmark.py +0 -0
  183. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_rep_merge.py +0 -0
  184. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s0_gcc.py +0 -0
  185. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s10_jetbrains.py +0 -0
  186. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s10_vscode.py +0 -0
  187. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s11_codex.py +0 -0
  188. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s11_hooks_installer.py +0 -0
  189. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s12_github.py +0 -0
  190. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s12_gitlab.py +0 -0
  191. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s13_dashboard_api.py +0 -0
  192. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s13_forensic.py +0 -0
  193. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s14_audit_export.py +0 -0
  194. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s14_ciso_api.py +0 -0
  195. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s15_rep_network.py +0 -0
  196. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s16_alerts.py +0 -0
  197. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s17a_metrics.py +0 -0
  198. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s17b_observability.py +0 -0
  199. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s17b_sso.py +0 -0
  200. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s18_credibility.py +0 -0
  201. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s18_identity.py +0 -0
  202. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s19_projects.py +0 -0
  203. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s19_reasoning_query.py +0 -0
  204. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s1_branch_merge.py +0 -0
  205. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s20_divergence.py +0 -0
  206. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s20_metrics.py +0 -0
  207. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s20_wrapper_capture.py +0 -0
  208. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s21_hitl.py +0 -0
  209. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s22_swe_bench.py +0 -0
  210. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s22_swe_bench_dry_run.py +0 -0
  211. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s23_reasoning_plus.py +0 -0
  212. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s2_context.py +0 -0
  213. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s3_sensitivity.py +0 -0
  214. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s4_invariants.py +0 -0
  215. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s4_variance_lock.py +0 -0
  216. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s5_privacy_disclosure.py +0 -0
  217. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s5_rep_sis.py +0 -0
  218. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s6_debug.py +0 -0
  219. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s7_mcp_hooks.py +0 -0
  220. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s7_ollama_wrapper.py +0 -0
  221. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s7_parser.py +0 -0
  222. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s7_proxy.py +0 -0
  223. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s7ent_gateway.py +0 -0
  224. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s7ent_helm.py +0 -0
  225. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s8_aggphi.py +0 -0
  226. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s8_theta_synthesis.py +0 -0
  227. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_s9_gaps.py +0 -0
  228. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_setup_command.py +0 -0
  229. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_setup_targets.py +0 -0
  230. {agentorch-2.0.2 → agentorch-2.1.0}/tests/test_signing.py +0 -0
  231. {agentorch-2.0.2 → agentorch-2.1.0}/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.2
3
+ Version: 2.1.0
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
@@ -33,6 +33,8 @@ Requires-Dist: fastapi>=0.115.0; extra == "proxy"
33
33
  Requires-Dist: uvicorn[standard]>=0.32.0; extra == "proxy"
34
34
  Requires-Dist: httpx>=0.27.0; extra == "proxy"
35
35
  Requires-Dist: pydantic>=2.9.0; extra == "proxy"
36
+ Provides-Extra: embeddings
37
+ Requires-Dist: sentence-transformers>=3.0.0; extra == "embeddings"
36
38
  Provides-Extra: mcp
37
39
  Requires-Dist: mcp>=1.0.0; extra == "mcp"
38
40
  Provides-Extra: cloud
@@ -46,16 +48,16 @@ Requires-Dist: azure-storage-blob>=12.19.0; extra == "cloud"
46
48
  Provides-Extra: broadcast
47
49
  Requires-Dist: watchdog>=3.0.0; extra == "broadcast"
48
50
  Provides-Extra: all
49
- Requires-Dist: agentorch[cloud,mcp,proxy,wrapper]; extra == "all"
51
+ Requires-Dist: agentorch[cloud,embeddings,mcp,proxy,wrapper]; extra == "all"
50
52
 
51
53
  # DevTorch
52
54
 
53
55
  **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
56
 
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`.
57
+ > **Latest release:** `agentorch 2.1.0` — Reasoning Plus Learning: semantic relevance, learning deduplication, provenance tracking, LLM-based extraction, and a feedback loop. Install or upgrade with `pip install -U agentorch`.
56
58
 
57
59
  ```bash
58
- pip install -U agentorch>=2.0.2
60
+ pip install -U agentorch>=2.1.0
59
61
  devtorch init
60
62
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
61
63
  devtorch debug timeline
@@ -120,7 +122,7 @@ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE co
120
122
  **Upgrade any time:**
121
123
 
122
124
  ```bash
123
- pip install -U agentorch>=2.0.2
125
+ pip install -U agentorch>=2.1.0
124
126
  cd /path/to/your/project
125
127
  devtorch setup # or: devtorch setup --target <ide>
126
128
  devtorch doctor
@@ -184,7 +186,7 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
184
186
 
185
187
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
186
188
 
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.
189
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
188
190
 
189
191
  ---
190
192
 
@@ -228,7 +230,7 @@ devtorch doctor
228
230
 
229
231
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
230
232
 
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`.
233
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
232
234
 
233
235
  ---
234
236
 
@@ -260,7 +262,7 @@ devtorch doctor
260
262
 
261
263
  **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`.
262
264
 
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`.
265
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
264
266
 
265
267
  ---
266
268
 
@@ -298,7 +300,7 @@ Open the project in OpenCode. The DevTorch MCP tools will be listed, and the mod
298
300
 
299
301
  **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
302
 
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.
303
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && 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.
302
304
 
303
305
  ---
304
306
 
@@ -330,7 +332,7 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
330
332
 
331
333
  **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.
332
334
 
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.
335
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
334
336
 
335
337
  ---
336
338
 
@@ -395,7 +397,7 @@ devtorch doctor
395
397
 
396
398
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
397
399
 
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.
400
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
399
401
 
400
402
  ---
401
403
 
@@ -428,7 +430,7 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
428
430
  devtorch doctor
429
431
  ```
430
432
 
431
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
433
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
432
434
 
433
435
  ---
434
436
 
@@ -462,7 +464,7 @@ client = AzureOpenAI(
462
464
  devtorch doctor
463
465
  ```
464
466
 
465
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
467
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
466
468
 
467
469
  ---
468
470
 
@@ -488,7 +490,7 @@ codex "Add error handling to the payment service"
488
490
 
489
491
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
490
492
 
491
- > **Updating from an older version:** `pip install -U agentorch>=2.0.2`.
493
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0`.
492
494
 
493
495
  ---
494
496
 
@@ -522,7 +524,7 @@ devtorch doctor
522
524
 
523
525
  No API key required. Fully local — RACP context and captures stay on-device.
524
526
 
525
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
527
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
526
528
 
527
529
  ---
528
530
 
@@ -567,7 +569,7 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
567
569
 
568
570
  > **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
571
  > ```bash
570
- > pip install -U agentorch>=2.0.2
572
+ > pip install -U agentorch>=2.1.0
571
573
  > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
572
574
  > /path/to/DevTorch/Implementation/deploy/cloudflare-worker/install-client-config.sh \
573
575
  > <ide> <org> <repo> <api-key>
@@ -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.2` — MCP bridge with automatic local fallback, plus upgrade/reinstall docs for all IDE integrations. Install or upgrade with `pip install -U agentorch`.
5
+ > **Latest release:** `agentorch 2.1.0` — Reasoning Plus Learning: semantic relevance, learning deduplication, provenance tracking, LLM-based extraction, and a feedback loop. Install or upgrade with `pip install -U agentorch`.
6
6
 
7
7
  ```bash
8
- pip install -U agentorch>=2.0.2
8
+ pip install -U agentorch>=2.1.0
9
9
  devtorch init
10
10
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
11
11
  devtorch debug timeline
@@ -70,7 +70,7 @@ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE co
70
70
  **Upgrade any time:**
71
71
 
72
72
  ```bash
73
- pip install -U agentorch>=2.0.2
73
+ pip install -U agentorch>=2.1.0
74
74
  cd /path/to/your/project
75
75
  devtorch setup # or: devtorch setup --target <ide>
76
76
  devtorch doctor
@@ -134,7 +134,7 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
134
134
 
135
135
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
136
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.
137
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
138
138
 
139
139
  ---
140
140
 
@@ -178,7 +178,7 @@ devtorch doctor
178
178
 
179
179
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
180
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`.
181
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
182
182
 
183
183
  ---
184
184
 
@@ -210,7 +210,7 @@ devtorch doctor
210
210
 
211
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`.
212
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`.
213
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
214
214
 
215
215
  ---
216
216
 
@@ -248,7 +248,7 @@ Open the project in OpenCode. The DevTorch MCP tools will be listed, and the mod
248
248
 
249
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
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.
251
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && 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.
252
252
 
253
253
  ---
254
254
 
@@ -280,7 +280,7 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
280
280
 
281
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.
282
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.
283
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
284
284
 
285
285
  ---
286
286
 
@@ -345,7 +345,7 @@ devtorch doctor
345
345
 
346
346
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
347
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.
348
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
349
349
 
350
350
  ---
351
351
 
@@ -378,7 +378,7 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
378
378
  devtorch doctor
379
379
  ```
380
380
 
381
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
381
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
382
382
 
383
383
  ---
384
384
 
@@ -412,7 +412,7 @@ client = AzureOpenAI(
412
412
  devtorch doctor
413
413
  ```
414
414
 
415
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
415
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
416
416
 
417
417
  ---
418
418
 
@@ -438,7 +438,7 @@ codex "Add error handling to the payment service"
438
438
 
439
439
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
440
440
 
441
- > **Updating from an older version:** `pip install -U agentorch>=2.0.2`.
441
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0`.
442
442
 
443
443
  ---
444
444
 
@@ -472,7 +472,7 @@ devtorch doctor
472
472
 
473
473
  No API key required. Fully local — RACP context and captures stay on-device.
474
474
 
475
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
475
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
476
476
 
477
477
  ---
478
478
 
@@ -517,7 +517,7 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
517
517
 
518
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
519
  > ```bash
520
- > pip install -U agentorch>=2.0.2
520
+ > pip install -U agentorch>=2.1.0
521
521
  > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
522
522
  > /path/to/DevTorch/Implementation/deploy/cloudflare-worker/install-client-config.sh \
523
523
  > <ide> <org> <repo> <api-key>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentorch
3
- Version: 2.0.2
3
+ Version: 2.1.0
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
@@ -33,6 +33,8 @@ Requires-Dist: fastapi>=0.115.0; extra == "proxy"
33
33
  Requires-Dist: uvicorn[standard]>=0.32.0; extra == "proxy"
34
34
  Requires-Dist: httpx>=0.27.0; extra == "proxy"
35
35
  Requires-Dist: pydantic>=2.9.0; extra == "proxy"
36
+ Provides-Extra: embeddings
37
+ Requires-Dist: sentence-transformers>=3.0.0; extra == "embeddings"
36
38
  Provides-Extra: mcp
37
39
  Requires-Dist: mcp>=1.0.0; extra == "mcp"
38
40
  Provides-Extra: cloud
@@ -46,16 +48,16 @@ Requires-Dist: azure-storage-blob>=12.19.0; extra == "cloud"
46
48
  Provides-Extra: broadcast
47
49
  Requires-Dist: watchdog>=3.0.0; extra == "broadcast"
48
50
  Provides-Extra: all
49
- Requires-Dist: agentorch[cloud,mcp,proxy,wrapper]; extra == "all"
51
+ Requires-Dist: agentorch[cloud,embeddings,mcp,proxy,wrapper]; extra == "all"
50
52
 
51
53
  # DevTorch
52
54
 
53
55
  **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
56
 
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`.
57
+ > **Latest release:** `agentorch 2.1.0` — Reasoning Plus Learning: semantic relevance, learning deduplication, provenance tracking, LLM-based extraction, and a feedback loop. Install or upgrade with `pip install -U agentorch`.
56
58
 
57
59
  ```bash
58
- pip install -U agentorch>=2.0.2
60
+ pip install -U agentorch>=2.1.0
59
61
  devtorch init
60
62
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
61
63
  devtorch debug timeline
@@ -120,7 +122,7 @@ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE co
120
122
  **Upgrade any time:**
121
123
 
122
124
  ```bash
123
- pip install -U agentorch>=2.0.2
125
+ pip install -U agentorch>=2.1.0
124
126
  cd /path/to/your/project
125
127
  devtorch setup # or: devtorch setup --target <ide>
126
128
  devtorch doctor
@@ -184,7 +186,7 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
184
186
 
185
187
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
186
188
 
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.
189
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
188
190
 
189
191
  ---
190
192
 
@@ -228,7 +230,7 @@ devtorch doctor
228
230
 
229
231
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
230
232
 
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`.
233
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
232
234
 
233
235
  ---
234
236
 
@@ -260,7 +262,7 @@ devtorch doctor
260
262
 
261
263
  **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`.
262
264
 
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`.
265
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
264
266
 
265
267
  ---
266
268
 
@@ -298,7 +300,7 @@ Open the project in OpenCode. The DevTorch MCP tools will be listed, and the mod
298
300
 
299
301
  **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
302
 
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.
303
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && 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.
302
304
 
303
305
  ---
304
306
 
@@ -330,7 +332,7 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
330
332
 
331
333
  **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.
332
334
 
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.
335
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
334
336
 
335
337
  ---
336
338
 
@@ -395,7 +397,7 @@ devtorch doctor
395
397
 
396
398
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
397
399
 
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.
400
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
399
401
 
400
402
  ---
401
403
 
@@ -428,7 +430,7 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
428
430
  devtorch doctor
429
431
  ```
430
432
 
431
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
433
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
432
434
 
433
435
  ---
434
436
 
@@ -462,7 +464,7 @@ client = AzureOpenAI(
462
464
  devtorch doctor
463
465
  ```
464
466
 
465
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
467
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
466
468
 
467
469
  ---
468
470
 
@@ -488,7 +490,7 @@ codex "Add error handling to the payment service"
488
490
 
489
491
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
490
492
 
491
- > **Updating from an older version:** `pip install -U agentorch>=2.0.2`.
493
+ > **Updating from an older version:** `pip install -U agentorch>=2.1.0`.
492
494
 
493
495
  ---
494
496
 
@@ -522,7 +524,7 @@ devtorch doctor
522
524
 
523
525
  No API key required. Fully local — RACP context and captures stay on-device.
524
526
 
525
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.0.2`.
527
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
526
528
 
527
529
  ---
528
530
 
@@ -567,7 +569,7 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
567
569
 
568
570
  > **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
571
  > ```bash
570
- > pip install -U agentorch>=2.0.2
572
+ > pip install -U agentorch>=2.1.0
571
573
  > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
572
574
  > /path/to/DevTorch/Implementation/deploy/cloudflare-worker/install-client-config.sh \
573
575
  > <ide> <org> <repo> <api-key>
@@ -135,8 +135,10 @@ devtorch_core/reasoning_plus/prompt.py
135
135
  devtorch_core/reasoning_plus/learning/__init__.py
136
136
  devtorch_core/reasoning_plus/learning/api.py
137
137
  devtorch_core/reasoning_plus/learning/composer.py
138
+ devtorch_core/reasoning_plus/learning/embeddings.py
138
139
  devtorch_core/reasoning_plus/learning/extractor.py
139
140
  devtorch_core/reasoning_plus/learning/models.py
141
+ devtorch_core/reasoning_plus/learning/provenance.py
140
142
  devtorch_core/reasoning_plus/learning/recorder.py
141
143
  devtorch_core/reasoning_plus/learning/relevance.py
142
144
  devtorch_core/reasoning_plus/learning/state.py
@@ -1,6 +1,6 @@
1
1
 
2
2
  [all]
3
- agentorch[cloud,mcp,proxy,wrapper]
3
+ agentorch[cloud,embeddings,mcp,proxy,wrapper]
4
4
 
5
5
  [broadcast]
6
6
  watchdog>=3.0.0
@@ -18,6 +18,9 @@ azure-storage-blob>=12.19.0
18
18
  pytest>=8.0.0
19
19
  boto3>=1.34.0
20
20
 
21
+ [embeddings]
22
+ sentence-transformers>=3.0.0
23
+
21
24
  [mcp]
22
25
  mcp>=1.0.0
23
26
 
@@ -1892,6 +1892,10 @@ def build_parser() -> argparse.ArgumentParser:
1892
1892
  rp_config.add_argument("--learning-enabled", type=lambda x: x.lower() in ("1", "true", "yes", "on"), default=None)
1893
1893
  rp_config.add_argument("--learning-top-n", type=int, default=None)
1894
1894
  rp_config.add_argument("--learning-max-lines", type=int, default=None)
1895
+ rp_config.add_argument("--learning-embedding-backend", type=str, default=None)
1896
+ rp_config.add_argument("--learning-embedding-model", type=str, default=None)
1897
+ rp_config.add_argument("--learning-extraction-strategy", type=str, default=None)
1898
+ rp_config.add_argument("--learning-relevance-cache-ttl", type=int, default=None)
1895
1899
  rp_config.set_defaults(func=cmd_reasoning_plus_config)
1896
1900
  rp_reset = rp_sub.add_parser("reset", help="Reset project Reasoning Plus settings to default")
1897
1901
  rp_reset.add_argument("--path", default=".", help="Path to project root (default: .)")
@@ -2164,6 +2168,10 @@ def cmd_reasoning_plus_status(args: argparse.Namespace) -> int:
2164
2168
  print(f" learning_enabled: {config.learning_enabled}")
2165
2169
  print(f" learning_top_n: {config.learning_top_n}")
2166
2170
  print(f" learning_max_lines: {config.learning_max_lines}")
2171
+ print(f" learning_embedding_backend: {config.learning_embedding_backend}")
2172
+ print(f" learning_embedding_model: {config.learning_embedding_model}")
2173
+ print(f" learning_extraction_strategy: {config.learning_extraction_strategy}")
2174
+ print(f" learning_relevance_cache_ttl: {config.learning_relevance_cache_ttl}")
2167
2175
  return 0
2168
2176
 
2169
2177
 
@@ -2192,6 +2200,14 @@ def cmd_reasoning_plus_config(args: argparse.Namespace) -> int:
2192
2200
  overrides["learning_top_n"] = args.learning_top_n
2193
2201
  if args.learning_max_lines is not None:
2194
2202
  overrides["learning_max_lines"] = args.learning_max_lines
2203
+ if args.learning_embedding_backend is not None:
2204
+ overrides["learning_embedding_backend"] = args.learning_embedding_backend
2205
+ if args.learning_embedding_model is not None:
2206
+ overrides["learning_embedding_model"] = args.learning_embedding_model
2207
+ if args.learning_extraction_strategy is not None:
2208
+ overrides["learning_extraction_strategy"] = args.learning_extraction_strategy
2209
+ if args.learning_relevance_cache_ttl is not None:
2210
+ overrides["learning_relevance_cache_ttl"] = args.learning_relevance_cache_ttl
2195
2211
  config = config.with_values(**overrides)
2196
2212
  store.save_project(config)
2197
2213
  print("Reasoning Plus configuration updated.")
@@ -178,6 +178,10 @@ TOOLS: List[Dict[str, Any]] = [
178
178
  "learning_enabled": {"type": "boolean", "description": "Enable or disable Reasoning Plus Learning"},
179
179
  "learning_top_n": {"type": "integer", "description": "Number of learnings to inject"},
180
180
  "learning_max_lines": {"type": "integer", "description": "Max lines for the injected learnings block"},
181
+ "learning_embedding_backend": {"type": "string", "description": "Embedding backend for relevance: keyword, sentence_transformers, openai"},
182
+ "learning_embedding_model": {"type": "string", "description": "Model name for sentence_transformers or openai backend"},
183
+ "learning_extraction_strategy": {"type": "string", "description": "Learning extraction strategy: rule or llm"},
184
+ "learning_relevance_cache_ttl": {"type": "integer", "description": "Relevance cache TTL in seconds"},
181
185
  },
182
186
  },
183
187
  },
@@ -166,17 +166,76 @@ class ReasoningPlusAugmenter:
166
166
 
167
167
  Callers should append the returned block to the user prompt.
168
168
  """
169
+ block, _ = self.get_learning_context_with_provenance(context, session_id=session_id)
170
+ return block
171
+
172
+ def get_learning_context_with_provenance(
173
+ self,
174
+ context: str,
175
+ session_id: str = "",
176
+ call_id: str = "",
177
+ model_name: str = "",
178
+ ) -> tuple[str, list[str]]:
179
+ """
180
+ Return a compact <learnings> block plus the IDs of injected learnings.
181
+
182
+ If *call_id* is provided, a provenance record is saved so outcomes can be
183
+ attributed back to the injected learnings.
184
+ """
169
185
  if not self._learning:
170
- return ""
186
+ return "", []
171
187
  try:
172
188
  learnings = self._learning.get_relevant_learnings(
173
189
  context,
174
190
  top_n=self._config.learning_top_n,
175
191
  )
176
- return self._learning.compose_user_prompt("", learnings).strip()
192
+ block = self._learning.compose_user_prompt("", learnings).strip()
193
+ learning_ids = [l.id for l in learnings]
194
+ if call_id and learning_ids:
195
+ self._learning.record_injection(
196
+ learning_ids,
197
+ call_id=call_id,
198
+ session_id=session_id,
199
+ prompt_text=context,
200
+ model_name=model_name,
201
+ )
202
+ return block, learning_ids
177
203
  except Exception as exc:
178
204
  logger.warning("devtorch: learning context retrieval failed — %s", exc)
179
- return ""
205
+ return "", []
206
+
207
+ def build_system_prompt_with_learning_context(
208
+ self,
209
+ base_prompt: str,
210
+ prompt_text_for_context: str | None = None,
211
+ *,
212
+ task_prompt: str = "",
213
+ call_id: str = "",
214
+ session_id: str = "",
215
+ model_name: str = "",
216
+ ) -> tuple[str, list[str]]:
217
+ """
218
+ Build a Reasoning Plus system prompt and append relevant learnings.
219
+
220
+ Returns the augmented prompt and the list of learning IDs that were
221
+ injected (if any). A provenance record is written when *call_id* is set.
222
+ """
223
+ system_prompt = self.build_system_prompt(
224
+ base_prompt,
225
+ prompt_text_for_context=prompt_text_for_context,
226
+ task_prompt=task_prompt,
227
+ )
228
+ learning_ids: list[str] = []
229
+ if prompt_text_for_context:
230
+ block, learning_ids = self.get_learning_context_with_provenance(
231
+ prompt_text_for_context,
232
+ session_id=session_id,
233
+ call_id=call_id,
234
+ model_name=model_name,
235
+ )
236
+ if block:
237
+ system_prompt = f"{system_prompt}\n\n[DevTorch learnings]\n{block}"
238
+ return system_prompt, learning_ids
180
239
 
181
240
  def record_learning_call(
182
241
  self,
@@ -46,6 +46,10 @@ class ReasoningPlusConfig:
46
46
  learning_enabled: bool = True
47
47
  learning_top_n: int = 3
48
48
  learning_max_lines: int = 100
49
+ learning_embedding_backend: str = "keyword"
50
+ learning_embedding_model: str | None = None
51
+ learning_extraction_strategy: str = "rule"
52
+ learning_relevance_cache_ttl: int = 60
49
53
 
50
54
  def with_values(self, **kwargs: Any) -> "ReasoningPlusConfig":
51
55
  """Return a new config with the provided field overrides."""
@@ -69,6 +73,10 @@ class ReasoningPlusConfig:
69
73
  "learning_enabled": self.learning_enabled,
70
74
  "learning_top_n": self.learning_top_n,
71
75
  "learning_max_lines": self.learning_max_lines,
76
+ "learning_embedding_backend": self.learning_embedding_backend,
77
+ "learning_embedding_model": self.learning_embedding_model,
78
+ "learning_extraction_strategy": self.learning_extraction_strategy,
79
+ "learning_relevance_cache_ttl": self.learning_relevance_cache_ttl,
72
80
  }
73
81
 
74
82
  @classmethod
@@ -85,6 +93,10 @@ class ReasoningPlusConfig:
85
93
  learning_enabled=_bool(data.get("learning_enabled", True)),
86
94
  learning_top_n=_int(data.get("learning_top_n", 3), 3),
87
95
  learning_max_lines=_int(data.get("learning_max_lines", 100), 100),
96
+ learning_embedding_backend=_str(data.get("learning_embedding_backend", "keyword"), "keyword"),
97
+ learning_embedding_model=_optional_str(data.get("learning_embedding_model")),
98
+ learning_extraction_strategy=_str(data.get("learning_extraction_strategy", "rule"), "rule"),
99
+ learning_relevance_cache_ttl=_int(data.get("learning_relevance_cache_ttl", 60), 60),
88
100
  )
89
101
 
90
102
 
@@ -193,6 +205,21 @@ def _int(value: Any, default: int) -> int:
193
205
  return default
194
206
 
195
207
 
208
+ def _str(value: Any, default: str) -> str:
209
+ if isinstance(value, str):
210
+ return value.strip()
211
+ return default
212
+
213
+
214
+ def _optional_str(value: Any) -> str | None:
215
+ if value is None:
216
+ return None
217
+ if isinstance(value, str):
218
+ value = value.strip()
219
+ return value if value else None
220
+ return None
221
+
222
+
196
223
  def _read_json(path: Path) -> dict[str, Any] | None:
197
224
  if not path.exists():
198
225
  return None