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.
- {agentorch-2.2.0 → agentorch-2.3.0}/PKG-INFO +15 -15
- {agentorch-2.2.0 → agentorch-2.3.0}/README.md +14 -14
- {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/PKG-INFO +15 -15
- {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/SOURCES.txt +11 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_cli/main.py +109 -0
- agentorch-2.3.0/devtorch_core/daemon/__init__.py +27 -0
- agentorch-2.3.0/devtorch_core/daemon/supervisor.py +293 -0
- agentorch-2.3.0/devtorch_core/daemon/watcher.py +244 -0
- agentorch-2.3.0/devtorch_core/hooks/git_capture.py +341 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/installer.py +50 -0
- agentorch-2.3.0/devtorch_core/proxy/routes/azure_openai.py +336 -0
- agentorch-2.3.0/devtorch_core/proxy/routes/groq.py +284 -0
- agentorch-2.3.0/devtorch_core/proxy/routes/ollama.py +279 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/server.py +43 -4
- {agentorch-2.2.0 → agentorch-2.3.0}/pyproject.toml +1 -1
- agentorch-2.3.0/tests/test_s26_daemon.py +248 -0
- agentorch-2.3.0/tests/test_s26_git_hooks.py +255 -0
- agentorch-2.3.0/tests/test_s26_proxy.py +358 -0
- agentorch-2.3.0/tests/test_s26_watcher.py +162 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/MANIFEST.in +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/dependency_links.txt +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/entry_points.txt +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/requires.txt +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/agentorch.egg-info/top_level.txt +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/hidden_profile/run_baseline.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/hidden_profile/run_devtorch.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/hidden_profile/score.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/compare.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/context_utils.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/evaluate.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/patch_utils.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/run_baseline.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/run_devtorch.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/benchmarks/swe_bench/seed_gcc.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_cli/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_cli/__main__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/aggphi_textual.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/base.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/config.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/dispatcher.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/jira.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/linear.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/pagerduty.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/slack.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/alerts/teams.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/broadcast/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/broadcast/broadcaster.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/broadcast/watcher.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/capability.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_config.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.claude-opencode-fallback.json +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.claude-stdio.json +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.cursor-mcp.json +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.opencode-bridge.json +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.opencode.json +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/client_configs/.vscode-mcp.json +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/cloud/devtorch-mcp-bridge.js +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/__main__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/capture.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/codex/proxy.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/consolidation/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/consolidation/synthesizer.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/consolidation/workflow.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/dashboard_api.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/deltaf.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/disclosure.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/divergence/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/divergence/detector.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/key_manager.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/metrics_webhook.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/policy.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/server.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gateway/sso.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gcc.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/app.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/comment_builder.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/pat.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/github/pr_parser.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/gitlab/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hitl/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hitl/channels.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hitl/orchestrator.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/claude_code.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/git_commit.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/hooks/runner.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/identity/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/identity/agent.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/identity/providers.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/invariants.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/mcp/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/mcp/auth.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/mcp/server.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/aggregate.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/calibrate.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/calibration.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/credibility.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/delivery_time.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/dhs.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/mcs.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/roi.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/session_writer.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/shadow_ai.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/metrics/sprint_writer.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/datadog.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/formatter.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/report.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/servicenow.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/splunk.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/observability/webhook.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/blocks.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/inference.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/parser/thinking.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/projects.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/prompt_artifact.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/anthropic.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/gemini.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/proxy/routes/openai.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rdp.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning/entry.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning/store.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/augmenter.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/capture.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/config.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/context.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/api.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/composer.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/embeddings.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/extractor.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/models.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/provenance.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/recorder.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/relevance.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/state.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/learning/store.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/reasoning_plus/prompt.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/merge.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/node.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/server.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/rep_network/sync.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/sensitivity.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/serve.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/signing.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/sis.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/storage.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/engine.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/go.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/infra.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/python.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/react.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/templates/typescript.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/theta.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/theta_synthesis.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/variance.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/__init__.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/anthropic.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/base.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/bedrock.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/gemini.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/ollama.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/devtorch_core/wrapper/openai.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/docs/generate_faq_pdf.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_architecture.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_comparison.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_coordination.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_hashchain.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/docs/paper/figures/fig_racp_flow.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/setup.cfg +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/conftest.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_backend_factory.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_broadcast.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_auth.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_bridge.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_integration.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_sse.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_cloud_storage.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_doctor_ci.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_getting_started.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_github_app.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_github_pat.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_hidden_profile_benchmark.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_rep_merge.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s0_gcc.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s10_jetbrains.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s10_vscode.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s11_codex.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s11_hooks_installer.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s12_github.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s12_gitlab.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s13_dashboard_api.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s13_forensic.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s14_audit_export.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s14_ciso_api.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s15_rep_network.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s16_alerts.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s17a_metrics.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s17b_observability.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s17b_sso.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s18_credibility.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s18_identity.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s19_projects.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s19_reasoning_query.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s1_branch_merge.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s20_divergence.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s20_metrics.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s20_wrapper_capture.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s21_hitl.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s22_swe_bench.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s22_swe_bench_dry_run.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s23_reasoning_plus.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s24_reasoning_plus_learning.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_delivery_time.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_serve.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_setup_detection.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s25_templates.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s2_context.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s3_sensitivity.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s4_invariants.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s4_variance_lock.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s5_privacy_disclosure.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s5_rep_sis.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s6_debug.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_mcp_hooks.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_ollama_wrapper.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_parser.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_proxy.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7_wrappers.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7ent_gateway.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s7ent_helm.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s8_aggphi.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s8_theta_synthesis.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_s9_gaps.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_setup_command.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_setup_targets.py +0 -0
- {agentorch-2.2.0 → agentorch-2.3.0}/tests/test_signing.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
+
]
|