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