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,380 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Intelligent Document Analyzer Agent
|
|
3
|
+
|
|
4
|
+
This agent demonstrates how to use multiple Context-as-a-Service modules together
|
|
5
|
+
to create an intelligent document analysis system.
|
|
6
|
+
|
|
7
|
+
Features:
|
|
8
|
+
- Ingests and processes documents (HTML, PDF, Code)
|
|
9
|
+
- Applies structure-aware indexing (High/Medium/Low tiers)
|
|
10
|
+
- Enriches chunks with metadata (solves context amnesia)
|
|
11
|
+
- Applies time-based decay (prioritizes recent content)
|
|
12
|
+
- Routes queries efficiently (heuristic routing)
|
|
13
|
+
- Manages conversation history (sliding window)
|
|
14
|
+
- Tracks sources and detects conflicts (pragmatic truth)
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
import sys
|
|
18
|
+
from pathlib import Path
|
|
19
|
+
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
20
|
+
|
|
21
|
+
import uuid
|
|
22
|
+
from datetime import datetime
|
|
23
|
+
from typing import List, Dict, Optional
|
|
24
|
+
|
|
25
|
+
from caas.models import ContentFormat, DocumentType
|
|
26
|
+
from caas.ingestion import ProcessorFactory
|
|
27
|
+
from caas.detection import DocumentTypeDetector
|
|
28
|
+
from caas.tuning import WeightTuner
|
|
29
|
+
from caas.storage import DocumentStore, ContextExtractor
|
|
30
|
+
from caas.enrichment import MetadataEnricher
|
|
31
|
+
from caas.decay import calculate_decay_factor
|
|
32
|
+
from caas.routing import HeuristicRouter
|
|
33
|
+
from caas.conversation import ConversationManager
|
|
34
|
+
from caas.models import SourceType
|
|
35
|
+
from caas.pragmatic_truth import SourceDetector, ConflictDetector
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class IntelligentDocumentAnalyzer:
|
|
39
|
+
"""
|
|
40
|
+
An intelligent agent that combines all CaaS modules to analyze documents.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
def __init__(self, max_conversation_turns: int = 10):
|
|
44
|
+
"""
|
|
45
|
+
Initialize the analyzer with all required components.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
max_conversation_turns: Maximum conversation turns to keep (sliding window)
|
|
49
|
+
"""
|
|
50
|
+
self.store = DocumentStore()
|
|
51
|
+
self.extractor = ContextExtractor(
|
|
52
|
+
self.store,
|
|
53
|
+
enable_time_decay=True,
|
|
54
|
+
enable_citations=True,
|
|
55
|
+
detect_conflicts=True,
|
|
56
|
+
enrich_metadata=True
|
|
57
|
+
)
|
|
58
|
+
self.enricher = MetadataEnricher()
|
|
59
|
+
self.router = HeuristicRouter()
|
|
60
|
+
self.conversation = ConversationManager(max_turns=max_conversation_turns)
|
|
61
|
+
self.source_detector = SourceDetector()
|
|
62
|
+
self.conflict_detector = ConflictDetector()
|
|
63
|
+
self.detector = DocumentTypeDetector()
|
|
64
|
+
self.tuner = WeightTuner()
|
|
65
|
+
|
|
66
|
+
print("🤖 Intelligent Document Analyzer initialized")
|
|
67
|
+
print(f" - Structure-aware indexing: ✅")
|
|
68
|
+
print(f" - Metadata enrichment: ✅")
|
|
69
|
+
print(f" - Time-based decay: ✅")
|
|
70
|
+
print(f" - Heuristic routing: ✅")
|
|
71
|
+
print(f" - Sliding window (max {max_conversation_turns} turns): ✅")
|
|
72
|
+
print(f" - Pragmatic truth tracking: ✅")
|
|
73
|
+
|
|
74
|
+
def ingest_document(
|
|
75
|
+
self,
|
|
76
|
+
content: bytes,
|
|
77
|
+
format: ContentFormat,
|
|
78
|
+
title: str,
|
|
79
|
+
source_type: SourceType = SourceType.OFFICIAL_DOCS
|
|
80
|
+
) -> str:
|
|
81
|
+
"""
|
|
82
|
+
Ingest a document with full processing pipeline.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
content: Raw document content
|
|
86
|
+
format: Document format (HTML, PDF, CODE)
|
|
87
|
+
title: Document title
|
|
88
|
+
source_type: Type of source for pragmatic truth
|
|
89
|
+
|
|
90
|
+
Returns:
|
|
91
|
+
Document ID
|
|
92
|
+
"""
|
|
93
|
+
print(f"\n📤 Ingesting document: {title}")
|
|
94
|
+
|
|
95
|
+
# Process document
|
|
96
|
+
processor = ProcessorFactory.get_processor(format)
|
|
97
|
+
doc_id = str(uuid.uuid4())
|
|
98
|
+
metadata = {
|
|
99
|
+
"id": doc_id,
|
|
100
|
+
"title": title,
|
|
101
|
+
"ingestion_timestamp": datetime.utcnow().isoformat()
|
|
102
|
+
}
|
|
103
|
+
document = processor.process(content, metadata)
|
|
104
|
+
|
|
105
|
+
# Detect type
|
|
106
|
+
document.detected_type = self.detector.detect(document)
|
|
107
|
+
print(f" ✓ Detected type: {document.detected_type}")
|
|
108
|
+
|
|
109
|
+
# Apply structure-aware tuning
|
|
110
|
+
document = self.tuner.tune(document)
|
|
111
|
+
print(f" ✓ Applied structure-aware weights (Tier 1/2/3)")
|
|
112
|
+
|
|
113
|
+
# Store document
|
|
114
|
+
self.store.add(document)
|
|
115
|
+
|
|
116
|
+
print(f" ✓ Document ingested with ID: {doc_id}")
|
|
117
|
+
print(f" ✓ Sections: {len(document.sections)}")
|
|
118
|
+
print(f" ✓ Source type: {source_type.value}")
|
|
119
|
+
|
|
120
|
+
return doc_id
|
|
121
|
+
|
|
122
|
+
def analyze_query(self, user_query: str) -> Dict:
|
|
123
|
+
"""
|
|
124
|
+
Analyze a query and route it appropriately.
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
user_query: User's question or query
|
|
128
|
+
|
|
129
|
+
Returns:
|
|
130
|
+
Analysis results with routing decision
|
|
131
|
+
"""
|
|
132
|
+
print(f"\n🔍 Analyzing query: \"{user_query}\"")
|
|
133
|
+
|
|
134
|
+
# Route query using heuristic router
|
|
135
|
+
routing_decision = self.router.route(user_query)
|
|
136
|
+
print(f" ✓ Routing decision: {routing_decision.model_tier.value}")
|
|
137
|
+
print(f" ✓ Suggested model: {routing_decision.suggested_model}")
|
|
138
|
+
print(f" ✓ Estimated cost: {routing_decision.estimated_cost}")
|
|
139
|
+
|
|
140
|
+
return {
|
|
141
|
+
"query": user_query,
|
|
142
|
+
"routing": routing_decision,
|
|
143
|
+
"timestamp": datetime.utcnow().isoformat()
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
def extract_context(
|
|
147
|
+
self,
|
|
148
|
+
document_id: str,
|
|
149
|
+
query: str,
|
|
150
|
+
max_tokens: int = 2000
|
|
151
|
+
) -> Dict:
|
|
152
|
+
"""
|
|
153
|
+
Extract context from document with all enhancements.
|
|
154
|
+
|
|
155
|
+
Args:
|
|
156
|
+
document_id: Document to extract from
|
|
157
|
+
query: Search query
|
|
158
|
+
max_tokens: Maximum tokens to extract
|
|
159
|
+
|
|
160
|
+
Returns:
|
|
161
|
+
Extracted context with metadata
|
|
162
|
+
"""
|
|
163
|
+
print(f"\n📊 Extracting context from document: {document_id}")
|
|
164
|
+
print(f" Query: \"{query}\"")
|
|
165
|
+
|
|
166
|
+
# Extract context with all features enabled
|
|
167
|
+
context, metadata = self.extractor.extract_context(
|
|
168
|
+
document_id=document_id,
|
|
169
|
+
query=query,
|
|
170
|
+
max_tokens=max_tokens
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
print(f" ✓ Context extracted: {len(context)} chars")
|
|
174
|
+
print(f" ✓ Sections used: {len(metadata.get('sections_used', []))}")
|
|
175
|
+
print(f" ✓ Citations: {len(metadata.get('citations', []))}")
|
|
176
|
+
|
|
177
|
+
if metadata.get('conflicts'):
|
|
178
|
+
print(f" ⚠️ Conflicts detected: {len(metadata['conflicts'])}")
|
|
179
|
+
|
|
180
|
+
return {
|
|
181
|
+
"context": context,
|
|
182
|
+
"metadata": metadata,
|
|
183
|
+
"timestamp": datetime.utcnow().isoformat()
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
def chat(self, user_message: str, ai_response: str) -> Dict:
|
|
187
|
+
"""
|
|
188
|
+
Add a conversation turn (sliding window management).
|
|
189
|
+
|
|
190
|
+
Args:
|
|
191
|
+
user_message: User's message
|
|
192
|
+
ai_response: AI's response
|
|
193
|
+
|
|
194
|
+
Returns:
|
|
195
|
+
Conversation statistics
|
|
196
|
+
"""
|
|
197
|
+
turn_id = self.conversation.add_turn(user_message, ai_response)
|
|
198
|
+
stats = self.conversation.get_statistics()
|
|
199
|
+
|
|
200
|
+
print(f"\n💬 Conversation turn added (ID: {turn_id[:8]}...)")
|
|
201
|
+
print(f" ✓ Current turns: {stats['current_turns']}/{stats['max_turns']}")
|
|
202
|
+
print(f" ✓ Total ever: {stats['total_turns_ever']}")
|
|
203
|
+
|
|
204
|
+
if stats['deleted_turns'] > 0:
|
|
205
|
+
print(f" ✓ Deleted (FIFO): {stats['deleted_turns']}")
|
|
206
|
+
|
|
207
|
+
return stats
|
|
208
|
+
|
|
209
|
+
def get_conversation_history(self) -> List[Dict]:
|
|
210
|
+
"""Get conversation history (last N turns)."""
|
|
211
|
+
return self.conversation.get_conversation_history()
|
|
212
|
+
|
|
213
|
+
def analyze_corpus(self) -> Dict:
|
|
214
|
+
"""
|
|
215
|
+
Analyze the entire corpus for insights.
|
|
216
|
+
|
|
217
|
+
Returns:
|
|
218
|
+
Corpus analysis results
|
|
219
|
+
"""
|
|
220
|
+
print(f"\n📚 Analyzing corpus...")
|
|
221
|
+
|
|
222
|
+
all_docs = self.store.list_all()
|
|
223
|
+
doc_types = {}
|
|
224
|
+
for doc in all_docs:
|
|
225
|
+
doc_type = doc.detected_type if doc.detected_type else DocumentType.UNKNOWN
|
|
226
|
+
doc_types[doc_type] = doc_types.get(doc_type, 0) + 1
|
|
227
|
+
|
|
228
|
+
analysis = {
|
|
229
|
+
"total_documents": len(all_docs),
|
|
230
|
+
"document_types": doc_types,
|
|
231
|
+
"suggestions": []
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
print(f" ✓ Total documents: {analysis['total_documents']}")
|
|
235
|
+
print(f" ✓ Document types: {len(analysis['document_types'])}")
|
|
236
|
+
|
|
237
|
+
return analysis
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def demo_comprehensive_workflow():
|
|
241
|
+
"""Demonstrate a comprehensive workflow using all modules."""
|
|
242
|
+
print("=" * 70)
|
|
243
|
+
print("🤖 Intelligent Document Analyzer - Comprehensive Demo")
|
|
244
|
+
print("=" * 70)
|
|
245
|
+
|
|
246
|
+
# Initialize analyzer
|
|
247
|
+
analyzer = IntelligentDocumentAnalyzer(max_conversation_turns=5)
|
|
248
|
+
|
|
249
|
+
# Sample documents
|
|
250
|
+
doc1_content = b"""
|
|
251
|
+
<html>
|
|
252
|
+
<head><title>API Authentication Guide</title></head>
|
|
253
|
+
<body>
|
|
254
|
+
<h1>Authentication API</h1>
|
|
255
|
+
<h2>Official Documentation</h2>
|
|
256
|
+
<p>The API officially supports 100 requests per minute.</p>
|
|
257
|
+
<p>Use Bearer tokens for authentication.</p>
|
|
258
|
+
|
|
259
|
+
<h2>Endpoints</h2>
|
|
260
|
+
<h3>POST /auth/login</h3>
|
|
261
|
+
<p>Authenticate a user and receive a token.</p>
|
|
262
|
+
</body>
|
|
263
|
+
</html>
|
|
264
|
+
"""
|
|
265
|
+
|
|
266
|
+
doc2_content = b"""
|
|
267
|
+
<html>
|
|
268
|
+
<head><title>Team Chat Log</title></head>
|
|
269
|
+
<body>
|
|
270
|
+
<h1>Engineering Chat - Jan 2025</h1>
|
|
271
|
+
<p>@john: FYI, the API crashes after 50 requests. We've hit this multiple times.</p>
|
|
272
|
+
<p>@sarah: Yeah, the official limit is 100, but in practice it's 50.</p>
|
|
273
|
+
<p>@mike: We should update the docs, but for now just stay under 50.</p>
|
|
274
|
+
</body>
|
|
275
|
+
</html>
|
|
276
|
+
"""
|
|
277
|
+
|
|
278
|
+
code_content = b"""
|
|
279
|
+
def authenticate_user(username: str, password: str):
|
|
280
|
+
'''Authenticate user with credentials.'''
|
|
281
|
+
# Critical: Always use secure password hashing
|
|
282
|
+
return verify_credentials(username, password)
|
|
283
|
+
|
|
284
|
+
class AuthenticationService:
|
|
285
|
+
'''Main authentication service.'''
|
|
286
|
+
|
|
287
|
+
def login(self, username: str, password: str):
|
|
288
|
+
'''Login endpoint.'''
|
|
289
|
+
# TODO: Add rate limiting
|
|
290
|
+
return authenticate_user(username, password)
|
|
291
|
+
"""
|
|
292
|
+
|
|
293
|
+
# 1. Ingest documents with different source types
|
|
294
|
+
doc_id_1 = analyzer.ingest_document(
|
|
295
|
+
doc1_content,
|
|
296
|
+
ContentFormat.HTML,
|
|
297
|
+
"API Authentication - Official Docs",
|
|
298
|
+
SourceType.OFFICIAL_DOCS
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
doc_id_2 = analyzer.ingest_document(
|
|
302
|
+
doc2_content,
|
|
303
|
+
ContentFormat.HTML,
|
|
304
|
+
"Engineering Chat - API Issues",
|
|
305
|
+
SourceType.TEAM_CHAT
|
|
306
|
+
)
|
|
307
|
+
|
|
308
|
+
doc_id_3 = analyzer.ingest_document(
|
|
309
|
+
code_content,
|
|
310
|
+
ContentFormat.CODE,
|
|
311
|
+
"Authentication Service Code",
|
|
312
|
+
SourceType.CODE_COMMENTS
|
|
313
|
+
)
|
|
314
|
+
|
|
315
|
+
# 2. Analyze corpus
|
|
316
|
+
corpus_analysis = analyzer.analyze_corpus()
|
|
317
|
+
|
|
318
|
+
# 3. Route different types of queries
|
|
319
|
+
print("\n" + "=" * 70)
|
|
320
|
+
print("🎯 Query Routing Examples")
|
|
321
|
+
print("=" * 70)
|
|
322
|
+
|
|
323
|
+
analyzer.analyze_query("Hi there!") # Should route to canned
|
|
324
|
+
analyzer.analyze_query("What is authentication?") # Should route to fast
|
|
325
|
+
analyzer.analyze_query("Analyze the authentication flow and compare with best practices") # Should route to smart
|
|
326
|
+
|
|
327
|
+
# 4. Extract context with all features
|
|
328
|
+
print("\n" + "=" * 70)
|
|
329
|
+
print("📊 Context Extraction with Conflict Detection")
|
|
330
|
+
print("=" * 70)
|
|
331
|
+
|
|
332
|
+
# Query about API limits - should detect conflict between docs and chat
|
|
333
|
+
result = analyzer.extract_context(
|
|
334
|
+
doc_id_1,
|
|
335
|
+
"What is the API rate limit?",
|
|
336
|
+
max_tokens=1000
|
|
337
|
+
)
|
|
338
|
+
|
|
339
|
+
print("\n--- Context Preview ---")
|
|
340
|
+
print(result['context'][:500] + "...")
|
|
341
|
+
|
|
342
|
+
# 5. Simulate conversation
|
|
343
|
+
print("\n" + "=" * 70)
|
|
344
|
+
print("💬 Conversation Management (Sliding Window)")
|
|
345
|
+
print("=" * 70)
|
|
346
|
+
|
|
347
|
+
analyzer.chat(
|
|
348
|
+
"How do I authenticate?",
|
|
349
|
+
"Use the POST /auth/login endpoint with your credentials."
|
|
350
|
+
)
|
|
351
|
+
|
|
352
|
+
analyzer.chat(
|
|
353
|
+
"What about rate limits?",
|
|
354
|
+
"Officially 100 req/min, but team reports issues at 50."
|
|
355
|
+
)
|
|
356
|
+
|
|
357
|
+
analyzer.chat(
|
|
358
|
+
"Can you show me code?",
|
|
359
|
+
"Check the AuthenticationService class in the codebase."
|
|
360
|
+
)
|
|
361
|
+
|
|
362
|
+
# Get conversation history
|
|
363
|
+
history = analyzer.get_conversation_history()
|
|
364
|
+
print(f"\n📝 Conversation history: {len(history)} turns retained")
|
|
365
|
+
|
|
366
|
+
# 6. Final summary
|
|
367
|
+
print("\n" + "=" * 70)
|
|
368
|
+
print("✅ Demo Complete - All Modules Working Together!")
|
|
369
|
+
print("=" * 70)
|
|
370
|
+
print("\n✨ What we demonstrated:")
|
|
371
|
+
print(" 1. Structure-aware indexing (High/Medium/Low tiers)")
|
|
372
|
+
print(" 2. Metadata enrichment (no context amnesia)")
|
|
373
|
+
print(" 3. Time-based decay (recency is relevance)")
|
|
374
|
+
print(" 4. Heuristic routing (fast/smart/canned)")
|
|
375
|
+
print(" 5. Sliding window conversation (FIFO, no summarization)")
|
|
376
|
+
print(" 6. Pragmatic truth (source tracking & conflict detection)")
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
if __name__ == "__main__":
|
|
380
|
+
demo_comprehensive_workflow()
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Comprehensive demonstration of Context-as-a-Service.
|
|
4
|
+
|
|
5
|
+
This script demonstrates the entire pipeline:
|
|
6
|
+
1. Ingest documents (HTML and Code)
|
|
7
|
+
2. Auto-detect document types
|
|
8
|
+
3. Auto-tune weights
|
|
9
|
+
4. Extract optimized context
|
|
10
|
+
5. Analyze corpus
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import uuid
|
|
14
|
+
from caas.models import ContentFormat
|
|
15
|
+
from caas.ingestion import ProcessorFactory
|
|
16
|
+
from caas.detection import DocumentTypeDetector, StructureAnalyzer
|
|
17
|
+
from caas.tuning import WeightTuner, CorpusAnalyzer
|
|
18
|
+
from caas.storage import DocumentStore, ContextExtractor
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def print_section(title):
|
|
22
|
+
"""Print a formatted section header."""
|
|
23
|
+
print("\n" + "=" * 70)
|
|
24
|
+
print(f" {title}")
|
|
25
|
+
print("=" * 70)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def demo_html_processing():
|
|
29
|
+
"""Demonstrate HTML document processing."""
|
|
30
|
+
print_section("DEMO 1: Processing HTML API Documentation")
|
|
31
|
+
|
|
32
|
+
# Read example HTML file
|
|
33
|
+
with open('examples/api_documentation.html', 'rb') as f:
|
|
34
|
+
html_content = f.read()
|
|
35
|
+
|
|
36
|
+
print("\n📄 Input: API Documentation (HTML)")
|
|
37
|
+
print(" File: examples/api_documentation.html")
|
|
38
|
+
|
|
39
|
+
# Step 1: Ingest
|
|
40
|
+
print("\n[Step 1] 🔄 Ingesting document...")
|
|
41
|
+
processor = ProcessorFactory.get_processor(ContentFormat.HTML)
|
|
42
|
+
doc_id = str(uuid.uuid4())
|
|
43
|
+
metadata = {"id": doc_id, "title": "User Management API"}
|
|
44
|
+
document = processor.process(html_content, metadata)
|
|
45
|
+
print(f" ✓ Extracted {len(document.sections)} sections")
|
|
46
|
+
|
|
47
|
+
# Step 2: Auto-detect
|
|
48
|
+
print("\n[Step 2] 🔍 Auto-detecting document type...")
|
|
49
|
+
detector = DocumentTypeDetector()
|
|
50
|
+
document.detected_type = detector.detect(document)
|
|
51
|
+
print(f" ✓ Detected: {document.detected_type.value}")
|
|
52
|
+
print(f" ✓ Reasoning: Contains API endpoints, authentication, examples")
|
|
53
|
+
|
|
54
|
+
# Step 3: Auto-tune weights
|
|
55
|
+
print("\n[Step 3] ⚖️ Auto-tuning section weights...")
|
|
56
|
+
tuner = WeightTuner()
|
|
57
|
+
document = tuner.tune(document)
|
|
58
|
+
|
|
59
|
+
print(f" ✓ Applied intelligent weights based on content analysis:")
|
|
60
|
+
sorted_sections = sorted(document.sections, key=lambda s: s.weight, reverse=True)
|
|
61
|
+
for i, section in enumerate(sorted_sections[:5], 1):
|
|
62
|
+
importance_stars = "⭐" * int(section.importance_score * 5)
|
|
63
|
+
print(f" {i}. {section.title:30s} -> {section.weight:.2f}x {importance_stars}")
|
|
64
|
+
|
|
65
|
+
# Step 4: Extract context
|
|
66
|
+
print("\n[Step 4] 🎯 Extracting optimized context...")
|
|
67
|
+
store = DocumentStore()
|
|
68
|
+
store.add(document)
|
|
69
|
+
|
|
70
|
+
extractor = ContextExtractor(store)
|
|
71
|
+
context, metadata_result = extractor.extract_context(
|
|
72
|
+
doc_id,
|
|
73
|
+
query="authentication",
|
|
74
|
+
max_tokens=500
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
print(f" ✓ Query: 'authentication'")
|
|
78
|
+
print(f" ✓ Sections used: {len(metadata_result['sections_used'])}/{len(document.sections)}")
|
|
79
|
+
print(f" ✓ Sections: {', '.join(metadata_result['sections_used'])}")
|
|
80
|
+
print(f"\n 📋 Context Preview (first 400 chars):")
|
|
81
|
+
print(" " + "-" * 66)
|
|
82
|
+
preview = context[:400].replace('\n', '\n ')
|
|
83
|
+
print(f" {preview}...")
|
|
84
|
+
|
|
85
|
+
return document, store
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def demo_code_processing(store):
|
|
89
|
+
"""Demonstrate code processing."""
|
|
90
|
+
print_section("DEMO 2: Processing Source Code")
|
|
91
|
+
|
|
92
|
+
# Read example code file
|
|
93
|
+
with open('examples/auth_module.py', 'rb') as f:
|
|
94
|
+
code_content = f.read()
|
|
95
|
+
|
|
96
|
+
print("\n📄 Input: Authentication Module (Python Code)")
|
|
97
|
+
print(" File: examples/auth_module.py")
|
|
98
|
+
|
|
99
|
+
# Step 1: Ingest
|
|
100
|
+
print("\n[Step 1] 🔄 Ingesting code...")
|
|
101
|
+
processor = ProcessorFactory.get_processor(ContentFormat.CODE)
|
|
102
|
+
doc_id = str(uuid.uuid4())
|
|
103
|
+
metadata = {"id": doc_id, "title": "Auth Module", "language": "python"}
|
|
104
|
+
document = processor.process(code_content, metadata)
|
|
105
|
+
print(f" ✓ Parsed {len(document.sections)} code sections")
|
|
106
|
+
|
|
107
|
+
# Step 2: Auto-detect
|
|
108
|
+
print("\n[Step 2] 🔍 Auto-detecting document type...")
|
|
109
|
+
detector = DocumentTypeDetector()
|
|
110
|
+
document.detected_type = detector.detect(document)
|
|
111
|
+
print(f" ✓ Detected: {document.detected_type.value}")
|
|
112
|
+
print(f" ✓ Reasoning: Contains classes, functions, and code patterns")
|
|
113
|
+
|
|
114
|
+
# Step 3: Structure analysis
|
|
115
|
+
print("\n[Step 3] 📊 Analyzing code structure...")
|
|
116
|
+
analyzer = StructureAnalyzer()
|
|
117
|
+
analysis = analyzer.analyze(document)
|
|
118
|
+
|
|
119
|
+
print(f" ✓ Content density: {analysis['content_density']:.3f}")
|
|
120
|
+
print(f" ✓ Structure quality: {analysis['structure_quality']}")
|
|
121
|
+
print(f" ✓ Code sections found:")
|
|
122
|
+
for section_info in analysis['section_analysis'][:5]:
|
|
123
|
+
print(f" - {section_info['title'][:50]:50s} ({section_info['length']} chars)")
|
|
124
|
+
|
|
125
|
+
# Step 4: Auto-tune
|
|
126
|
+
print("\n[Step 4] ⚖️ Auto-tuning weights...")
|
|
127
|
+
tuner = WeightTuner()
|
|
128
|
+
document = tuner.tune(document)
|
|
129
|
+
print(f" ✓ Applied code-specific weights")
|
|
130
|
+
|
|
131
|
+
# Add to store
|
|
132
|
+
store.add(document)
|
|
133
|
+
|
|
134
|
+
# Step 5: Extract context
|
|
135
|
+
print("\n[Step 5] 🎯 Extracting code context...")
|
|
136
|
+
extractor = ContextExtractor(store)
|
|
137
|
+
context, metadata_result = extractor.extract_context(
|
|
138
|
+
doc_id,
|
|
139
|
+
query="authenticate",
|
|
140
|
+
max_tokens=800
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
print(f" ✓ Query: 'authenticate'")
|
|
144
|
+
print(f" ✓ Found relevant code sections")
|
|
145
|
+
print(f"\n 📋 Context Preview:")
|
|
146
|
+
print(" " + "-" * 66)
|
|
147
|
+
preview = context[:500].replace('\n', '\n ')
|
|
148
|
+
print(f" {preview}...")
|
|
149
|
+
|
|
150
|
+
return document
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def demo_corpus_analysis(store):
|
|
154
|
+
"""Demonstrate corpus-wide analysis."""
|
|
155
|
+
print_section("DEMO 3: Corpus Analysis & Learning")
|
|
156
|
+
|
|
157
|
+
print("\n📚 Analyzing entire document corpus...")
|
|
158
|
+
|
|
159
|
+
# Create corpus analyzer
|
|
160
|
+
corpus_analyzer = CorpusAnalyzer()
|
|
161
|
+
|
|
162
|
+
# Add all documents from store
|
|
163
|
+
for doc in store.list_all():
|
|
164
|
+
corpus_analyzer.add_document(doc)
|
|
165
|
+
|
|
166
|
+
analysis = corpus_analyzer.analyze_corpus()
|
|
167
|
+
|
|
168
|
+
print(f"\n✓ Corpus Statistics:")
|
|
169
|
+
print(f" Total documents: {analysis['total_documents']}")
|
|
170
|
+
print(f" Document types:")
|
|
171
|
+
for doc_type, count in analysis['document_types'].items():
|
|
172
|
+
print(f" - {doc_type.value if hasattr(doc_type, 'value') else doc_type}: {count}")
|
|
173
|
+
|
|
174
|
+
print(f"\n✓ Common Section Patterns:")
|
|
175
|
+
for section, count in list(analysis['common_sections'].items())[:5]:
|
|
176
|
+
print(f" - '{section}': appears {count} times")
|
|
177
|
+
|
|
178
|
+
print(f"\n✓ Average Weights:")
|
|
179
|
+
for section, weight in list(analysis['average_weights'].items())[:5]:
|
|
180
|
+
print(f" - '{section}': {weight}x")
|
|
181
|
+
|
|
182
|
+
if analysis['optimization_suggestions']:
|
|
183
|
+
print(f"\n💡 Optimization Suggestions:")
|
|
184
|
+
for suggestion in analysis['optimization_suggestions']:
|
|
185
|
+
print(f" - {suggestion}")
|
|
186
|
+
|
|
187
|
+
print(f"\n✅ The system learns from your corpus and self-optimizes!")
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def demo_comparison():
|
|
191
|
+
"""Demonstrate the benefit of auto-tuning."""
|
|
192
|
+
print_section("DEMO 4: Impact of Auto-Tuning")
|
|
193
|
+
|
|
194
|
+
print("\n🔬 Comparing results with and without auto-tuning...")
|
|
195
|
+
|
|
196
|
+
# Create a test document
|
|
197
|
+
html_content = b"""
|
|
198
|
+
<html>
|
|
199
|
+
<body>
|
|
200
|
+
<h1>Software License Agreement</h1>
|
|
201
|
+
|
|
202
|
+
<h2>Background</h2>
|
|
203
|
+
<p>This agreement is between the parties.</p>
|
|
204
|
+
|
|
205
|
+
<h2>Definitions</h2>
|
|
206
|
+
<p>Software means the licensed software. License means permission to use.
|
|
207
|
+
User means the person using the software. These definitions are critical
|
|
208
|
+
to understanding the agreement.</p>
|
|
209
|
+
|
|
210
|
+
<h2>Grant of License</h2>
|
|
211
|
+
<p>The licensor grants a non-exclusive license.</p>
|
|
212
|
+
|
|
213
|
+
<h2>Termination</h2>
|
|
214
|
+
<p>This agreement may be terminated by either party with notice.
|
|
215
|
+
Upon termination, all rights cease. This is an important clause.</p>
|
|
216
|
+
</body>
|
|
217
|
+
</html>
|
|
218
|
+
"""
|
|
219
|
+
|
|
220
|
+
processor = ProcessorFactory.get_processor(ContentFormat.HTML)
|
|
221
|
+
doc_id = str(uuid.uuid4())
|
|
222
|
+
metadata = {"id": doc_id, "title": "License Agreement"}
|
|
223
|
+
document = processor.process(html_content, metadata)
|
|
224
|
+
|
|
225
|
+
detector = DocumentTypeDetector()
|
|
226
|
+
document.detected_type = detector.detect(document)
|
|
227
|
+
|
|
228
|
+
print(f"\n📄 Document: {document.title}")
|
|
229
|
+
print(f" Detected Type: {document.detected_type.value}")
|
|
230
|
+
|
|
231
|
+
# WITHOUT auto-tuning (all weights = 1.0)
|
|
232
|
+
print(f"\n❌ WITHOUT Auto-Tuning (all sections weighted equally):")
|
|
233
|
+
for section in document.sections:
|
|
234
|
+
print(f" - {section.title:25s}: 1.0x")
|
|
235
|
+
|
|
236
|
+
# WITH auto-tuning
|
|
237
|
+
tuner = WeightTuner()
|
|
238
|
+
document = tuner.tune(document)
|
|
239
|
+
|
|
240
|
+
print(f"\n✅ WITH Auto-Tuning (intelligent weights applied):")
|
|
241
|
+
sorted_sections = sorted(document.sections, key=lambda s: s.weight, reverse=True)
|
|
242
|
+
for section in sorted_sections:
|
|
243
|
+
boost = f"(+{int((section.weight - 1.0) * 100)}%)" if section.weight > 1.0 else ""
|
|
244
|
+
print(f" - {section.title:25s}: {section.weight:.2f}x {boost}")
|
|
245
|
+
|
|
246
|
+
print(f"\n💡 Key Insight:")
|
|
247
|
+
print(f" The system automatically boosted 'Definitions' and 'Termination'")
|
|
248
|
+
print(f" sections because it detected this is a legal contract and these")
|
|
249
|
+
print(f" sections contain critical information (definitions, important clauses).")
|
|
250
|
+
print(f" No manual configuration required!")
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def main():
|
|
254
|
+
"""Run the complete demonstration."""
|
|
255
|
+
print("\n")
|
|
256
|
+
print("╔" + "═" * 68 + "╗")
|
|
257
|
+
print("║" + " " * 15 + "CONTEXT-AS-A-SERVICE DEMONSTRATION" + " " * 19 + "║")
|
|
258
|
+
print("║" + " " * 68 + "║")
|
|
259
|
+
print("║" + " Zero Configuration • Auto-Detection • Auto-Tuning" + " " * 17 + "║")
|
|
260
|
+
print("╚" + "═" * 68 + "╝")
|
|
261
|
+
|
|
262
|
+
print("\n🎯 This demo showcases the complete pipeline:")
|
|
263
|
+
print(" 1. Ingest raw data (PDF, Code, HTML)")
|
|
264
|
+
print(" 2. Auto-detect document structure and type")
|
|
265
|
+
print(" 3. Auto-tune weights based on content analysis")
|
|
266
|
+
print(" 4. Serve perfectly optimized context via API")
|
|
267
|
+
|
|
268
|
+
try:
|
|
269
|
+
# Demo 1: HTML processing
|
|
270
|
+
html_doc, store = demo_html_processing()
|
|
271
|
+
|
|
272
|
+
# Demo 2: Code processing
|
|
273
|
+
code_doc = demo_code_processing(store)
|
|
274
|
+
|
|
275
|
+
# Demo 3: Corpus analysis
|
|
276
|
+
demo_corpus_analysis(store)
|
|
277
|
+
|
|
278
|
+
# Demo 4: Show the impact
|
|
279
|
+
demo_comparison()
|
|
280
|
+
|
|
281
|
+
# Final summary
|
|
282
|
+
print_section("SUMMARY")
|
|
283
|
+
print("\n✅ Context-as-a-Service successfully demonstrated!")
|
|
284
|
+
print("\n🚀 Key Features Shown:")
|
|
285
|
+
print(" ✓ Multi-format ingestion (HTML, Code)")
|
|
286
|
+
print(" ✓ Automatic document type detection")
|
|
287
|
+
print(" ✓ Intelligent weight optimization")
|
|
288
|
+
print(" ✓ Query-focused context extraction")
|
|
289
|
+
print(" ✓ Corpus-wide learning and analysis")
|
|
290
|
+
print(" ✓ Zero manual configuration needed")
|
|
291
|
+
|
|
292
|
+
print("\n🎉 The service is ready to use!")
|
|
293
|
+
print(" Start the API: python -m uvicorn caas.api.server:app --reload")
|
|
294
|
+
print(" API docs: http://localhost:8000/docs")
|
|
295
|
+
print(" CLI tool: python caas/cli.py --help")
|
|
296
|
+
|
|
297
|
+
print("\n" + "=" * 70 + "\n")
|
|
298
|
+
|
|
299
|
+
except Exception as e:
|
|
300
|
+
print(f"\n❌ Demo failed: {e}")
|
|
301
|
+
import traceback
|
|
302
|
+
traceback.print_exc()
|
|
303
|
+
return 1
|
|
304
|
+
|
|
305
|
+
return 0
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
if __name__ == "__main__":
|
|
309
|
+
exit(main())
|