agentorch 2.2.0__tar.gz → 2.3.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 (253) hide show
  1. {agentorch-2.2.0 → agentorch-2.3.0}/PKG-INFO +15 -15
  2. {agentorch-2.2.0 → agentorch-2.3.0}/README.md +14 -14
  3. {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/PKG-INFO +15 -15
  4. {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/SOURCES.txt +11 -0
  5. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_cli/main.py +109 -0
  6. agentorch-2.3.0/devtorch_core/daemon/__init__.py +27 -0
  7. agentorch-2.3.0/devtorch_core/daemon/supervisor.py +293 -0
  8. agentorch-2.3.0/devtorch_core/daemon/watcher.py +244 -0
  9. agentorch-2.3.0/devtorch_core/hooks/git_capture.py +341 -0
  10. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/installer.py +50 -0
  11. agentorch-2.3.0/devtorch_core/proxy/routes/azure_openai.py +336 -0
  12. agentorch-2.3.0/devtorch_core/proxy/routes/groq.py +284 -0
  13. agentorch-2.3.0/devtorch_core/proxy/routes/ollama.py +279 -0
  14. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/server.py +43 -4
  15. {agentorch-2.2.0 → agentorch-2.3.0}/pyproject.toml +1 -1
  16. agentorch-2.3.0/tests/test_s26_daemon.py +248 -0
  17. agentorch-2.3.0/tests/test_s26_git_hooks.py +255 -0
  18. agentorch-2.3.0/tests/test_s26_proxy.py +358 -0
  19. agentorch-2.3.0/tests/test_s26_watcher.py +162 -0
  20. {agentorch-2.2.0 → agentorch-2.3.0}/MANIFEST.in +0 -0
  21. {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/dependency_links.txt +0 -0
  22. {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/entry_points.txt +0 -0
  23. {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/requires.txt +0 -0
  24. {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/top_level.txt +0 -0
  25. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/hidden_profile/run_baseline.py +0 -0
  26. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/hidden_profile/run_devtorch.py +0 -0
  27. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/hidden_profile/score.py +0 -0
  28. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/compare.py +0 -0
  29. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/context_utils.py +0 -0
  30. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/evaluate.py +0 -0
  31. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/patch_utils.py +0 -0
  32. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/run_baseline.py +0 -0
  33. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/run_devtorch.py +0 -0
  34. {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/seed_gcc.py +0 -0
  35. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_cli/__init__.py +0 -0
  36. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_cli/__main__.py +0 -0
  37. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/__init__.py +0 -0
  38. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/aggphi_textual.py +0 -0
  39. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/__init__.py +0 -0
  40. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/base.py +0 -0
  41. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/config.py +0 -0
  42. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/dispatcher.py +0 -0
  43. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/jira.py +0 -0
  44. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/linear.py +0 -0
  45. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/pagerduty.py +0 -0
  46. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/slack.py +0 -0
  47. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/teams.py +0 -0
  48. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/broadcast/__init__.py +0 -0
  49. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/broadcast/broadcaster.py +0 -0
  50. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/broadcast/watcher.py +0 -0
  51. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/capability.py +0 -0
  52. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/__init__.py +0 -0
  53. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_config.py +0 -0
  54. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.claude-opencode-fallback.json +0 -0
  55. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.claude-stdio.json +0 -0
  56. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.cursor-mcp.json +0 -0
  57. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.opencode-bridge.json +0 -0
  58. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.opencode.json +0 -0
  59. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.vscode-mcp.json +0 -0
  60. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/devtorch-mcp-bridge.js +0 -0
  61. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/__init__.py +0 -0
  62. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/__main__.py +0 -0
  63. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/capture.py +0 -0
  64. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/proxy.py +0 -0
  65. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/consolidation/__init__.py +0 -0
  66. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/consolidation/synthesizer.py +0 -0
  67. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/consolidation/workflow.py +0 -0
  68. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/dashboard_api.py +0 -0
  69. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/deltaf.py +0 -0
  70. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/disclosure.py +0 -0
  71. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/divergence/__init__.py +0 -0
  72. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/divergence/detector.py +0 -0
  73. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/__init__.py +0 -0
  74. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/key_manager.py +0 -0
  75. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/metrics_webhook.py +0 -0
  76. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/policy.py +0 -0
  77. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/server.py +0 -0
  78. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/sso.py +0 -0
  79. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gcc.py +0 -0
  80. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/__init__.py +0 -0
  81. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/app.py +0 -0
  82. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/comment_builder.py +0 -0
  83. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/pat.py +0 -0
  84. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/pr_parser.py +0 -0
  85. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gitlab/__init__.py +0 -0
  86. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hitl/__init__.py +0 -0
  87. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hitl/channels.py +0 -0
  88. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hitl/orchestrator.py +0 -0
  89. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/__init__.py +0 -0
  90. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/claude_code.py +0 -0
  91. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/git_commit.py +0 -0
  92. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/runner.py +0 -0
  93. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/identity/__init__.py +0 -0
  94. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/identity/agent.py +0 -0
  95. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/identity/providers.py +0 -0
  96. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/invariants.py +0 -0
  97. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/mcp/__init__.py +0 -0
  98. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/mcp/auth.py +0 -0
  99. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/mcp/server.py +0 -0
  100. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/__init__.py +0 -0
  101. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/aggregate.py +0 -0
  102. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/calibrate.py +0 -0
  103. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/calibration.py +0 -0
  104. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/credibility.py +0 -0
  105. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/delivery_time.py +0 -0
  106. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/dhs.py +0 -0
  107. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/mcs.py +0 -0
  108. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/roi.py +0 -0
  109. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/session_writer.py +0 -0
  110. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/shadow_ai.py +0 -0
  111. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/sprint_writer.py +0 -0
  112. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/__init__.py +0 -0
  113. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/datadog.py +0 -0
  114. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/formatter.py +0 -0
  115. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/report.py +0 -0
  116. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/servicenow.py +0 -0
  117. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/splunk.py +0 -0
  118. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/webhook.py +0 -0
  119. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/__init__.py +0 -0
  120. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/blocks.py +0 -0
  121. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/inference.py +0 -0
  122. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/thinking.py +0 -0
  123. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/projects.py +0 -0
  124. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/prompt_artifact.py +0 -0
  125. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/__init__.py +0 -0
  126. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/__init__.py +0 -0
  127. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/anthropic.py +0 -0
  128. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/gemini.py +0 -0
  129. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/openai.py +0 -0
  130. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rdp.py +0 -0
  131. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning/__init__.py +0 -0
  132. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning/entry.py +0 -0
  133. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning/store.py +0 -0
  134. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/__init__.py +0 -0
  135. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/augmenter.py +0 -0
  136. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/capture.py +0 -0
  137. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/config.py +0 -0
  138. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/context.py +0 -0
  139. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/__init__.py +0 -0
  140. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/api.py +0 -0
  141. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/composer.py +0 -0
  142. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/embeddings.py +0 -0
  143. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/extractor.py +0 -0
  144. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/models.py +0 -0
  145. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/provenance.py +0 -0
  146. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/recorder.py +0 -0
  147. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/relevance.py +0 -0
  148. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/state.py +0 -0
  149. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/store.py +0 -0
  150. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/prompt.py +0 -0
  151. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep.py +0 -0
  152. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/__init__.py +0 -0
  153. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/merge.py +0 -0
  154. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/node.py +0 -0
  155. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/server.py +0 -0
  156. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/sync.py +0 -0
  157. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/sensitivity.py +0 -0
  158. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/serve.py +0 -0
  159. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/signing.py +0 -0
  160. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/sis.py +0 -0
  161. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/storage.py +0 -0
  162. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/__init__.py +0 -0
  163. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/engine.py +0 -0
  164. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/go.py +0 -0
  165. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/infra.py +0 -0
  166. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/python.py +0 -0
  167. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/react.py +0 -0
  168. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/typescript.py +0 -0
  169. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/theta.py +0 -0
  170. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/theta_synthesis.py +0 -0
  171. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/variance.py +0 -0
  172. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/__init__.py +0 -0
  173. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/anthropic.py +0 -0
  174. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/base.py +0 -0
  175. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/bedrock.py +0 -0
  176. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/gemini.py +0 -0
  177. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/ollama.py +0 -0
  178. {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/openai.py +0 -0
  179. {agentorch-2.2.0 → agentorch-2.3.0}/docs/generate_faq_pdf.py +0 -0
  180. {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_architecture.py +0 -0
  181. {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_comparison.py +0 -0
  182. {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_coordination.py +0 -0
  183. {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_hashchain.py +0 -0
  184. {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_racp_flow.py +0 -0
  185. {agentorch-2.2.0 → agentorch-2.3.0}/setup.cfg +0 -0
  186. {agentorch-2.2.0 → agentorch-2.3.0}/tests/conftest.py +0 -0
  187. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_backend_factory.py +0 -0
  188. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_broadcast.py +0 -0
  189. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_auth.py +0 -0
  190. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_bridge.py +0 -0
  191. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_integration.py +0 -0
  192. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_sse.py +0 -0
  193. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_storage.py +0 -0
  194. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_doctor_ci.py +0 -0
  195. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_getting_started.py +0 -0
  196. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_github_app.py +0 -0
  197. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_github_pat.py +0 -0
  198. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_hidden_profile_benchmark.py +0 -0
  199. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_rep_merge.py +0 -0
  200. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s0_gcc.py +0 -0
  201. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s10_jetbrains.py +0 -0
  202. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s10_vscode.py +0 -0
  203. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s11_codex.py +0 -0
  204. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s11_hooks_installer.py +0 -0
  205. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s12_github.py +0 -0
  206. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s12_gitlab.py +0 -0
  207. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s13_dashboard_api.py +0 -0
  208. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s13_forensic.py +0 -0
  209. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s14_audit_export.py +0 -0
  210. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s14_ciso_api.py +0 -0
  211. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s15_rep_network.py +0 -0
  212. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s16_alerts.py +0 -0
  213. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s17a_metrics.py +0 -0
  214. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s17b_observability.py +0 -0
  215. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s17b_sso.py +0 -0
  216. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s18_credibility.py +0 -0
  217. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s18_identity.py +0 -0
  218. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s19_projects.py +0 -0
  219. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s19_reasoning_query.py +0 -0
  220. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s1_branch_merge.py +0 -0
  221. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s20_divergence.py +0 -0
  222. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s20_metrics.py +0 -0
  223. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s20_wrapper_capture.py +0 -0
  224. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s21_hitl.py +0 -0
  225. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s22_swe_bench.py +0 -0
  226. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s22_swe_bench_dry_run.py +0 -0
  227. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s23_reasoning_plus.py +0 -0
  228. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s24_reasoning_plus_learning.py +0 -0
  229. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_delivery_time.py +0 -0
  230. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_serve.py +0 -0
  231. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_setup_detection.py +0 -0
  232. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_templates.py +0 -0
  233. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s2_context.py +0 -0
  234. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s3_sensitivity.py +0 -0
  235. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s4_invariants.py +0 -0
  236. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s4_variance_lock.py +0 -0
  237. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s5_privacy_disclosure.py +0 -0
  238. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s5_rep_sis.py +0 -0
  239. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s6_debug.py +0 -0
  240. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_mcp_hooks.py +0 -0
  241. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_ollama_wrapper.py +0 -0
  242. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_parser.py +0 -0
  243. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_proxy.py +0 -0
  244. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_wrappers.py +0 -0
  245. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7ent_gateway.py +0 -0
  246. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7ent_helm.py +0 -0
  247. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s8_aggphi.py +0 -0
  248. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s8_theta_synthesis.py +0 -0
  249. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s9_gaps.py +0 -0
  250. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_setup_command.py +0 -0
  251. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_setup_targets.py +0 -0
  252. {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_signing.py +0 -0
  253. {agentorch-2.2.0 → agentorch-2.3.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.2.0
3
+ Version: 2.3.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
@@ -54,10 +54,10 @@ Requires-Dist: agentorch[cloud,embeddings,mcp,proxy,wrapper]; extra == "all"
54
54
 
55
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.
56
56
 
57
- > **Latest release:** `agentorch 2.2.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`.
57
+ > **Latest release:** `agentorch 2.3.0` — Always-on Capture & Daemon: background file watcher, git-native event capture, universal LLM proxy routes, and `devtorch daemon`. Install or upgrade with `pip install -U agentorch`.
58
58
 
59
59
  ```bash
60
- pip install -U agentorch>=2.1.0
60
+ pip install -U agentorch>=2.3.0
61
61
  devtorch init
62
62
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
63
63
  devtorch debug timeline
@@ -130,7 +130,7 @@ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE co
130
130
  **Upgrade any time:**
131
131
 
132
132
  ```bash
133
- pip install -U agentorch>=2.1.0
133
+ pip install -U agentorch>=2.3.0
134
134
  cd /path/to/your/project
135
135
  devtorch setup # or: devtorch setup --target <ide>
136
136
  devtorch doctor
@@ -194,7 +194,7 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
194
194
 
195
195
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
196
196
 
197
- > **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.
197
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
198
198
 
199
199
  ---
200
200
 
@@ -238,7 +238,7 @@ devtorch doctor
238
238
 
239
239
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
240
240
 
241
- > **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`.
241
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
242
242
 
243
243
  ---
244
244
 
@@ -270,7 +270,7 @@ devtorch doctor
270
270
 
271
271
  **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`.
272
272
 
273
- > **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`.
273
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
274
274
 
275
275
  ---
276
276
 
@@ -308,7 +308,7 @@ Open the project in OpenCode. The DevTorch MCP tools will be listed, and the mod
308
308
 
309
309
  **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.
310
310
 
311
- > **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.
311
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.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.
312
312
 
313
313
  ---
314
314
 
@@ -340,7 +340,7 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
340
340
 
341
341
  **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.
342
342
 
343
- > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
343
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
344
344
 
345
345
  ---
346
346
 
@@ -405,7 +405,7 @@ devtorch doctor
405
405
 
406
406
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
407
407
 
408
- > **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.
408
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
409
409
 
410
410
  ---
411
411
 
@@ -438,7 +438,7 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
438
438
  devtorch doctor
439
439
  ```
440
440
 
441
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
441
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
442
442
 
443
443
  ---
444
444
 
@@ -472,7 +472,7 @@ client = AzureOpenAI(
472
472
  devtorch doctor
473
473
  ```
474
474
 
475
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
475
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
476
476
 
477
477
  ---
478
478
 
@@ -498,7 +498,7 @@ codex "Add error handling to the payment service"
498
498
 
499
499
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
500
500
 
501
- > **Updating from an older version:** `pip install -U agentorch>=2.1.0`.
501
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0`.
502
502
 
503
503
  ---
504
504
 
@@ -532,7 +532,7 @@ devtorch doctor
532
532
 
533
533
  No API key required. Fully local — RACP context and captures stay on-device.
534
534
 
535
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
535
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
536
536
 
537
537
  ---
538
538
 
@@ -598,7 +598,7 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
598
598
 
599
599
  > **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`:
600
600
  > ```bash
601
- > > pip install -U agentorch>=2.1.0
601
+ > > pip install -U agentorch>=2.3.0
602
602
  > > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
603
603
  > > devtorch cloud client-config <ide> --org <org> --repo <repo> --api-key <api-key>
604
604
  > > ```
@@ -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.2.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`.
5
+ > **Latest release:** `agentorch 2.3.0` — Always-on Capture & Daemon: background file watcher, git-native event capture, universal LLM proxy routes, and `devtorch daemon`. Install or upgrade with `pip install -U agentorch`.
6
6
 
7
7
  ```bash
8
- pip install -U agentorch>=2.1.0
8
+ pip install -U agentorch>=2.3.0
9
9
  devtorch init
10
10
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
11
11
  devtorch debug timeline
@@ -78,7 +78,7 @@ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE co
78
78
  **Upgrade any time:**
79
79
 
80
80
  ```bash
81
- pip install -U agentorch>=2.1.0
81
+ pip install -U agentorch>=2.3.0
82
82
  cd /path/to/your/project
83
83
  devtorch setup # or: devtorch setup --target <ide>
84
84
  devtorch doctor
@@ -142,7 +142,7 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
142
142
 
143
143
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
144
144
 
145
- > **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.
145
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
146
146
 
147
147
  ---
148
148
 
@@ -186,7 +186,7 @@ devtorch doctor
186
186
 
187
187
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
188
188
 
189
- > **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`.
189
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
190
190
 
191
191
  ---
192
192
 
@@ -218,7 +218,7 @@ devtorch doctor
218
218
 
219
219
  **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`.
220
220
 
221
- > **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`.
221
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
222
222
 
223
223
  ---
224
224
 
@@ -256,7 +256,7 @@ Open the project in OpenCode. The DevTorch MCP tools will be listed, and the mod
256
256
 
257
257
  **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.
258
258
 
259
- > **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.
259
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.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.
260
260
 
261
261
  ---
262
262
 
@@ -288,7 +288,7 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
288
288
 
289
289
  **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.
290
290
 
291
- > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
291
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
292
292
 
293
293
  ---
294
294
 
@@ -353,7 +353,7 @@ devtorch doctor
353
353
 
354
354
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
355
355
 
356
- > **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.
356
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
357
357
 
358
358
  ---
359
359
 
@@ -386,7 +386,7 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
386
386
  devtorch doctor
387
387
  ```
388
388
 
389
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
389
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
390
390
 
391
391
  ---
392
392
 
@@ -420,7 +420,7 @@ client = AzureOpenAI(
420
420
  devtorch doctor
421
421
  ```
422
422
 
423
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
423
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
424
424
 
425
425
  ---
426
426
 
@@ -446,7 +446,7 @@ codex "Add error handling to the payment service"
446
446
 
447
447
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
448
448
 
449
- > **Updating from an older version:** `pip install -U agentorch>=2.1.0`.
449
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0`.
450
450
 
451
451
  ---
452
452
 
@@ -480,7 +480,7 @@ devtorch doctor
480
480
 
481
481
  No API key required. Fully local — RACP context and captures stay on-device.
482
482
 
483
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
483
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
484
484
 
485
485
  ---
486
486
 
@@ -546,7 +546,7 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
546
546
 
547
547
  > **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`:
548
548
  > ```bash
549
- > > pip install -U agentorch>=2.1.0
549
+ > > pip install -U agentorch>=2.3.0
550
550
  > > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
551
551
  > > devtorch cloud client-config <ide> --org <org> --repo <repo> --api-key <api-key>
552
552
  > > ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentorch
3
- Version: 2.2.0
3
+ Version: 2.3.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
@@ -54,10 +54,10 @@ Requires-Dist: agentorch[cloud,embeddings,mcp,proxy,wrapper]; extra == "all"
54
54
 
55
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.
56
56
 
57
- > **Latest release:** `agentorch 2.2.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`.
57
+ > **Latest release:** `agentorch 2.3.0` — Always-on Capture & Daemon: background file watcher, git-native event capture, universal LLM proxy routes, and `devtorch daemon`. Install or upgrade with `pip install -U agentorch`.
58
58
 
59
59
  ```bash
60
- pip install -U agentorch>=2.1.0
60
+ pip install -U agentorch>=2.3.0
61
61
  devtorch init
62
62
  devtorch setup # connects to Claude Code, Cursor, or Antigravity
63
63
  devtorch debug timeline
@@ -130,7 +130,7 @@ DevTorch preserves your `.GCC/` store across upgrades. Newer releases add IDE co
130
130
  **Upgrade any time:**
131
131
 
132
132
  ```bash
133
- pip install -U agentorch>=2.1.0
133
+ pip install -U agentorch>=2.3.0
134
134
  cd /path/to/your/project
135
135
  devtorch setup # or: devtorch setup --target <ide>
136
136
  devtorch doctor
@@ -194,7 +194,7 @@ Open Claude Code in your project. On the first task Claude will call `devtorch_c
194
194
 
195
195
  **What you get:** Full RACP integration — reasoning commits, sensitivity events, coordination vector Θ, divergence detection, HITL conflict resolution.
196
196
 
197
- > **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.
197
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup` will rewrite `.claude/hooks.json`, `.claude/settings.json`, and `CLAUDE.md` with the latest versions.
198
198
 
199
199
  ---
200
200
 
@@ -238,7 +238,7 @@ devtorch doctor
238
238
 
239
239
  **What you get:** MCP tools, VS Code sidebar, optional HTTP proxy for passive capture of all LLM calls (`devtorch proxy start`).
240
240
 
241
- > **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`.
241
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup --target cursor` will regenerate `.cursor/mcp.json` and update `CLAUDE.md`.
242
242
 
243
243
  ---
244
244
 
@@ -270,7 +270,7 @@ devtorch doctor
270
270
 
271
271
  **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`.
272
272
 
273
- > **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`.
273
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup --target antigravity` will regenerate the MCP config and update `AGENTS.md`.
274
274
 
275
275
  ---
276
276
 
@@ -308,7 +308,7 @@ Open the project in OpenCode. The DevTorch MCP tools will be listed, and the mod
308
308
 
309
309
  **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.
310
310
 
311
- > **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.
311
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.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.
312
312
 
313
313
  ---
314
314
 
@@ -340,7 +340,7 @@ devtorch sensitivity add --source you --concept auth --confidence 0.9 --disclosu
340
340
 
341
341
  **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.
342
342
 
343
- > **Updating from an older version:** `pip install -U agentorch>=2.1.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
343
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0 && devtorch setup` will reinstall the git hook and update the governance instructions.
344
344
 
345
345
  ---
346
346
 
@@ -405,7 +405,7 @@ devtorch doctor
405
405
 
406
406
  **What you get:** Full RACP integration equivalent to Claude Code — MCP tools, steering-document governance, agent action hooks.
407
407
 
408
- > **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.
408
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0`, then re-run the manual steps above and refresh your steering document with the latest `AGENTS.md` text.
409
409
 
410
410
  ---
411
411
 
@@ -438,7 +438,7 @@ All `invoke_model()` and `converse()` calls are identical. DevTorch injects the
438
438
  devtorch doctor
439
439
  ```
440
440
 
441
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
441
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
442
442
 
443
443
  ---
444
444
 
@@ -472,7 +472,7 @@ client = AzureOpenAI(
472
472
  devtorch doctor
473
473
  ```
474
474
 
475
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
475
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
476
476
 
477
477
  ---
478
478
 
@@ -498,7 +498,7 @@ codex "Add error handling to the payment service"
498
498
 
499
499
  All Codex calls are intercepted by the proxy, which injects the RACP prefix and captures responses into `.GCC/`.
500
500
 
501
- > **Updating from an older version:** `pip install -U agentorch>=2.1.0`.
501
+ > **Updating from an older version:** `pip install -U agentorch>=2.3.0`.
502
502
 
503
503
  ---
504
504
 
@@ -532,7 +532,7 @@ devtorch doctor
532
532
 
533
533
  No API key required. Fully local — RACP context and captures stay on-device.
534
534
 
535
- > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.1.0`.
535
+ > **Updating from an older version:** `pip install -U agentorch[wrapper]>=2.3.0`.
536
536
 
537
537
  ---
538
538
 
@@ -598,7 +598,7 @@ Supported `<ide>` values: `opencode`, `claude`, `cursor`, `vscode`, `stdio`.
598
598
 
599
599
  > **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`:
600
600
  > ```bash
601
- > > pip install -U agentorch>=2.1.0
601
+ > > pip install -U agentorch>=2.3.0
602
602
  > > export DEVTORCH_MCP_DOMAIN=devtorch-mcp.YOUR_ACCOUNT.workers.dev
603
603
  > > devtorch cloud client-config <ide> --org <org> --repo <repo> --api-key <api-key>
604
604
  > > ```
@@ -68,6 +68,9 @@ devtorch_core/codex/proxy.py
68
68
  devtorch_core/consolidation/__init__.py
69
69
  devtorch_core/consolidation/synthesizer.py
70
70
  devtorch_core/consolidation/workflow.py
71
+ devtorch_core/daemon/__init__.py
72
+ devtorch_core/daemon/supervisor.py
73
+ devtorch_core/daemon/watcher.py
71
74
  devtorch_core/divergence/__init__.py
72
75
  devtorch_core/divergence/detector.py
73
76
  devtorch_core/gateway/__init__.py
@@ -87,6 +90,7 @@ devtorch_core/hitl/channels.py
87
90
  devtorch_core/hitl/orchestrator.py
88
91
  devtorch_core/hooks/__init__.py
89
92
  devtorch_core/hooks/claude_code.py
93
+ devtorch_core/hooks/git_capture.py
90
94
  devtorch_core/hooks/git_commit.py
91
95
  devtorch_core/hooks/installer.py
92
96
  devtorch_core/hooks/runner.py
@@ -123,7 +127,10 @@ devtorch_core/proxy/__init__.py
123
127
  devtorch_core/proxy/server.py
124
128
  devtorch_core/proxy/routes/__init__.py
125
129
  devtorch_core/proxy/routes/anthropic.py
130
+ devtorch_core/proxy/routes/azure_openai.py
126
131
  devtorch_core/proxy/routes/gemini.py
132
+ devtorch_core/proxy/routes/groq.py
133
+ devtorch_core/proxy/routes/ollama.py
127
134
  devtorch_core/proxy/routes/openai.py
128
135
  devtorch_core/reasoning/__init__.py
129
136
  devtorch_core/reasoning/entry.py
@@ -217,6 +224,10 @@ tests/test_s25_delivery_time.py
217
224
  tests/test_s25_serve.py
218
225
  tests/test_s25_setup_detection.py
219
226
  tests/test_s25_templates.py
227
+ tests/test_s26_daemon.py
228
+ tests/test_s26_git_hooks.py
229
+ tests/test_s26_proxy.py
230
+ tests/test_s26_watcher.py
220
231
  tests/test_s2_context.py
221
232
  tests/test_s3_sensitivity.py
222
233
  tests/test_s4_invariants.py
@@ -827,6 +827,61 @@ def cmd_proxy_status(args: argparse.Namespace) -> int:
827
827
  return 0
828
828
 
829
829
 
830
+ # S26: daemon subcommand
831
+
832
+
833
+ def cmd_daemon_start(args: argparse.Namespace) -> int:
834
+ from devtorch_core.daemon import start_daemon
835
+
836
+ project_root = Path(args.path).resolve()
837
+ ok, message = start_daemon(
838
+ project_root,
839
+ run_server=getattr(args, "run_server", False),
840
+ host=getattr(args, "host", "127.0.0.1"),
841
+ port=int(getattr(args, "port", 8765)),
842
+ )
843
+ print(message)
844
+ return 0 if ok else 1
845
+
846
+
847
+ def cmd_daemon_stop(args: argparse.Namespace) -> int:
848
+ from devtorch_core.daemon import stop_daemon
849
+
850
+ project_root = Path(args.path).resolve()
851
+ ok, message = stop_daemon(project_root)
852
+ print(message)
853
+ return 0 if ok else 1
854
+
855
+
856
+ def cmd_daemon_status(args: argparse.Namespace) -> int:
857
+ from devtorch_core.daemon import daemon_status
858
+
859
+ project_root = Path(args.path).resolve()
860
+ status = daemon_status(project_root)
861
+ if status.get("error"):
862
+ print(f"error: {status['error']}", file=sys.stderr)
863
+ return 1
864
+ if status["running"]:
865
+ print(f"DevTorch daemon running (PID {status['pid']})")
866
+ else:
867
+ print("DevTorch daemon stopped")
868
+ print(f"Log: {status['log_path']}")
869
+ return 0
870
+
871
+
872
+ def cmd_daemon_logs(args: argparse.Namespace) -> int:
873
+ from devtorch_core.daemon import daemon_logs
874
+
875
+ project_root = Path(args.path).resolve()
876
+ lines = daemon_logs(project_root, lines=getattr(args, "lines", 50))
877
+ if not lines:
878
+ print("(no daemon log entries)")
879
+ return 0
880
+ for line in lines:
881
+ print(line)
882
+ return 0
883
+
884
+
830
885
  # Sprint 9: event log signing
831
886
 
832
887
  def cmd_signing_enable(args: argparse.Namespace) -> int:
@@ -1899,6 +1954,37 @@ def build_parser() -> argparse.ArgumentParser:
1899
1954
  p_proxy_status = proxy_sub.add_parser("status", help="Check if the proxy is running on :8765.")
1900
1955
  p_proxy_status.set_defaults(func=cmd_proxy_status)
1901
1956
 
1957
+ # S26: daemon subcommand
1958
+ p_daemon = subparsers.add_parser(
1959
+ "daemon", help="Background file watcher and server (S26)."
1960
+ )
1961
+ daemon_sub = p_daemon.add_subparsers(dest="daemon_command", required=True)
1962
+
1963
+ p_daemon_start = daemon_sub.add_parser("start", help="Start the background daemon.")
1964
+ p_daemon_start.add_argument(
1965
+ "--run-server", action="store_true", dest="run_server",
1966
+ help="Also start the unified DevTorch server in the daemon process.",
1967
+ )
1968
+ p_daemon_start.add_argument(
1969
+ "--host", default="127.0.0.1", help="Host to bind the unified server to (default: 127.0.0.1)."
1970
+ )
1971
+ p_daemon_start.add_argument(
1972
+ "--port", type=int, default=8765, help="Port to bind the unified server to (default: 8765)."
1973
+ )
1974
+ p_daemon_start.set_defaults(func=cmd_daemon_start)
1975
+
1976
+ p_daemon_stop = daemon_sub.add_parser("stop", help="Stop the background daemon.")
1977
+ p_daemon_stop.set_defaults(func=cmd_daemon_stop)
1978
+
1979
+ p_daemon_status = daemon_sub.add_parser("status", help="Show daemon status.")
1980
+ p_daemon_status.set_defaults(func=cmd_daemon_status)
1981
+
1982
+ p_daemon_logs = daemon_sub.add_parser("logs", help="Print the daemon log.")
1983
+ p_daemon_logs.add_argument(
1984
+ "--lines", type=int, default=50, help="Number of lines to show (default: 50)."
1985
+ )
1986
+ p_daemon_logs.set_defaults(func=cmd_daemon_logs)
1987
+
1902
1988
  # S17a: calibrate subcommand
1903
1989
  p_calibrate = subparsers.add_parser("calibrate", help="Calibrate DevTorch metrics baselines.")
1904
1990
  p_calibrate.add_argument(
@@ -2081,6 +2167,22 @@ def build_parser() -> argparse.ArgumentParser:
2081
2167
  p_hooks_git_commit.add_argument("commit_msg_file", help="Path to the git commit message file.")
2082
2168
  p_hooks_git_commit.set_defaults(hooks_command="git-commit")
2083
2169
 
2170
+ p_hooks_git_capture = hooks_sub.add_parser(
2171
+ "git-capture",
2172
+ help="Git capture hook entry point for post-commit, post-merge, post-checkout, post-rewrite.",
2173
+ )
2174
+ p_hooks_git_capture.add_argument(
2175
+ "event",
2176
+ choices=["post-commit", "post-merge", "post-checkout", "post-rewrite", "conflict"],
2177
+ help="Git hook event to capture.",
2178
+ )
2179
+ p_hooks_git_capture.add_argument(
2180
+ "args",
2181
+ nargs="*",
2182
+ help="Extra positional arguments passed by the git hook (e.g. squash flag, prev/new HEAD).",
2183
+ )
2184
+ p_hooks_git_capture.set_defaults(hooks_command="git-capture")
2185
+
2084
2186
  p_hooks_run = hooks_sub.add_parser("run", help="Run a Claude Code hook (reads JSON from stdin).")
2085
2187
  p_hooks_run.add_argument("hook_name", choices=["pre-tool-use", "post-tool-use", "session-end"])
2086
2188
  p_hooks_run.set_defaults(hooks_command="run")
@@ -2520,6 +2622,10 @@ def main(argv: list[str] | None = None) -> int:
2520
2622
  result = install_all_hooks(project_root)
2521
2623
  print(f"Claude hooks: {'✓' if result.claude_hooks_written else '✗'} {result.claude_hooks_path}")
2522
2624
  print(f"Git hook: {'✓' if result.git_hook_written else '✗'} {result.git_hook_path}")
2625
+ if getattr(result, "git_capture_hooks_written", False):
2626
+ print(f"Git capture hooks: ✓ ({len(result.git_capture_hooks)} installed)")
2627
+ else:
2628
+ print(f"Git capture hooks: ✗")
2523
2629
  if result.errors:
2524
2630
  for e in result.errors:
2525
2631
  print(f" Error: {e}")
@@ -2530,6 +2636,9 @@ def main(argv: list[str] | None = None) -> int:
2530
2636
  elif args.hooks_command == "git-commit":
2531
2637
  from devtorch_core.hooks.git_commit import handle_commit_msg
2532
2638
  handle_commit_msg(args.commit_msg_file)
2639
+ elif args.hooks_command == "git-capture":
2640
+ from devtorch_core.hooks.git_capture import handle_git_capture
2641
+ handle_git_capture(args.event, args.args)
2533
2642
  elif args.hooks_command == "run":
2534
2643
  from devtorch_core.hooks.runner import run as run_hook
2535
2644
  run_hook(args.hook_name)
@@ -0,0 +1,27 @@
1
+ """DevTorch background daemon (S26).
2
+
3
+ Provides a long-running filesystem watcher that emits `fs_change` events to
4
+ `.GCC/events.log.jsonl` without requiring IDE hooks.
5
+ """
6
+
7
+ from devtorch_core.daemon.supervisor import (
8
+ PID_FILE_NAME,
9
+ LOG_FILE_NAME,
10
+ start_daemon,
11
+ stop_daemon,
12
+ daemon_status,
13
+ daemon_logs,
14
+ _run_daemon,
15
+ )
16
+ from devtorch_core.daemon.watcher import ProjectWatcher
17
+
18
+ __all__ = [
19
+ "PID_FILE_NAME",
20
+ "LOG_FILE_NAME",
21
+ "start_daemon",
22
+ "stop_daemon",
23
+ "daemon_status",
24
+ "daemon_logs",
25
+ "_run_daemon",
26
+ "ProjectWatcher",
27
+ ]