agentbridge-core 0.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.
- agentbridge_core-0.1.0/.env.example +9 -0
- agentbridge_core-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +23 -0
- agentbridge_core-0.1.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
- agentbridge_core-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- agentbridge_core-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +13 -0
- agentbridge_core-0.1.0/.github/workflows/ci.yml +33 -0
- agentbridge_core-0.1.0/.github/workflows/release.yml +95 -0
- agentbridge_core-0.1.0/.github/workflows/tests.yml +30 -0
- agentbridge_core-0.1.0/.gitignore +32 -0
- agentbridge_core-0.1.0/CHANGELOG.md +72 -0
- agentbridge_core-0.1.0/CODE_OF_CONDUCT.md +16 -0
- agentbridge_core-0.1.0/CONTRIBUTING.md +39 -0
- agentbridge_core-0.1.0/LICENSE +21 -0
- agentbridge_core-0.1.0/Makefile +35 -0
- agentbridge_core-0.1.0/PKG-INFO +364 -0
- agentbridge_core-0.1.0/README.md +328 -0
- agentbridge_core-0.1.0/SECURITY.md +28 -0
- agentbridge_core-0.1.0/assets/brand/banner-dark.svg +46 -0
- agentbridge_core-0.1.0/assets/brand/banner-light.svg +46 -0
- agentbridge_core-0.1.0/assets/brand/mark.svg +7 -0
- agentbridge_core-0.1.0/benchmarks/README.md +36 -0
- agentbridge_core-0.1.0/benchmarks/configurations.yaml +65 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/README.md +15 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/execution_time.svg +10 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/metadata.json +112 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/records/bugfix-002__claude-multi__1.json +42 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/records/bugfix-002__claude-single__1.json +40 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/records.csv +3 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/report.md +158 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/success_rate.svg +10 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/summary.csv +3 -0
- agentbridge_core-0.1.0/benchmarks/reports/claude-pilot-exp-20261107-170916/summary.json +46 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/README.md +16 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/execution_time.svg +12 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/metadata.json +123 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/analysis-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/analysis-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/analysis-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-002__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-002__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-002__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-003__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-003__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/bugfix-003__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/deps-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/deps-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/deps-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/docs-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/docs-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/docs-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-002__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-002__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-002__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-003__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-003__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/feature-003__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/refactor-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/refactor-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/refactor-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/review-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/review-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/review-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/tests-001__antigravity-remote__1.json +29 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/tests-001__mock-noop__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records/tests-001__mock-oracle__1.json +35 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/records.csv +37 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/report.md +203 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/success_rate.svg +12 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/summary.csv +4 -0
- agentbridge_core-0.1.0/benchmarks/reports/harness-controls-exp-20261107-150522/summary.json +68 -0
- agentbridge_core-0.1.0/benchmarks/suites.yaml +19 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/hidden_tests/test_hidden_analysis.py +33 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/repo/shop/__init__.py +1 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/repo/shop/cart.py +15 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/repo/shop/cli.py +18 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/repo/shop/pricing.py +9 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/repo/shop/tax.py +7 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/repo/tests/test_cart.py +5 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/solution/ANALYSIS.md +20 -0
- agentbridge_core-0.1.0/benchmarks/tasks/analysis-001/task.yaml +30 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-001/hidden_tests/test_hidden_slugify.py +17 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-001/repo/tests/test_textutils.py +9 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-001/repo/textutils.py +9 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-001/solution/textutils.py +8 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-001/task.yaml +30 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-002/hidden_tests/test_hidden_median.py +24 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-002/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-002/repo/stats.py +15 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-002/repo/tests/test_stats.py +9 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-002/solution/stats.py +20 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-002/task.yaml +30 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-003/hidden_tests/test_hidden_pagination.py +27 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-003/repo/pagination.py +12 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-003/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-003/repo/tests/test_pagination.py +5 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-003/solution/pagination.py +14 -0
- agentbridge_core-0.1.0/benchmarks/tasks/bugfix-003/task.yaml +31 -0
- agentbridge_core-0.1.0/benchmarks/tasks/deps-001/hidden_tests/test_hidden_deps.py +31 -0
- agentbridge_core-0.1.0/benchmarks/tasks/deps-001/repo/CHANGELOG.md +7 -0
- agentbridge_core-0.1.0/benchmarks/tasks/deps-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/deps-001/repo/requirements.txt +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/deps-001/solution/CHANGELOG.md +9 -0
- agentbridge_core-0.1.0/benchmarks/tasks/deps-001/solution/requirements.txt +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/deps-001/task.yaml +26 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/hidden_tests/test_hidden_docs.py +36 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/repo/README.md +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/repo/mathlib.py +18 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/repo/tests/test_mathlib.py +13 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/solution/README.md +13 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/solution/mathlib.py +26 -0
- agentbridge_core-0.1.0/benchmarks/tasks/docs-001/task.yaml +31 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-001/hidden_tests/test_hidden_email.py +24 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-001/repo/tests/test_validators.py +9 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-001/repo/validators.py +10 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-001/solution/tests/test_email.py +9 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-001/solution/validators.py +26 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-001/task.yaml +32 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-002/hidden_tests/test_hidden_lru.py +43 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-002/repo/cache.py +17 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-002/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-002/solution/cache.py +28 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-002/task.yaml +27 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-003/hidden_tests/test_hidden_durations.py +21 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-003/repo/durations.py +14 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-003/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-003/repo/tests/test_durations.py +6 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-003/solution/durations.py +22 -0
- agentbridge_core-0.1.0/benchmarks/tasks/feature-003/task.yaml +31 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/hidden_tests/test_hidden_refactor.py +25 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/repo/geometry.py +22 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/repo/report.py +17 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/repo/tests/test_report.py +7 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/solution/geometry.py +13 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/solution/report.py +11 -0
- agentbridge_core-0.1.0/benchmarks/tasks/refactor-001/task.yaml +32 -0
- agentbridge_core-0.1.0/benchmarks/tasks/review-001/hidden_tests/test_hidden_review.py +28 -0
- agentbridge_core-0.1.0/benchmarks/tasks/review-001/repo/accounts.py +16 -0
- agentbridge_core-0.1.0/benchmarks/tasks/review-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/review-001/solution/REVIEW.md +7 -0
- agentbridge_core-0.1.0/benchmarks/tasks/review-001/task.yaml +25 -0
- agentbridge_core-0.1.0/benchmarks/tasks/tests-001/hidden_tests/test_hidden_generated_tests.py +49 -0
- agentbridge_core-0.1.0/benchmarks/tasks/tests-001/repo/calculator.py +19 -0
- agentbridge_core-0.1.0/benchmarks/tasks/tests-001/repo/pytest.ini +3 -0
- agentbridge_core-0.1.0/benchmarks/tasks/tests-001/repo/tests/.gitkeep +0 -0
- agentbridge_core-0.1.0/benchmarks/tasks/tests-001/solution/tests/test_calculator.py +24 -0
- agentbridge_core-0.1.0/benchmarks/tasks/tests-001/task.yaml +25 -0
- agentbridge_core-0.1.0/dashboard/index.html +12 -0
- agentbridge_core-0.1.0/dashboard/package-lock.json +1778 -0
- agentbridge_core-0.1.0/dashboard/package.json +22 -0
- agentbridge_core-0.1.0/dashboard/src/App.tsx +97 -0
- agentbridge_core-0.1.0/dashboard/src/api.ts +124 -0
- agentbridge_core-0.1.0/dashboard/src/components/ui.tsx +106 -0
- agentbridge_core-0.1.0/dashboard/src/main.tsx +10 -0
- agentbridge_core-0.1.0/dashboard/src/pages/Benchmarks.tsx +74 -0
- agentbridge_core-0.1.0/dashboard/src/pages/Lists.tsx +119 -0
- agentbridge_core-0.1.0/dashboard/src/pages/Overview.tsx +85 -0
- agentbridge_core-0.1.0/dashboard/src/pages/TaskDetail.tsx +203 -0
- agentbridge_core-0.1.0/dashboard/src/styles.css +153 -0
- agentbridge_core-0.1.0/dashboard/tsconfig.json +17 -0
- agentbridge_core-0.1.0/dashboard/vite.config.ts +15 -0
- agentbridge_core-0.1.0/docs/architecture.md +87 -0
- agentbridge_core-0.1.0/docs/benchmark-methodology.md +125 -0
- agentbridge_core-0.1.0/docs/configuration.md +129 -0
- agentbridge_core-0.1.0/docs/dashboard.md +50 -0
- agentbridge_core-0.1.0/docs/development-log.md +120 -0
- agentbridge_core-0.1.0/docs/implementation-plan.md +85 -0
- agentbridge_core-0.1.0/docs/installation.md +80 -0
- agentbridge_core-0.1.0/docs/provider-capabilities.md +52 -0
- agentbridge_core-0.1.0/docs/providers.md +102 -0
- agentbridge_core-0.1.0/docs/releasing.md +51 -0
- agentbridge_core-0.1.0/docs/roadmap.md +49 -0
- agentbridge_core-0.1.0/docs/security.md +107 -0
- agentbridge_core-0.1.0/docs/task-lifecycle.md +79 -0
- agentbridge_core-0.1.0/docs/troubleshooting.md +50 -0
- agentbridge_core-0.1.0/examples/README.md +9 -0
- agentbridge_core-0.1.0/examples/antigravity_handoff/README.md +24 -0
- agentbridge_core-0.1.0/examples/container/Dockerfile.claude +17 -0
- agentbridge_core-0.1.0/examples/multi_agent/README.md +19 -0
- agentbridge_core-0.1.0/examples/simple_task/README.md +23 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/LICENSE +21 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/README.md +24 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/pyproject.toml +47 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/src/agentbridge_bench/__init__.py +5 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/src/agentbridge_bench/cli.py +118 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/src/agentbridge_bench/dataset.py +158 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/src/agentbridge_bench/metrics.py +90 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/src/agentbridge_bench/models.py +93 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/src/agentbridge_bench/reports.py +217 -0
- agentbridge_core-0.1.0/packages/agentbridge-bench/src/agentbridge_bench/runner.py +386 -0
- agentbridge_core-0.1.0/pyproject.toml +101 -0
- agentbridge_core-0.1.0/src/agentbridge/__init__.py +5 -0
- agentbridge_core-0.1.0/src/agentbridge/__main__.py +3 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/antigravity/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/antigravity/adapter.py +211 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/base.py +138 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/capabilities.py +48 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/claude/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/claude/adapter.py +327 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/claude/container.py +118 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/generic_cli/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/generic_cli/adapter.py +104 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/mock/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/mock/adapter.py +215 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/prompts.py +86 -0
- agentbridge_core-0.1.0/src/agentbridge/agents/registry.py +58 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/app.py +67 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/commands/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/commands/dashboard.py +54 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/commands/project.py +137 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/commands/remote.py +49 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/commands/tasks.py +281 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/context.py +60 -0
- agentbridge_core-0.1.0/src/agentbridge/cli/output.py +52 -0
- agentbridge_core-0.1.0/src/agentbridge/config/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/config/loader.py +132 -0
- agentbridge_core-0.1.0/src/agentbridge/config/settings.py +351 -0
- agentbridge_core-0.1.0/src/agentbridge/core/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/core/events.py +49 -0
- agentbridge_core-0.1.0/src/agentbridge/core/orchestrator.py +970 -0
- agentbridge_core-0.1.0/src/agentbridge/core/planner.py +152 -0
- agentbridge_core-0.1.0/src/agentbridge/core/router.py +102 -0
- agentbridge_core-0.1.0/src/agentbridge/dashboard/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/dashboard/server.py +339 -0
- agentbridge_core-0.1.0/src/agentbridge/dashboard/static/assets/index-C4LNM7Ks.js +42 -0
- agentbridge_core-0.1.0/src/agentbridge/dashboard/static/assets/index-CuuZIrox.css +1 -0
- agentbridge_core-0.1.0/src/agentbridge/dashboard/static/index.html +13 -0
- agentbridge_core-0.1.0/src/agentbridge/errors.py +66 -0
- agentbridge_core-0.1.0/src/agentbridge/execution/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/execution/process.py +164 -0
- agentbridge_core-0.1.0/src/agentbridge/execution/sandbox.py +79 -0
- agentbridge_core-0.1.0/src/agentbridge/main.py +22 -0
- agentbridge_core-0.1.0/src/agentbridge/reporting/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/reporting/generator.py +290 -0
- agentbridge_core-0.1.0/src/agentbridge/security/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/security/paths.py +53 -0
- agentbridge_core-0.1.0/src/agentbridge/security/permissions.py +137 -0
- agentbridge_core-0.1.0/src/agentbridge/security/policies.py +59 -0
- agentbridge_core-0.1.0/src/agentbridge/security/secrets.py +80 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/database.py +211 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/migrations/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/migrations/env.py +20 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/migrations/script.py.mako +25 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/migrations/versions/0001_initial_schema.py +176 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/migrations/versions/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/storage/repositories.py +237 -0
- agentbridge_core-0.1.0/src/agentbridge/tasks/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/tasks/dependencies.py +126 -0
- agentbridge_core-0.1.0/src/agentbridge/tasks/models.py +126 -0
- agentbridge_core-0.1.0/src/agentbridge/tasks/recovery.py +91 -0
- agentbridge_core-0.1.0/src/agentbridge/tasks/state_machine.py +54 -0
- agentbridge_core-0.1.0/src/agentbridge/validation/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/validation/engine.py +155 -0
- agentbridge_core-0.1.0/src/agentbridge/validation/models.py +52 -0
- agentbridge_core-0.1.0/src/agentbridge/validation/review.py +78 -0
- agentbridge_core-0.1.0/src/agentbridge/validation/runners.py +120 -0
- agentbridge_core-0.1.0/src/agentbridge/workspace/__init__.py +0 -0
- agentbridge_core-0.1.0/src/agentbridge/workspace/conflicts.py +58 -0
- agentbridge_core-0.1.0/src/agentbridge/workspace/diff.py +71 -0
- agentbridge_core-0.1.0/src/agentbridge/workspace/git.py +99 -0
- agentbridge_core-0.1.0/src/agentbridge/workspace/integration.py +54 -0
- agentbridge_core-0.1.0/src/agentbridge/workspace/manager.py +189 -0
- agentbridge_core-0.1.0/tests/__init__.py +0 -0
- agentbridge_core-0.1.0/tests/benchmarks/__init__.py +0 -0
- agentbridge_core-0.1.0/tests/benchmarks/test_bench.py +114 -0
- agentbridge_core-0.1.0/tests/benchmarks/test_metrics.py +87 -0
- agentbridge_core-0.1.0/tests/conftest.py +90 -0
- agentbridge_core-0.1.0/tests/integration/__init__.py +0 -0
- agentbridge_core-0.1.0/tests/integration/test_cli_e2e.py +138 -0
- agentbridge_core-0.1.0/tests/integration/test_dashboard.py +95 -0
- agentbridge_core-0.1.0/tests/integration/test_orchestration.py +190 -0
- agentbridge_core-0.1.0/tests/integration/test_validation.py +194 -0
- agentbridge_core-0.1.0/tests/integration/test_workspace.py +121 -0
- agentbridge_core-0.1.0/tests/providers/__init__.py +0 -0
- agentbridge_core-0.1.0/tests/providers/test_antigravity_handoff.py +120 -0
- agentbridge_core-0.1.0/tests/providers/test_claude_adapter.py +199 -0
- agentbridge_core-0.1.0/tests/providers/test_claude_container.py +68 -0
- agentbridge_core-0.1.0/tests/security/__init__.py +0 -0
- agentbridge_core-0.1.0/tests/security/test_security.py +213 -0
- agentbridge_core-0.1.0/tests/unit/__init__.py +0 -0
- agentbridge_core-0.1.0/tests/unit/test_config.py +80 -0
- agentbridge_core-0.1.0/tests/unit/test_dependencies_and_planner.py +95 -0
- agentbridge_core-0.1.0/tests/unit/test_retry_and_naming.py +63 -0
- agentbridge_core-0.1.0/tests/unit/test_routing.py +93 -0
- agentbridge_core-0.1.0/tests/unit/test_state_machine.py +56 -0
- agentbridge_core-0.1.0/tests/unit/test_store.py +116 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# AgentBridge does not read API keys itself. Provider CLIs use their own
|
|
2
|
+
# authentication. Copy to .env only if your provider CLI expects these variables,
|
|
3
|
+
# and never commit the .env file.
|
|
4
|
+
|
|
5
|
+
# Claude Code can use an API key instead of an interactive login:
|
|
6
|
+
# ANTHROPIC_API_KEY=
|
|
7
|
+
|
|
8
|
+
# Optional: point AgentBench at a different benchmarks directory.
|
|
9
|
+
# AGENTBENCH_DIR=./benchmarks
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Something does not work as documented
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**What happened**
|
|
8
|
+
|
|
9
|
+
**What you expected**
|
|
10
|
+
|
|
11
|
+
**Steps to reproduce**
|
|
12
|
+
|
|
13
|
+
1.
|
|
14
|
+
2.
|
|
15
|
+
|
|
16
|
+
**Environment**
|
|
17
|
+
|
|
18
|
+
- AgentBridge version (`agentbridge --version`):
|
|
19
|
+
- OS:
|
|
20
|
+
- Python / Git versions:
|
|
21
|
+
- Provider and version (e.g. `claude --version`):
|
|
22
|
+
|
|
23
|
+
**Logs** (`agentbridge logs <task_id>`; please check that no secrets are included)
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Security vulnerability
|
|
4
|
+
url: https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability
|
|
5
|
+
about: Please report security issues privately (see SECURITY.md).
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Propose an improvement
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Problem to solve**
|
|
8
|
+
|
|
9
|
+
**Proposed solution**
|
|
10
|
+
|
|
11
|
+
**Alternatives considered**
|
|
12
|
+
|
|
13
|
+
**Provider capability involved?** If this depends on a provider feature, link the
|
|
14
|
+
official documentation that describes it.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
<!-- What does this change and why? Link the issue. -->
|
|
4
|
+
|
|
5
|
+
## Checklist
|
|
6
|
+
|
|
7
|
+
- [ ] `make check` passes (ruff, format, mypy, pytest)
|
|
8
|
+
- [ ] Tests added or updated
|
|
9
|
+
- [ ] Documentation matches the new behaviour
|
|
10
|
+
- [ ] CHANGELOG.md updated under "Unreleased"
|
|
11
|
+
- [ ] No credentials, tokens or personal data added
|
|
12
|
+
- [ ] No security check weakened; no agent/repository text is executed
|
|
13
|
+
- [ ] Benchmark data (if touched) is real and unknown values remain `null`
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: ci
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
lint:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v5
|
|
16
|
+
- uses: actions/setup-python@v6
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.12"
|
|
19
|
+
- run: python -m pip install -e ".[dev]" -e packages/agentbridge-bench
|
|
20
|
+
- run: ruff check src packages tests
|
|
21
|
+
- run: ruff format --check src packages tests
|
|
22
|
+
- run: mypy
|
|
23
|
+
|
|
24
|
+
bench-controls:
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v5
|
|
28
|
+
- uses: actions/setup-python@v6
|
|
29
|
+
with:
|
|
30
|
+
python-version: "3.12"
|
|
31
|
+
- run: python -m pip install -e ".[dev]" -e packages/agentbridge-bench
|
|
32
|
+
- name: AgentBench harness controls (no paid APIs)
|
|
33
|
+
run: agentbridge-bench run smoke -c mock-oracle -c mock-noop --output /tmp/agentbench
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
name: release
|
|
2
|
+
|
|
3
|
+
# Push a tag like v0.1.0 to build, smoke-test, publish to PyPI and create a GitHub release.
|
|
4
|
+
# PyPI publishing uses trusted publishing (OIDC): no PyPI password or token is stored
|
|
5
|
+
# anywhere. See docs/releasing.md for the one-time PyPI setup.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
tags: ["v*"]
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
build:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v5
|
|
19
|
+
- uses: actions/setup-python@v6
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.12"
|
|
22
|
+
- name: Check that the tag matches both package versions
|
|
23
|
+
run: |
|
|
24
|
+
tag="${GITHUB_REF_NAME#v}"
|
|
25
|
+
for f in pyproject.toml packages/agentbridge-bench/pyproject.toml; do
|
|
26
|
+
v=$(python -c "import tomllib,sys;print(tomllib.load(open(sys.argv[1],'rb'))['project']['version'])" "$f")
|
|
27
|
+
[ "$v" = "$tag" ] || { echo "::error::$f has version $v but the tag is v$tag"; exit 1; }
|
|
28
|
+
done
|
|
29
|
+
- run: python -m pip install build
|
|
30
|
+
- name: Build agentbridge-core and agentbridge-bench
|
|
31
|
+
run: |
|
|
32
|
+
python -m build --outdir dist/core .
|
|
33
|
+
python -m build --wheel --outdir dist/bench packages/agentbridge-bench # wheel only: it bundles ../../benchmarks
|
|
34
|
+
- name: Smoke-test both wheels in a clean environment
|
|
35
|
+
run: |
|
|
36
|
+
python -m venv /tmp/clean
|
|
37
|
+
/tmp/clean/bin/pip install dist/core/*.whl dist/bench/*.whl
|
|
38
|
+
/tmp/clean/bin/agentbridge --version
|
|
39
|
+
cd /tmp && /tmp/clean/bin/agentbridge-bench list
|
|
40
|
+
- uses: actions/upload-artifact@v4
|
|
41
|
+
with:
|
|
42
|
+
name: dist
|
|
43
|
+
path: dist/
|
|
44
|
+
|
|
45
|
+
# PyPI allows one trusted-publisher configuration per project, so each package
|
|
46
|
+
# publishes from its own environment.
|
|
47
|
+
publish-core:
|
|
48
|
+
needs: build
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
environment:
|
|
51
|
+
name: pypi
|
|
52
|
+
url: https://pypi.org/project/agentbridge-core/
|
|
53
|
+
permissions:
|
|
54
|
+
id-token: write # trusted publishing; no secrets involved
|
|
55
|
+
steps:
|
|
56
|
+
- uses: actions/download-artifact@v4
|
|
57
|
+
with:
|
|
58
|
+
name: dist
|
|
59
|
+
path: dist/
|
|
60
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
61
|
+
with:
|
|
62
|
+
packages-dir: dist/core/
|
|
63
|
+
|
|
64
|
+
publish-bench:
|
|
65
|
+
needs: publish-core # agentbridge-bench depends on agentbridge-core
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
environment:
|
|
68
|
+
name: pypi-bench
|
|
69
|
+
url: https://pypi.org/project/agentbridge-bench/
|
|
70
|
+
permissions:
|
|
71
|
+
id-token: write
|
|
72
|
+
steps:
|
|
73
|
+
- uses: actions/download-artifact@v4
|
|
74
|
+
with:
|
|
75
|
+
name: dist
|
|
76
|
+
path: dist/
|
|
77
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
78
|
+
with:
|
|
79
|
+
packages-dir: dist/bench/
|
|
80
|
+
|
|
81
|
+
github-release:
|
|
82
|
+
needs: publish-bench
|
|
83
|
+
runs-on: ubuntu-latest
|
|
84
|
+
permissions:
|
|
85
|
+
contents: write
|
|
86
|
+
steps:
|
|
87
|
+
- uses: actions/checkout@v5
|
|
88
|
+
- uses: actions/download-artifact@v4
|
|
89
|
+
with:
|
|
90
|
+
name: dist
|
|
91
|
+
path: dist/
|
|
92
|
+
- name: Create GitHub release
|
|
93
|
+
env:
|
|
94
|
+
GH_TOKEN: ${{ github.token }}
|
|
95
|
+
run: gh release create "$GITHUB_REF_NAME" dist/core/* dist/bench/* --notes-file CHANGELOG.md --verify-tag
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
name: tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
pytest:
|
|
13
|
+
strategy:
|
|
14
|
+
fail-fast: false
|
|
15
|
+
matrix:
|
|
16
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
17
|
+
python-version: ["3.12", "3.13"]
|
|
18
|
+
runs-on: ${{ matrix.os }}
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v5
|
|
21
|
+
- uses: actions/setup-python@v6
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ matrix.python-version }}
|
|
24
|
+
- run: python -m pip install -e ".[dev]" -e packages/agentbridge-bench
|
|
25
|
+
- name: Configure git identity for test repositories
|
|
26
|
+
run: |
|
|
27
|
+
git config --global user.name "CI"
|
|
28
|
+
git config --global user.email "ci@example.com"
|
|
29
|
+
git config --global init.defaultBranch main
|
|
30
|
+
- run: python -m pytest -p no:cacheprovider --cov=agentbridge --cov=agentbridge_bench --cov-report=term
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.egg-info/
|
|
5
|
+
build/
|
|
6
|
+
dist/
|
|
7
|
+
.venv/
|
|
8
|
+
venv/
|
|
9
|
+
.pytest_cache/
|
|
10
|
+
.mypy_cache/
|
|
11
|
+
.ruff_cache/
|
|
12
|
+
.coverage
|
|
13
|
+
htmlcov/
|
|
14
|
+
|
|
15
|
+
# AgentBridge state (when AgentBridge is used on this repository)
|
|
16
|
+
.agentbridge/
|
|
17
|
+
agentbridge.yaml
|
|
18
|
+
|
|
19
|
+
# AgentBench raw experiment runs (large; publish curated reports under benchmarks/reports/)
|
|
20
|
+
benchmarks/experiments/
|
|
21
|
+
|
|
22
|
+
# Secrets
|
|
23
|
+
.env
|
|
24
|
+
|
|
25
|
+
# OS / editor
|
|
26
|
+
.DS_Store
|
|
27
|
+
Thumbs.db
|
|
28
|
+
.idea/
|
|
29
|
+
.vscode/
|
|
30
|
+
|
|
31
|
+
# Dashboard frontend dependencies (the built bundle in src/agentbridge/dashboard/static is committed)
|
|
32
|
+
dashboard/node_modules/
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes are documented here. The format follows
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses
|
|
5
|
+
[Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
## Unreleased
|
|
8
|
+
|
|
9
|
+
_Nothing yet._
|
|
10
|
+
|
|
11
|
+
## 0.1.0 - 2026-11-08
|
|
12
|
+
|
|
13
|
+
First release on PyPI.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Split into two distributions: **`agentbridge-core`** (the `agentbridge` command;
|
|
18
|
+
import name unchanged) and **`agentbridge-bench`** (AgentBench, import
|
|
19
|
+
`agentbridge_bench`, command `agentbridge-bench`). The PyPI name `agentbridge` belongs
|
|
20
|
+
to an unrelated project. `agentbridge benchmark …` still works when
|
|
21
|
+
`agentbridge-bench` is installed and prints an install hint otherwise.
|
|
22
|
+
- Release workflow publishes both packages to PyPI with trusted publishing (no stored
|
|
23
|
+
tokens) after a tag/version check; see docs/releasing.md.
|
|
24
|
+
- The `agentbridge-bench` wheel bundles the benchmark suite and works outside a source
|
|
25
|
+
checkout.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- AgentBench refuses to run without pytest, and a test command that fails without a
|
|
30
|
+
pytest summary now counts as a failure instead of silently reporting 0/0.
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- Local web dashboard: `agentbridge dashboard` (FastAPI backend, React + TypeScript
|
|
35
|
+
frontend shipped prebuilt). Overview, runs, task graph, task detail with diff,
|
|
36
|
+
validation steps, agent output and event timeline, live updates over server-sent
|
|
37
|
+
events, token-protected approve/reject/cancel, AgentBench results. Loopback only.
|
|
38
|
+
- Alembic schema migrations; pre-Alembic databases are upgraded in place.
|
|
39
|
+
- `validation.sandbox: docker`: validation commands run in a network-less,
|
|
40
|
+
resource-limited container and fail closed if Docker is unavailable.
|
|
41
|
+
`validation.docker.command: [wsl, docker]` supports Docker inside WSL on Windows.
|
|
42
|
+
|
|
43
|
+
- Claude Code container isolation (`providers.claude.container`): only the worktree
|
|
44
|
+
is mounted, a single token is passed by variable name, read-only root filesystem,
|
|
45
|
+
dropped capabilities, shell/web tools disallowed, fail-closed.
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- Execution records no longer stay `running` when an adapter raises.
|
|
50
|
+
- Third-party test-client deprecation warning silenced.
|
|
51
|
+
|
|
52
|
+
### Added (foundations)
|
|
53
|
+
|
|
54
|
+
- `agentbridge` CLI: `init`, `providers list|check`, `run`, `tasks
|
|
55
|
+
list|status|inspect|resume|cancel|approve|reject|cleanup`, `logs`, `report`,
|
|
56
|
+
`remote packet|import`, `benchmark list|run|report`, with stable exit codes.
|
|
57
|
+
- Validated `agentbridge.yaml` configuration with safe defaults.
|
|
58
|
+
- SQLite persistence (WAL), explicit task state machine with atomic transitions and
|
|
59
|
+
event history, restart recovery and safe resume.
|
|
60
|
+
- Adapter contract with declared capabilities; mock, Claude Code CLI, Antigravity
|
|
61
|
+
remote handoff and generic CLI adapters.
|
|
62
|
+
- Planner (single, standard template, provider JSON plan), explainable router,
|
|
63
|
+
dependency-aware scheduler, retries with exponential backoff, cancellation.
|
|
64
|
+
- Git worktree isolation, diff capture, overlap and merge-conflict detection,
|
|
65
|
+
approval-gated merge.
|
|
66
|
+
- Validation pipeline: diff, scope, isolation, Ruff, Mypy, Pytest, heuristic review,
|
|
67
|
+
optional agent review.
|
|
68
|
+
- Security: policy profiles, command allowlists, protected git operations, secret
|
|
69
|
+
redaction, path traversal protection.
|
|
70
|
+
- Task and run reports (JSON + Markdown).
|
|
71
|
+
- AgentBench: 12 deterministic tasks across 8 categories, controls, runner, metrics,
|
|
72
|
+
JSON/CSV/Markdown/SVG reports.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
This project adopts the [Contributor Covenant, version 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)
|
|
4
|
+
as its code of conduct.
|
|
5
|
+
|
|
6
|
+
In short: be respectful and constructive, assume good intent, welcome newcomers, and
|
|
7
|
+
focus criticism on ideas and code rather than people. Harassment, discrimination and
|
|
8
|
+
personal attacks are not tolerated in issues, pull requests, discussions or any other
|
|
9
|
+
project space.
|
|
10
|
+
|
|
11
|
+
## Reporting
|
|
12
|
+
|
|
13
|
+
Report unacceptable behaviour privately to the project maintainers through the
|
|
14
|
+
contact listed in the repository's security policy or profile. Reports are handled
|
|
15
|
+
confidentially. Maintainers may remove content and restrict participation of anyone
|
|
16
|
+
who violates this code.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Contributing to AgentBridge
|
|
2
|
+
|
|
3
|
+
Thank you for helping. AgentBridge values correctness, reliability and security over
|
|
4
|
+
feature count: a small, well-tested change is better than a large incomplete one.
|
|
5
|
+
|
|
6
|
+
## Setup
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
python -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
10
|
+
pip install -e ".[dev]" -e packages/agentbridge-bench
|
|
11
|
+
make check
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
1. Open an issue for anything non-trivial so the design can be discussed first.
|
|
17
|
+
2. Create a branch, keep the change focused, and add tests.
|
|
18
|
+
3. Run `make check` (Ruff, format check, Mypy strict, Pytest). All must pass.
|
|
19
|
+
4. Update documentation when behaviour changes. Docs must describe what the code does
|
|
20
|
+
today, not what it might do.
|
|
21
|
+
5. Add an entry under "Unreleased" in `CHANGELOG.md`.
|
|
22
|
+
6. Open a pull request using the template.
|
|
23
|
+
|
|
24
|
+
## Ground rules
|
|
25
|
+
|
|
26
|
+
- Never add code that executes text produced by agents, planners or repositories.
|
|
27
|
+
- Never weaken a security check to make a test pass.
|
|
28
|
+
- Provider adapters must declare only capabilities verified against official
|
|
29
|
+
documentation or the installed tool, and tests must use fake executables (no paid
|
|
30
|
+
API calls in CI).
|
|
31
|
+
- Benchmark changes must not fabricate or impute results; unknown values stay `null`.
|
|
32
|
+
- New benchmark tasks need a fixture, hidden tests, a reference solution, and must
|
|
33
|
+
pass under `mock-oracle` and fail under `mock-noop`.
|
|
34
|
+
|
|
35
|
+
## Code style
|
|
36
|
+
|
|
37
|
+
Ruff (lint + format, line length 100) and Mypy in strict mode for `src/`. Prefer small
|
|
38
|
+
modules, typed Pydantic models at boundaries and explicit errors from
|
|
39
|
+
`agentbridge.errors`.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 AgentBridge contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
PYTHON ?= python
|
|
2
|
+
PYTEST_ARGS ?=
|
|
3
|
+
|
|
4
|
+
.PHONY: install lint format typecheck test check bench-smoke bench-controls clean
|
|
5
|
+
|
|
6
|
+
install:
|
|
7
|
+
$(PYTHON) -m pip install -e ".[dev]" -e packages/agentbridge-bench
|
|
8
|
+
|
|
9
|
+
lint:
|
|
10
|
+
$(PYTHON) -m ruff check src packages tests
|
|
11
|
+
$(PYTHON) -m ruff format --check src packages tests
|
|
12
|
+
|
|
13
|
+
format:
|
|
14
|
+
$(PYTHON) -m ruff format src packages tests
|
|
15
|
+
$(PYTHON) -m ruff check --fix src packages tests
|
|
16
|
+
|
|
17
|
+
typecheck:
|
|
18
|
+
$(PYTHON) -m mypy
|
|
19
|
+
|
|
20
|
+
test:
|
|
21
|
+
$(PYTHON) -m pytest -p no:cacheprovider $(PYTEST_ARGS)
|
|
22
|
+
|
|
23
|
+
coverage:
|
|
24
|
+
$(PYTHON) -m pytest -p no:cacheprovider --cov=agentbridge --cov=agentbridge_bench --cov-report=term-missing $(PYTEST_ARGS)
|
|
25
|
+
|
|
26
|
+
check: lint typecheck test
|
|
27
|
+
|
|
28
|
+
bench-smoke:
|
|
29
|
+
$(PYTHON) -m agentbridge_bench.cli run smoke -c mock-oracle -c mock-noop
|
|
30
|
+
|
|
31
|
+
bench-controls:
|
|
32
|
+
$(PYTHON) -m agentbridge_bench.cli run core -c mock-oracle -c mock-noop -c antigravity-remote
|
|
33
|
+
|
|
34
|
+
clean:
|
|
35
|
+
$(PYTHON) -c "import shutil; [shutil.rmtree(p, ignore_errors=True) for p in ('build', 'dist', 'htmlcov')]"
|