agent-os-kernel 1.1.0__py3-none-any.whl ā 1.3.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.3.0.dist-info/METADATA +676 -0
- agent_os_kernel-1.3.0.dist-info/RECORD +1053 -0
- {agent_os_kernel-1.1.0.dist-info ā agent_os_kernel-1.3.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.3.0.dist-info}/WHEEL +0 -0
- {agent_os_kernel-1.1.0.dist-info ā agent_os_kernel-1.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Demo: Context Triad (Hot, Warm, Cold) - The Engineering Reality
|
|
3
|
+
|
|
4
|
+
This demo showcases the Context Triad system, which treats context like
|
|
5
|
+
a tiered storage system defined by intimacy, not just speed.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from caas.triad import ContextTriadManager
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def demo_context_triad():
|
|
12
|
+
"""Demonstrate the Context Triad system."""
|
|
13
|
+
|
|
14
|
+
print("=" * 70)
|
|
15
|
+
print("Context Triad Demo: Hot, Warm, Cold")
|
|
16
|
+
print("=" * 70)
|
|
17
|
+
|
|
18
|
+
manager = ContextTriadManager()
|
|
19
|
+
|
|
20
|
+
# ========================================
|
|
21
|
+
# Step 1: Add Hot Context (The Situation)
|
|
22
|
+
# ========================================
|
|
23
|
+
print("\nš Step 1: Adding Hot Context (The Situation)")
|
|
24
|
+
print("-" * 70)
|
|
25
|
+
print("Hot Context = What is happening RIGHT NOW?")
|
|
26
|
+
print("Policy: 'Attention Head' - Overrides everything\n")
|
|
27
|
+
|
|
28
|
+
manager.add_hot_context(
|
|
29
|
+
"User is debugging: NullPointerException in AuthenticationService.login() at line 145",
|
|
30
|
+
metadata={"source": "error_log", "severity": "error"},
|
|
31
|
+
priority=3.0
|
|
32
|
+
)
|
|
33
|
+
print("ā Added: Error log streaming in real-time")
|
|
34
|
+
|
|
35
|
+
manager.add_hot_context(
|
|
36
|
+
"Currently viewing: auth_service.py (lines 140-160)",
|
|
37
|
+
metadata={"source": "vscode", "file": "auth_service.py"},
|
|
38
|
+
priority=2.5
|
|
39
|
+
)
|
|
40
|
+
print("ā Added: Open VS Code tab")
|
|
41
|
+
|
|
42
|
+
manager.add_hot_context(
|
|
43
|
+
"Current conversation: 'How do I fix this authentication error?'",
|
|
44
|
+
metadata={"source": "chat", "user": "developer"},
|
|
45
|
+
priority=3.0
|
|
46
|
+
)
|
|
47
|
+
print("ā Added: Active conversation message")
|
|
48
|
+
|
|
49
|
+
# ========================================
|
|
50
|
+
# Step 2: Add Warm Context (The Persona)
|
|
51
|
+
# ========================================
|
|
52
|
+
print("\nš¤ Step 2: Adding Warm Context (The Persona)")
|
|
53
|
+
print("-" * 70)
|
|
54
|
+
print("Warm Context = Who am I?")
|
|
55
|
+
print("Policy: 'Always On Filter' - Colors how AI speaks to you\n")
|
|
56
|
+
|
|
57
|
+
manager.add_warm_context(
|
|
58
|
+
"Senior Backend Engineer specializing in Python and distributed systems",
|
|
59
|
+
metadata={"category": "Profile", "source": "linkedin"},
|
|
60
|
+
priority=2.0
|
|
61
|
+
)
|
|
62
|
+
print("ā Added: Professional profile")
|
|
63
|
+
|
|
64
|
+
manager.add_warm_context(
|
|
65
|
+
"Coding Style: Prefers type hints, comprehensive docstrings, and pytest for testing",
|
|
66
|
+
metadata={"category": "Preferences", "source": "settings"},
|
|
67
|
+
priority=2.5
|
|
68
|
+
)
|
|
69
|
+
print("ā Added: Coding style preferences")
|
|
70
|
+
|
|
71
|
+
manager.add_warm_context(
|
|
72
|
+
"Tech Stack: FastAPI, PostgreSQL, Redis, Docker, Kubernetes",
|
|
73
|
+
metadata={"category": "Tech Stack", "source": "resume"},
|
|
74
|
+
priority=1.8
|
|
75
|
+
)
|
|
76
|
+
print("ā Added: Technology preferences")
|
|
77
|
+
|
|
78
|
+
manager.add_warm_context(
|
|
79
|
+
"Communication: Prefers detailed technical explanations with code examples",
|
|
80
|
+
metadata={"category": "Communication", "source": "preferences"},
|
|
81
|
+
priority=2.0
|
|
82
|
+
)
|
|
83
|
+
print("ā Added: Communication style")
|
|
84
|
+
|
|
85
|
+
# ========================================
|
|
86
|
+
# Step 3: Add Cold Context (The Archive)
|
|
87
|
+
# ========================================
|
|
88
|
+
print("\nš¦ Step 3: Adding Cold Context (The Archive)")
|
|
89
|
+
print("-" * 70)
|
|
90
|
+
print("Cold Context = What happened last year?")
|
|
91
|
+
print("Policy: 'On Demand Only' - Never automatically included\n")
|
|
92
|
+
|
|
93
|
+
manager.add_cold_context(
|
|
94
|
+
"Ticket #1234 (2023-06-15): Fixed similar NullPointerException in UserService. "
|
|
95
|
+
"Solution: Added null check before calling user.getEmail()",
|
|
96
|
+
metadata={"date": "2023-06-15", "type": "ticket", "status": "closed"},
|
|
97
|
+
priority=1.2
|
|
98
|
+
)
|
|
99
|
+
print("ā Added: Old ticket from last year")
|
|
100
|
+
|
|
101
|
+
manager.add_cold_context(
|
|
102
|
+
"PR #567 (2023-08-20): Refactored authentication module to use dependency injection. "
|
|
103
|
+
"Improved testability and fixed several edge cases.",
|
|
104
|
+
metadata={"date": "2023-08-20", "type": "pr", "status": "merged"},
|
|
105
|
+
priority=1.5
|
|
106
|
+
)
|
|
107
|
+
print("ā Added: Closed PR from history")
|
|
108
|
+
|
|
109
|
+
manager.add_cold_context(
|
|
110
|
+
"Design Doc (2022-01-10): Legacy Authentication Flow. "
|
|
111
|
+
"Describes the old token-based auth system before JWT migration.",
|
|
112
|
+
metadata={"date": "2022-01-10", "type": "design_doc"},
|
|
113
|
+
priority=0.8
|
|
114
|
+
)
|
|
115
|
+
print("ā Added: Historical design document")
|
|
116
|
+
|
|
117
|
+
# ========================================
|
|
118
|
+
# Scenario 1: Default Behavior (Hot + Warm only)
|
|
119
|
+
# ========================================
|
|
120
|
+
print("\n\n" + "=" * 70)
|
|
121
|
+
print("š Scenario 1: Default Behavior (Hot + Warm)")
|
|
122
|
+
print("=" * 70)
|
|
123
|
+
print("The Naive Approach: 'Stuff everything into the Context Window'")
|
|
124
|
+
print("The Engineering Reality: Use intimacy-based tiers\n")
|
|
125
|
+
|
|
126
|
+
result = manager.get_full_context(
|
|
127
|
+
include_hot=True,
|
|
128
|
+
include_warm=True,
|
|
129
|
+
include_cold=False # Cold is OFF by default
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
print(f"Layers Included: {result['layers_included']}")
|
|
133
|
+
print(f"Total Tokens: ~{result['total_tokens']}")
|
|
134
|
+
print(f"\nMetadata: {result['metadata']}")
|
|
135
|
+
|
|
136
|
+
print("\n" + "-" * 70)
|
|
137
|
+
print("HOT CONTEXT (Current Situation):")
|
|
138
|
+
print("-" * 70)
|
|
139
|
+
print(result['hot_context'][:500] + "..." if len(result['hot_context']) > 500 else result['hot_context'])
|
|
140
|
+
|
|
141
|
+
print("\n" + "-" * 70)
|
|
142
|
+
print("WARM CONTEXT (User Persona):")
|
|
143
|
+
print("-" * 70)
|
|
144
|
+
print(result['warm_context'][:500] + "..." if len(result['warm_context']) > 500 else result['warm_context'])
|
|
145
|
+
|
|
146
|
+
print("\n" + "-" * 70)
|
|
147
|
+
print("COLD CONTEXT (Archive):")
|
|
148
|
+
print("-" * 70)
|
|
149
|
+
print("ā NOT INCLUDED (Policy: On Demand Only)")
|
|
150
|
+
|
|
151
|
+
# ========================================
|
|
152
|
+
# Scenario 2: With Cold Context (Explicit Query)
|
|
153
|
+
# ========================================
|
|
154
|
+
print("\n\n" + "=" * 70)
|
|
155
|
+
print("š Scenario 2: Explicit Historical Query (Hot + Warm + Cold)")
|
|
156
|
+
print("=" * 70)
|
|
157
|
+
print("User asks: 'Have we seen this error before?'")
|
|
158
|
+
print("Action: Fetch cold context with query='NullPointerException'\n")
|
|
159
|
+
|
|
160
|
+
result = manager.get_full_context(
|
|
161
|
+
include_hot=True,
|
|
162
|
+
include_warm=True,
|
|
163
|
+
include_cold=True,
|
|
164
|
+
cold_query="NullPointerException" # Explicit query for archive
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
print(f"Layers Included: {result['layers_included']}")
|
|
168
|
+
print(f"Total Tokens: ~{result['total_tokens']}")
|
|
169
|
+
|
|
170
|
+
print("\n" + "-" * 70)
|
|
171
|
+
print("COLD CONTEXT (Archive - Query: 'NullPointerException'):")
|
|
172
|
+
print("-" * 70)
|
|
173
|
+
print(result['cold_context'])
|
|
174
|
+
|
|
175
|
+
# ========================================
|
|
176
|
+
# Scenario 3: Only Warm Context (System Prompt)
|
|
177
|
+
# ========================================
|
|
178
|
+
print("\n\n" + "=" * 70)
|
|
179
|
+
print("š Scenario 3: System Prompt Setup (Warm Only)")
|
|
180
|
+
print("=" * 70)
|
|
181
|
+
print("Use Case: Initialize AI assistant with user persona")
|
|
182
|
+
print("Warm context should be 'Always On' in system prompt\n")
|
|
183
|
+
|
|
184
|
+
result = manager.get_full_context(
|
|
185
|
+
include_hot=False,
|
|
186
|
+
include_warm=True,
|
|
187
|
+
include_cold=False
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
print(f"Layers Included: {result['layers_included']}")
|
|
191
|
+
print("\n" + "-" * 70)
|
|
192
|
+
print("WARM CONTEXT for System Prompt:")
|
|
193
|
+
print("-" * 70)
|
|
194
|
+
print(result['warm_context'])
|
|
195
|
+
|
|
196
|
+
# ========================================
|
|
197
|
+
# Key Insights
|
|
198
|
+
# ========================================
|
|
199
|
+
print("\n\n" + "=" * 70)
|
|
200
|
+
print("šÆ Key Insights: The Context Triad")
|
|
201
|
+
print("=" * 70)
|
|
202
|
+
|
|
203
|
+
print("\n1. Hot Context (The Situation):")
|
|
204
|
+
print(" - What: Current conversation, open files, streaming errors")
|
|
205
|
+
print(" - Policy: 'Attention Head' - Overrides everything")
|
|
206
|
+
print(" - Priority: Highest (always included)")
|
|
207
|
+
|
|
208
|
+
print("\n2. Warm Context (The Persona):")
|
|
209
|
+
print(" - What: User profile, coding preferences, communication style")
|
|
210
|
+
print(" - Policy: 'Always On Filter' - Colors AI responses")
|
|
211
|
+
print(" - Priority: Medium (persistent, part of system prompt)")
|
|
212
|
+
|
|
213
|
+
print("\n3. Cold Context (The Archive):")
|
|
214
|
+
print(" - What: Old tickets, closed PRs, historical docs")
|
|
215
|
+
print(" - Policy: 'On Demand Only' - Requires explicit query")
|
|
216
|
+
print(" - Priority: Low (never pollutes hot window)")
|
|
217
|
+
|
|
218
|
+
print("\n" + "=" * 70)
|
|
219
|
+
print("ā
The Context Triad solves the 'Flat Context Fallacy'")
|
|
220
|
+
print(" by treating context as intimacy-based tiers, not just speed.")
|
|
221
|
+
print("=" * 70)
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
if __name__ == "__main__":
|
|
225
|
+
demo_context_triad()
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Demonstration of the Sliding Window (FIFO) Conversation Management.
|
|
3
|
+
|
|
4
|
+
The Brutal Squeeze Philosophy:
|
|
5
|
+
"Chopping > Summarizing"
|
|
6
|
+
|
|
7
|
+
This demo shows why FIFO sliding window is better than summarization
|
|
8
|
+
for managing conversation history in a frugal architecture.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from caas.conversation import ConversationManager
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def demo_basic_sliding_window():
|
|
15
|
+
"""Demonstrate basic sliding window functionality."""
|
|
16
|
+
print("\n" + "="*70)
|
|
17
|
+
print("DEMO 1: Basic Sliding Window (FIFO)")
|
|
18
|
+
print("="*70)
|
|
19
|
+
|
|
20
|
+
# Create manager with small window for demonstration
|
|
21
|
+
manager = ConversationManager(max_turns=5)
|
|
22
|
+
|
|
23
|
+
print(f"\nš Configuration: Keeping last {manager.state.max_turns} turns")
|
|
24
|
+
print(" Policy: FIFO (First In First Out)")
|
|
25
|
+
print(" Philosophy: Chopping > Summarizing\n")
|
|
26
|
+
|
|
27
|
+
# Simulate a conversation
|
|
28
|
+
conversations = [
|
|
29
|
+
("How do I install Python?", "You can download it from python.org"),
|
|
30
|
+
("What about pip?", "pip comes bundled with Python 3.4+"),
|
|
31
|
+
("How do I create a virtual environment?", "Use: python -m venv myenv"),
|
|
32
|
+
("How do I activate it?", "On Windows: myenv\\Scripts\\activate, On Unix: source myenv/bin/activate"),
|
|
33
|
+
("What is requirements.txt?", "A file listing all dependencies for your project"),
|
|
34
|
+
# These next turns will trigger FIFO deletions
|
|
35
|
+
("How do I install from requirements.txt?", "Use: pip install -r requirements.txt"),
|
|
36
|
+
("What about freezing dependencies?", "Use: pip freeze > requirements.txt"),
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
for i, (user_msg, ai_msg) in enumerate(conversations, 1):
|
|
40
|
+
print(f"\n--- Turn {i} ---")
|
|
41
|
+
print(f"User: {user_msg[:50]}...")
|
|
42
|
+
manager.add_turn(user_msg, ai_msg)
|
|
43
|
+
|
|
44
|
+
stats = manager.get_statistics()
|
|
45
|
+
print(f"š Current: {stats['current_turns']} turns | Total ever: {stats['total_turns_ever']} | Deleted: {stats['deleted_turns']}")
|
|
46
|
+
|
|
47
|
+
print("\n" + "-"*70)
|
|
48
|
+
print("FINAL STATE:")
|
|
49
|
+
print("-"*70)
|
|
50
|
+
|
|
51
|
+
history = manager.get_conversation_history(format_as_text=False)
|
|
52
|
+
print(f"\nā
Kept {len(history)} most recent turns:")
|
|
53
|
+
for i, turn in enumerate(history, 1):
|
|
54
|
+
print(f"\n Turn {i}:")
|
|
55
|
+
print(f" User: {turn.user_message[:60]}...")
|
|
56
|
+
print(f" AI: {turn.ai_response[:60]}...")
|
|
57
|
+
|
|
58
|
+
stats = manager.get_statistics()
|
|
59
|
+
print(f"\nšļø Deleted {stats['deleted_turns']} old turns")
|
|
60
|
+
print(f"š¾ Total turns processed: {stats['total_turns_ever']}")
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def demo_no_information_loss():
|
|
64
|
+
"""Demonstrate that no information is lost through summarization."""
|
|
65
|
+
print("\n\n" + "="*70)
|
|
66
|
+
print("DEMO 2: No Information Loss (vs. Summarization)")
|
|
67
|
+
print("="*70)
|
|
68
|
+
|
|
69
|
+
manager = ConversationManager(max_turns=3)
|
|
70
|
+
|
|
71
|
+
# Add a turn with specific details
|
|
72
|
+
specific_message = """I'm getting error code 500 when calling the API endpoint /api/users/123.
|
|
73
|
+
The exact error is: 'Internal Server Error: Connection timeout to database at db.example.com:5432'.
|
|
74
|
+
The logs show timestamp: 2024-01-03 14:23:45 UTC"""
|
|
75
|
+
|
|
76
|
+
specific_response = """That's a database connection issue. Here's how to fix it:
|
|
77
|
+
1. Check if the database server is running on db.example.com:5432
|
|
78
|
+
2. Verify your connection string in config.py line 45
|
|
79
|
+
3. Check the firewall rules for port 5432
|
|
80
|
+
4. Look at the database logs at /var/log/postgresql/postgresql.log"""
|
|
81
|
+
|
|
82
|
+
print("\nš Adding turn with SPECIFIC details:")
|
|
83
|
+
print(f" - Error code: 500")
|
|
84
|
+
print(f" - Endpoint: /api/users/123")
|
|
85
|
+
print(f" - Database: db.example.com:5432")
|
|
86
|
+
print(f" - Timestamp: 2024-01-03 14:23:45 UTC")
|
|
87
|
+
print(f" - Config file: config.py line 45")
|
|
88
|
+
print(f" - Log file: /var/log/postgresql/postgresql.log")
|
|
89
|
+
|
|
90
|
+
manager.add_turn(specific_message, specific_response)
|
|
91
|
+
|
|
92
|
+
# Verify exact retrieval
|
|
93
|
+
history = manager.get_conversation_history(format_as_text=False)
|
|
94
|
+
retrieved = history[0]
|
|
95
|
+
|
|
96
|
+
print("\nā
RETRIEVED (No Summarization):")
|
|
97
|
+
print(f" ALL details preserved:")
|
|
98
|
+
assert "500" in retrieved.user_message
|
|
99
|
+
assert "/api/users/123" in retrieved.user_message
|
|
100
|
+
assert "db.example.com:5432" in retrieved.user_message
|
|
101
|
+
assert "2024-01-03 14:23:45" in retrieved.user_message
|
|
102
|
+
assert "config.py line 45" in retrieved.ai_response
|
|
103
|
+
assert "/var/log/postgresql/postgresql.log" in retrieved.ai_response
|
|
104
|
+
print(" ā Error code: 500")
|
|
105
|
+
print(" ā Endpoint: /api/users/123")
|
|
106
|
+
print(" ā Database: db.example.com:5432")
|
|
107
|
+
print(" ā Timestamp: 2024-01-03 14:23:45 UTC")
|
|
108
|
+
print(" ā Config file: config.py line 45")
|
|
109
|
+
print(" ā Log file: /var/log/postgresql/postgresql.log")
|
|
110
|
+
|
|
111
|
+
print("\nā WITH SUMMARIZATION (Hypothetical):")
|
|
112
|
+
print(" 'User encountered API error. System provided troubleshooting steps.'")
|
|
113
|
+
print(" LOST: Error code, endpoint, database host, timestamp, file paths!")
|
|
114
|
+
|
|
115
|
+
print("\nšÆ Conclusion: Sliding Window = LOSSLESS")
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def demo_recent_precision():
|
|
119
|
+
"""Demonstrate that recent turns are what matter most."""
|
|
120
|
+
print("\n\n" + "="*70)
|
|
121
|
+
print("DEMO 3: Recent Precision > Vague History")
|
|
122
|
+
print("="*70)
|
|
123
|
+
|
|
124
|
+
manager = ConversationManager(max_turns=5)
|
|
125
|
+
|
|
126
|
+
print("\nš Simulating a debugging session...\n")
|
|
127
|
+
|
|
128
|
+
# Simulate debugging session
|
|
129
|
+
debug_session = [
|
|
130
|
+
("I'm debugging a function", "Let me help you with that"),
|
|
131
|
+
("Here's my code: def process_data(items):", "I see the function signature"),
|
|
132
|
+
(" for item in items:", "You're iterating over items"),
|
|
133
|
+
(" result = item.value * 2", "You're doubling the value"),
|
|
134
|
+
(" print(result)", "You're printing the result"),
|
|
135
|
+
# Critical recent interaction
|
|
136
|
+
("Wait, I just realized the bug! Line 4 should be item.value * 3 not * 2",
|
|
137
|
+
"Ah! So the multiplication factor is wrong. Change line 4 to multiply by 3."),
|
|
138
|
+
("Yes! That fixed it. The output is now correct.", "Great! The bug is fixed."),
|
|
139
|
+
]
|
|
140
|
+
|
|
141
|
+
for user_msg, ai_msg in debug_session:
|
|
142
|
+
manager.add_turn(user_msg, ai_msg)
|
|
143
|
+
|
|
144
|
+
print("š” KEY INSIGHT:")
|
|
145
|
+
print(" User just discovered the bug is on line 4: multiply by 3 not 2")
|
|
146
|
+
print(" They need to see this EXACT detail in the next turn\n")
|
|
147
|
+
|
|
148
|
+
# Get recent turns
|
|
149
|
+
recent = manager.get_recent_turns(n=3)
|
|
150
|
+
|
|
151
|
+
print("š Last 3 turns (perfectly preserved):")
|
|
152
|
+
for i, turn in enumerate(recent, 1):
|
|
153
|
+
print(f"\n Turn {i}:")
|
|
154
|
+
print(f" User: {turn.user_message}")
|
|
155
|
+
print(f" AI: {turn.ai_response}")
|
|
156
|
+
|
|
157
|
+
# Verify critical detail is preserved (check if any of the recent turns has the detail)
|
|
158
|
+
has_line4_detail = any("line 4" in turn.user_message.lower() for turn in recent)
|
|
159
|
+
has_multiply3_detail = any("multiply by 3" in turn.user_message.lower() or "* 3" in turn.user_message for turn in recent)
|
|
160
|
+
|
|
161
|
+
assert has_line4_detail, "Expected 'line 4' detail to be preserved in recent turns"
|
|
162
|
+
assert has_multiply3_detail, "Expected '* 3' or 'multiply by 3' detail to be preserved in recent turns"
|
|
163
|
+
|
|
164
|
+
print("\nā
User can see EXACT fix: 'line 4 should be item.value * 3 not * 2'")
|
|
165
|
+
print(" No vague summary like: 'User identified a calculation issue'")
|
|
166
|
+
|
|
167
|
+
stats = manager.get_statistics()
|
|
168
|
+
print(f"\nš Stats:")
|
|
169
|
+
print(f" Current turns: {stats['current_turns']}")
|
|
170
|
+
print(f" Total processed: {stats['total_turns_ever']}")
|
|
171
|
+
print(f" Deleted old turns: {stats['deleted_turns']}")
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def demo_cost_comparison():
|
|
175
|
+
"""Compare cost of sliding window vs. summarization."""
|
|
176
|
+
print("\n\n" + "="*70)
|
|
177
|
+
print("DEMO 4: Cost Comparison (Sliding Window vs. Summarization)")
|
|
178
|
+
print("="*70)
|
|
179
|
+
|
|
180
|
+
print("\nš° COST ANALYSIS:")
|
|
181
|
+
print("\n Scenario: 1000 conversations, 20 turns each\n")
|
|
182
|
+
|
|
183
|
+
print(" ā SUMMARIZATION APPROACH:")
|
|
184
|
+
print(" - Summarize every 10 turns")
|
|
185
|
+
print(" - Cost per summary: $0.01 (GPT-4o call)")
|
|
186
|
+
print(" - Summaries needed: 1000 conversations Ć 2 summaries = 2,000")
|
|
187
|
+
print(" - Total cost: 2,000 Ć $0.01 = $20.00")
|
|
188
|
+
print(" - Information loss: ā ļø HIGH (loses error codes, exact wording)")
|
|
189
|
+
|
|
190
|
+
print("\n ā
SLIDING WINDOW APPROACH:")
|
|
191
|
+
print(" - Keep last 10 turns intact")
|
|
192
|
+
print(" - Delete older turns (FIFO)")
|
|
193
|
+
print(" - Cost per conversation: $0.00 (no AI calls)")
|
|
194
|
+
print(" - Total cost: $0.00")
|
|
195
|
+
print(" - Information loss: ā
ZERO (what's kept is perfect)")
|
|
196
|
+
|
|
197
|
+
print("\n š” SAVINGS:")
|
|
198
|
+
print(" - Monthly cost reduction: $20.00")
|
|
199
|
+
print(" - Annual cost reduction: $240.00")
|
|
200
|
+
print(" - Per 10K conversations: $200.00")
|
|
201
|
+
|
|
202
|
+
print("\n šÆ KEY INSIGHT:")
|
|
203
|
+
print(" Users rarely reference turns from 20 minutes ago")
|
|
204
|
+
print(" They constantly reference code from 30 seconds ago")
|
|
205
|
+
print(" ā Recent Precision > Vague History")
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
def demo_fifo_behavior():
|
|
209
|
+
"""Demonstrate FIFO deletion behavior."""
|
|
210
|
+
print("\n\n" + "="*70)
|
|
211
|
+
print("DEMO 5: FIFO Deletion Behavior")
|
|
212
|
+
print("="*70)
|
|
213
|
+
|
|
214
|
+
manager = ConversationManager(max_turns=3)
|
|
215
|
+
|
|
216
|
+
print(f"\nš¦ Window size: {manager.state.max_turns} turns")
|
|
217
|
+
print(" Policy: First In, First Out (FIFO)\n")
|
|
218
|
+
|
|
219
|
+
turns_data = [
|
|
220
|
+
("Turn 1: Old question", "Old answer 1"),
|
|
221
|
+
("Turn 2: Another old question", "Old answer 2"),
|
|
222
|
+
("Turn 3: Getting recent", "Recent answer 3"),
|
|
223
|
+
("Turn 4: Very recent", "Recent answer 4"),
|
|
224
|
+
("Turn 5: Most recent", "Most recent answer 5"),
|
|
225
|
+
]
|
|
226
|
+
|
|
227
|
+
for i, (user_msg, ai_msg) in enumerate(turns_data, 1):
|
|
228
|
+
print(f"\n{'='*50}")
|
|
229
|
+
print(f"Adding: {user_msg}")
|
|
230
|
+
manager.add_turn(user_msg, ai_msg)
|
|
231
|
+
|
|
232
|
+
current = manager.get_conversation_history(format_as_text=False)
|
|
233
|
+
stats = manager.get_statistics()
|
|
234
|
+
|
|
235
|
+
print(f"\n Current window ({len(current)} turns):")
|
|
236
|
+
for j, turn in enumerate(current, 1):
|
|
237
|
+
print(f" {j}. {turn.user_message}")
|
|
238
|
+
|
|
239
|
+
if stats['deleted_turns'] > 0:
|
|
240
|
+
print(f"\n šļø Deleted: {stats['deleted_turns']} old turn(s)")
|
|
241
|
+
|
|
242
|
+
print("\n" + "="*50)
|
|
243
|
+
print("\nā
FINAL STATE:")
|
|
244
|
+
final = manager.get_conversation_history(format_as_text=False)
|
|
245
|
+
print(f" Kept last {len(final)} turns:")
|
|
246
|
+
for i, turn in enumerate(final, 1):
|
|
247
|
+
print(f" {i}. {turn.user_message}")
|
|
248
|
+
|
|
249
|
+
print("\n Notice: Turns 1 and 2 are gone (FIFO)")
|
|
250
|
+
print(" But turns 3, 4, and 5 are PERFECTLY intact!")
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def run_all_demos():
|
|
254
|
+
"""Run all demonstration scenarios."""
|
|
255
|
+
print("\n" + "="*70)
|
|
256
|
+
print("SLIDING WINDOW CONVERSATION MANAGEMENT DEMO")
|
|
257
|
+
print("The Brutal Squeeze: Chopping > Summarizing")
|
|
258
|
+
print("="*70)
|
|
259
|
+
|
|
260
|
+
demo_basic_sliding_window()
|
|
261
|
+
demo_no_information_loss()
|
|
262
|
+
demo_recent_precision()
|
|
263
|
+
demo_cost_comparison()
|
|
264
|
+
demo_fifo_behavior()
|
|
265
|
+
|
|
266
|
+
print("\n\n" + "="*70)
|
|
267
|
+
print("ā
ALL DEMOS COMPLETED!")
|
|
268
|
+
print("="*70)
|
|
269
|
+
|
|
270
|
+
print("\nšÆ KEY TAKEAWAYS:")
|
|
271
|
+
print(" 1. Sliding Window keeps recent turns PERFECTLY intact")
|
|
272
|
+
print(" 2. No AI cost for context management")
|
|
273
|
+
print(" 3. No information loss (what's kept is lossless)")
|
|
274
|
+
print(" 4. Users care about recent details, not old summaries")
|
|
275
|
+
print(" 5. Recent Precision > Vague History")
|
|
276
|
+
|
|
277
|
+
print("\nš” THE BRUTAL SQUEEZE PHILOSOPHY:")
|
|
278
|
+
print(" Summarization = Lossy Compression (loses error codes, exact wording)")
|
|
279
|
+
print(" Chopping (FIFO) = Lossless Compression (of the recent past)")
|
|
280
|
+
print(" In a frugal architecture: Chopping > Summarizing")
|
|
281
|
+
print("\n")
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
if __name__ == "__main__":
|
|
285
|
+
run_all_demos()
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Demonstration of the Heuristic Router for fast query classification.
|
|
3
|
+
|
|
4
|
+
This demo shows how the router makes instant routing decisions using
|
|
5
|
+
deterministic heuristics instead of AI classifiers.
|
|
6
|
+
|
|
7
|
+
Philosophy: Speed > Smarts
|
|
8
|
+
- 80% routing accuracy in 0ms > 100% accuracy in 500ms
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from caas.routing import HeuristicRouter, ModelTier
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def print_decision(query, decision):
|
|
15
|
+
"""Pretty print a routing decision."""
|
|
16
|
+
print(f"\n{'='*70}")
|
|
17
|
+
print(f"Query: \"{query}\"")
|
|
18
|
+
print(f"{'='*70}")
|
|
19
|
+
print(f" šÆ Tier: {decision.model_tier.value.upper()}")
|
|
20
|
+
print(f" š¤ Model: {decision.suggested_model}")
|
|
21
|
+
print(f" š° Cost: {decision.estimated_cost}")
|
|
22
|
+
print(f" š Length: {decision.query_length} chars")
|
|
23
|
+
print(f" š² Confidence: {decision.confidence:.0%}")
|
|
24
|
+
print(f" š” Reason: {decision.reason}")
|
|
25
|
+
if decision.matched_keywords:
|
|
26
|
+
print(f" š Keywords: {', '.join(decision.matched_keywords)}")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def demo_router():
|
|
30
|
+
"""Demonstrate the heuristic router capabilities."""
|
|
31
|
+
print("\n" + "="*70)
|
|
32
|
+
print("HEURISTIC ROUTER DEMONSTRATION")
|
|
33
|
+
print("="*70)
|
|
34
|
+
print("\nPhilosophy: Use Deterministic Heuristics, not AI Classifiers")
|
|
35
|
+
print("Goal: Instant response time for trivial stuff, save 'Big Brain' for hard stuff")
|
|
36
|
+
|
|
37
|
+
# Initialize router
|
|
38
|
+
router = HeuristicRouter()
|
|
39
|
+
|
|
40
|
+
# Rule 3: Greetings ā CANNED (Zero Cost)
|
|
41
|
+
print("\n\n" + "šÆ"*35)
|
|
42
|
+
print("RULE 3: GREETINGS ā CANNED RESPONSE (Zero Cost)")
|
|
43
|
+
print("šÆ"*35)
|
|
44
|
+
|
|
45
|
+
greetings = ["Hi", "Thanks", "Hello there", "Bye"]
|
|
46
|
+
for greeting in greetings:
|
|
47
|
+
decision = router.route(greeting)
|
|
48
|
+
print_decision(greeting, decision)
|
|
49
|
+
|
|
50
|
+
# Show canned response
|
|
51
|
+
if decision.model_tier == ModelTier.CANNED:
|
|
52
|
+
canned = router.get_canned_response(greeting)
|
|
53
|
+
print(f" š¬ Response: {canned}")
|
|
54
|
+
|
|
55
|
+
# Rule 1: Short queries ā FAST
|
|
56
|
+
print("\n\n" + "ā”"*35)
|
|
57
|
+
print("RULE 1: SHORT QUERIES ā FAST MODEL (Low Cost)")
|
|
58
|
+
print("ā”"*35)
|
|
59
|
+
|
|
60
|
+
short_queries = [
|
|
61
|
+
"What is Python?",
|
|
62
|
+
"How to install?",
|
|
63
|
+
"Show me logs",
|
|
64
|
+
"Status check"
|
|
65
|
+
]
|
|
66
|
+
for query in short_queries:
|
|
67
|
+
decision = router.route(query)
|
|
68
|
+
print_decision(query, decision)
|
|
69
|
+
|
|
70
|
+
# Rule 2: Smart keywords ā SMART
|
|
71
|
+
print("\n\n" + "š§ "*35)
|
|
72
|
+
print("RULE 2: SMART KEYWORDS ā SMART MODEL (High Cost)")
|
|
73
|
+
print("š§ "*35)
|
|
74
|
+
|
|
75
|
+
smart_queries = [
|
|
76
|
+
"Summarize this document",
|
|
77
|
+
"Analyze the performance metrics",
|
|
78
|
+
"Compare these two approaches",
|
|
79
|
+
"Provide a comprehensive evaluation"
|
|
80
|
+
]
|
|
81
|
+
for query in smart_queries:
|
|
82
|
+
decision = router.route(query)
|
|
83
|
+
print_decision(query, decision)
|
|
84
|
+
|
|
85
|
+
# Edge case: Long query without keywords ā SMART (safe default)
|
|
86
|
+
print("\n\n" + "š"*35)
|
|
87
|
+
print("EDGE CASE: LONG QUERY WITHOUT KEYWORDS ā SMART (Better Safe Than Sorry)")
|
|
88
|
+
print("š"*35)
|
|
89
|
+
|
|
90
|
+
long_query = "Can you tell me more about the implementation details of this feature and how it works in the system?"
|
|
91
|
+
decision = router.route(long_query)
|
|
92
|
+
print_decision(long_query, decision)
|
|
93
|
+
|
|
94
|
+
# Summary
|
|
95
|
+
print("\n\n" + "="*70)
|
|
96
|
+
print("PERFORMANCE SUMMARY")
|
|
97
|
+
print("="*70)
|
|
98
|
+
print("\nš Routing Decision Speed:")
|
|
99
|
+
print(" ⢠Heuristic Router: < 1ms (deterministic)")
|
|
100
|
+
print(" ⢠AI Classifier (GPT-3.5): ~500ms (model inference)")
|
|
101
|
+
print(" ⢠Speedup: 500x faster ā”")
|
|
102
|
+
|
|
103
|
+
print("\nš° Cost Comparison (1000 requests/day):")
|
|
104
|
+
print(" ⢠With AI Classifier:")
|
|
105
|
+
print(" - Routing: $10/day (1000 Ć $0.01)")
|
|
106
|
+
print(" - Actual AI: $50/day")
|
|
107
|
+
print(" - Total: $60/day")
|
|
108
|
+
print("\n ⢠With Heuristic Router:")
|
|
109
|
+
print(" - Routing: $0/day (deterministic)")
|
|
110
|
+
print(" - Greetings (30%): $0/day (canned responses)")
|
|
111
|
+
print(" - Fast queries (50%): $5/day (GPT-4o-mini)")
|
|
112
|
+
print(" - Smart queries (20%): $20/day (GPT-4o)")
|
|
113
|
+
print(" - Total: $25/day")
|
|
114
|
+
print("\n šµ SAVINGS: $35/day = $12,775/year")
|
|
115
|
+
|
|
116
|
+
print("\nšÆ Accuracy vs Speed Trade-off:")
|
|
117
|
+
print(" ⢠Heuristic Router: ~80% accuracy, 0ms latency")
|
|
118
|
+
print(" ⢠AI Classifier: ~95% accuracy, 500ms latency")
|
|
119
|
+
print(" ⢠Trade-off: Accept 15% accuracy loss for 500x speed ā
")
|
|
120
|
+
|
|
121
|
+
print("\nš Key Takeaway:")
|
|
122
|
+
print(" 'Fast even if occasionally wrong' > 'Slow but always right'")
|
|
123
|
+
print(" For 80% of queries, instant routing is more valuable than perfect routing.")
|
|
124
|
+
|
|
125
|
+
print("\n" + "="*70)
|
|
126
|
+
print("ā
DEMONSTRATION COMPLETE")
|
|
127
|
+
print("="*70)
|
|
128
|
+
print("\nThe heuristic router is ready for production!")
|
|
129
|
+
print("Start using it: router = HeuristicRouter()")
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
if __name__ == "__main__":
|
|
133
|
+
demo_router()
|