agent-os-kernel 1.1.0__py3-none-any.whl → 1.2.0__py3-none-any.whl
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.
- agent_os/__init__.py +66 -4
- agent_os/agents_compat.py +286 -0
- agent_os/base_agent.py +308 -0
- agent_os/cli.py +1079 -19
- agent_os/integrations/__init__.py +37 -2
- agent_os/integrations/openai_adapter.py +502 -0
- agent_os/integrations/semantic_kernel_adapter.py +569 -0
- agent_os/stateless.py +349 -0
- agent_os_kernel-1.2.0.dist-info/METADATA +676 -0
- agent_os_kernel-1.2.0.dist-info/RECORD +1053 -0
- {agent_os_kernel-1.1.0.dist-info → agent_os_kernel-1.2.0.dist-info}/entry_points.txt +0 -1
- modules/amb/.github/workflows/ci.yml +102 -0
- modules/amb/.github/workflows/publish.yml +146 -0
- modules/amb/.gitignore +134 -0
- modules/amb/CHANGELOG.md +118 -0
- modules/amb/CONTRIBUTING.md +141 -0
- modules/amb/LICENSE +21 -0
- modules/amb/README.md +188 -0
- modules/amb/amb_core/__init__.py +175 -0
- modules/amb/amb_core/adapters/__init__.py +55 -0
- modules/amb/amb_core/adapters/aws_sqs_broker.py +374 -0
- modules/amb/amb_core/adapters/azure_servicebus_broker.py +338 -0
- modules/amb/amb_core/adapters/kafka_broker.py +258 -0
- modules/amb/amb_core/adapters/nats_broker.py +283 -0
- modules/amb/amb_core/adapters/rabbitmq_broker.py +233 -0
- modules/amb/amb_core/adapters/redis_broker.py +260 -0
- modules/amb/amb_core/broker.py +143 -0
- modules/amb/amb_core/bus.py +479 -0
- modules/amb/amb_core/cloudevents.py +507 -0
- modules/amb/amb_core/dlq.py +343 -0
- modules/amb/amb_core/hf_utils.py +534 -0
- modules/amb/amb_core/memory_broker.py +408 -0
- modules/amb/amb_core/models.py +139 -0
- modules/amb/amb_core/persistence.py +527 -0
- modules/amb/amb_core/schema.py +292 -0
- modules/amb/amb_core/tracing.py +356 -0
- modules/amb/examples/advanced_features.py +223 -0
- modules/amb/examples/backpressure_demo.py +225 -0
- modules/amb/examples/basic_usage.py +117 -0
- modules/amb/examples/tracing_demo.py +104 -0
- modules/amb/experiments/README.md +52 -0
- modules/amb/experiments/reproduce_results.py +467 -0
- modules/amb/experiments/results.json +324 -0
- modules/amb/paper/README.md +40 -0
- modules/amb/paper/paper.tex +365 -0
- modules/amb/paper/whitepaper.md +377 -0
- modules/amb/pyproject.toml +117 -0
- modules/amb/tests/__init__.py +1 -0
- modules/amb/tests/test_backpressure_priority.py +280 -0
- modules/amb/tests/test_bus.py +198 -0
- modules/amb/tests/test_cloudevents.py +443 -0
- modules/amb/tests/test_features.py +531 -0
- modules/amb/tests/test_models.py +74 -0
- modules/amb/tests/test_tracing.py +254 -0
- modules/atr/.github/workflows/ci.yml +101 -0
- modules/atr/.github/workflows/publish.yml +140 -0
- modules/atr/.gitignore +134 -0
- modules/atr/.pre-commit-config.yaml +37 -0
- modules/atr/CHANGELOG.md +39 -0
- modules/atr/CONTRIBUTING.md +96 -0
- modules/atr/IMPLEMENTATION_SUMMARY.md +143 -0
- modules/atr/README.md +180 -0
- modules/atr/atr/__init__.py +638 -0
- modules/atr/atr/access.py +346 -0
- modules/atr/atr/composition.py +643 -0
- modules/atr/atr/decorator.py +355 -0
- modules/atr/atr/executor.py +382 -0
- modules/atr/atr/health.py +555 -0
- modules/atr/atr/hf_utils.py +447 -0
- modules/atr/atr/injection.py +420 -0
- modules/atr/atr/metrics.py +438 -0
- modules/atr/atr/policies.py +401 -0
- modules/atr/atr/py.typed +2 -0
- modules/atr/atr/registry.py +450 -0
- modules/atr/atr/schema.py +478 -0
- modules/atr/atr/tools/safe/__init__.py +73 -0
- modules/atr/atr/tools/safe/calculator.py +380 -0
- modules/atr/atr/tools/safe/datetime_tool.py +441 -0
- modules/atr/atr/tools/safe/file_reader.py +400 -0
- modules/atr/atr/tools/safe/http_client.py +314 -0
- modules/atr/atr/tools/safe/json_parser.py +372 -0
- modules/atr/atr/tools/safe/text_tool.py +526 -0
- modules/atr/atr/tools/safe/toolkit.py +173 -0
- modules/atr/docs/PYPI_SETUP.md +113 -0
- modules/atr/examples/README.md +27 -0
- modules/atr/examples/demo.py +144 -0
- modules/atr/examples/sandbox_demo.py +218 -0
- modules/atr/experiments/README.md +69 -0
- modules/atr/experiments/reproduce_results.py +509 -0
- modules/atr/experiments/results/.gitkeep +0 -0
- modules/atr/experiments/results/results_20260123_140334.json +71 -0
- modules/atr/paper/README.md +36 -0
- modules/atr/paper/figures/.gitkeep +0 -0
- modules/atr/paper/references.bib +84 -0
- modules/atr/paper/structure.tex +293 -0
- modules/atr/paper/whitepaper.md +234 -0
- modules/atr/pyproject.toml +148 -0
- modules/atr/requirements.txt +1 -0
- modules/atr/setup.py +30 -0
- modules/atr/tests/__init__.py +1 -0
- modules/atr/tests/test_decorator.py +317 -0
- modules/atr/tests/test_executor.py +245 -0
- modules/atr/tests/test_integration_executor.py +184 -0
- modules/atr/tests/test_registry.py +312 -0
- modules/atr/tests/test_schema.py +182 -0
- modules/atr/tests/test_v2_features.py +708 -0
- modules/caas/.dockerignore +63 -0
- modules/caas/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- modules/caas/.github/ISSUE_TEMPLATE/custom.md +10 -0
- modules/caas/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- modules/caas/.github/workflows/ci.yml +100 -0
- modules/caas/.github/workflows/lint.yml +39 -0
- modules/caas/.github/workflows/publish-pypi.yml +124 -0
- modules/caas/.gitignore +73 -0
- modules/caas/.pre-commit-config.yaml +33 -0
- modules/caas/CHANGELOG.md +58 -0
- modules/caas/CONTRIBUTING.md +346 -0
- modules/caas/Dockerfile +41 -0
- modules/caas/LICENSE +21 -0
- modules/caas/MANIFEST.in +11 -0
- modules/caas/README.md +158 -0
- modules/caas/benchmarks/README.md +255 -0
- modules/caas/benchmarks/create_hf_dataset.py +502 -0
- modules/caas/benchmarks/data/sample_corpus/README.md +86 -0
- modules/caas/benchmarks/data/sample_corpus/auth_module.py +211 -0
- modules/caas/benchmarks/data/sample_corpus/contribution_guide.md +185 -0
- modules/caas/benchmarks/data/sample_corpus/remote_work_policy.html +57 -0
- modules/caas/benchmarks/hf_dataset/README.md +214 -0
- modules/caas/benchmarks/hf_dataset/caas_benchmark_corpus.py +73 -0
- modules/caas/benchmarks/hf_dataset/corpus_preview.json +193 -0
- modules/caas/benchmarks/results/README.md +66 -0
- modules/caas/benchmarks/results/evaluation_2026-01-20.json +121 -0
- modules/caas/benchmarks/run_evaluation.py +561 -0
- modules/caas/benchmarks/statistical_tests.py +289 -0
- modules/caas/benchmarks/verify_sample_corpus.py +83 -0
- modules/caas/docker-compose.yml +38 -0
- modules/caas/docs/CONTEXT_TRIAD.md +462 -0
- modules/caas/docs/CONTRIBUTING.md +346 -0
- modules/caas/docs/ETHICS_AND_LIMITATIONS.md +336 -0
- modules/caas/docs/HEURISTIC_ROUTER.md +442 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY.md +363 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_CONTEXT_TRIAD.md +277 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_HEURISTIC_ROUTER.md +231 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_METADATA_INJECTION.md +258 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_PRAGMATIC_TRUTH.md +212 -0
- modules/caas/docs/IMPLEMENTATION_SUMMARY_TRUST_GATEWAY.md +319 -0
- modules/caas/docs/LAYER_1_PRIMITIVE.md +202 -0
- modules/caas/docs/METADATA_INJECTION.md +404 -0
- modules/caas/docs/PRAGMATIC_TRUTH.md +431 -0
- modules/caas/docs/RELATED_WORK.md +312 -0
- modules/caas/docs/RELEASE_CHECKLIST.md +219 -0
- modules/caas/docs/RELEASE_GUIDE.md +285 -0
- modules/caas/docs/REPRODUCIBILITY.md +386 -0
- modules/caas/docs/SLIDING_WINDOW.md +387 -0
- modules/caas/docs/STRUCTURE_AWARE_INDEXING.md +158 -0
- modules/caas/docs/TESTING.md +259 -0
- modules/caas/docs/THREAT_MODEL.md +247 -0
- modules/caas/docs/TRUST_GATEWAY.md +575 -0
- modules/caas/docs/VFS.md +298 -0
- modules/caas/examples/agents/enterprise_security_agent.py +414 -0
- modules/caas/examples/agents/intelligent_document_analyzer.py +380 -0
- modules/caas/examples/demos/demo.py +309 -0
- modules/caas/examples/demos/demo_context_triad.py +225 -0
- modules/caas/examples/demos/demo_conversation_manager.py +285 -0
- modules/caas/examples/demos/demo_heuristic_router.py +133 -0
- modules/caas/examples/demos/demo_metadata_injection.py +198 -0
- modules/caas/examples/demos/demo_pragmatic_truth.py +303 -0
- modules/caas/examples/demos/demo_structure_aware.py +140 -0
- modules/caas/examples/demos/demo_time_decay.py +247 -0
- modules/caas/examples/demos/demo_trust_gateway.py +383 -0
- modules/caas/examples/multi_agent/README.md +159 -0
- modules/caas/examples/multi_agent/research_team.py +369 -0
- modules/caas/examples/multi_agent/vfs_collaboration.py +393 -0
- modules/caas/examples/usage/auth_module.py +142 -0
- modules/caas/examples/usage/usage_example.py +173 -0
- modules/caas/experiments/README.md +42 -0
- modules/caas/experiments/reproduce_results.py +462 -0
- modules/caas/paper/ARXIV_METADATA.md +145 -0
- modules/caas/paper/ARXIV_README.md +47 -0
- modules/caas/paper/CHECKLIST.md +103 -0
- modules/caas/paper/GITHUB_RELEASE_NOTES.md +105 -0
- modules/caas/paper/README.md +71 -0
- modules/caas/paper/abstract.md +24 -0
- modules/caas/paper/arxiv_submission.tar +0 -0
- modules/caas/paper/arxiv_submission.zip +0 -0
- modules/caas/paper/build_pdf.py +355 -0
- modules/caas/paper/experiments.md +149 -0
- modules/caas/paper/figures/.gitkeep +0 -0
- modules/caas/paper/figures/README.md +237 -0
- modules/caas/paper/figures/fig1_system_architecture.png +0 -0
- modules/caas/paper/figures/fig1_system_architecture.svg +198 -0
- modules/caas/paper/figures/fig2_context_triad.png +0 -0
- modules/caas/paper/figures/fig2_context_triad.svg +105 -0
- modules/caas/paper/figures/fig3_ablation_results.png +0 -0
- modules/caas/paper/figures/fig3_ablation_results.svg +113 -0
- modules/caas/paper/figures/fig4_routing_latency.png +0 -0
- modules/caas/paper/figures/fig4_routing_latency.svg +97 -0
- modules/caas/paper/intro.md +103 -0
- modules/caas/paper/latex/figures/fig1_system_architecture.png +0 -0
- modules/caas/paper/latex/figures/fig2_context_triad.png +0 -0
- modules/caas/paper/latex/figures/fig3_ablation_results.png +0 -0
- modules/caas/paper/latex/figures/fig4_routing_latency.png +0 -0
- modules/caas/paper/latex/main.tex +468 -0
- modules/caas/paper/latex/references.bib +140 -0
- modules/caas/paper/method.md +350 -0
- modules/caas/paper/outline.md +123 -0
- modules/caas/paper/related_work.md +101 -0
- modules/caas/paper/tables/.gitkeep +0 -0
- modules/caas/paper/tables/results_tables.md +50 -0
- modules/caas/pyproject.toml +172 -0
- modules/caas/requirements.txt +11 -0
- modules/caas/src/caas/__init__.py +232 -0
- modules/caas/src/caas/api/__init__.py +7 -0
- modules/caas/src/caas/api/server.py +1326 -0
- modules/caas/src/caas/caching.py +832 -0
- modules/caas/src/caas/cli.py +208 -0
- modules/caas/src/caas/conversation.py +221 -0
- modules/caas/src/caas/decay.py +118 -0
- modules/caas/src/caas/detection/__init__.py +7 -0
- modules/caas/src/caas/detection/detector.py +236 -0
- modules/caas/src/caas/enrichment.py +127 -0
- modules/caas/src/caas/gateway/__init__.py +24 -0
- modules/caas/src/caas/gateway/trust_gateway.py +471 -0
- modules/caas/src/caas/hf_utils.py +477 -0
- modules/caas/src/caas/ingestion/__init__.py +21 -0
- modules/caas/src/caas/ingestion/processors.py +251 -0
- modules/caas/src/caas/ingestion/structure_parser.py +185 -0
- modules/caas/src/caas/models.py +354 -0
- modules/caas/src/caas/pragmatic_truth.py +441 -0
- modules/caas/src/caas/routing/__init__.py +8 -0
- modules/caas/src/caas/routing/heuristic_router.py +242 -0
- modules/caas/src/caas/storage/__init__.py +7 -0
- modules/caas/src/caas/storage/store.py +450 -0
- modules/caas/src/caas/triad.py +472 -0
- modules/caas/src/caas/tuning/__init__.py +7 -0
- modules/caas/src/caas/tuning/tuner.py +322 -0
- modules/caas/src/caas/vfs/__init__.py +12 -0
- modules/caas/src/caas/vfs/filesystem.py +450 -0
- modules/caas/tests/__init__.py +3 -0
- modules/caas/tests/conftest.py +8 -0
- modules/caas/tests/test_caching.py +628 -0
- modules/caas/tests/test_context_triad.py +385 -0
- modules/caas/tests/test_conversation_manager.py +289 -0
- modules/caas/tests/test_functionality.py +215 -0
- modules/caas/tests/test_heuristic_router.py +370 -0
- modules/caas/tests/test_metadata_injection.py +328 -0
- modules/caas/tests/test_pragmatic_truth.py +322 -0
- modules/caas/tests/test_structure_aware_indexing.py +283 -0
- modules/caas/tests/test_time_decay.py +268 -0
- modules/caas/tests/test_trust_gateway.py +445 -0
- modules/caas/tests/test_vfs.py +298 -0
- modules/cmvk/.github/FUNDING.yml +9 -0
- modules/cmvk/.github/dependabot.yml +54 -0
- modules/cmvk/.github/workflows/ci.yml +205 -0
- modules/cmvk/.github/workflows/publish.yml +143 -0
- modules/cmvk/.gitignore +147 -0
- modules/cmvk/.pre-commit-config.yaml +58 -0
- modules/cmvk/CHANGELOG.md +146 -0
- modules/cmvk/CITATION.cff +48 -0
- modules/cmvk/CONTRIBUTING.md +229 -0
- modules/cmvk/Dockerfile +87 -0
- modules/cmvk/HF_MODEL_CARD.md +185 -0
- modules/cmvk/LICENSE +21 -0
- modules/cmvk/README.md +149 -0
- modules/cmvk/SECURITY.md +114 -0
- modules/cmvk/config/prompts/generator_v1.txt +23 -0
- modules/cmvk/config/prompts/verifier_hostile.txt +32 -0
- modules/cmvk/config/settings.yaml +40 -0
- modules/cmvk/coverage_html/.gitignore +2 -0
- modules/cmvk/coverage_html/class_index.html +658 -0
- modules/cmvk/coverage_html/coverage_html_cb_188fc9a4.js +735 -0
- modules/cmvk/coverage_html/favicon_32_cb_c827f16f.png +0 -0
- modules/cmvk/coverage_html/function_index.html +1978 -0
- modules/cmvk/coverage_html/index.html +255 -0
- modules/cmvk/coverage_html/keybd_closed_cb_900cfef5.png +0 -0
- modules/cmvk/coverage_html/status.json +1 -0
- modules/cmvk/coverage_html/style_cb_5c747636.css +389 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38___init___py.html +315 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_audit_py.html +499 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_benchmarks_py.html +575 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_constitutional_py.html +1001 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_hf_utils_py.html +398 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_metrics_py.html +570 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_profiles_py.html +397 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_types_py.html +109 -0
- modules/cmvk/coverage_html/z_2c49bd2ed3e01e38_verification_py.html +1053 -0
- modules/cmvk/docs/DIAGRAMS.md +325 -0
- modules/cmvk/docs/architecture.md +345 -0
- modules/cmvk/docs/features.md +308 -0
- modules/cmvk/docs/getting_started.md +279 -0
- modules/cmvk/docs/innovation_layer.md +377 -0
- modules/cmvk/docs/safety.md +281 -0
- modules/cmvk/docs/traceability.md +150 -0
- modules/cmvk/examples/basic_example.py +62 -0
- modules/cmvk/examples/demo_complete_pipeline.py +209 -0
- modules/cmvk/examples/demo_innovation_layer.py +197 -0
- modules/cmvk/examples/example.py +112 -0
- modules/cmvk/examples/model_diversity_comparison.py +110 -0
- modules/cmvk/examples/real_api_integration.py +121 -0
- modules/cmvk/examples/test_full_pipeline.py +303 -0
- modules/cmvk/experiments/FEATURE_2_LATERAL_THINKING.md +187 -0
- modules/cmvk/experiments/README.md +216 -0
- modules/cmvk/experiments/ablation_runner.py +666 -0
- modules/cmvk/experiments/baseline_runner.py +158 -0
- modules/cmvk/experiments/blind_spot_benchmark.py +364 -0
- modules/cmvk/experiments/datasets/README.md +85 -0
- modules/cmvk/experiments/datasets/humaneval_50.json +352 -0
- modules/cmvk/experiments/datasets/humaneval_full.json +1150 -0
- modules/cmvk/experiments/datasets/humaneval_sample.json +32 -0
- modules/cmvk/experiments/datasets/sabotage.json +262 -0
- modules/cmvk/experiments/datasets/sample.json +40 -0
- modules/cmvk/experiments/demo_with_traces.py +110 -0
- modules/cmvk/experiments/efficiency_curve.py +259 -0
- modules/cmvk/experiments/experiment_runner.py +243 -0
- modules/cmvk/experiments/paper_data_generator.py +183 -0
- modules/cmvk/experiments/reproduce_results.py +407 -0
- modules/cmvk/experiments/reproducible_runner.py +352 -0
- modules/cmvk/experiments/sabotage_stress_test.py +311 -0
- modules/cmvk/experiments/test_lateral_thinking.py +116 -0
- modules/cmvk/experiments/test_prosecutor.py +41 -0
- modules/cmvk/experiments/visualize_results.py +735 -0
- modules/cmvk/logs/traces/demo_HumanEval_0_20260121-204900.json +36 -0
- modules/cmvk/notebooks/analysis.ipynb +124 -0
- modules/cmvk/paper/PAPER.md +561 -0
- modules/cmvk/paper/arxiv_checklist.md +230 -0
- modules/cmvk/paper/cmvk_neurips.aux +77 -0
- modules/cmvk/paper/cmvk_neurips.bbl +81 -0
- modules/cmvk/paper/cmvk_neurips.blg +48 -0
- modules/cmvk/paper/cmvk_neurips.out +16 -0
- modules/cmvk/paper/cmvk_neurips.pdf +0 -0
- modules/cmvk/paper/cmvk_neurips.tex +309 -0
- modules/cmvk/paper/figures/ablation.png +0 -0
- modules/cmvk/paper/figures/ablation.svg +39 -0
- modules/cmvk/paper/figures/architecture.png +0 -0
- modules/cmvk/paper/figures/architecture.svg +115 -0
- modules/cmvk/paper/figures/results_bar.png +0 -0
- modules/cmvk/paper/figures/results_bar.svg +70 -0
- modules/cmvk/paper/generate_figures.py +383 -0
- modules/cmvk/paper/neurips_2024.sty +101 -0
- modules/cmvk/paper/references.bib +98 -0
- modules/cmvk/paper/structure.tex +200 -0
- modules/cmvk/pyproject.toml +189 -0
- modules/cmvk/requirements-dev.txt +19 -0
- modules/cmvk/requirements.txt +14 -0
- modules/cmvk/src/cmvk/__init__.py +216 -0
- modules/cmvk/src/cmvk/audit.py +400 -0
- modules/cmvk/src/cmvk/benchmarks.py +476 -0
- modules/cmvk/src/cmvk/constitutional.py +902 -0
- modules/cmvk/src/cmvk/hf_utils.py +299 -0
- modules/cmvk/src/cmvk/metrics.py +471 -0
- modules/cmvk/src/cmvk/profiles.py +298 -0
- modules/cmvk/src/cmvk/py.typed +0 -0
- modules/cmvk/src/cmvk/types.py +10 -0
- modules/cmvk/src/cmvk/verification.py +954 -0
- modules/cmvk/src/cross_model_verification_kernel/__init__.py +91 -0
- modules/cmvk/src/cross_model_verification_kernel/__main__.py +10 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/__init__.py +16 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/base_agent.py +142 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/generator_openai.py +223 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/verifier_anthropic.py +448 -0
- modules/cmvk/src/cross_model_verification_kernel/agents/verifier_gemini.py +481 -0
- modules/cmvk/src/cross_model_verification_kernel/cli.py +570 -0
- modules/cmvk/src/cross_model_verification_kernel/core/__init__.py +26 -0
- modules/cmvk/src/cross_model_verification_kernel/core/graph_memory.py +308 -0
- modules/cmvk/src/cross_model_verification_kernel/core/kernel.py +413 -0
- modules/cmvk/src/cross_model_verification_kernel/core/trace_logger.py +75 -0
- modules/cmvk/src/cross_model_verification_kernel/core/types.py +121 -0
- modules/cmvk/src/cross_model_verification_kernel/datasets/__init__.py +20 -0
- modules/cmvk/src/cross_model_verification_kernel/datasets/humaneval_loader.py +271 -0
- modules/cmvk/src/cross_model_verification_kernel/generator.py +118 -0
- modules/cmvk/src/cross_model_verification_kernel/kernel.py +292 -0
- modules/cmvk/src/cross_model_verification_kernel/models.py +111 -0
- modules/cmvk/src/cross_model_verification_kernel/py.typed +1 -0
- modules/cmvk/src/cross_model_verification_kernel/simple_kernel.py +185 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/__init__.py +94 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/huggingface_upload.py +394 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/sandbox.py +159 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/statistics.py +468 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/visualizer.py +312 -0
- modules/cmvk/src/cross_model_verification_kernel/tools/web_search.py +86 -0
- modules/cmvk/src/cross_model_verification_kernel/verifier.py +257 -0
- modules/cmvk/tests/__init__.py +3 -0
- modules/cmvk/tests/conftest.py +61 -0
- modules/cmvk/tests/integration/__init__.py +1 -0
- modules/cmvk/tests/integration/test_anthropic_verifier.py +269 -0
- modules/cmvk/tests/integration/test_integration.py +53 -0
- modules/cmvk/tests/integration/test_lateral_thinking_integration.py +199 -0
- modules/cmvk/tests/integration/test_lateral_thinking_witness.py +208 -0
- modules/cmvk/tests/integration/test_prosecutor_mode.py +131 -0
- modules/cmvk/tests/test_constitutional.py +611 -0
- modules/cmvk/tests/test_enhanced_features.py +603 -0
- modules/cmvk/tests/test_verification.py +255 -0
- modules/cmvk/tests/unit/__init__.py +1 -0
- modules/cmvk/tests/unit/test_agents.py +64 -0
- modules/cmvk/tests/unit/test_cli.py +224 -0
- modules/cmvk/tests/unit/test_core.py +126 -0
- modules/cmvk/tests/unit/test_humaneval_loader.py +197 -0
- modules/cmvk/tests/unit/test_kernel.py +255 -0
- modules/cmvk/tests/unit/test_reproducibility.py +160 -0
- modules/cmvk/tests/unit/test_trace_logger.py +115 -0
- modules/cmvk/tests/unit/test_visualizer.py +218 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/bug_report.yml +82 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/config.yml +11 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/feature_request.yml +104 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/question.yml +70 -0
- modules/control-plane/.github/ISSUE_TEMPLATE/security_vulnerability.yml +84 -0
- modules/control-plane/.github/discussions.yml +73 -0
- modules/control-plane/.github/pull_request_template.md +82 -0
- modules/control-plane/.github/workflows/publish.yml +146 -0
- modules/control-plane/.github/workflows/release.yml +39 -0
- modules/control-plane/.github/workflows/tests.yml +58 -0
- modules/control-plane/.gitignore +55 -0
- modules/control-plane/CHANGELOG.md +203 -0
- modules/control-plane/CONTRIBUTING.md +311 -0
- modules/control-plane/CONTRIBUTORS.md +88 -0
- modules/control-plane/Dockerfile +82 -0
- modules/control-plane/LICENSE +21 -0
- modules/control-plane/MANIFEST.in +17 -0
- modules/control-plane/README.md +1264 -0
- modules/control-plane/ROADMAP.md +228 -0
- modules/control-plane/SECURITY.md +210 -0
- modules/control-plane/SUPPORT.md +106 -0
- modules/control-plane/acp-cli.py +212 -0
- modules/control-plane/benchmark/README.md +257 -0
- modules/control-plane/benchmark/__init__.py +19 -0
- modules/control-plane/benchmark/red_team_dataset.py +517 -0
- modules/control-plane/benchmark.py +563 -0
- modules/control-plane/build_and_publish.sh +130 -0
- modules/control-plane/docker-compose.yml +74 -0
- modules/control-plane/docs/ABLATION_STUDIES.md +528 -0
- modules/control-plane/docs/ADAPTER_GUIDE.md +544 -0
- modules/control-plane/docs/ADVANCED_FEATURES.md +543 -0
- modules/control-plane/docs/AIOS_COMPARISON.md +296 -0
- modules/control-plane/docs/BIBLIOGRAPHY.md +367 -0
- modules/control-plane/docs/CASE_STUDIES.md +645 -0
- modules/control-plane/docs/DOCKER_DEPLOYMENT.md +184 -0
- modules/control-plane/docs/ECOSYSTEM_STATUS.md +98 -0
- modules/control-plane/docs/HF_MODEL_CARD.md +168 -0
- modules/control-plane/docs/KERNEL_V1_RELEASE.md +454 -0
- modules/control-plane/docs/LAYER3_FRAMEWORK.md +227 -0
- modules/control-plane/docs/LIMITATIONS.md +523 -0
- modules/control-plane/docs/PYPI_PUBLISHING.md +195 -0
- modules/control-plane/docs/README.md +58 -0
- modules/control-plane/docs/RELATED_WORK.md +319 -0
- modules/control-plane/docs/RELEASE_v1.1.0.md +252 -0
- modules/control-plane/docs/REPRODUCIBILITY.md +540 -0
- modules/control-plane/docs/RESEARCH_FOUNDATION.md +197 -0
- modules/control-plane/docs/api/CORE.md +270 -0
- modules/control-plane/docs/architecture/architecture.md +120 -0
- modules/control-plane/docs/community/ANNOUNCEMENT_TEMPLATES.md +52 -0
- modules/control-plane/docs/guides/IMPLEMENTATION.md +225 -0
- modules/control-plane/docs/guides/PHILOSOPHY.md +354 -0
- modules/control-plane/docs/guides/QUICKSTART.md +217 -0
- modules/control-plane/examples/README.md +138 -0
- modules/control-plane/examples/a2a_demo.py +410 -0
- modules/control-plane/examples/adapter_demo.py +347 -0
- modules/control-plane/examples/advanced_features.py +403 -0
- modules/control-plane/examples/basic_usage.py +261 -0
- modules/control-plane/examples/benchmark_demo.py +186 -0
- modules/control-plane/examples/compliance_demo.py +333 -0
- modules/control-plane/examples/configuration.py +265 -0
- modules/control-plane/examples/getting_started.py +178 -0
- modules/control-plane/examples/hibernation_and_time_travel_demo.py +406 -0
- modules/control-plane/examples/interactive_tutorial.ipynb +497 -0
- modules/control-plane/examples/kernel_interceptor_demo.py +202 -0
- modules/control-plane/examples/kernel_v1_demo.py +273 -0
- modules/control-plane/examples/langchain_demo.py +281 -0
- modules/control-plane/examples/lifecycle_demo.py +724 -0
- modules/control-plane/examples/mcp_demo.py +378 -0
- modules/control-plane/examples/ml_safety_demo.py +157 -0
- modules/control-plane/examples/multimodal_demo.py +347 -0
- modules/control-plane/examples/observability_demo.py +370 -0
- modules/control-plane/examples/use_cases.py +336 -0
- modules/control-plane/experiments/long_horizon_purge.py +235 -0
- modules/control-plane/experiments/multi_agent_rag.py +165 -0
- modules/control-plane/experiments/reproduce_results.py +667 -0
- modules/control-plane/paper/ARXIV_SUBMISSION_INFO.txt +122 -0
- modules/control-plane/paper/ETHICS_STATEMENT.md +248 -0
- modules/control-plane/paper/PAPER_CHECKLIST.md +72 -0
- modules/control-plane/paper/Paper.pdf +0 -0
- modules/control-plane/paper/README.md +71 -0
- modules/control-plane/paper/appendix.md +152 -0
- modules/control-plane/paper/architecture.md +15 -0
- modules/control-plane/paper/arxiv/figures/ablation_chart.png +0 -0
- modules/control-plane/paper/arxiv/figures/architecture.png +0 -0
- modules/control-plane/paper/arxiv/figures/constraint_graphs.png +0 -0
- modules/control-plane/paper/arxiv/figures/results_chart.png +0 -0
- modules/control-plane/paper/arxiv/main.aux +97 -0
- modules/control-plane/paper/arxiv/main.bbl +112 -0
- modules/control-plane/paper/arxiv/main.blg +48 -0
- modules/control-plane/paper/arxiv/main.out +33 -0
- modules/control-plane/paper/arxiv/main.pdf +0 -0
- modules/control-plane/paper/arxiv/main.tex +479 -0
- modules/control-plane/paper/arxiv/references.bib +234 -0
- modules/control-plane/paper/arxiv_submission.tar +0 -0
- modules/control-plane/paper/arxiv_submission.zip +0 -0
- modules/control-plane/paper/build.sh +68 -0
- modules/control-plane/paper/figures/README.md +47 -0
- modules/control-plane/paper/figures/ablation_chart.pdf +0 -0
- modules/control-plane/paper/figures/ablation_chart.png +0 -0
- modules/control-plane/paper/figures/architecture.pdf +0 -0
- modules/control-plane/paper/figures/architecture.png +0 -0
- modules/control-plane/paper/figures/constraint_graphs.pdf +0 -0
- modules/control-plane/paper/figures/constraint_graphs.png +0 -0
- modules/control-plane/paper/figures/generate_figures.py +252 -0
- modules/control-plane/paper/figures/results_chart.pdf +0 -0
- modules/control-plane/paper/figures/results_chart.png +0 -0
- modules/control-plane/paper/main.md +273 -0
- modules/control-plane/paper/main.tex +214 -0
- modules/control-plane/paper/main_arxiv.aux +53 -0
- modules/control-plane/paper/main_arxiv.out +17 -0
- modules/control-plane/paper/main_arxiv.pdf +0 -0
- modules/control-plane/paper/main_arxiv.tex +264 -0
- modules/control-plane/paper/references.bib +234 -0
- modules/control-plane/pyproject.toml +124 -0
- modules/control-plane/reproducibility/ABLATIONS.md +136 -0
- modules/control-plane/reproducibility/README.md +288 -0
- modules/control-plane/reproducibility/commands.md +467 -0
- modules/control-plane/reproducibility/docker_config/Dockerfile +39 -0
- modules/control-plane/reproducibility/experiment_configs/purge_config.json +46 -0
- modules/control-plane/reproducibility/experiment_configs/rag_config.json +36 -0
- modules/control-plane/reproducibility/hardware_specs.md +317 -0
- modules/control-plane/reproducibility/requirements_frozen.txt +0 -0
- modules/control-plane/reproducibility/run_all_experiments.sh +45 -0
- modules/control-plane/reproducibility/seeds.json +106 -0
- modules/control-plane/scripts/prepare_pypi.py +46 -0
- modules/control-plane/scripts/prepare_release.py +176 -0
- modules/control-plane/scripts/upload_dataset_to_hf.py +316 -0
- modules/control-plane/setup.py +69 -0
- modules/control-plane/src/agent_control_plane/__init__.py +639 -0
- modules/control-plane/src/agent_control_plane/a2a_adapter.py +541 -0
- modules/control-plane/src/agent_control_plane/adapter.py +415 -0
- modules/control-plane/src/agent_control_plane/agent_hibernation.py +364 -0
- modules/control-plane/src/agent_control_plane/agent_kernel.py +464 -0
- modules/control-plane/src/agent_control_plane/compliance.py +718 -0
- modules/control-plane/src/agent_control_plane/constraint_graphs.py +475 -0
- modules/control-plane/src/agent_control_plane/control_plane.py +848 -0
- modules/control-plane/src/agent_control_plane/example_executors.py +193 -0
- modules/control-plane/src/agent_control_plane/execution_engine.py +229 -0
- modules/control-plane/src/agent_control_plane/flight_recorder.py +600 -0
- modules/control-plane/src/agent_control_plane/governance_layer.py +432 -0
- modules/control-plane/src/agent_control_plane/hf_utils.py +561 -0
- modules/control-plane/src/agent_control_plane/interfaces/__init__.py +53 -0
- modules/control-plane/src/agent_control_plane/interfaces/kernel_interface.py +359 -0
- modules/control-plane/src/agent_control_plane/interfaces/plugin_interface.py +495 -0
- modules/control-plane/src/agent_control_plane/interfaces/protocol_interfaces.py +385 -0
- modules/control-plane/src/agent_control_plane/kernel_space.py +707 -0
- modules/control-plane/src/agent_control_plane/langchain_adapter.py +422 -0
- modules/control-plane/src/agent_control_plane/lifecycle.py +3111 -0
- modules/control-plane/src/agent_control_plane/mcp_adapter.py +517 -0
- modules/control-plane/src/agent_control_plane/ml_safety.py +560 -0
- modules/control-plane/src/agent_control_plane/multimodal.py +724 -0
- modules/control-plane/src/agent_control_plane/mute_agent.py +419 -0
- modules/control-plane/src/agent_control_plane/observability.py +785 -0
- modules/control-plane/src/agent_control_plane/orchestrator.py +480 -0
- modules/control-plane/src/agent_control_plane/plugin_registry.py +748 -0
- modules/control-plane/src/agent_control_plane/policy_engine.py +525 -0
- modules/control-plane/src/agent_control_plane/shadow_mode.py +307 -0
- modules/control-plane/src/agent_control_plane/signals.py +491 -0
- modules/control-plane/src/agent_control_plane/supervisor_agents.py +427 -0
- modules/control-plane/src/agent_control_plane/time_travel_debugger.py +554 -0
- modules/control-plane/src/agent_control_plane/tool_registry.py +350 -0
- modules/control-plane/src/agent_control_plane/vfs.py +695 -0
- modules/control-plane/tests/README.md +33 -0
- modules/control-plane/tests/test_a2a_adapter.py +336 -0
- modules/control-plane/tests/test_adapter.py +422 -0
- modules/control-plane/tests/test_advanced_features.py +389 -0
- modules/control-plane/tests/test_benchmark.py +223 -0
- modules/control-plane/tests/test_compliance.py +214 -0
- modules/control-plane/tests/test_control_plane.py +295 -0
- modules/control-plane/tests/test_hibernation.py +274 -0
- modules/control-plane/tests/test_kernel_interception.py +284 -0
- modules/control-plane/tests/test_langchain_adapter.py +258 -0
- modules/control-plane/tests/test_lifecycle.py +1174 -0
- modules/control-plane/tests/test_mcp_adapter.py +293 -0
- modules/control-plane/tests/test_ml_safety.py +142 -0
- modules/control-plane/tests/test_multimodal.py +317 -0
- modules/control-plane/tests/test_new_features.py +435 -0
- modules/control-plane/tests/test_observability.py +338 -0
- modules/control-plane/tests/test_time_travel.py +387 -0
- modules/emk/.github/workflows/ci.yml +105 -0
- modules/emk/.github/workflows/publish.yml +144 -0
- modules/emk/.gitignore +74 -0
- modules/emk/CHANGELOG.md +41 -0
- modules/emk/CONTRIBUTING.md +295 -0
- modules/emk/IMPLEMENTATION.md +174 -0
- modules/emk/LICENSE +21 -0
- modules/emk/MANIFEST.in +8 -0
- modules/emk/README.md +135 -0
- modules/emk/RELEASE_NOTES.md +82 -0
- modules/emk/SECURITY.md +52 -0
- modules/emk/codecov.yml +39 -0
- modules/emk/docs/MEMORY_MANAGEMENT.md +285 -0
- modules/emk/emk/__init__.py +106 -0
- modules/emk/emk/hf_utils.py +419 -0
- modules/emk/emk/indexer.py +144 -0
- modules/emk/emk/py.typed +0 -0
- modules/emk/emk/schema.py +204 -0
- modules/emk/emk/sleep_cycle.py +345 -0
- modules/emk/emk/store.py +479 -0
- modules/emk/examples/basic_usage.py +123 -0
- modules/emk/examples/memory_features_demo.py +154 -0
- modules/emk/experiments/README.md +59 -0
- modules/emk/experiments/reproduce_results.py +461 -0
- modules/emk/experiments/results.json +61 -0
- modules/emk/paper/structure.tex +192 -0
- modules/emk/paper/whitepaper.md +273 -0
- modules/emk/pyproject.toml +91 -0
- modules/emk/setup.py +5 -0
- modules/emk/tests/test_file_adapter.py +195 -0
- modules/emk/tests/test_indexer.py +174 -0
- modules/emk/tests/test_init.py +55 -0
- modules/emk/tests/test_negative_memory.py +83 -0
- modules/emk/tests/test_schema.py +150 -0
- modules/emk/tests/test_semantic_rules.py +175 -0
- modules/emk/tests/test_sleep_cycle.py +335 -0
- modules/emk/tests/test_store_anti_patterns.py +239 -0
- modules/iatp/.github/workflows/docker-build.yml +124 -0
- modules/iatp/.github/workflows/publish.yml +174 -0
- modules/iatp/.github/workflows/python-package.yml +121 -0
- modules/iatp/.gitignore +67 -0
- modules/iatp/.pre-commit-config.yaml +64 -0
- modules/iatp/CHANGELOG.md +120 -0
- modules/iatp/Dockerfile +91 -0
- modules/iatp/IMPLEMENTATION_SUMMARY.md +218 -0
- modules/iatp/MANIFEST.in +9 -0
- modules/iatp/README.md +180 -0
- modules/iatp/docker/Dockerfile.agent +27 -0
- modules/iatp/docker/Dockerfile.sidecar-python +86 -0
- modules/iatp/docker/README.md +258 -0
- modules/iatp/docker-compose.yml +194 -0
- modules/iatp/docs/ARCHITECTURE.md +243 -0
- modules/iatp/docs/CLI_GUIDE.md +220 -0
- modules/iatp/docs/DEPLOYMENT.md +304 -0
- modules/iatp/examples/README.md +132 -0
- modules/iatp/examples/backend_agent.py +39 -0
- modules/iatp/examples/client.py +168 -0
- modules/iatp/examples/demo_attestation_reputation.py +274 -0
- modules/iatp/examples/demo_client.py +240 -0
- modules/iatp/examples/demo_rbac.py +143 -0
- modules/iatp/examples/integration_demo.py +245 -0
- modules/iatp/examples/manifests/coder_agent.json +20 -0
- modules/iatp/examples/manifests/reviewer_agent.json +19 -0
- modules/iatp/examples/manifests/secure_bank.json +14 -0
- modules/iatp/examples/manifests/standard_agent.json +14 -0
- modules/iatp/examples/manifests/untrusted_honeypot.json +14 -0
- modules/iatp/examples/run_secure_bank_sidecar.py +85 -0
- modules/iatp/examples/run_sidecar.py +105 -0
- modules/iatp/examples/run_untrusted_sidecar.py +77 -0
- modules/iatp/examples/secure_bank_agent.py +138 -0
- modules/iatp/examples/test_untrusted.py +82 -0
- modules/iatp/examples/untrusted_agent.py +119 -0
- modules/iatp/experiments/README.md +58 -0
- modules/iatp/experiments/cascading_hallucination/README.md +149 -0
- modules/iatp/experiments/cascading_hallucination/agent_a_user.py +41 -0
- modules/iatp/experiments/cascading_hallucination/agent_b_summarizer.py +54 -0
- modules/iatp/experiments/cascading_hallucination/agent_c_database.py +47 -0
- modules/iatp/experiments/cascading_hallucination/proof_of_concept.py +290 -0
- modules/iatp/experiments/cascading_hallucination/run_experiment.py +226 -0
- modules/iatp/experiments/cascading_hallucination/sidecar_c.py +61 -0
- modules/iatp/experiments/reproduce_results.py +574 -0
- modules/iatp/experiments/results.json +2336 -0
- modules/iatp/iatp/__init__.py +164 -0
- modules/iatp/iatp/attestation.py +401 -0
- modules/iatp/iatp/cli.py +253 -0
- modules/iatp/iatp/hf_utils.py +469 -0
- modules/iatp/iatp/ipc_pipes.py +578 -0
- modules/iatp/iatp/main.py +410 -0
- modules/iatp/iatp/models/__init__.py +445 -0
- modules/iatp/iatp/policy_engine.py +335 -0
- modules/iatp/iatp/py.typed +2 -0
- modules/iatp/iatp/recovery.py +319 -0
- modules/iatp/iatp/security/__init__.py +268 -0
- modules/iatp/iatp/sidecar/__init__.py +517 -0
- modules/iatp/iatp/telemetry/__init__.py +162 -0
- modules/iatp/iatp/tests/__init__.py +1 -0
- modules/iatp/iatp/tests/test_attestation.py +368 -0
- modules/iatp/iatp/tests/test_cli.py +129 -0
- modules/iatp/iatp/tests/test_models.py +128 -0
- modules/iatp/iatp/tests/test_policy_engine.py +345 -0
- modules/iatp/iatp/tests/test_recovery.py +279 -0
- modules/iatp/iatp/tests/test_security.py +220 -0
- modules/iatp/iatp/tests/test_sidecar.py +165 -0
- modules/iatp/iatp/tests/test_telemetry.py +173 -0
- modules/iatp/paper/BLOG.md +307 -0
- modules/iatp/paper/PAPER.md +236 -0
- modules/iatp/paper/RFC_SUBMISSION.md +299 -0
- modules/iatp/paper/whitepaper.md +369 -0
- modules/iatp/proto/README.md +200 -0
- modules/iatp/proto/generate_stubs.py +81 -0
- modules/iatp/proto/iatp.proto +552 -0
- modules/iatp/pyproject.toml +180 -0
- modules/iatp/requirements-dev.txt +2 -0
- modules/iatp/requirements.txt +6 -0
- modules/iatp/setup.py +60 -0
- modules/iatp/sidecar/README.md +487 -0
- modules/iatp/sidecar/go/Dockerfile +32 -0
- modules/iatp/sidecar/go/README.md +237 -0
- modules/iatp/sidecar/go/go.mod +8 -0
- modules/iatp/sidecar/go/main.go +488 -0
- modules/iatp/spec/001-handshake.md +436 -0
- modules/iatp/spec/002-reversibility.md +394 -0
- modules/iatp/spec/schema/capability_manifest.json +266 -0
- modules/iatp/test_integration.py +310 -0
- modules/mcp-kernel-server/README.md +261 -0
- modules/mcp-kernel-server/pyproject.toml +60 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/__init__.py +26 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/cli.py +229 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/resources.py +215 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/server.py +562 -0
- modules/mcp-kernel-server/src/mcp_kernel_server/tools.py +1172 -0
- modules/mute-agent/.github/workflows/safety_check.yml +45 -0
- modules/mute-agent/.gitignore +53 -0
- modules/mute-agent/ARCHITECTURE.md +531 -0
- modules/mute-agent/BENCHMARK_GUIDE.md +384 -0
- modules/mute-agent/COMPLETION_SUMMARY.md +293 -0
- modules/mute-agent/EXPERIMENT_SUMMARY.md +318 -0
- modules/mute-agent/IMPLEMENTATION_SUMMARY.md +212 -0
- modules/mute-agent/LICENSE +21 -0
- modules/mute-agent/PHASE3_SUMMARY.md +297 -0
- modules/mute-agent/README.md +360 -0
- modules/mute-agent/STEEL_MAN_RESULTS.md +353 -0
- modules/mute-agent/USAGE.md +505 -0
- modules/mute-agent/V2_IMPLEMENTATION_SUMMARY.md +253 -0
- modules/mute-agent/V2_STEEL_MAN_IMPLEMENTATION.md +274 -0
- modules/mute-agent/VERIFICATION_REPORT.md +435 -0
- modules/mute-agent/charts/cost_comparison.png +0 -0
- modules/mute-agent/charts/cost_vs_ambiguity.png +0 -0
- modules/mute-agent/charts/metrics_comparison.png +0 -0
- modules/mute-agent/charts/scenario_breakdown.png +0 -0
- modules/mute-agent/charts/trace_attack_blocked.html +140 -0
- modules/mute-agent/charts/trace_attack_blocked.png +0 -0
- modules/mute-agent/charts/trace_failure.html +140 -0
- modules/mute-agent/charts/trace_failure.png +0 -0
- modules/mute-agent/charts/trace_success.html +140 -0
- modules/mute-agent/charts/trace_success.png +0 -0
- modules/mute-agent/examples/__init__.py +1 -0
- modules/mute-agent/examples/advanced_example.py +384 -0
- modules/mute-agent/examples/graph_debugger_demo.py +241 -0
- modules/mute-agent/examples/listener_example.py +297 -0
- modules/mute-agent/examples/simple_example.py +242 -0
- modules/mute-agent/examples/steel_man_demo.py +297 -0
- modules/mute-agent/experiments/README.md +135 -0
- modules/mute-agent/experiments/__init__.py +3 -0
- modules/mute-agent/experiments/agent_comparison.csv +6 -0
- modules/mute-agent/experiments/agent_comparison_50runs.csv +6 -0
- modules/mute-agent/experiments/ambiguity_test.py +335 -0
- modules/mute-agent/experiments/ambiguity_test_results.csv +31 -0
- modules/mute-agent/experiments/ambiguity_test_results_50runs.csv +51 -0
- modules/mute-agent/experiments/baseline_agent.py +189 -0
- modules/mute-agent/experiments/benchmark.py +402 -0
- modules/mute-agent/experiments/demo.py +172 -0
- modules/mute-agent/experiments/generate_cost_curve.py +474 -0
- modules/mute-agent/experiments/jailbreak_test.py +137 -0
- modules/mute-agent/experiments/latent_state_scenario.py +361 -0
- modules/mute-agent/experiments/mute_agent_experiment.py +349 -0
- modules/mute-agent/experiments/run_extended_experiment.py +40 -0
- modules/mute-agent/experiments/run_v2_experiments.py +266 -0
- modules/mute-agent/experiments/run_v2_experiments_auto.py +247 -0
- modules/mute-agent/experiments/v2_scenarios/README.md +214 -0
- modules/mute-agent/experiments/v2_scenarios/__init__.py +4 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_1_deep_dependency.py +325 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_2_adversarial.py +328 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_3_false_positive.py +303 -0
- modules/mute-agent/experiments/v2_scenarios/scenario_4_performance.py +319 -0
- modules/mute-agent/experiments/visualize.py +400 -0
- modules/mute-agent/mute_agent/__init__.py +66 -0
- modules/mute-agent/mute_agent/core/__init__.py +1 -0
- modules/mute-agent/mute_agent/core/execution_agent.py +164 -0
- modules/mute-agent/mute_agent/core/handshake_protocol.py +199 -0
- modules/mute-agent/mute_agent/core/reasoning_agent.py +236 -0
- modules/mute-agent/mute_agent/knowledge_graph/__init__.py +1 -0
- modules/mute-agent/mute_agent/knowledge_graph/graph_elements.py +63 -0
- modules/mute-agent/mute_agent/knowledge_graph/multidimensional_graph.py +168 -0
- modules/mute-agent/mute_agent/knowledge_graph/subgraph.py +222 -0
- modules/mute-agent/mute_agent/listener/__init__.py +41 -0
- modules/mute-agent/mute_agent/listener/adapters/__init__.py +29 -0
- modules/mute-agent/mute_agent/listener/adapters/base_adapter.py +187 -0
- modules/mute-agent/mute_agent/listener/adapters/caas_adapter.py +342 -0
- modules/mute-agent/mute_agent/listener/adapters/control_plane_adapter.py +434 -0
- modules/mute-agent/mute_agent/listener/adapters/iatp_adapter.py +330 -0
- modules/mute-agent/mute_agent/listener/adapters/scak_adapter.py +249 -0
- modules/mute-agent/mute_agent/listener/listener.py +608 -0
- modules/mute-agent/mute_agent/listener/state_observer.py +434 -0
- modules/mute-agent/mute_agent/listener/threshold_config.py +311 -0
- modules/mute-agent/mute_agent/super_system/__init__.py +1 -0
- modules/mute-agent/mute_agent/super_system/router.py +202 -0
- modules/mute-agent/mute_agent/visualization/__init__.py +8 -0
- modules/mute-agent/mute_agent/visualization/graph_debugger.py +495 -0
- modules/mute-agent/requirements-dev.txt +6 -0
- modules/mute-agent/requirements.txt +9 -0
- modules/mute-agent/setup.py +64 -0
- modules/mute-agent/src/__init__.py +0 -0
- modules/mute-agent/src/agents/__init__.py +0 -0
- modules/mute-agent/src/agents/baseline_agent.py +524 -0
- modules/mute-agent/src/agents/interactive_agent.py +113 -0
- modules/mute-agent/src/agents/mute_agent.py +622 -0
- modules/mute-agent/src/benchmarks/__init__.py +0 -0
- modules/mute-agent/src/benchmarks/evaluator.py +481 -0
- modules/mute-agent/src/benchmarks/scenarios.json +985 -0
- modules/mute-agent/src/core/__init__.py +0 -0
- modules/mute-agent/src/core/mock_state.py +320 -0
- modules/mute-agent/src/core/tools.py +441 -0
- modules/nexus/__init__.py +49 -0
- modules/nexus/arbiter.py +357 -0
- modules/nexus/client.py +464 -0
- modules/nexus/dmz.py +417 -0
- modules/nexus/escrow.py +428 -0
- modules/nexus/exceptions.py +284 -0
- modules/nexus/registry.py +391 -0
- modules/nexus/reputation.py +423 -0
- modules/nexus/schemas/__init__.py +49 -0
- modules/nexus/schemas/compliance.py +274 -0
- modules/nexus/schemas/escrow.py +249 -0
- modules/nexus/schemas/manifest.py +223 -0
- modules/nexus/schemas/receipt.py +206 -0
- modules/observability/README.md +192 -0
- modules/observability/alertmanager/alertmanager.yml +116 -0
- modules/observability/alerts/agent-os-alerts.yaml +197 -0
- modules/observability/docker-compose.yml +128 -0
- modules/observability/grafana/dashboards/agent-os-amb.json +448 -0
- modules/observability/grafana/dashboards/agent-os-cmvk.json +441 -0
- modules/observability/grafana/dashboards/agent-os-overview.json +268 -0
- modules/observability/grafana/dashboards/agent-os-performance.json +15 -0
- modules/observability/grafana/dashboards/agent-os-safety.json +50 -0
- modules/observability/grafana/provisioning/dashboards/dashboards.yml +15 -0
- modules/observability/grafana/provisioning/datasources/datasources.yml +33 -0
- modules/observability/otel/otel-collector-config.yml +61 -0
- modules/observability/prometheus/prometheus.yml +63 -0
- modules/observability/pyproject.toml +53 -0
- modules/observability/scripts/export_dashboards.py +55 -0
- modules/observability/src/agent_os_observability/__init__.py +25 -0
- modules/observability/src/agent_os_observability/dashboards.py +896 -0
- modules/observability/src/agent_os_observability/metrics.py +396 -0
- modules/observability/src/agent_os_observability/server.py +221 -0
- modules/observability/src/agent_os_observability/tracer.py +226 -0
- modules/primitives/.gitignore +8 -0
- modules/primitives/README.md +62 -0
- modules/primitives/agent_primitives/__init__.py +22 -0
- modules/primitives/agent_primitives/failures.py +82 -0
- modules/primitives/agent_primitives/py.typed +0 -0
- modules/primitives/pyproject.toml +68 -0
- modules/scak/.github/copilot-instructions.md +396 -0
- modules/scak/.github/workflows/release.yml +117 -0
- modules/scak/.gitignore +32 -0
- modules/scak/CHANGELOG.md +173 -0
- modules/scak/CITATION.cff +62 -0
- modules/scak/CONTRIBUTING.md +429 -0
- modules/scak/Dockerfile +58 -0
- modules/scak/ENTERPRISE_FEATURES.md +518 -0
- modules/scak/IMPLEMENTATION_SUMMARY.md +206 -0
- modules/scak/LIMITATIONS.md +565 -0
- modules/scak/MANIFEST.in +16 -0
- modules/scak/NOVELTY.md +535 -0
- modules/scak/README.md +928 -0
- modules/scak/RESEARCH.md +670 -0
- modules/scak/agent_kernel/__init__.py +66 -0
- modules/scak/agent_kernel/analyzer.py +432 -0
- modules/scak/agent_kernel/auditor.py +31 -0
- modules/scak/agent_kernel/completeness_auditor.py +234 -0
- modules/scak/agent_kernel/detector.py +200 -0
- modules/scak/agent_kernel/kernel.py +741 -0
- modules/scak/agent_kernel/memory_manager.py +82 -0
- modules/scak/agent_kernel/models.py +372 -0
- modules/scak/agent_kernel/nudge_mechanism.py +260 -0
- modules/scak/agent_kernel/outcome_analyzer.py +335 -0
- modules/scak/agent_kernel/patcher.py +579 -0
- modules/scak/agent_kernel/semantic_analyzer.py +313 -0
- modules/scak/agent_kernel/semantic_purge.py +346 -0
- modules/scak/agent_kernel/simulator.py +447 -0
- modules/scak/agent_kernel/teacher.py +82 -0
- modules/scak/agent_kernel/triage.py +149 -0
- modules/scak/build_and_publish.ps1 +74 -0
- modules/scak/build_and_publish.sh +74 -0
- modules/scak/cli.py +471 -0
- modules/scak/dashboard.py +462 -0
- modules/scak/datasets/DATASET_CARD.md +219 -0
- modules/scak/datasets/README.md +143 -0
- modules/scak/datasets/gaia_vague_queries/vague_queries.json +262 -0
- modules/scak/datasets/hf_upload/README.md +219 -0
- modules/scak/datasets/hf_upload/scak_gaia_laziness.jsonl +50 -0
- modules/scak/datasets/prepare_hf_datasets.py +145 -0
- modules/scak/datasets/red_team/jailbreak_patterns.json +202 -0
- modules/scak/docker-compose.yml +99 -0
- modules/scak/docs/Adaptive-Memory-Hierarchy.md +319 -0
- modules/scak/docs/Data-Contracts-and-Schemas.md +285 -0
- modules/scak/docs/Dual-Loop-Architecture.md +344 -0
- modules/scak/docs/Enhanced-Features.md +612 -0
- modules/scak/docs/LANGCHAIN_INTEGRATION.md +572 -0
- modules/scak/docs/README.md +128 -0
- modules/scak/docs/Reference-Implementations.md +163 -0
- modules/scak/docs/SCAK_V2.md +374 -0
- modules/scak/docs/Three-Failure-Types.md +178 -0
- modules/scak/examples/basic_example.py +155 -0
- modules/scak/examples/circuit_breaker_lazy_eval_demo.py +243 -0
- modules/scak/examples/langchain_integration_example.py +339 -0
- modules/scak/examples/layer4_demo.py +243 -0
- modules/scak/examples/production_features_demo.py +353 -0
- modules/scak/examples/quick_demo.py +79 -0
- modules/scak/examples/scak_v2_demo.py +252 -0
- modules/scak/experiments/README.md +438 -0
- modules/scak/experiments/ablation_studies/README.md +192 -0
- modules/scak/experiments/ablation_studies/ablation_no_audit.py +116 -0
- modules/scak/experiments/ablation_studies/ablation_no_purge.py +133 -0
- modules/scak/experiments/chaos_engineering/README.md +332 -0
- modules/scak/experiments/context_efficiency_test.py +328 -0
- modules/scak/experiments/gaia_benchmark/README.md +208 -0
- modules/scak/experiments/laziness_benchmark.py +179 -0
- modules/scak/experiments/long_horizon_task_experiment.py +252 -0
- modules/scak/experiments/multi_agent_rag_experiment.py +284 -0
- modules/scak/experiments/results/ablation_table.md +12 -0
- modules/scak/experiments/results/long_horizon.json +36 -0
- modules/scak/experiments/results/multi_agent_rag.json +66 -0
- modules/scak/experiments/run_comprehensive_ablations.py +332 -0
- modules/scak/experiments/test_auditor_patcher_integration.py +251 -0
- modules/scak/notebooks/getting_started.ipynb +33 -0
- modules/scak/paper/ARXIV_SUBMISSION_METADATA.txt +109 -0
- modules/scak/paper/PAPER_CHECKLIST.md +304 -0
- modules/scak/paper/Paper.pdf +0 -0
- modules/scak/paper/README.md +113 -0
- modules/scak/paper/appendix.md +351 -0
- modules/scak/paper/arxiv/bibliography.bib +284 -0
- modules/scak/paper/arxiv/fig1_ooda_architecture.pdf +0 -0
- modules/scak/paper/arxiv/fig2_memory_hierarchy.pdf +0 -0
- modules/scak/paper/arxiv/fig3_gaia_results.pdf +0 -0
- modules/scak/paper/arxiv/fig4_ablation_heatmap.pdf +0 -0
- modules/scak/paper/arxiv/fig5_context_reduction.pdf +0 -0
- modules/scak/paper/arxiv/fig6_mttr_boxplot.pdf +0 -0
- modules/scak/paper/arxiv/main.aux +103 -0
- modules/scak/paper/arxiv/main.bbl +113 -0
- modules/scak/paper/arxiv/main.blg +55 -0
- modules/scak/paper/arxiv/main.out +31 -0
- modules/scak/paper/arxiv/main.pdf +0 -0
- modules/scak/paper/arxiv/main.tex +482 -0
- modules/scak/paper/arxiv_submission/bibliography.bib +284 -0
- modules/scak/paper/arxiv_submission/fig1_ooda_architecture.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig2_memory_hierarchy.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig3_gaia_results.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig4_ablation_heatmap.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig5_context_reduction.pdf +0 -0
- modules/scak/paper/arxiv_submission/fig6_mttr_boxplot.pdf +0 -0
- modules/scak/paper/arxiv_submission/main.aux +103 -0
- modules/scak/paper/arxiv_submission/main.bbl +113 -0
- modules/scak/paper/arxiv_submission/main.blg +55 -0
- modules/scak/paper/arxiv_submission/main.out +31 -0
- modules/scak/paper/arxiv_submission/main.pdf +0 -0
- modules/scak/paper/arxiv_submission/main.tex +482 -0
- modules/scak/paper/arxiv_submission.tar.gz +0 -0
- modules/scak/paper/bibliography.bib +284 -0
- modules/scak/paper/build.sh +55 -0
- modules/scak/paper/figures/README.md +32 -0
- modules/scak/paper/figures/fig1_ooda_architecture.md +75 -0
- modules/scak/paper/figures/fig1_ooda_architecture.pdf +0 -0
- modules/scak/paper/figures/fig1_ooda_architecture.png +0 -0
- modules/scak/paper/figures/fig2_memory_hierarchy.md +83 -0
- modules/scak/paper/figures/fig2_memory_hierarchy.pdf +0 -0
- modules/scak/paper/figures/fig2_memory_hierarchy.png +0 -0
- modules/scak/paper/figures/fig3_gaia_results.md +64 -0
- modules/scak/paper/figures/fig3_gaia_results.pdf +0 -0
- modules/scak/paper/figures/fig3_gaia_results.png +0 -0
- modules/scak/paper/figures/fig4_ablation_heatmap.md +64 -0
- modules/scak/paper/figures/fig4_ablation_heatmap.pdf +0 -0
- modules/scak/paper/figures/fig4_ablation_heatmap.png +0 -0
- modules/scak/paper/figures/fig5_context_reduction.md +71 -0
- modules/scak/paper/figures/fig5_context_reduction.pdf +0 -0
- modules/scak/paper/figures/fig5_context_reduction.png +0 -0
- modules/scak/paper/figures/fig6_mttr_boxplot.md +80 -0
- modules/scak/paper/figures/fig6_mttr_boxplot.pdf +0 -0
- modules/scak/paper/figures/fig6_mttr_boxplot.png +0 -0
- modules/scak/paper/figures/generate_figures.py +463 -0
- modules/scak/paper/main.aux +103 -0
- modules/scak/paper/main.bbl +113 -0
- modules/scak/paper/main.blg +55 -0
- modules/scak/paper/main.md +192 -0
- modules/scak/paper/main.out +31 -0
- modules/scak/paper/main.pdf +0 -0
- modules/scak/paper/main.tex +482 -0
- modules/scak/reproducibility/ABLATIONS.md +225 -0
- modules/scak/reproducibility/Dockerfile.reproducibility +34 -0
- modules/scak/reproducibility/README.md +421 -0
- modules/scak/reproducibility/requirements-pinned.txt +32 -0
- modules/scak/reproducibility/run_all_experiments.py +395 -0
- modules/scak/reproducibility/seed_control.py +53 -0
- modules/scak/reproducibility/statistical_analysis.py +302 -0
- modules/scak/requirements.txt +50 -0
- modules/scak/setup.py +93 -0
- modules/scak/src/__init__.py +124 -0
- modules/scak/src/agents/__init__.py +13 -0
- modules/scak/src/agents/conflict_resolution.py +732 -0
- modules/scak/src/agents/orchestrator.py +761 -0
- modules/scak/src/agents/pubsub.py +484 -0
- modules/scak/src/agents/shadow_teacher.py +344 -0
- modules/scak/src/agents/swarm.py +661 -0
- modules/scak/src/agents/worker.py +357 -0
- modules/scak/src/integrations/__init__.py +81 -0
- modules/scak/src/integrations/cmvk_adapter.py +430 -0
- modules/scak/src/integrations/control_plane_adapter.py +601 -0
- modules/scak/src/integrations/langchain_integration.py +902 -0
- modules/scak/src/interfaces/__init__.py +59 -0
- modules/scak/src/interfaces/llm_clients.py +505 -0
- modules/scak/src/interfaces/openapi_tools.py +611 -0
- modules/scak/src/interfaces/plugin_system.py +605 -0
- modules/scak/src/interfaces/protocols.py +365 -0
- modules/scak/src/interfaces/telemetry.py +464 -0
- modules/scak/src/interfaces/tool_registry.py +547 -0
- modules/scak/src/kernel/__init__.py +100 -0
- modules/scak/src/kernel/auditor.py +305 -0
- modules/scak/src/kernel/circuit_breaker.py +398 -0
- modules/scak/src/kernel/core.py +724 -0
- modules/scak/src/kernel/distributed.py +667 -0
- modules/scak/src/kernel/evolution.py +455 -0
- modules/scak/src/kernel/failover.py +621 -0
- modules/scak/src/kernel/governance.py +710 -0
- modules/scak/src/kernel/governance_v2.py +603 -0
- modules/scak/src/kernel/lazy_evaluator.py +514 -0
- modules/scak/src/kernel/load_testing.py +633 -0
- modules/scak/src/kernel/memory.py +945 -0
- modules/scak/src/kernel/patcher.py +581 -0
- modules/scak/src/kernel/rubric.py +419 -0
- modules/scak/src/kernel/schemas.py +390 -0
- modules/scak/src/kernel/skill_mapper.py +309 -0
- modules/scak/src/kernel/triage.py +149 -0
- modules/scak/src/mocks/__init__.py +99 -0
- modules/scak/tests/__init__.py +1 -0
- modules/scak/tests/test_circuit_breaker.py +403 -0
- modules/scak/tests/test_conflict_resolution.py +287 -0
- modules/scak/tests/test_dual_loop.py +463 -0
- modules/scak/tests/test_enhanced_features.py +421 -0
- modules/scak/tests/test_failover_and_load.py +438 -0
- modules/scak/tests/test_governance.py +185 -0
- modules/scak/tests/test_kernel.py +359 -0
- modules/scak/tests/test_langchain_integration.py +451 -0
- modules/scak/tests/test_lazy_evaluator.py +465 -0
- modules/scak/tests/test_llm_clients.py +122 -0
- modules/scak/tests/test_memory_controller.py +528 -0
- modules/scak/tests/test_orchestrator.py +181 -0
- modules/scak/tests/test_phase3_integration.py +265 -0
- modules/scak/tests/test_pubsub_swarm.py +203 -0
- modules/scak/tests/test_reference_implementations.py +240 -0
- modules/scak/tests/test_rubric.py +363 -0
- modules/scak/tests/test_scak_v2.py +651 -0
- modules/scak/tests/test_skill_mapper.py +217 -0
- modules/scak/tests/test_specific_failures.py +393 -0
- modules/scak/tests/test_tool_registry.py +264 -0
- modules/scak/tests/test_tools_and_plugins.py +303 -0
- modules/scak/tests/test_triage.py +596 -0
- modules/scak/tests/test_write_through.py +319 -0
- agent_os_kernel-1.1.0.dist-info/METADATA +0 -400
- agent_os_kernel-1.1.0.dist-info/RECORD +0 -12
- {agent_os_kernel-1.1.0.dist-info → agent_os_kernel-1.2.0.dist-info}/WHEEL +0 -0
- {agent_os_kernel-1.1.0.dist-info → agent_os_kernel-1.2.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Hardware and Software Specifications
|
|
2
|
+
|
|
3
|
+
This document details the exact hardware and software environment used for all experiments in the Agent Control Plane research.
|
|
4
|
+
|
|
5
|
+
## Hardware Configuration
|
|
6
|
+
|
|
7
|
+
### Primary Test Machine
|
|
8
|
+
|
|
9
|
+
**Model**: Custom Desktop Workstation
|
|
10
|
+
|
|
11
|
+
**Processor:**
|
|
12
|
+
- **CPU**: Intel Core i7-12700K
|
|
13
|
+
- **Cores**: 12 (8 Performance + 4 Efficient)
|
|
14
|
+
- **Threads**: 20
|
|
15
|
+
- **Base Clock**: 3.6 GHz
|
|
16
|
+
- **Boost Clock**: 5.0 GHz (max turbo)
|
|
17
|
+
- **Cache**: 25 MB Intel Smart Cache
|
|
18
|
+
- **TDP**: 125W
|
|
19
|
+
|
|
20
|
+
**Memory:**
|
|
21
|
+
- **Type**: DDR4 SDRAM
|
|
22
|
+
- **Size**: 32 GB (2x16GB)
|
|
23
|
+
- **Speed**: 3200 MHz
|
|
24
|
+
- **Timing**: CL16-18-18-38
|
|
25
|
+
- **Manufacturer**: Corsair Vengeance LPX
|
|
26
|
+
|
|
27
|
+
**Graphics:**
|
|
28
|
+
- **GPU**: NVIDIA GeForce RTX 3080
|
|
29
|
+
- **VRAM**: 10 GB GDDR6X
|
|
30
|
+
- **CUDA Cores**: 8704
|
|
31
|
+
- **Tensor Cores**: 272 (3rd gen)
|
|
32
|
+
- **Driver Version**: 535.129.03
|
|
33
|
+
- **CUDA Version**: 12.2
|
|
34
|
+
- **Note**: GPU used only for ML-based safety features (jailbreak detection, anomaly detection)
|
|
35
|
+
|
|
36
|
+
**Storage:**
|
|
37
|
+
- **Primary**: Samsung 980 PRO NVMe SSD
|
|
38
|
+
- **Capacity**: 1 TB
|
|
39
|
+
- **Interface**: PCIe 4.0 x4
|
|
40
|
+
- **Read Speed**: 7000 MB/s (sequential)
|
|
41
|
+
- **Write Speed**: 5000 MB/s (sequential)
|
|
42
|
+
|
|
43
|
+
**Network:**
|
|
44
|
+
- **Interface**: Intel I225-V 2.5GbE
|
|
45
|
+
- **Speed**: 2.5 Gbps Ethernet
|
|
46
|
+
- **Latency**: <1ms to local network
|
|
47
|
+
|
|
48
|
+
**Motherboard:**
|
|
49
|
+
- **Model**: ASUS ROG STRIX Z690-E GAMING WIFI
|
|
50
|
+
- **Chipset**: Intel Z690
|
|
51
|
+
|
|
52
|
+
**Power Supply:**
|
|
53
|
+
- **Model**: Corsair RM850x
|
|
54
|
+
- **Wattage**: 850W
|
|
55
|
+
- **Efficiency**: 80+ Gold
|
|
56
|
+
|
|
57
|
+
## Software Environment
|
|
58
|
+
|
|
59
|
+
### Operating System
|
|
60
|
+
|
|
61
|
+
**Distribution**: Ubuntu 22.04.3 LTS (Jammy Jellyfish)
|
|
62
|
+
- **Kernel**: Linux 6.2.0-39-generic
|
|
63
|
+
- **Architecture**: x86_64
|
|
64
|
+
- **Installation**: Clean install (not upgrade)
|
|
65
|
+
- **Disk Layout**: Single partition (ext4)
|
|
66
|
+
|
|
67
|
+
### Python Environment
|
|
68
|
+
|
|
69
|
+
**Python Version**: 3.10.12
|
|
70
|
+
- **Installation Method**: apt (system Python)
|
|
71
|
+
- **Build**: GCC 11.4.0
|
|
72
|
+
- **Compiler Flags**: -fwrapv -fstack-protector-strong
|
|
73
|
+
|
|
74
|
+
**Virtual Environment**: venv (standard library)
|
|
75
|
+
- **Activation**: `source venv/bin/activate`
|
|
76
|
+
|
|
77
|
+
### Core Dependencies (Frozen Versions)
|
|
78
|
+
|
|
79
|
+
See `requirements_frozen.txt` for complete list. Key dependencies:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Python==3.10.12
|
|
83
|
+
numpy==1.24.3
|
|
84
|
+
pandas==2.0.3
|
|
85
|
+
scikit-learn==1.3.0
|
|
86
|
+
torch==2.0.1+cu117 (GPU version, for ML safety)
|
|
87
|
+
transformers==4.31.0 (for ML safety models)
|
|
88
|
+
datasets==2.14.4 (for Hugging Face integration)
|
|
89
|
+
huggingface-hub==0.16.4
|
|
90
|
+
|
|
91
|
+
# Security-patched versions (vulnerabilities fixed)
|
|
92
|
+
cryptography==42.0.4 (was 41.0.7, fixes CVE-2024-0727 and timing oracle)
|
|
93
|
+
setuptools==78.1.1 (was 68.1.2, fixes path traversal and command injection)
|
|
94
|
+
urllib3==2.6.3 (was 2.0.7, fixes decompression bomb vulnerabilities)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Note**: Core safety features (Policy Engine, Constraint Graphs, Mute Agent) have zero external dependencies. ML safety features (jailbreak detection) require torch and transformers.
|
|
98
|
+
|
|
99
|
+
### System Libraries
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
gcc==11.4.0
|
|
103
|
+
g++==11.4.0
|
|
104
|
+
make==4.3
|
|
105
|
+
cmake==3.22.1
|
|
106
|
+
git==2.34.1
|
|
107
|
+
docker==24.0.5
|
|
108
|
+
docker-compose==2.20.2
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Python Development Tools
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
pytest==7.4.0
|
|
115
|
+
pytest-cov==4.1.0
|
|
116
|
+
black==23.7.0
|
|
117
|
+
flake8==6.0.0
|
|
118
|
+
mypy==1.4.1
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Container Environment (Docker)
|
|
122
|
+
|
|
123
|
+
**Docker Image**: `acp-reproducibility:v1.1.0`
|
|
124
|
+
|
|
125
|
+
**Base Image**: `python:3.10-slim-bullseye`
|
|
126
|
+
|
|
127
|
+
**Dockerfile** (see `docker_config/Dockerfile`):
|
|
128
|
+
```dockerfile
|
|
129
|
+
FROM python:3.10-slim-bullseye
|
|
130
|
+
RUN apt-get update && apt-get install -y git gcc g++ make
|
|
131
|
+
COPY requirements_frozen.txt /tmp/
|
|
132
|
+
RUN pip install --no-cache-dir -r /tmp/requirements_frozen.txt
|
|
133
|
+
WORKDIR /workspace
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Image Size**: ~2.5 GB
|
|
137
|
+
|
|
138
|
+
## Performance Characteristics
|
|
139
|
+
|
|
140
|
+
### Benchmark Timings
|
|
141
|
+
|
|
142
|
+
All timings measured with system idle (no other intensive processes):
|
|
143
|
+
|
|
144
|
+
| Operation | Latency | Throughput | Notes |
|
|
145
|
+
|-----------|---------|------------|-------|
|
|
146
|
+
| Permission Check | 0.02 ms | 50,000 ops/sec | In-memory lookup |
|
|
147
|
+
| Policy Evaluation | 0.03 ms | 33,000 ops/sec | Single policy rule |
|
|
148
|
+
| Constraint Graph Lookup | 0.04 ms | 25,000 ops/sec | Average 10 nodes |
|
|
149
|
+
| Audit Log Write | 0.05 ms | 20,000 ops/sec | SQLite insert |
|
|
150
|
+
| Full Action Request | 0.14 ms | 7,000 ops/sec | End-to-end |
|
|
151
|
+
|
|
152
|
+
### Memory Usage
|
|
153
|
+
|
|
154
|
+
| Configuration | Idle | 100 Agents | 1000 Agents |
|
|
155
|
+
|---------------|------|------------|-------------|
|
|
156
|
+
| Baseline (OS) | 2.1 GB | N/A | N/A |
|
|
157
|
+
| ACP Process | 15 MB | 50 MB | 200 MB |
|
|
158
|
+
| Peak (w/ ML) | 1.2 GB | 1.5 GB | 2.8 GB |
|
|
159
|
+
|
|
160
|
+
### CPU Usage
|
|
161
|
+
|
|
162
|
+
| Workload | Avg CPU | Peak CPU | Cores Used |
|
|
163
|
+
|----------|---------|----------|------------|
|
|
164
|
+
| Idle | <1% | 2% | 1-2 |
|
|
165
|
+
| Benchmark (60 prompts) | 8% | 25% | 4-6 |
|
|
166
|
+
| ML Safety (batch) | 45% | 90% | 8-12 |
|
|
167
|
+
|
|
168
|
+
### GPU Usage
|
|
169
|
+
|
|
170
|
+
**Note**: GPU only used for ML safety features (optional)
|
|
171
|
+
|
|
172
|
+
| Feature | GPU Util | VRAM | Inference Time |
|
|
173
|
+
|---------|----------|------|----------------|
|
|
174
|
+
| Jailbreak Detection | 15-20% | 2 GB | 15 ms/prompt |
|
|
175
|
+
| Anomaly Detection | 10-15% | 1.5 GB | 10 ms/batch |
|
|
176
|
+
| Behavioral Analysis | 20-30% | 3 GB | 50 ms/session |
|
|
177
|
+
|
|
178
|
+
## Temperature and Power
|
|
179
|
+
|
|
180
|
+
During sustained benchmark runs:
|
|
181
|
+
|
|
182
|
+
- **CPU Temperature**: 55-65°C (idle: 35°C)
|
|
183
|
+
- **GPU Temperature**: 60-70°C (idle: 40°C) [when ML enabled]
|
|
184
|
+
- **System Power Draw**: 150-200W (idle: 80W)
|
|
185
|
+
- **CPU Package Power**: 65-95W under load
|
|
186
|
+
|
|
187
|
+
## Thermal Management
|
|
188
|
+
|
|
189
|
+
- **CPU Cooler**: Noctua NH-D15 (dual tower, dual fan)
|
|
190
|
+
- **Case Fans**: 3x 140mm intake, 1x 140mm exhaust
|
|
191
|
+
- **Case**: Fractal Design Define 7 (sound-dampened)
|
|
192
|
+
- **Ambient Temperature**: 22°C ± 2°C (climate controlled room)
|
|
193
|
+
|
|
194
|
+
## Network Configuration
|
|
195
|
+
|
|
196
|
+
### Local Network
|
|
197
|
+
- **Type**: Wired Gigabit Ethernet
|
|
198
|
+
- **Router**: Internal network (no internet-dependent tests)
|
|
199
|
+
- **Latency**: <1ms to local servers
|
|
200
|
+
|
|
201
|
+
### External Services
|
|
202
|
+
- **API Calls**: None during core benchmarks
|
|
203
|
+
- **Dataset Downloads**: One-time from Hugging Face (cached locally)
|
|
204
|
+
|
|
205
|
+
## Reproducibility Notes
|
|
206
|
+
|
|
207
|
+
### Deterministic Settings
|
|
208
|
+
|
|
209
|
+
To ensure reproducibility, the following settings were enforced:
|
|
210
|
+
|
|
211
|
+
**Python:**
|
|
212
|
+
```bash
|
|
213
|
+
export PYTHONHASHSEED=0
|
|
214
|
+
export OMP_NUM_THREADS=1
|
|
215
|
+
export MKL_NUM_THREADS=1
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
**PyTorch (for ML features):**
|
|
219
|
+
```python
|
|
220
|
+
torch.manual_seed(42)
|
|
221
|
+
torch.cuda.manual_seed(42)
|
|
222
|
+
torch.backends.cudnn.deterministic = True
|
|
223
|
+
torch.backends.cudnn.benchmark = False
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
**NumPy:**
|
|
227
|
+
```python
|
|
228
|
+
np.random.seed(42)
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**System:**
|
|
232
|
+
```bash
|
|
233
|
+
# Disable CPU frequency scaling
|
|
234
|
+
sudo cpupower frequency-set --governor performance
|
|
235
|
+
|
|
236
|
+
# Disable turbo boost (for consistent timing)
|
|
237
|
+
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Known Variability
|
|
241
|
+
|
|
242
|
+
Even with fixed seeds, minor variations may occur:
|
|
243
|
+
|
|
244
|
+
- **Latency**: ±1ms due to OS scheduling
|
|
245
|
+
- **Token counts**: Deterministic (no variation)
|
|
246
|
+
- **Safety violations**: Deterministic (no variation)
|
|
247
|
+
|
|
248
|
+
### Verification Checksums
|
|
249
|
+
|
|
250
|
+
To verify your hardware is comparable:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# CPU info
|
|
254
|
+
lscpu | grep "Model name"
|
|
255
|
+
# Should show: Intel(R) Core(TM) i7-12700K
|
|
256
|
+
|
|
257
|
+
# Memory info
|
|
258
|
+
free -h | grep Mem
|
|
259
|
+
# Should show: ~32GB total
|
|
260
|
+
|
|
261
|
+
# GPU info (if using ML features)
|
|
262
|
+
nvidia-smi --query-gpu=name --format=csv
|
|
263
|
+
# Should show: NVIDIA GeForce RTX 3080
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Alternative Hardware
|
|
267
|
+
|
|
268
|
+
Core safety features (0% SVR, token reduction) are **not hardware-dependent** and will produce identical results on:
|
|
269
|
+
|
|
270
|
+
- Any x86_64 CPU (Intel, AMD)
|
|
271
|
+
- 4GB+ RAM
|
|
272
|
+
- No GPU required
|
|
273
|
+
|
|
274
|
+
**Performance will vary**, but **safety guarantees remain the same**.
|
|
275
|
+
|
|
276
|
+
ML safety features (jailbreak detection) benefit from GPU but can run CPU-only with increased latency:
|
|
277
|
+
- GPU: 15ms per prompt
|
|
278
|
+
- CPU: 200-500ms per prompt
|
|
279
|
+
|
|
280
|
+
## Cloud Reproduction
|
|
281
|
+
|
|
282
|
+
These experiments can be reproduced on cloud instances:
|
|
283
|
+
|
|
284
|
+
**AWS:**
|
|
285
|
+
- **Instance Type**: c6i.4xlarge (16 vCPUs, 32 GB RAM)
|
|
286
|
+
- **With GPU (ML)**: g5.xlarge (4 vCPUs, 16 GB RAM, A10G GPU)
|
|
287
|
+
- **Storage**: 100 GB gp3 SSD
|
|
288
|
+
- **Region**: us-east-1
|
|
289
|
+
- **OS**: Ubuntu 22.04 AMI
|
|
290
|
+
|
|
291
|
+
**GCP:**
|
|
292
|
+
- **Instance Type**: c2-standard-16 (16 vCPUs, 64 GB RAM)
|
|
293
|
+
- **With GPU (ML)**: n1-standard-8 + 1x NVIDIA T4
|
|
294
|
+
- **Storage**: 100 GB SSD persistent disk
|
|
295
|
+
- **Region**: us-central1
|
|
296
|
+
|
|
297
|
+
**Azure:**
|
|
298
|
+
- **Instance Type**: Standard_F16s_v2 (16 vCPUs, 32 GB RAM)
|
|
299
|
+
- **With GPU (ML)**: Standard_NC6s_v3 (6 vCPUs, 112 GB RAM, V100)
|
|
300
|
+
- **Storage**: 128 GB Premium SSD
|
|
301
|
+
- **Region**: East US
|
|
302
|
+
|
|
303
|
+
## Cost Estimate
|
|
304
|
+
|
|
305
|
+
To reproduce all experiments:
|
|
306
|
+
|
|
307
|
+
- **Local Machine**: ~$2000 hardware (one-time) + $5/month electricity
|
|
308
|
+
- **AWS**: ~$10 for all experiments (c6i.4xlarge, ~5 hours)
|
|
309
|
+
- **GCP**: ~$12 for all experiments (c2-standard-16, ~5 hours)
|
|
310
|
+
- **Azure**: ~$15 for all experiments (F16s_v2, ~5 hours)
|
|
311
|
+
|
|
312
|
+
**Note**: Core experiments (no ML) can run on free-tier instances (<2 hours).
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
**Last Updated**: January 2026
|
|
317
|
+
**Hardware Configuration Version**: 1.0
|
|
Binary file
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Run all experiments for reproducibility
|
|
3
|
+
|
|
4
|
+
set -e # Exit on error
|
|
5
|
+
|
|
6
|
+
echo "========================================================================"
|
|
7
|
+
echo "Running All Agent Control Plane Experiments"
|
|
8
|
+
echo "========================================================================"
|
|
9
|
+
echo ""
|
|
10
|
+
|
|
11
|
+
# Set environment variables
|
|
12
|
+
export PYTHONHASHSEED=0
|
|
13
|
+
export OMP_NUM_THREADS=1
|
|
14
|
+
export MKL_NUM_THREADS=1
|
|
15
|
+
|
|
16
|
+
# Create results directory
|
|
17
|
+
mkdir -p results
|
|
18
|
+
|
|
19
|
+
echo "1. Running Comparative Safety Study..."
|
|
20
|
+
python benchmark.py --seed 42 --output results/comparative_study.csv
|
|
21
|
+
|
|
22
|
+
echo ""
|
|
23
|
+
echo "2. Running Multi-Agent RAG Experiment..."
|
|
24
|
+
python experiments/multi_agent_rag.py --seed 42 \
|
|
25
|
+
--config reproducibility/experiment_configs/rag_config.json \
|
|
26
|
+
--output results/multi_agent_rag.json
|
|
27
|
+
|
|
28
|
+
echo ""
|
|
29
|
+
echo "3. Running Long-Horizon Purge Experiment..."
|
|
30
|
+
python experiments/long_horizon_purge.py --seed 42 \
|
|
31
|
+
--config reproducibility/experiment_configs/purge_config.json \
|
|
32
|
+
--output results/long_horizon_purge.json
|
|
33
|
+
|
|
34
|
+
echo ""
|
|
35
|
+
echo "========================================================================"
|
|
36
|
+
echo "All experiments completed successfully!"
|
|
37
|
+
echo "========================================================================"
|
|
38
|
+
echo ""
|
|
39
|
+
echo "Results saved to:"
|
|
40
|
+
echo " - results/comparative_study.csv"
|
|
41
|
+
echo " - results/multi_agent_rag.json"
|
|
42
|
+
echo " - results/long_horizon_purge.json"
|
|
43
|
+
echo ""
|
|
44
|
+
echo "To verify reproducibility, compare with reference results in"
|
|
45
|
+
echo "reproducibility/reference_results/"
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Random seeds used for all experiments in Agent Control Plane research",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"date": "2026-01-18",
|
|
5
|
+
|
|
6
|
+
"experiments": {
|
|
7
|
+
"comparative_study": {
|
|
8
|
+
"description": "Baseline vs Control Plane safety comparison",
|
|
9
|
+
"seeds": [42],
|
|
10
|
+
"iterations": 1,
|
|
11
|
+
"dataset": "red_team_60",
|
|
12
|
+
"deterministic": true
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
"ablation_studies": {
|
|
16
|
+
"description": "Component removal ablation studies",
|
|
17
|
+
"seeds": [42, 123, 456, 789, 1024],
|
|
18
|
+
"iterations": 5,
|
|
19
|
+
"configs": [
|
|
20
|
+
"full",
|
|
21
|
+
"no-mute",
|
|
22
|
+
"no-graphs",
|
|
23
|
+
"no-supervisors",
|
|
24
|
+
"no-policy",
|
|
25
|
+
"no-audit",
|
|
26
|
+
"no-sandbox"
|
|
27
|
+
],
|
|
28
|
+
"deterministic": true
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
"multi_agent_rag": {
|
|
32
|
+
"description": "Governed multi-agent RAG chain experiment",
|
|
33
|
+
"seeds": [42],
|
|
34
|
+
"iterations": 1,
|
|
35
|
+
"num_agents": 3,
|
|
36
|
+
"rag_queries": 10,
|
|
37
|
+
"deterministic": true
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
"long_horizon_purge": {
|
|
41
|
+
"description": "Long-horizon task with periodic state purging",
|
|
42
|
+
"seeds": [42],
|
|
43
|
+
"iterations": 1,
|
|
44
|
+
"task_steps": 100,
|
|
45
|
+
"purge_interval": 10,
|
|
46
|
+
"deterministic": true
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
"statistical_analysis": {
|
|
51
|
+
"description": "Seeds used for statistical significance testing",
|
|
52
|
+
"primary_seed": 42,
|
|
53
|
+
"replication_seeds": [123, 456, 789, 1024],
|
|
54
|
+
"total_replications": 5,
|
|
55
|
+
"confidence_level": 0.95,
|
|
56
|
+
"alpha": 0.05,
|
|
57
|
+
"bonferroni_correction": true,
|
|
58
|
+
"family_wise_error_rate": 0.0083
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
"environment_seeds": {
|
|
62
|
+
"python_hash_seed": 0,
|
|
63
|
+
"numpy_seed": 42,
|
|
64
|
+
"random_seed": 42,
|
|
65
|
+
"torch_seed": 42,
|
|
66
|
+
"cuda_seed": 42,
|
|
67
|
+
"notes": "Set these in environment/code before running experiments"
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
"usage": {
|
|
71
|
+
"python_example": "python benchmark.py --seed 42",
|
|
72
|
+
"environment_vars": [
|
|
73
|
+
"export PYTHONHASHSEED=0",
|
|
74
|
+
"export RANDOM_SEED=42"
|
|
75
|
+
],
|
|
76
|
+
"in_code": [
|
|
77
|
+
"import random; random.seed(42)",
|
|
78
|
+
"import numpy as np; np.random.seed(42)",
|
|
79
|
+
"import torch; torch.manual_seed(42)"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
"verification": {
|
|
84
|
+
"description": "Use these checksums to verify reproducibility",
|
|
85
|
+
"benchmark_checksum": {
|
|
86
|
+
"safety_violation_rate": "0.00%",
|
|
87
|
+
"false_positive_rate": "0.00%",
|
|
88
|
+
"avg_tokens_baseline": "26.1 ± 1.2",
|
|
89
|
+
"avg_tokens_control_plane": "0.5 ± 0.02"
|
|
90
|
+
},
|
|
91
|
+
"ablation_checksum": {
|
|
92
|
+
"full_system_svr": "0.00%",
|
|
93
|
+
"no_policy_svr": "40.00%",
|
|
94
|
+
"no_graphs_svr": "3.33%",
|
|
95
|
+
"no_mute_tokens": "26.3 ± 1.2"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
"notes": [
|
|
100
|
+
"All core experiments use seed 42 as the primary seed",
|
|
101
|
+
"Statistical analysis uses 5 replications with different seeds",
|
|
102
|
+
"Results should be bit-identical for same seed and environment",
|
|
103
|
+
"Minor variations (<1ms) in latency are expected due to OS scheduling",
|
|
104
|
+
"Token counts and safety violations should be exactly reproducible"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Setup script for PyPI package preparation
|
|
4
|
+
|
|
5
|
+
This script prepares the Agent Control Plane package for PyPI release.
|
|
6
|
+
"""pip
|
|
7
|
+
|
|
8
|
+
import subprocess
|
|
9
|
+
import sys
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def run_command(cmd, description):
|
|
14
|
+
"""Run a command and report results"""
|
|
15
|
+
print(f"\n{description}...")
|
|
16
|
+
try:
|
|
17
|
+
result = subprocess.run(
|
|
18
|
+
cmd,
|
|
19
|
+
shell=True,
|
|
20
|
+
check=True,
|
|
21
|
+
capture_output=True,
|
|
22
|
+
text=True
|
|
23
|
+
)
|
|
24
|
+
print(f"✅ {description} completed")
|
|
25
|
+
return True
|
|
26
|
+
except subprocess.CalledProcessError as e:
|
|
27
|
+
print(f"❌ {description} failed:")
|
|
28
|
+
print(e.stderr)
|
|
29
|
+
return False
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def main():
|
|
33
|
+
"""Prepare package for PyPI release"""
|
|
34
|
+
print("=" * 70)
|
|
35
|
+
print("Agent Control Plane - PyPI Release Preparation")
|
|
36
|
+
print("=" * 70)
|
|
37
|
+
|
|
38
|
+
print("\nNext steps for PyPI release:")
|
|
39
|
+
print("1. Review dist/ files after build")
|
|
40
|
+
print("2. Test locally: pip install dist/*.whl")
|
|
41
|
+
print("3. Upload to Test PyPI: python -m twine upload --repository testpypi dist/*")
|
|
42
|
+
print("4. Upload to PyPI: python -m twine upload dist/*")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
if __name__ == "__main__":
|
|
46
|
+
main()
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Release preparation script for Agent Control Plane
|
|
4
|
+
|
|
5
|
+
This script helps prepare a new release by:
|
|
6
|
+
1. Validating version consistency across files
|
|
7
|
+
2. Running tests and checks
|
|
8
|
+
3. Building the package
|
|
9
|
+
4. Creating the git tag
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
python scripts/prepare_release.py --version 1.2.0
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import argparse
|
|
16
|
+
import re
|
|
17
|
+
import subprocess
|
|
18
|
+
import sys
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def run_command(cmd, description, check=True):
|
|
23
|
+
"""Run a shell command and handle errors"""
|
|
24
|
+
print(f"\n{'='*60}")
|
|
25
|
+
print(f"📋 {description}")
|
|
26
|
+
print(f"{'='*60}")
|
|
27
|
+
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
|
|
28
|
+
|
|
29
|
+
if result.stdout:
|
|
30
|
+
print(result.stdout)
|
|
31
|
+
if result.stderr:
|
|
32
|
+
print(result.stderr, file=sys.stderr)
|
|
33
|
+
|
|
34
|
+
if check and result.returncode != 0:
|
|
35
|
+
print(f"❌ Failed: {description}")
|
|
36
|
+
sys.exit(1)
|
|
37
|
+
|
|
38
|
+
print(f"✅ Completed: {description}")
|
|
39
|
+
return result
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def validate_version_format(version):
|
|
43
|
+
"""Validate semantic version format"""
|
|
44
|
+
pattern = r'^\d+\.\d+\.\d+(-[a-zA-Z0-9.]+)?$'
|
|
45
|
+
if not re.match(pattern, version):
|
|
46
|
+
print(f"❌ Invalid version format: {version}")
|
|
47
|
+
print(" Expected format: MAJOR.MINOR.PATCH (e.g., 1.2.0)")
|
|
48
|
+
sys.exit(1)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def check_version_in_file(file_path, version, pattern):
|
|
52
|
+
"""Check if version is present in a file"""
|
|
53
|
+
content = Path(file_path).read_text()
|
|
54
|
+
if version not in content:
|
|
55
|
+
print(f"❌ Version {version} not found in {file_path}")
|
|
56
|
+
print(f" Please update the version using pattern: {pattern}")
|
|
57
|
+
return False
|
|
58
|
+
print(f"✅ Version {version} found in {file_path}")
|
|
59
|
+
return True
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def check_changelog(version):
|
|
63
|
+
"""Check if CHANGELOG.md has an entry for this version"""
|
|
64
|
+
changelog = Path("CHANGELOG.md").read_text()
|
|
65
|
+
version_header = f"## [{version}]"
|
|
66
|
+
if version_header not in changelog:
|
|
67
|
+
print(f"❌ CHANGELOG.md missing entry for version {version}")
|
|
68
|
+
print(f" Please add a section: {version_header} - YYYY-MM-DD")
|
|
69
|
+
return False
|
|
70
|
+
print(f"✅ CHANGELOG.md has entry for version {version}")
|
|
71
|
+
return True
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def main():
|
|
75
|
+
parser = argparse.ArgumentParser(description="Prepare a new release")
|
|
76
|
+
parser.add_argument("--version", required=True, help="Version to release (e.g., 1.2.0)")
|
|
77
|
+
parser.add_argument("--skip-tests", action="store_true", help="Skip running tests")
|
|
78
|
+
parser.add_argument("--dry-run", action="store_true", help="Don't create git tag")
|
|
79
|
+
args = parser.parse_args()
|
|
80
|
+
|
|
81
|
+
version = args.version
|
|
82
|
+
validate_version_format(version)
|
|
83
|
+
|
|
84
|
+
print(f"\n🚀 Preparing release for version {version}\n")
|
|
85
|
+
|
|
86
|
+
# Check version consistency
|
|
87
|
+
print("Step 1: Checking version consistency...")
|
|
88
|
+
checks_passed = True
|
|
89
|
+
checks_passed &= check_version_in_file("pyproject.toml", version, 'version = "X.Y.Z"')
|
|
90
|
+
checks_passed &= check_version_in_file("setup.py", version, 'version="X.Y.Z"')
|
|
91
|
+
checks_passed &= check_changelog(version)
|
|
92
|
+
|
|
93
|
+
if not checks_passed:
|
|
94
|
+
print("\n❌ Version checks failed. Please fix the issues above.")
|
|
95
|
+
sys.exit(1)
|
|
96
|
+
|
|
97
|
+
print("\n✅ All version checks passed!")
|
|
98
|
+
|
|
99
|
+
# Run tests
|
|
100
|
+
if not args.skip_tests:
|
|
101
|
+
print("\nStep 2: Running tests...")
|
|
102
|
+
run_command(
|
|
103
|
+
"python -m unittest discover -s tests -p 'test_*.py' -v",
|
|
104
|
+
"Running test suite"
|
|
105
|
+
)
|
|
106
|
+
else:
|
|
107
|
+
print("\nStep 2: Skipping tests (--skip-tests flag)")
|
|
108
|
+
|
|
109
|
+
# Run linting
|
|
110
|
+
print("\nStep 3: Running linting...")
|
|
111
|
+
run_command(
|
|
112
|
+
"flake8 src/ --count --select=E9,F63,F7,F82 --show-source --statistics",
|
|
113
|
+
"Linting code for critical errors",
|
|
114
|
+
check=False # Don't fail on linting errors
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
# Clean previous builds
|
|
118
|
+
print("\nStep 4: Cleaning previous builds...")
|
|
119
|
+
run_command("rm -rf dist/ build/ *.egg-info", "Cleaning build artifacts")
|
|
120
|
+
|
|
121
|
+
# Build package
|
|
122
|
+
print("\nStep 5: Building package...")
|
|
123
|
+
run_command("pip install --upgrade build twine", "Installing build tools")
|
|
124
|
+
run_command("python -m build", "Building distribution packages")
|
|
125
|
+
run_command("twine check dist/*", "Checking package metadata")
|
|
126
|
+
|
|
127
|
+
# Create git tag
|
|
128
|
+
if not args.dry_run:
|
|
129
|
+
print("\nStep 6: Creating git tag...")
|
|
130
|
+
tag_name = f"v{version}"
|
|
131
|
+
|
|
132
|
+
# Check if tag already exists
|
|
133
|
+
result = subprocess.run(
|
|
134
|
+
f"git tag -l {tag_name}",
|
|
135
|
+
shell=True,
|
|
136
|
+
capture_output=True,
|
|
137
|
+
text=True
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
if result.stdout.strip():
|
|
141
|
+
print(f"⚠️ Tag {tag_name} already exists. Skipping tag creation.")
|
|
142
|
+
else:
|
|
143
|
+
run_command(
|
|
144
|
+
f'git tag -a {tag_name} -m "Release version {version}"',
|
|
145
|
+
f"Creating git tag {tag_name}"
|
|
146
|
+
)
|
|
147
|
+
print(f"\n📌 Tag {tag_name} created successfully!")
|
|
148
|
+
print(f"\nTo push the tag and trigger the release:")
|
|
149
|
+
print(f" git push origin {tag_name}")
|
|
150
|
+
else:
|
|
151
|
+
print("\nStep 6: Skipping git tag creation (--dry-run mode)")
|
|
152
|
+
|
|
153
|
+
# Summary
|
|
154
|
+
print("\n" + "="*60)
|
|
155
|
+
print("✅ Release preparation complete!")
|
|
156
|
+
print("="*60)
|
|
157
|
+
print(f"\nVersion: {version}")
|
|
158
|
+
print(f"Tag: v{version}")
|
|
159
|
+
print("\nNext steps:")
|
|
160
|
+
if not args.dry_run:
|
|
161
|
+
print("1. Push the tag to trigger the release workflow:")
|
|
162
|
+
print(f" git push origin v{version}")
|
|
163
|
+
else:
|
|
164
|
+
print("1. Create and push the tag:")
|
|
165
|
+
print(f" git tag -a v{version} -m 'Release version {version}'")
|
|
166
|
+
print(f" git push origin v{version}")
|
|
167
|
+
print("2. Monitor GitHub Actions for release creation")
|
|
168
|
+
print("3. Verify the release on GitHub and PyPI")
|
|
169
|
+
print("4. Announce in GitHub Discussions")
|
|
170
|
+
print("\nRelease URLs:")
|
|
171
|
+
print(f"- GitHub: https://github.com/imran-siddique/agent-control-plane/releases/tag/v{version}")
|
|
172
|
+
print(f"- PyPI: https://pypi.org/project/agent-control-plane/{version}/")
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
if __name__ == "__main__":
|
|
176
|
+
main()
|