ciris-agent 1.7.7__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.
- ciris_adapters/README.md +113 -0
- ciris_adapters/__init__.py +30 -0
- ciris_adapters/ciris_covenant_metrics/README.md +144 -0
- ciris_adapters/ciris_covenant_metrics/__init__.py +36 -0
- ciris_adapters/ciris_covenant_metrics/adapter.py +249 -0
- ciris_adapters/ciris_covenant_metrics/manifest.json +152 -0
- ciris_adapters/ciris_covenant_metrics/services.py +403 -0
- ciris_adapters/ciris_hosted_tools/__init__.py +24 -0
- ciris_adapters/ciris_hosted_tools/adapter.py +169 -0
- ciris_adapters/ciris_hosted_tools/manifest.json +94 -0
- ciris_adapters/ciris_hosted_tools/services.py +744 -0
- ciris_adapters/external_data_sql/README.md +559 -0
- ciris_adapters/external_data_sql/__init__.py +43 -0
- ciris_adapters/external_data_sql/adapter.py +144 -0
- ciris_adapters/external_data_sql/configurable.py +315 -0
- ciris_adapters/external_data_sql/dialects/__init__.py +37 -0
- ciris_adapters/external_data_sql/dialects/base.py +133 -0
- ciris_adapters/external_data_sql/dialects/mysql.py +63 -0
- ciris_adapters/external_data_sql/dialects/postgresql.py +59 -0
- ciris_adapters/external_data_sql/dialects/sqlite.py +62 -0
- ciris_adapters/external_data_sql/example_config.json +88 -0
- ciris_adapters/external_data_sql/example_privacy_schema.yaml +127 -0
- ciris_adapters/external_data_sql/manifest.json +195 -0
- ciris_adapters/external_data_sql/privacy_schema_loader.py +189 -0
- ciris_adapters/external_data_sql/protocol.py +101 -0
- ciris_adapters/external_data_sql/schemas.py +146 -0
- ciris_adapters/external_data_sql/service.py +1547 -0
- ciris_adapters/external_data_sql/service_old.py +492 -0
- ciris_adapters/home_assistant/__init__.py +63 -0
- ciris_adapters/home_assistant/adapter.py +201 -0
- ciris_adapters/home_assistant/communication_service.py +347 -0
- ciris_adapters/home_assistant/configurable.py +667 -0
- ciris_adapters/home_assistant/manifest.json +203 -0
- ciris_adapters/home_assistant/schemas.py +129 -0
- ciris_adapters/home_assistant/service.py +751 -0
- ciris_adapters/home_assistant/tool_service.py +441 -0
- ciris_adapters/mcp_client/__init__.py +82 -0
- ciris_adapters/mcp_client/adapter.py +847 -0
- ciris_adapters/mcp_client/config.py +280 -0
- ciris_adapters/mcp_client/configurable.py +422 -0
- ciris_adapters/mcp_client/manifest.json +185 -0
- ciris_adapters/mcp_client/mcp_communication_service.py +393 -0
- ciris_adapters/mcp_client/mcp_tool_service.py +463 -0
- ciris_adapters/mcp_client/mcp_wise_service.py +394 -0
- ciris_adapters/mcp_client/schemas.py +149 -0
- ciris_adapters/mcp_client/security.py +592 -0
- ciris_adapters/mcp_common/__init__.py +44 -0
- ciris_adapters/mcp_common/manifest.json +25 -0
- ciris_adapters/mcp_common/protocol.py +315 -0
- ciris_adapters/mcp_common/schemas.py +225 -0
- ciris_adapters/mcp_server/__init__.py +47 -0
- ciris_adapters/mcp_server/adapter.py +581 -0
- ciris_adapters/mcp_server/config.py +260 -0
- ciris_adapters/mcp_server/configurable.py +393 -0
- ciris_adapters/mcp_server/handlers.py +663 -0
- ciris_adapters/mcp_server/manifest.json +211 -0
- ciris_adapters/mcp_server/security.py +500 -0
- ciris_adapters/mock_llm/README.md +117 -0
- ciris_adapters/mock_llm/__init__.py +21 -0
- ciris_adapters/mock_llm/adapter.py +131 -0
- ciris_adapters/mock_llm/configurable.py +237 -0
- ciris_adapters/mock_llm/manifest.json +106 -0
- ciris_adapters/mock_llm/protocol.py +37 -0
- ciris_adapters/mock_llm/responses.py +520 -0
- ciris_adapters/mock_llm/responses_action_selection.py +1041 -0
- ciris_adapters/mock_llm/responses_epistemic.py +17 -0
- ciris_adapters/mock_llm/responses_feedback.py +27 -0
- ciris_adapters/mock_llm/schemas.py +35 -0
- ciris_adapters/mock_llm/service.py +294 -0
- ciris_adapters/navigation/__init__.py +21 -0
- ciris_adapters/navigation/adapter.py +129 -0
- ciris_adapters/navigation/configurable.py +239 -0
- ciris_adapters/navigation/manifest.json +104 -0
- ciris_adapters/navigation/service.py +487 -0
- ciris_adapters/reddit/README.md +132 -0
- ciris_adapters/reddit/REDDIT_ADAPTER_ANALYSIS.md +715 -0
- ciris_adapters/reddit/REDDIT_ADAPTER_SUMMARY.txt +278 -0
- ciris_adapters/reddit/REDDIT_ANALYSIS_INDEX.md +307 -0
- ciris_adapters/reddit/REDDIT_PRODUCTION_READINESS_PLAN.md +518 -0
- ciris_adapters/reddit/__init__.py +15 -0
- ciris_adapters/reddit/adapter.py +189 -0
- ciris_adapters/reddit/configurable.py +274 -0
- ciris_adapters/reddit/error_handler.py +307 -0
- ciris_adapters/reddit/manifest.json +218 -0
- ciris_adapters/reddit/observer.py +532 -0
- ciris_adapters/reddit/protocol.py +34 -0
- ciris_adapters/reddit/schemas.py +433 -0
- ciris_adapters/reddit/service.py +1471 -0
- ciris_adapters/sample_adapter/README.md +474 -0
- ciris_adapters/sample_adapter/__init__.py +45 -0
- ciris_adapters/sample_adapter/adapter.py +208 -0
- ciris_adapters/sample_adapter/configurable.py +469 -0
- ciris_adapters/sample_adapter/manifest.json +247 -0
- ciris_adapters/sample_adapter/services.py +486 -0
- ciris_adapters/weather/__init__.py +16 -0
- ciris_adapters/weather/adapter.py +130 -0
- ciris_adapters/weather/configurable.py +240 -0
- ciris_adapters/weather/manifest.json +156 -0
- ciris_adapters/weather/service.py +600 -0
- ciris_agent-1.7.7.dist-info/METADATA +284 -0
- ciris_agent-1.7.7.dist-info/RECORD +986 -0
- ciris_agent-1.7.7.dist-info/WHEEL +5 -0
- ciris_agent-1.7.7.dist-info/entry_points.txt +15 -0
- ciris_agent-1.7.7.dist-info/licenses/LICENSE +205 -0
- ciris_agent-1.7.7.dist-info/licenses/NOTICE +82 -0
- ciris_agent-1.7.7.dist-info/top_level.txt +4 -0
- ciris_engine/__init__.py +15 -0
- ciris_engine/ciris_templates/ally.yaml +632 -0
- ciris_engine/ciris_templates/default.yaml +411 -0
- ciris_engine/ciris_templates/echo-core.yaml +629 -0
- ciris_engine/ciris_templates/echo-speculative.yaml +764 -0
- ciris_engine/ciris_templates/echo.yaml +647 -0
- ciris_engine/ciris_templates/sage.yaml +332 -0
- ciris_engine/ciris_templates/scout.yaml +338 -0
- ciris_engine/ciris_templates/test.yaml +168 -0
- ciris_engine/cli.py +42 -0
- ciris_engine/config/CIRIS_SERVICES.json +19 -0
- ciris_engine/config/MODEL_CAPABILITIES.json +419 -0
- ciris_engine/config/PRICING_DATA.json +179 -0
- ciris_engine/config/__init__.py +50 -0
- ciris_engine/config/ciris_services.py +113 -0
- ciris_engine/config/model_capabilities.py +388 -0
- ciris_engine/config/pricing_models.py +276 -0
- ciris_engine/constants.py +35 -0
- ciris_engine/data/__init__.py +1 -0
- ciris_engine/data/covenant_1.0b.txt +978 -0
- ciris_engine/gui_static/11steps.svg +107 -0
- ciris_engine/gui_static/2x-schematics.png +0 -0
- ciris_engine/gui_static/404/index.html +1 -0
- ciris_engine/gui_static/404.html +1 -0
- ciris_engine/gui_static/_next/static/0edhkwDxd5UccTsCmtaBi/_buildManifest.js +1 -0
- ciris_engine/gui_static/_next/static/0edhkwDxd5UccTsCmtaBi/_ssgManifest.js +1 -0
- ciris_engine/gui_static/_next/static/U-3xTQao7hc2wnAi-Uekm/_buildManifest.js +1 -0
- ciris_engine/gui_static/_next/static/U-3xTQao7hc2wnAi-Uekm/_ssgManifest.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/3297-60e86ba0f8a7b040.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/3835-2aad4b7f5f8e4643.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/4499-99a0bc47de0b8975.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/4534-af88cd4ba6e99bff.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/4541-84b455f9e0dc4cfe.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/4789-61412711484754bb.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/6539-c6398bc9d7018430.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/704-8e827b26cc8c2d32.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/704-fb45d630f3192c6f.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/8072-de4952a2e6d2b33f.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/8315-b91d03a3949db0af.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/8386-f93a83ccbd789bd9.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/87c73c54-781a7f35148d5433.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/8903-fefea3339a02d41b.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/9090-e66485adf8d9d990.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/_not-found/page-a67d9808462c23b1.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/api-keys/page-2d7ee1583bbbd02e.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/api-keys/page-6a3c2bae6fe92b7b.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/consent/page-2ed3a035136bc4e8.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/consent/page-b2f5c91844a32422.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/page-25b90f89af3ea58c.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/page-b65d16c94ecaf69c.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/privacy/page-675b6d05c8f9184f.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/privacy/page-cbee2e1c8ab52145.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/settings/page-0f44da06697cf9f0.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/account/settings/page-563420253577edbf.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/adapters/page-1854631018bc32be.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/agents/page-8353752c176a7c70.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/agents/page-f61a529f110a6040.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/api-demo/page-7f19b9d20d39be28.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/api-demo/page-d1063938f249b8bd.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/audit/page-321b6728b8fff0bb.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/audit/page-ebac35ca961a1277.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/billing/page-6f3dc3bd02924f8e.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/billing/page-fa4a469f814c821a.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/comms/page-0d4f734269addd8f.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/comms/page-79227d426050089c.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/config/page-018d21d683b6e5bc.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/config/page-2aa5a5363ca2a371.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/consent/page-198373205fd316e2.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/consent/page-f2ca39e7713b13f8.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/dashboard/page-1dd5a196f643c60d.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/dashboard/page-530a04d3abbb8cda.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/docs/page-3193b06d094ab654.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/docs/page-330e996dedb87aba.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/layout-0a70f5fc460298b1.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/layout-21f2f99dd5b336e9.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/login/page-33240e6c6034a49d.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/login/page-68ffab6d54a7fdcd.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/logs/page-8a6167aecc4a475c.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/memory/page-9ca8c5d0056de3ff.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/memory/page-e961226941c18f81.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/page-6fdb065a787a4974.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/page-89f87d431be6064a.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/runtime/page-2e728b9c43aa164d.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/runtime/page-c7dd033dc40a72f0.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/services/page-ae9f0bdf11d01a95.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/services/page-b10feb79ca5d75e5.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/sessions/page-13ebe7ef1c16ae11.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/sessions/page-e6c82b16d617f785.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/setup/page-0beb5f5b5a5c20fc.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/setup/page-2595e729eae30c0e.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/status-dashboard/page-1037c987aecc3653.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/status-dashboard/page-2ffd147f6d3162ff.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/system/page-2c5798d58cafcd91.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/system/page-505b1ba4eceb01c3.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/test-auth/page-b0cad31d5cb1b2fa.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/test-auth/page-f3ecd7a8012df230.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/test-login/page-f35117fdc4105801.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/test-login/page-fb583a7924114906.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/test-sdk/page-50f116fd76935563.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/test-sdk/page-c37d8aa5ba623a44.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/tools/page-429aec7a707777ef.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/tools/page-5f705aad60e0c04e.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/users/page-13476b8b0f3808cc.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/users/page-7e500d154ed5bba4.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/wa/page-cc4a9d8a5cb44d08.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/app/wa/page-ec3e429efbc79230.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/framework-9d29490f5ba089ba.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/main-1f554952e47a82c4.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/main-app-26fa8aed029082e5.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/main-app-97b0486ef6bcef25.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/pages/_app-6ce685456e616eb2.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/pages/_error-d4bce98d93fe21e7.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- ciris_engine/gui_static/_next/static/chunks/webpack-fcebd240b7f8477d.js +1 -0
- ciris_engine/gui_static/_next/static/css/16b94b1fe0cc6e37.css +3 -0
- ciris_engine/gui_static/_next/static/css/77a24ceaae86deff.css +3 -0
- ciris_engine/gui_static/_next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
- ciris_engine/gui_static/_next/static/media/747892c23ea88013-s.woff2 +0 -0
- ciris_engine/gui_static/_next/static/media/8d697b304b401681-s.woff2 +0 -0
- ciris_engine/gui_static/_next/static/media/93f479601ee12b01-s.p.woff2 +0 -0
- ciris_engine/gui_static/_next/static/media/9610d9e46709d722-s.woff2 +0 -0
- ciris_engine/gui_static/_next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
- ciris_engine/gui_static/_next/static/media/d8298875641ec7d4-s.p.woff2 +0 -0
- ciris_engine/gui_static/account/api-keys/index.html +1 -0
- ciris_engine/gui_static/account/api-keys/index.txt +27 -0
- ciris_engine/gui_static/account/consent/index.html +1 -0
- ciris_engine/gui_static/account/consent/index.txt +27 -0
- ciris_engine/gui_static/account/index.html +1 -0
- ciris_engine/gui_static/account/index.txt +27 -0
- ciris_engine/gui_static/account/privacy/index.html +1 -0
- ciris_engine/gui_static/account/privacy/index.txt +27 -0
- ciris_engine/gui_static/account/settings/index.html +1 -0
- ciris_engine/gui_static/account/settings/index.txt +27 -0
- ciris_engine/gui_static/adapters/index.html +1 -0
- ciris_engine/gui_static/adapters/index.txt +27 -0
- ciris_engine/gui_static/agents/index.html +1 -0
- ciris_engine/gui_static/agents/index.txt +27 -0
- ciris_engine/gui_static/andrew-roberts-euBRXcx57T4-unsplash.jpg +0 -0
- ciris_engine/gui_static/api-demo/index.html +1 -0
- ciris_engine/gui_static/api-demo/index.txt +27 -0
- ciris_engine/gui_static/audit/index.html +1 -0
- ciris_engine/gui_static/audit/index.txt +27 -0
- ciris_engine/gui_static/billing/index.html +1 -0
- ciris_engine/gui_static/billing/index.txt +27 -0
- ciris_engine/gui_static/blurryinfo.png +0 -0
- ciris_engine/gui_static/chip-vincent-PkQDwfl9Flc-unsplash.jpg +0 -0
- ciris_engine/gui_static/ciris-architecture.svg +338 -0
- ciris_engine/gui_static/comms/index.html +1 -0
- ciris_engine/gui_static/comms/index.txt +27 -0
- ciris_engine/gui_static/config/index.html +1 -0
- ciris_engine/gui_static/config/index.txt +27 -0
- ciris_engine/gui_static/consent/index.html +1 -0
- ciris_engine/gui_static/consent/index.txt +27 -0
- ciris_engine/gui_static/dashboard/index.html +1 -0
- ciris_engine/gui_static/dashboard/index.txt +27 -0
- ciris_engine/gui_static/docs/index.html +1 -0
- ciris_engine/gui_static/docs/index.txt +27 -0
- ciris_engine/gui_static/eric.png +0 -0
- ciris_engine/gui_static/file.svg +1 -0
- ciris_engine/gui_static/globe.svg +1 -0
- ciris_engine/gui_static/index.html +1 -0
- ciris_engine/gui_static/index.txt +27 -0
- ciris_engine/gui_static/infogfx-1@2x.png +0 -0
- ciris_engine/gui_static/infogfx-2.png +0 -0
- ciris_engine/gui_static/infogfx-dark-1.png +0 -0
- ciris_engine/gui_static/kelly-vohs-soSTXmIxTDU-unsplash.jpg +0 -0
- ciris_engine/gui_static/login/index.html +1 -0
- ciris_engine/gui_static/login/index.txt +27 -0
- ciris_engine/gui_static/logs/index.html +1 -0
- ciris_engine/gui_static/logs/index.txt +27 -0
- ciris_engine/gui_static/memory/index.html +1 -0
- ciris_engine/gui_static/memory/index.txt +27 -0
- ciris_engine/gui_static/nathan-farrish-ArcTfEoBgzs-unsplash.jpg +0 -0
- ciris_engine/gui_static/next.svg +1 -0
- ciris_engine/gui_static/overview.svg +512 -0
- ciris_engine/gui_static/overview1.svg +407 -0
- ciris_engine/gui_static/overview2.svg +370 -0
- ciris_engine/gui_static/pipeline-visualization.svg +278 -0
- ciris_engine/gui_static/privacy-policy.html +160 -0
- ciris_engine/gui_static/runtime/index.html +8 -0
- ciris_engine/gui_static/runtime/index.txt +27 -0
- ciris_engine/gui_static/services/index.html +1 -0
- ciris_engine/gui_static/services/index.txt +27 -0
- ciris_engine/gui_static/sessions/index.html +1 -0
- ciris_engine/gui_static/sessions/index.txt +27 -0
- ciris_engine/gui_static/setup/index.html +1 -0
- ciris_engine/gui_static/setup/index.txt +27 -0
- ciris_engine/gui_static/status-dashboard/index.html +1 -0
- ciris_engine/gui_static/status-dashboard/index.txt +27 -0
- ciris_engine/gui_static/system/index.html +1 -0
- ciris_engine/gui_static/system/index.txt +27 -0
- ciris_engine/gui_static/terms-of-service.html +174 -0
- ciris_engine/gui_static/test-auth/index.html +1 -0
- ciris_engine/gui_static/test-auth/index.txt +27 -0
- ciris_engine/gui_static/test-login/index.html +1 -0
- ciris_engine/gui_static/test-login/index.txt +27 -0
- ciris_engine/gui_static/test-sdk/index.html +1 -0
- ciris_engine/gui_static/test-sdk/index.txt +27 -0
- ciris_engine/gui_static/tools/index.html +1 -0
- ciris_engine/gui_static/tools/index.txt +27 -0
- ciris_engine/gui_static/users/index.html +1 -0
- ciris_engine/gui_static/users/index.txt +27 -0
- ciris_engine/gui_static/vercel.svg +1 -0
- ciris_engine/gui_static/videos/video1.mp4 +0 -0
- ciris_engine/gui_static/videos/video3.mp4 +0 -0
- ciris_engine/gui_static/wa/index.html +1 -0
- ciris_engine/gui_static/wa/index.txt +27 -0
- ciris_engine/gui_static/window.svg +1 -0
- ciris_engine/logic/__init__.py +8 -0
- ciris_engine/logic/adapters/__init__.py +74 -0
- ciris_engine/logic/adapters/api/__init__.py +5 -0
- ciris_engine/logic/adapters/api/adapter.py +1037 -0
- ciris_engine/logic/adapters/api/api_communication.py +370 -0
- ciris_engine/logic/adapters/api/api_document.py +330 -0
- ciris_engine/logic/adapters/api/api_observer.py +24 -0
- ciris_engine/logic/adapters/api/api_runtime_control.py +388 -0
- ciris_engine/logic/adapters/api/api_tools.py +299 -0
- ciris_engine/logic/adapters/api/api_vision.py +215 -0
- ciris_engine/logic/adapters/api/app.py +272 -0
- ciris_engine/logic/adapters/api/auth.py +159 -0
- ciris_engine/logic/adapters/api/config.py +101 -0
- ciris_engine/logic/adapters/api/constants.py +55 -0
- ciris_engine/logic/adapters/api/dependencies/__init__.py +1 -0
- ciris_engine/logic/adapters/api/dependencies/auth.py +260 -0
- ciris_engine/logic/adapters/api/endpoints/__init__.py +1 -0
- ciris_engine/logic/adapters/api/endpoints/emergency.py +86 -0
- ciris_engine/logic/adapters/api/middleware/__init__.py +1 -0
- ciris_engine/logic/adapters/api/middleware/rate_limiter.py +302 -0
- ciris_engine/logic/adapters/api/models.py +29 -0
- ciris_engine/logic/adapters/api/routes/__init__.py +52 -0
- ciris_engine/logic/adapters/api/routes/agent.py +1762 -0
- ciris_engine/logic/adapters/api/routes/audit.py +707 -0
- ciris_engine/logic/adapters/api/routes/auth.py +1745 -0
- ciris_engine/logic/adapters/api/routes/billing.py +895 -0
- ciris_engine/logic/adapters/api/routes/config.py +329 -0
- ciris_engine/logic/adapters/api/routes/connectors.py +534 -0
- ciris_engine/logic/adapters/api/routes/consent.py +637 -0
- ciris_engine/logic/adapters/api/routes/dsar.py +637 -0
- ciris_engine/logic/adapters/api/routes/dsar_multi_source.py +484 -0
- ciris_engine/logic/adapters/api/routes/emergency.py +302 -0
- ciris_engine/logic/adapters/api/routes/memory.py +733 -0
- ciris_engine/logic/adapters/api/routes/memory_filters.py +230 -0
- ciris_engine/logic/adapters/api/routes/memory_models.py +112 -0
- ciris_engine/logic/adapters/api/routes/memory_queries.py +236 -0
- ciris_engine/logic/adapters/api/routes/memory_query_helpers.py +394 -0
- ciris_engine/logic/adapters/api/routes/memory_visualization.py +359 -0
- ciris_engine/logic/adapters/api/routes/memory_visualization_helpers.py +110 -0
- ciris_engine/logic/adapters/api/routes/partnership.py +541 -0
- ciris_engine/logic/adapters/api/routes/setup.py +1374 -0
- ciris_engine/logic/adapters/api/routes/system.py +3049 -0
- ciris_engine/logic/adapters/api/routes/system_extensions.py +952 -0
- ciris_engine/logic/adapters/api/routes/telemetry.py +1987 -0
- ciris_engine/logic/adapters/api/routes/telemetry_converters.py +141 -0
- ciris_engine/logic/adapters/api/routes/telemetry_helpers.py +111 -0
- ciris_engine/logic/adapters/api/routes/telemetry_logs_reader.py +280 -0
- ciris_engine/logic/adapters/api/routes/telemetry_metrics.py +131 -0
- ciris_engine/logic/adapters/api/routes/telemetry_models.py +190 -0
- ciris_engine/logic/adapters/api/routes/telemetry_otlp.py +878 -0
- ciris_engine/logic/adapters/api/routes/telemetry_resource_helpers.py +191 -0
- ciris_engine/logic/adapters/api/routes/tickets.py +541 -0
- ciris_engine/logic/adapters/api/routes/tools.py +556 -0
- ciris_engine/logic/adapters/api/routes/transparency.py +281 -0
- ciris_engine/logic/adapters/api/routes/users.py +981 -0
- ciris_engine/logic/adapters/api/routes/verification.py +373 -0
- ciris_engine/logic/adapters/api/routes/wa.py +369 -0
- ciris_engine/logic/adapters/api/service_configuration.py +177 -0
- ciris_engine/logic/adapters/api/services/__init__.py +1 -0
- ciris_engine/logic/adapters/api/services/auth_service.py +1417 -0
- ciris_engine/logic/adapters/api/services/oauth_security.py +68 -0
- ciris_engine/logic/adapters/base.py +141 -0
- ciris_engine/logic/adapters/base_adapter.py +73 -0
- ciris_engine/logic/adapters/base_observer.py +1141 -0
- ciris_engine/logic/adapters/base_vision.py +312 -0
- ciris_engine/logic/adapters/cirisnode_client.py +307 -0
- ciris_engine/logic/adapters/cli/__init__.py +3 -0
- ciris_engine/logic/adapters/cli/adapter.py +207 -0
- ciris_engine/logic/adapters/cli/cli_adapter.py +902 -0
- ciris_engine/logic/adapters/cli/cli_observer.py +268 -0
- ciris_engine/logic/adapters/cli/cli_tools.py +427 -0
- ciris_engine/logic/adapters/cli/cli_wa_service.py +134 -0
- ciris_engine/logic/adapters/cli/config.py +73 -0
- ciris_engine/logic/adapters/discord/__init__.py +3 -0
- ciris_engine/logic/adapters/discord/adapter.py +783 -0
- ciris_engine/logic/adapters/discord/ciris_discord_client.py +159 -0
- ciris_engine/logic/adapters/discord/config.py +177 -0
- ciris_engine/logic/adapters/discord/constants.py +185 -0
- ciris_engine/logic/adapters/discord/discord-stubs.pyi +50 -0
- ciris_engine/logic/adapters/discord/discord_adapter.py +1584 -0
- ciris_engine/logic/adapters/discord/discord_audit.py +150 -0
- ciris_engine/logic/adapters/discord/discord_channel_manager.py +351 -0
- ciris_engine/logic/adapters/discord/discord_connection_manager.py +313 -0
- ciris_engine/logic/adapters/discord/discord_embed_formatter.py +369 -0
- ciris_engine/logic/adapters/discord/discord_error_classifier.py +302 -0
- ciris_engine/logic/adapters/discord/discord_error_handler.py +316 -0
- ciris_engine/logic/adapters/discord/discord_guidance_handler.py +460 -0
- ciris_engine/logic/adapters/discord/discord_message_handler.py +207 -0
- ciris_engine/logic/adapters/discord/discord_observer.py +670 -0
- ciris_engine/logic/adapters/discord/discord_rate_limiter.py +249 -0
- ciris_engine/logic/adapters/discord/discord_reaction_handler.py +278 -0
- ciris_engine/logic/adapters/discord/discord_tool_handler.py +465 -0
- ciris_engine/logic/adapters/discord/discord_tool_service.py +790 -0
- ciris_engine/logic/adapters/discord/discord_tools.py +90 -0
- ciris_engine/logic/adapters/discord/discord_vision_helper.py +148 -0
- ciris_engine/logic/adapters/discord/py.typed +0 -0
- ciris_engine/logic/adapters/document_parser.py +320 -0
- ciris_engine/logic/audit/__init__.py +10 -0
- ciris_engine/logic/audit/hash_chain.py +313 -0
- ciris_engine/logic/audit/signature_manager.py +352 -0
- ciris_engine/logic/audit/verifier.py +408 -0
- ciris_engine/logic/buses/__init__.py +21 -0
- ciris_engine/logic/buses/base_bus.py +178 -0
- ciris_engine/logic/buses/bus_manager.py +121 -0
- ciris_engine/logic/buses/communication_bus.py +387 -0
- ciris_engine/logic/buses/llm_bus.py +722 -0
- ciris_engine/logic/buses/memory_bus.py +577 -0
- ciris_engine/logic/buses/prohibitions.py +502 -0
- ciris_engine/logic/buses/runtime_control_bus.py +539 -0
- ciris_engine/logic/buses/tool_bus.py +482 -0
- ciris_engine/logic/buses/wise_bus.py +684 -0
- ciris_engine/logic/config/__init__.py +25 -0
- ciris_engine/logic/config/bootstrap.py +255 -0
- ciris_engine/logic/config/config_accessor.py +202 -0
- ciris_engine/logic/config/db_paths.py +194 -0
- ciris_engine/logic/config/env_utils.py +39 -0
- ciris_engine/logic/conscience/__init__.py +16 -0
- ciris_engine/logic/conscience/build_deferral_package.py +0 -0
- ciris_engine/logic/conscience/core.py +688 -0
- ciris_engine/logic/conscience/interface.py +33 -0
- ciris_engine/logic/conscience/registry.py +76 -0
- ciris_engine/logic/conscience/thought_depth_guardrail.py +231 -0
- ciris_engine/logic/conscience/updated_status_conscience.py +156 -0
- ciris_engine/logic/context/__init__.py +10 -0
- ciris_engine/logic/context/batch_context.py +550 -0
- ciris_engine/logic/context/builder.py +149 -0
- ciris_engine/logic/context/channel_resolution.py +136 -0
- ciris_engine/logic/context/secrets_snapshot.py +52 -0
- ciris_engine/logic/context/system_snapshot.py +116 -0
- ciris_engine/logic/context/system_snapshot_helpers.py +1651 -0
- ciris_engine/logic/covenant/__init__.py +33 -0
- ciris_engine/logic/covenant/executor.py +303 -0
- ciris_engine/logic/covenant/extractor.py +382 -0
- ciris_engine/logic/covenant/handler.py +241 -0
- ciris_engine/logic/covenant/verifier.py +383 -0
- ciris_engine/logic/dma/__init__.py +15 -0
- ciris_engine/logic/dma/action_selection/__init__.py +11 -0
- ciris_engine/logic/dma/action_selection/action_instruction_generator.py +444 -0
- ciris_engine/logic/dma/action_selection/context_builder.py +508 -0
- ciris_engine/logic/dma/action_selection/faculty_integration.py +193 -0
- ciris_engine/logic/dma/action_selection/special_cases.py +132 -0
- ciris_engine/logic/dma/action_selection_pdma.py +365 -0
- ciris_engine/logic/dma/base_dma.py +335 -0
- ciris_engine/logic/dma/csdma.py +239 -0
- ciris_engine/logic/dma/dma_executor.py +575 -0
- ciris_engine/logic/dma/dsdma_base.py +410 -0
- ciris_engine/logic/dma/exceptions.py +4 -0
- ciris_engine/logic/dma/factory.py +150 -0
- ciris_engine/logic/dma/pdma.py +120 -0
- ciris_engine/logic/dma/prompt_loader.py +189 -0
- ciris_engine/logic/dma/prompts/action_selection_pdma.yml +58 -0
- ciris_engine/logic/dma/prompts/csdma_common_sense.yml +28 -0
- ciris_engine/logic/dma/prompts/dsdma_base.yml +17 -0
- ciris_engine/logic/dma/prompts/pdma_ethical.yml +42 -0
- ciris_engine/logic/formatters/__init__.py +26 -0
- ciris_engine/logic/formatters/crisis_resources.py +80 -0
- ciris_engine/logic/formatters/escalation.py +21 -0
- ciris_engine/logic/formatters/identity.py +224 -0
- ciris_engine/logic/formatters/prompt_blocks.py +64 -0
- ciris_engine/logic/formatters/system_snapshot.py +193 -0
- ciris_engine/logic/formatters/user_profiles.py +108 -0
- ciris_engine/logic/handlers/__init__.py +1 -0
- ciris_engine/logic/handlers/control/__init__.py +1 -0
- ciris_engine/logic/handlers/control/defer_handler.py +195 -0
- ciris_engine/logic/handlers/control/ponder_handler.py +154 -0
- ciris_engine/logic/handlers/control/reject_handler.py +81 -0
- ciris_engine/logic/handlers/external/__init__.py +1 -0
- ciris_engine/logic/handlers/external/observe_handler.py +154 -0
- ciris_engine/logic/handlers/external/speak_handler.py +250 -0
- ciris_engine/logic/handlers/external/tool_handler.py +148 -0
- ciris_engine/logic/handlers/memory/__init__.py +1 -0
- ciris_engine/logic/handlers/memory/forget_handler.py +107 -0
- ciris_engine/logic/handlers/memory/memorize_handler.py +391 -0
- ciris_engine/logic/handlers/memory/recall_handler.py +213 -0
- ciris_engine/logic/handlers/terminal/__init__.py +1 -0
- ciris_engine/logic/handlers/terminal/task_complete_handler.py +299 -0
- ciris_engine/logic/infrastructure/__init__.py +1 -0
- ciris_engine/logic/infrastructure/handlers/__init__.py +8 -0
- ciris_engine/logic/infrastructure/handlers/action_dispatcher.py +382 -0
- ciris_engine/logic/infrastructure/handlers/base_handler.py +450 -0
- ciris_engine/logic/infrastructure/handlers/exceptions.py +2 -0
- ciris_engine/logic/infrastructure/handlers/handler_registry.py +59 -0
- ciris_engine/logic/infrastructure/handlers/helpers.py +55 -0
- ciris_engine/logic/infrastructure/step_streaming.py +149 -0
- ciris_engine/logic/infrastructure/sub_services/__init__.py +1 -0
- ciris_engine/logic/infrastructure/sub_services/identity_variance_monitor.py +1035 -0
- ciris_engine/logic/infrastructure/sub_services/pattern_analysis_loop.py +758 -0
- ciris_engine/logic/infrastructure/sub_services/wa_cli_bootstrap.py +229 -0
- ciris_engine/logic/infrastructure/sub_services/wa_cli_display.py +176 -0
- ciris_engine/logic/infrastructure/sub_services/wa_cli_oauth.py +404 -0
- ciris_engine/logic/infrastructure/sub_services/wa_cli_wizard.py +181 -0
- ciris_engine/logic/persistence/__init__.py +130 -0
- ciris_engine/logic/persistence/analytics.py +97 -0
- ciris_engine/logic/persistence/db/__init__.py +28 -0
- ciris_engine/logic/persistence/db/core.py +520 -0
- ciris_engine/logic/persistence/db/dialect.py +380 -0
- ciris_engine/logic/persistence/db/execution_helpers.py +216 -0
- ciris_engine/logic/persistence/db/migration_runner.py +191 -0
- ciris_engine/logic/persistence/db/operations.py +313 -0
- ciris_engine/logic/persistence/db/query_builder.py +232 -0
- ciris_engine/logic/persistence/db/retry.py +154 -0
- ciris_engine/logic/persistence/db/setup.py +18 -0
- ciris_engine/logic/persistence/migrations/postgres/001_initial_schema.sql +4 -0
- ciris_engine/logic/persistence/migrations/postgres/002_add_retry_status.sql +3 -0
- ciris_engine/logic/persistence/migrations/postgres/003_add_task_update_tracking.sql +8 -0
- ciris_engine/logic/persistence/migrations/postgres/004_add_occurrence_id.sql +54 -0
- ciris_engine/logic/persistence/migrations/postgres/005_add_consolidation_locks.sql +22 -0
- ciris_engine/logic/persistence/migrations/postgres/006_add_correlation_id_unique_index.sql +16 -0
- ciris_engine/logic/persistence/migrations/postgres/007_add_dsar_tickets.sql +39 -0
- ciris_engine/logic/persistence/migrations/postgres/008_rename_to_tickets_add_sop.sql +123 -0
- ciris_engine/logic/persistence/migrations/postgres/009_add_ticket_status_columns.sql +39 -0
- ciris_engine/logic/persistence/migrations/postgres/010_add_images_to_tasks.sql +5 -0
- ciris_engine/logic/persistence/migrations/sqlite/001_initial_schema.sql +357 -0
- ciris_engine/logic/persistence/migrations/sqlite/002_add_retry_status.sql +3 -0
- ciris_engine/logic/persistence/migrations/sqlite/003_add_task_update_tracking.sql +8 -0
- ciris_engine/logic/persistence/migrations/sqlite/004_add_occurrence_id.sql +45 -0
- ciris_engine/logic/persistence/migrations/sqlite/005_add_consolidation_locks.sql +22 -0
- ciris_engine/logic/persistence/migrations/sqlite/006_add_correlation_id_unique_index.sql +16 -0
- ciris_engine/logic/persistence/migrations/sqlite/007_add_dsar_tickets.sql +39 -0
- ciris_engine/logic/persistence/migrations/sqlite/008_rename_to_tickets_add_sop.sql +120 -0
- ciris_engine/logic/persistence/migrations/sqlite/009_add_ticket_status_columns.sql +129 -0
- ciris_engine/logic/persistence/migrations/sqlite/010_add_images_to_tasks.sql +17 -0
- ciris_engine/logic/persistence/models/__init__.py +141 -0
- ciris_engine/logic/persistence/models/correlations.py +881 -0
- ciris_engine/logic/persistence/models/deferral.py +68 -0
- ciris_engine/logic/persistence/models/dsar.py +286 -0
- ciris_engine/logic/persistence/models/graph.py +362 -0
- ciris_engine/logic/persistence/models/identity.py +264 -0
- ciris_engine/logic/persistence/models/queue_status.py +139 -0
- ciris_engine/logic/persistence/models/tasks.py +1043 -0
- ciris_engine/logic/persistence/models/thoughts.py +400 -0
- ciris_engine/logic/persistence/models/tickets.py +518 -0
- ciris_engine/logic/persistence/stores/__init__.py +13 -0
- ciris_engine/logic/persistence/stores/auth_helpers.py +117 -0
- ciris_engine/logic/persistence/stores/authentication_store.py +414 -0
- ciris_engine/logic/persistence/utils.py +212 -0
- ciris_engine/logic/processors/__init__.py +30 -0
- ciris_engine/logic/processors/core/__init__.py +1 -0
- ciris_engine/logic/processors/core/base_processor.py +280 -0
- ciris_engine/logic/processors/core/main_processor.py +1777 -0
- ciris_engine/logic/processors/core/step_decorators.py +1583 -0
- ciris_engine/logic/processors/core/thought_processor/__init__.py +20 -0
- ciris_engine/logic/processors/core/thought_processor/action_execution.py +49 -0
- ciris_engine/logic/processors/core/thought_processor/conscience_execution.py +382 -0
- ciris_engine/logic/processors/core/thought_processor/finalize_action.py +66 -0
- ciris_engine/logic/processors/core/thought_processor/gather_context.py +120 -0
- ciris_engine/logic/processors/core/thought_processor/main.py +920 -0
- ciris_engine/logic/processors/core/thought_processor/perform_aspdma.py +86 -0
- ciris_engine/logic/processors/core/thought_processor/perform_dmas.py +106 -0
- ciris_engine/logic/processors/core/thought_processor/recursive_processing.py +237 -0
- ciris_engine/logic/processors/core/thought_processor/round_complete.py +52 -0
- ciris_engine/logic/processors/core/thought_processor/start_round.py +64 -0
- ciris_engine/logic/processors/exceptions.py +59 -0
- ciris_engine/logic/processors/states/__init__.py +1 -0
- ciris_engine/logic/processors/states/dream_processor.py +1381 -0
- ciris_engine/logic/processors/states/play_processor.py +141 -0
- ciris_engine/logic/processors/states/shutdown_processor.py +623 -0
- ciris_engine/logic/processors/states/solitude_processor.py +305 -0
- ciris_engine/logic/processors/states/wakeup_processor.py +802 -0
- ciris_engine/logic/processors/states/work_processor.py +742 -0
- ciris_engine/logic/processors/support/__init__.py +1 -0
- ciris_engine/logic/processors/support/dma_orchestrator.py +336 -0
- ciris_engine/logic/processors/support/processing_queue.py +133 -0
- ciris_engine/logic/processors/support/shutdown_condition_evaluator.py +294 -0
- ciris_engine/logic/processors/support/state_manager.py +358 -0
- ciris_engine/logic/processors/support/task_manager.py +303 -0
- ciris_engine/logic/processors/support/thought_escalation.py +116 -0
- ciris_engine/logic/processors/support/thought_manager.py +328 -0
- ciris_engine/logic/processors/support/thought_manager_enhanced.py +105 -0
- ciris_engine/logic/registries/__init__.py +34 -0
- ciris_engine/logic/registries/base.py +653 -0
- ciris_engine/logic/registries/circuit_breaker.py +275 -0
- ciris_engine/logic/registries/typed_registries.py +184 -0
- ciris_engine/logic/runtime/__init__.py +7 -0
- ciris_engine/logic/runtime/adapter_loader.py +261 -0
- ciris_engine/logic/runtime/adapter_manager.py +1053 -0
- ciris_engine/logic/runtime/ciris_runtime.py +2342 -0
- ciris_engine/logic/runtime/ciris_runtime_helpers.py +923 -0
- ciris_engine/logic/runtime/component_builder.py +361 -0
- ciris_engine/logic/runtime/identity_manager.py +219 -0
- ciris_engine/logic/runtime/module_loader.py +207 -0
- ciris_engine/logic/runtime/prevent_sideeffects.py +30 -0
- ciris_engine/logic/runtime/runtime_interface.py +23 -0
- ciris_engine/logic/runtime/service_initializer.py +1623 -0
- ciris_engine/logic/secrets/__init__.py +30 -0
- ciris_engine/logic/secrets/encryption.py +175 -0
- ciris_engine/logic/secrets/filter.py +295 -0
- ciris_engine/logic/secrets/service.py +652 -0
- ciris_engine/logic/secrets/store.py +669 -0
- ciris_engine/logic/services/__init__.py +1 -0
- ciris_engine/logic/services/adaptation/__init__.py +3 -0
- ciris_engine/logic/services/base_graph_service.py +142 -0
- ciris_engine/logic/services/base_infrastructure_service.py +69 -0
- ciris_engine/logic/services/base_scheduled_service.py +136 -0
- ciris_engine/logic/services/base_service.py +247 -0
- ciris_engine/logic/services/governance/__init__.py +3 -0
- ciris_engine/logic/services/governance/adaptive_filter/__init__.py +14 -0
- ciris_engine/logic/services/governance/adaptive_filter/service.py +818 -0
- ciris_engine/logic/services/governance/consent/__init__.py +53 -0
- ciris_engine/logic/services/governance/consent/air.py +403 -0
- ciris_engine/logic/services/governance/consent/decay.py +324 -0
- ciris_engine/logic/services/governance/consent/dsar_automation.py +589 -0
- ciris_engine/logic/services/governance/consent/exceptions.py +106 -0
- ciris_engine/logic/services/governance/consent/metrics.py +270 -0
- ciris_engine/logic/services/governance/consent/partnership.py +533 -0
- ciris_engine/logic/services/governance/consent/service.py +1256 -0
- ciris_engine/logic/services/governance/dsar/__init__.py +29 -0
- ciris_engine/logic/services/governance/dsar/orchestrator.py +977 -0
- ciris_engine/logic/services/governance/dsar/schemas.py +141 -0
- ciris_engine/logic/services/governance/dsar/signature_service.py +283 -0
- ciris_engine/logic/services/governance/self_observation/__init__.py +20 -0
- ciris_engine/logic/services/governance/self_observation/service.py +1153 -0
- ciris_engine/logic/services/governance/visibility/__init__.py +17 -0
- ciris_engine/logic/services/governance/visibility/service.py +512 -0
- ciris_engine/logic/services/governance/wise_authority/__init__.py +15 -0
- ciris_engine/logic/services/governance/wise_authority/service.py +827 -0
- ciris_engine/logic/services/graph/__init__.py +5 -0
- ciris_engine/logic/services/graph/audit_service/__init__.py +5 -0
- ciris_engine/logic/services/graph/audit_service/service.py +1675 -0
- ciris_engine/logic/services/graph/base.py +208 -0
- ciris_engine/logic/services/graph/config_service/__init__.py +5 -0
- ciris_engine/logic/services/graph/config_service/service.py +372 -0
- ciris_engine/logic/services/graph/incident_service/__init__.py +5 -0
- ciris_engine/logic/services/graph/incident_service/service.py +803 -0
- ciris_engine/logic/services/graph/memory_service.py +1120 -0
- ciris_engine/logic/services/graph/telemetry_service/__init__.py +5 -0
- ciris_engine/logic/services/graph/telemetry_service/exceptions.py +104 -0
- ciris_engine/logic/services/graph/telemetry_service/helpers.py +1337 -0
- ciris_engine/logic/services/graph/telemetry_service/service.py +2429 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/__init__.py +17 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/aggregation_helpers.py +355 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/cleanup_helpers.py +438 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/compressor.py +260 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/__init__.py +27 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/audit.py +326 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/conversation.py +291 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/memory.py +197 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/metrics.py +251 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/task.py +257 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/consolidators/trace.py +363 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/data_converter.py +545 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/date_calculation_helpers.py +193 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/db_query_helpers.py +296 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/edge_helpers.py +92 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/edge_manager.py +896 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/extensive_helpers.py +322 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/period_manager.py +152 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/profound_helpers.py +277 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/query_manager.py +812 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/service.py +1692 -0
- ciris_engine/logic/services/graph/tsdb_consolidation/sql_builders.py +363 -0
- ciris_engine/logic/services/infrastructure/__init__.py +1 -0
- ciris_engine/logic/services/infrastructure/authentication/__init__.py +5 -0
- ciris_engine/logic/services/infrastructure/authentication/service.py +1634 -0
- ciris_engine/logic/services/infrastructure/database_maintenance/__init__.py +15 -0
- ciris_engine/logic/services/infrastructure/database_maintenance/service.py +764 -0
- ciris_engine/logic/services/infrastructure/resource_monitor/__init__.py +7 -0
- ciris_engine/logic/services/infrastructure/resource_monitor/ciris_billing_provider.py +755 -0
- ciris_engine/logic/services/infrastructure/resource_monitor/service.py +409 -0
- ciris_engine/logic/services/infrastructure/resource_monitor/simple_credit_provider.py +129 -0
- ciris_engine/logic/services/lifecycle/__init__.py +3 -0
- ciris_engine/logic/services/lifecycle/initialization/__init__.py +10 -0
- ciris_engine/logic/services/lifecycle/initialization/service.py +312 -0
- ciris_engine/logic/services/lifecycle/scheduler/__init__.py +5 -0
- ciris_engine/logic/services/lifecycle/scheduler/service.py +607 -0
- ciris_engine/logic/services/lifecycle/shutdown/__init__.py +9 -0
- ciris_engine/logic/services/lifecycle/shutdown/service.py +378 -0
- ciris_engine/logic/services/lifecycle/time/__init__.py +15 -0
- ciris_engine/logic/services/lifecycle/time/service.py +259 -0
- ciris_engine/logic/services/memory_service/__init__.py +8 -0
- ciris_engine/logic/services/mixins/__init__.py +13 -0
- ciris_engine/logic/services/mixins/example_usage.py +200 -0
- ciris_engine/logic/services/mixins/request_metrics.py +179 -0
- ciris_engine/logic/services/runtime/__init__.py +3 -0
- ciris_engine/logic/services/runtime/adapter_configuration/__init__.py +16 -0
- ciris_engine/logic/services/runtime/adapter_configuration/service.py +674 -0
- ciris_engine/logic/services/runtime/adapter_configuration/session.py +67 -0
- ciris_engine/logic/services/runtime/control_service/__init__.py +5 -0
- ciris_engine/logic/services/runtime/control_service/service.py +2269 -0
- ciris_engine/logic/services/runtime/llm_service/__init__.py +14 -0
- ciris_engine/logic/services/runtime/llm_service/pricing_calculator.py +279 -0
- ciris_engine/logic/services/runtime/llm_service/service.py +930 -0
- ciris_engine/logic/services/tools/__init__.py +5 -0
- ciris_engine/logic/services/tools/core_tool_service/__init__.py +8 -0
- ciris_engine/logic/services/tools/core_tool_service/service.py +852 -0
- ciris_engine/logic/setup/__init__.py +1 -0
- ciris_engine/logic/setup/first_run.py +250 -0
- ciris_engine/logic/setup/wizard.py +327 -0
- ciris_engine/logic/telemetry/__init__.py +46 -0
- ciris_engine/logic/telemetry/core.py +239 -0
- ciris_engine/logic/telemetry/hot_cold_config.py +133 -0
- ciris_engine/logic/telemetry/log_collector.py +190 -0
- ciris_engine/logic/telemetry/resource_monitor.py +7 -0
- ciris_engine/logic/telemetry/security.py +79 -0
- ciris_engine/logic/utils/__init__.py +18 -0
- ciris_engine/logic/utils/channel_utils.py +75 -0
- ciris_engine/logic/utils/consent/__init__.py +1 -0
- ciris_engine/logic/utils/consent/partnership_utils.py +172 -0
- ciris_engine/logic/utils/constants.py +92 -0
- ciris_engine/logic/utils/context_utils.py +145 -0
- ciris_engine/logic/utils/directory_setup.py +533 -0
- ciris_engine/logic/utils/graphql_context_provider.py +152 -0
- ciris_engine/logic/utils/identity_resolution.py +843 -0
- ciris_engine/logic/utils/incident_capture_handler.py +303 -0
- ciris_engine/logic/utils/initialization_manager.py +74 -0
- ciris_engine/logic/utils/jsondict_helpers.py +290 -0
- ciris_engine/logic/utils/log_sanitizer.py +97 -0
- ciris_engine/logic/utils/logging_config.py +151 -0
- ciris_engine/logic/utils/observability_decorators.py +544 -0
- ciris_engine/logic/utils/occurrence_utils.py +155 -0
- ciris_engine/logic/utils/path_resolution.py +281 -0
- ciris_engine/logic/utils/platform_detection.py +286 -0
- ciris_engine/logic/utils/privacy.py +266 -0
- ciris_engine/logic/utils/profile_loader.py +124 -0
- ciris_engine/logic/utils/profile_manager.py +16 -0
- ciris_engine/logic/utils/runtime_utils.py +69 -0
- ciris_engine/logic/utils/shutdown_manager.py +107 -0
- ciris_engine/logic/utils/task_formatters.py +60 -0
- ciris_engine/logic/utils/task_thought_factory.py +404 -0
- ciris_engine/logic/utils/thought_utils.py +54 -0
- ciris_engine/logic/utils/user_utils.py +70 -0
- ciris_engine/protocols/__init__.py +0 -0
- ciris_engine/protocols/adapters/__init__.py +35 -0
- ciris_engine/protocols/adapters/base.py +149 -0
- ciris_engine/protocols/adapters/configurable.py +265 -0
- ciris_engine/protocols/adapters/message.py +90 -0
- ciris_engine/protocols/audit/__init__.py +1 -0
- ciris_engine/protocols/buses/__init__.py +1 -0
- ciris_engine/protocols/config/__init__.py +1 -0
- ciris_engine/protocols/conscience/__init__.py +1 -0
- ciris_engine/protocols/consent.py +88 -0
- ciris_engine/protocols/context/__init__.py +1 -0
- ciris_engine/protocols/data/__init__.py +1 -0
- ciris_engine/protocols/dma/__init__.py +1 -0
- ciris_engine/protocols/dma/base.py +107 -0
- ciris_engine/protocols/faculties.py +34 -0
- ciris_engine/protocols/formatters/__init__.py +1 -0
- ciris_engine/protocols/handlers/__init__.py +1 -0
- ciris_engine/protocols/infrastructure/__init__.py +25 -0
- ciris_engine/protocols/infrastructure/base.py +377 -0
- ciris_engine/protocols/persistence/__init__.py +1 -0
- ciris_engine/protocols/pipeline_control.py +609 -0
- ciris_engine/protocols/processors/__init__.py +19 -0
- ciris_engine/protocols/processors/agent.py +299 -0
- ciris_engine/protocols/processors/base.py +130 -0
- ciris_engine/protocols/processors/orchestration.py +62 -0
- ciris_engine/protocols/registries/__init__.py +1 -0
- ciris_engine/protocols/runtime/__init__.py +1 -0
- ciris_engine/protocols/runtime/base.py +163 -0
- ciris_engine/protocols/secrets/__init__.py +1 -0
- ciris_engine/protocols/services/__init__.py +80 -0
- ciris_engine/protocols/services/adaptation/__init__.py +7 -0
- ciris_engine/protocols/services/adaptation/self_observation.py +265 -0
- ciris_engine/protocols/services/governance/__init__.py +20 -0
- ciris_engine/protocols/services/governance/communication.py +58 -0
- ciris_engine/protocols/services/governance/filter.py +56 -0
- ciris_engine/protocols/services/governance/visibility.py +32 -0
- ciris_engine/protocols/services/governance/wa_auth.py +192 -0
- ciris_engine/protocols/services/governance/wise_authority.py +75 -0
- ciris_engine/protocols/services/graph/__init__.py +19 -0
- ciris_engine/protocols/services/graph/audit.py +92 -0
- ciris_engine/protocols/services/graph/config.py +54 -0
- ciris_engine/protocols/services/graph/incident_management.py +103 -0
- ciris_engine/protocols/services/graph/memory.py +110 -0
- ciris_engine/protocols/services/graph/telemetry.py +51 -0
- ciris_engine/protocols/services/graph/tsdb_consolidation.py +87 -0
- ciris_engine/protocols/services/infrastructure/__init__.py +11 -0
- ciris_engine/protocols/services/infrastructure/authentication.py +159 -0
- ciris_engine/protocols/services/infrastructure/credit_gate.py +46 -0
- ciris_engine/protocols/services/infrastructure/database_maintenance.py +25 -0
- ciris_engine/protocols/services/infrastructure/resource_monitor.py +83 -0
- ciris_engine/protocols/services/lifecycle/__init__.py +13 -0
- ciris_engine/protocols/services/lifecycle/initialization.py +41 -0
- ciris_engine/protocols/services/lifecycle/scheduler.py +42 -0
- ciris_engine/protocols/services/lifecycle/shutdown.py +50 -0
- ciris_engine/protocols/services/lifecycle/time.py +31 -0
- ciris_engine/protocols/services/runtime/__init__.py +13 -0
- ciris_engine/protocols/services/runtime/llm.py +50 -0
- ciris_engine/protocols/services/runtime/runtime_control.py +193 -0
- ciris_engine/protocols/services/runtime/secrets.py +100 -0
- ciris_engine/protocols/services/runtime/tool.py +123 -0
- ciris_engine/protocols/telemetry/__init__.py +1 -0
- ciris_engine/protocols/utils/__init__.py +1 -0
- ciris_engine/schemas/__init__.py +112 -0
- ciris_engine/schemas/actions/__init__.py +37 -0
- ciris_engine/schemas/actions/parameters.py +137 -0
- ciris_engine/schemas/adapters/__init__.py +13 -0
- ciris_engine/schemas/adapters/cirisnode.py +135 -0
- ciris_engine/schemas/adapters/cli.py +97 -0
- ciris_engine/schemas/adapters/cli_tools.py +98 -0
- ciris_engine/schemas/adapters/discord.py +125 -0
- ciris_engine/schemas/adapters/graphql_core.py +144 -0
- ciris_engine/schemas/adapters/registration.py +47 -0
- ciris_engine/schemas/adapters/runtime_context.py +48 -0
- ciris_engine/schemas/adapters/tool_execution.py +45 -0
- ciris_engine/schemas/adapters/tools.py +96 -0
- ciris_engine/schemas/api/__init__.py +1 -0
- ciris_engine/schemas/api/agent.py +50 -0
- ciris_engine/schemas/api/audit.py +38 -0
- ciris_engine/schemas/api/auth.py +351 -0
- ciris_engine/schemas/api/config_security.py +242 -0
- ciris_engine/schemas/api/emergency.py +111 -0
- ciris_engine/schemas/api/responses.py +72 -0
- ciris_engine/schemas/api/runtime.py +26 -0
- ciris_engine/schemas/api/telemetry.py +109 -0
- ciris_engine/schemas/api/wa.py +90 -0
- ciris_engine/schemas/audit/__init__.py +13 -0
- ciris_engine/schemas/audit/core.py +139 -0
- ciris_engine/schemas/audit/hash_chain.py +58 -0
- ciris_engine/schemas/audit/verification.py +131 -0
- ciris_engine/schemas/buses/__init__.py +1 -0
- ciris_engine/schemas/config/__init__.py +41 -0
- ciris_engine/schemas/config/agent.py +279 -0
- ciris_engine/schemas/config/cognitive_state_behaviors.py +194 -0
- ciris_engine/schemas/config/default_dsar_sops.py +178 -0
- ciris_engine/schemas/config/essential.py +195 -0
- ciris_engine/schemas/config/tickets.py +86 -0
- ciris_engine/schemas/conscience/__init__.py +25 -0
- ciris_engine/schemas/conscience/context.py +34 -0
- ciris_engine/schemas/conscience/core.py +145 -0
- ciris_engine/schemas/conscience/results.py +24 -0
- ciris_engine/schemas/consent/__init__.py +5 -0
- ciris_engine/schemas/consent/core.py +404 -0
- ciris_engine/schemas/context/__init__.py +1 -0
- ciris_engine/schemas/covenant.py +382 -0
- ciris_engine/schemas/data/__init__.py +1 -0
- ciris_engine/schemas/dma/__init__.py +16 -0
- ciris_engine/schemas/dma/core.py +199 -0
- ciris_engine/schemas/dma/faculty.py +192 -0
- ciris_engine/schemas/dma/prompts.py +172 -0
- ciris_engine/schemas/dma/results.py +103 -0
- ciris_engine/schemas/formatters/__init__.py +1 -0
- ciris_engine/schemas/handlers/__init__.py +10 -0
- ciris_engine/schemas/handlers/context.py +119 -0
- ciris_engine/schemas/handlers/contexts.py +100 -0
- ciris_engine/schemas/handlers/core.py +167 -0
- ciris_engine/schemas/handlers/memory_schemas.py +67 -0
- ciris_engine/schemas/handlers/schemas.py +95 -0
- ciris_engine/schemas/identity.py +149 -0
- ciris_engine/schemas/infrastructure/__init__.py +1 -0
- ciris_engine/schemas/infrastructure/base.py +256 -0
- ciris_engine/schemas/infrastructure/behavioral_patterns.py +129 -0
- ciris_engine/schemas/infrastructure/feedback_loop.py +57 -0
- ciris_engine/schemas/infrastructure/identity_variance.py +141 -0
- ciris_engine/schemas/infrastructure/oauth.py +175 -0
- ciris_engine/schemas/infrastructure/wa_cli_wizard.py +54 -0
- ciris_engine/schemas/persistence/__init__.py +34 -0
- ciris_engine/schemas/persistence/core.py +140 -0
- ciris_engine/schemas/persistence/correlations.py +73 -0
- ciris_engine/schemas/persistence/postgres/__init__.py +1 -0
- ciris_engine/schemas/persistence/postgres/tables.py +280 -0
- ciris_engine/schemas/persistence/sqlite/__init__.py +1 -0
- ciris_engine/schemas/persistence/sqlite/tables.py +281 -0
- ciris_engine/schemas/platform.py +149 -0
- ciris_engine/schemas/processors/__init__.py +26 -0
- ciris_engine/schemas/processors/base.py +130 -0
- ciris_engine/schemas/processors/cognitive.py +77 -0
- ciris_engine/schemas/processors/context.py +35 -0
- ciris_engine/schemas/processors/core.py +152 -0
- ciris_engine/schemas/processors/dma.py +105 -0
- ciris_engine/schemas/processors/error.py +122 -0
- ciris_engine/schemas/processors/main.py +109 -0
- ciris_engine/schemas/processors/phase_results.py +21 -0
- ciris_engine/schemas/processors/results.py +99 -0
- ciris_engine/schemas/processors/solitude.py +79 -0
- ciris_engine/schemas/processors/state.py +202 -0
- ciris_engine/schemas/processors/state_example.py +177 -0
- ciris_engine/schemas/processors/states.py +21 -0
- ciris_engine/schemas/processors/status.py +34 -0
- ciris_engine/schemas/registries/__init__.py +1 -0
- ciris_engine/schemas/registries/base.py +66 -0
- ciris_engine/schemas/resources/__init__.py +15 -0
- ciris_engine/schemas/resources/crisis.py +315 -0
- ciris_engine/schemas/runtime/__init__.py +42 -0
- ciris_engine/schemas/runtime/adapter_management.py +186 -0
- ciris_engine/schemas/runtime/api.py +58 -0
- ciris_engine/schemas/runtime/audit.py +50 -0
- ciris_engine/schemas/runtime/bootstrap.py +33 -0
- ciris_engine/schemas/runtime/contexts.py +61 -0
- ciris_engine/schemas/runtime/core.py +161 -0
- ciris_engine/schemas/runtime/enums.py +167 -0
- ciris_engine/schemas/runtime/extended.py +232 -0
- ciris_engine/schemas/runtime/manifest.py +311 -0
- ciris_engine/schemas/runtime/memory.py +60 -0
- ciris_engine/schemas/runtime/messages.py +108 -0
- ciris_engine/schemas/runtime/models.py +156 -0
- ciris_engine/schemas/runtime/processing_context.py +43 -0
- ciris_engine/schemas/runtime/protocols_core.py +96 -0
- ciris_engine/schemas/runtime/resources.py +33 -0
- ciris_engine/schemas/runtime/system_context.py +417 -0
- ciris_engine/schemas/secrets/__init__.py +1 -0
- ciris_engine/schemas/secrets/core.py +267 -0
- ciris_engine/schemas/secrets/service.py +95 -0
- ciris_engine/schemas/services/__init__.py +33 -0
- ciris_engine/schemas/services/audit_summary_node.py +172 -0
- ciris_engine/schemas/services/authority/__init__.py +39 -0
- ciris_engine/schemas/services/authority/jwt.py +158 -0
- ciris_engine/schemas/services/authority/wa_updates.py +138 -0
- ciris_engine/schemas/services/authority/wise_authority.py +163 -0
- ciris_engine/schemas/services/authority_core.py +370 -0
- ciris_engine/schemas/services/capabilities.py +72 -0
- ciris_engine/schemas/services/community_core.py +95 -0
- ciris_engine/schemas/services/context.py +111 -0
- ciris_engine/schemas/services/conversation_summary_node.py +189 -0
- ciris_engine/schemas/services/core/__init__.py +153 -0
- ciris_engine/schemas/services/core/runtime.py +262 -0
- ciris_engine/schemas/services/core/runtime_config.py +117 -0
- ciris_engine/schemas/services/core/secrets.py +65 -0
- ciris_engine/schemas/services/correlation_node.py +179 -0
- ciris_engine/schemas/services/credit_gate.py +92 -0
- ciris_engine/schemas/services/discord_nodes.py +299 -0
- ciris_engine/schemas/services/feedback_core.py +131 -0
- ciris_engine/schemas/services/filters_core.py +270 -0
- ciris_engine/schemas/services/governance.py +26 -0
- ciris_engine/schemas/services/graph/__init__.py +26 -0
- ciris_engine/schemas/services/graph/attributes.py +254 -0
- ciris_engine/schemas/services/graph/audit.py +98 -0
- ciris_engine/schemas/services/graph/consolidation.py +338 -0
- ciris_engine/schemas/services/graph/edge_types.py +43 -0
- ciris_engine/schemas/services/graph/edges.py +88 -0
- ciris_engine/schemas/services/graph/incident.py +312 -0
- ciris_engine/schemas/services/graph/memory.py +84 -0
- ciris_engine/schemas/services/graph/node_data.py +174 -0
- ciris_engine/schemas/services/graph/query_results.py +82 -0
- ciris_engine/schemas/services/graph/telemetry.py +250 -0
- ciris_engine/schemas/services/graph/tsdb_consolidation.py +27 -0
- ciris_engine/schemas/services/graph/tsdb_models.py +107 -0
- ciris_engine/schemas/services/graph_core.py +196 -0
- ciris_engine/schemas/services/graph_typed_nodes.py +194 -0
- ciris_engine/schemas/services/infrastructure/__init__.py +1 -0
- ciris_engine/schemas/services/infrastructure/resource_monitor.py +20 -0
- ciris_engine/schemas/services/lifecycle/__init__.py +9 -0
- ciris_engine/schemas/services/lifecycle/initialization.py +33 -0
- ciris_engine/schemas/services/lifecycle/time.py +50 -0
- ciris_engine/schemas/services/llm.py +187 -0
- ciris_engine/schemas/services/metadata.py +43 -0
- ciris_engine/schemas/services/nodes.py +704 -0
- ciris_engine/schemas/services/operations.py +126 -0
- ciris_engine/schemas/services/requests.py +128 -0
- ciris_engine/schemas/services/resources_core.py +182 -0
- ciris_engine/schemas/services/runtime_control.py +1010 -0
- ciris_engine/schemas/services/shutdown.py +88 -0
- ciris_engine/schemas/services/special/__init__.py +0 -0
- ciris_engine/schemas/services/special/self_observation.py +396 -0
- ciris_engine/schemas/services/trace_summary_node.py +199 -0
- ciris_engine/schemas/services/visibility.py +98 -0
- ciris_engine/schemas/streaming/__init__.py +10 -0
- ciris_engine/schemas/streaming/reasoning_stream.py +95 -0
- ciris_engine/schemas/telemetry/__init__.py +0 -0
- ciris_engine/schemas/telemetry/collector.py +67 -0
- ciris_engine/schemas/telemetry/core.py +252 -0
- ciris_engine/schemas/telemetry/unified.py +59 -0
- ciris_engine/schemas/tools.py +72 -0
- ciris_engine/schemas/types.py +47 -0
- ciris_engine/schemas/utils/__init__.py +1 -0
- ciris_engine/schemas/utils/config_validator.py +54 -0
- ciris_engine/utils/__init__.py +1 -0
- ciris_engine/utils/serialization.py +35 -0
- ciris_sdk/__init__.py +124 -0
- ciris_sdk/auth_store.py +261 -0
- ciris_sdk/client.py +261 -0
- ciris_sdk/exceptions.py +73 -0
- ciris_sdk/model_types.py +258 -0
- ciris_sdk/models.py +354 -0
- ciris_sdk/pagination.py +214 -0
- ciris_sdk/rate_limiter.py +188 -0
- ciris_sdk/setup.py +17 -0
- ciris_sdk/telemetry_models.py +257 -0
- ciris_sdk/telemetry_responses.py +199 -0
- ciris_sdk/transport.py +177 -0
- ciris_sdk/websocket.py +400 -0
- main.py +766 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Platform requirements and security capability schemas.
|
|
3
|
+
|
|
4
|
+
These schemas define what security/platform features an adapter or tool requires
|
|
5
|
+
to operate. This enables platform-bound services that require proof of possession,
|
|
6
|
+
device attestation, or specific hardware security features.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from typing import List, Optional, Set
|
|
11
|
+
|
|
12
|
+
from pydantic import BaseModel, Field
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class PlatformRequirement(str, Enum):
|
|
16
|
+
"""Platform security requirements for adapters and tools.
|
|
17
|
+
|
|
18
|
+
These represent proof-of-possession and device attestation requirements
|
|
19
|
+
that cannot be satisfied without specific platform capabilities.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
# Mobile device attestation (proof of real device, not emulator)
|
|
23
|
+
ANDROID_PLAY_INTEGRITY = "android_play_integrity" # Google Play Integrity API
|
|
24
|
+
IOS_APP_ATTEST = "ios_app_attest" # Apple App Attest
|
|
25
|
+
IOS_DEVICE_CHECK = "ios_device_check" # Apple DeviceCheck
|
|
26
|
+
|
|
27
|
+
# Token binding / Proof of Possession
|
|
28
|
+
DPOP = "dpop" # Demonstrating Proof of Possession (RFC 9449)
|
|
29
|
+
MTLS = "mtls" # Mutual TLS with client certificate
|
|
30
|
+
|
|
31
|
+
# Hardware security
|
|
32
|
+
TPM = "tpm" # Trusted Platform Module
|
|
33
|
+
HSM = "hsm" # Hardware Security Module
|
|
34
|
+
SECURE_ENCLAVE = "secure_enclave" # Apple Secure Enclave / Android StrongBox
|
|
35
|
+
ANDROID_KEYSTORE = "android_keystore" # Android Keystore (hardware-backed)
|
|
36
|
+
|
|
37
|
+
# Authentication requirements
|
|
38
|
+
GOOGLE_NATIVE_AUTH = "google_native_auth" # Native Google Sign-In (not web OAuth)
|
|
39
|
+
APPLE_NATIVE_AUTH = "apple_native_auth" # Native Apple Sign-In
|
|
40
|
+
|
|
41
|
+
# Network requirements
|
|
42
|
+
CIRIS_PROXY = "ciris_proxy" # Requires routing through CIRIS proxy
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class PlatformCapabilities(BaseModel):
|
|
46
|
+
"""Current platform capabilities available at runtime.
|
|
47
|
+
|
|
48
|
+
This is populated by platform detection at startup and used to check
|
|
49
|
+
if platform requirements can be satisfied.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
platform: str = Field(..., description="Platform identifier (android, ios, linux, windows, macos)")
|
|
53
|
+
capabilities: Set[PlatformRequirement] = Field(
|
|
54
|
+
default_factory=set,
|
|
55
|
+
description="Set of platform requirements this runtime can satisfy",
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
# Device attestation state
|
|
59
|
+
play_integrity_available: bool = Field(False, description="Google Play Integrity API available")
|
|
60
|
+
app_attest_available: bool = Field(False, description="Apple App Attest available")
|
|
61
|
+
|
|
62
|
+
# Hardware security state
|
|
63
|
+
hardware_keystore_available: bool = Field(False, description="Hardware-backed keystore available")
|
|
64
|
+
tpm_available: bool = Field(False, description="TPM available")
|
|
65
|
+
|
|
66
|
+
# Authentication state
|
|
67
|
+
google_native_auth_available: bool = Field(False, description="Native Google Sign-In available")
|
|
68
|
+
apple_native_auth_available: bool = Field(False, description="Native Apple Sign-In available")
|
|
69
|
+
|
|
70
|
+
# Token state
|
|
71
|
+
has_valid_device_token: bool = Field(False, description="Has valid device-bound token")
|
|
72
|
+
token_binding_method: Optional[str] = Field(None, description="How token is bound (play_integrity, dpop, etc.)")
|
|
73
|
+
|
|
74
|
+
def satisfies(self, requirements: List[PlatformRequirement]) -> bool:
|
|
75
|
+
"""Check if this platform satisfies all given requirements.
|
|
76
|
+
|
|
77
|
+
Args:
|
|
78
|
+
requirements: List of requirements to check
|
|
79
|
+
|
|
80
|
+
Returns:
|
|
81
|
+
True if all requirements are satisfied
|
|
82
|
+
"""
|
|
83
|
+
if not requirements:
|
|
84
|
+
return True
|
|
85
|
+
return all(req in self.capabilities for req in requirements)
|
|
86
|
+
|
|
87
|
+
def missing_requirements(self, requirements: List[PlatformRequirement]) -> List[PlatformRequirement]:
|
|
88
|
+
"""Get list of requirements that cannot be satisfied.
|
|
89
|
+
|
|
90
|
+
Args:
|
|
91
|
+
requirements: List of requirements to check
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
List of unsatisfied requirements
|
|
95
|
+
"""
|
|
96
|
+
return [req for req in requirements if req not in self.capabilities]
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class PlatformRequirementSet(BaseModel):
|
|
100
|
+
"""A set of platform requirements with optional alternatives.
|
|
101
|
+
|
|
102
|
+
Supports expressing requirements like:
|
|
103
|
+
"Requires (Android Play Integrity OR iOS App Attest) AND Google Native Auth"
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
# All of these must be satisfied (AND)
|
|
107
|
+
required: List[PlatformRequirement] = Field(
|
|
108
|
+
default_factory=list,
|
|
109
|
+
description="All of these requirements must be satisfied",
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
# At least one of these must be satisfied (OR) - for alternatives
|
|
113
|
+
one_of: List[List[PlatformRequirement]] = Field(
|
|
114
|
+
default_factory=list,
|
|
115
|
+
description="For each inner list, at least one requirement must be satisfied",
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
# Human-readable explanation of why these requirements exist
|
|
119
|
+
rationale: Optional[str] = Field(
|
|
120
|
+
None,
|
|
121
|
+
description="Why these requirements exist (shown to user if not satisfied)",
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
def is_satisfied_by(self, capabilities: PlatformCapabilities) -> bool:
|
|
125
|
+
"""Check if capabilities satisfy this requirement set.
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
capabilities: Current platform capabilities
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
True if all requirements are satisfied
|
|
132
|
+
"""
|
|
133
|
+
# Check all required
|
|
134
|
+
if not capabilities.satisfies(self.required):
|
|
135
|
+
return False
|
|
136
|
+
|
|
137
|
+
# Check one_of groups (each group needs at least one satisfied)
|
|
138
|
+
for group in self.one_of:
|
|
139
|
+
if not any(req in capabilities.capabilities for req in group):
|
|
140
|
+
return False
|
|
141
|
+
|
|
142
|
+
return True
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
__all__ = [
|
|
146
|
+
"PlatformRequirement",
|
|
147
|
+
"PlatformCapabilities",
|
|
148
|
+
"PlatformRequirementSet",
|
|
149
|
+
]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Package initialization."""
|
|
2
|
+
|
|
3
|
+
from .core import (
|
|
4
|
+
ConscienceApplicationResult,
|
|
5
|
+
DMAResults,
|
|
6
|
+
ProcessedThoughtResult,
|
|
7
|
+
ProcessingError,
|
|
8
|
+
ThoughtProcessingMetrics,
|
|
9
|
+
)
|
|
10
|
+
from .error import ErrorContext, ErrorHandlingResult, ErrorSeverity
|
|
11
|
+
from .error import ProcessingError as ProcessorError
|
|
12
|
+
from .error import ProcessorConfig
|
|
13
|
+
|
|
14
|
+
__all__ = [
|
|
15
|
+
"DMAResults",
|
|
16
|
+
"ConscienceApplicationResult",
|
|
17
|
+
"ProcessedThoughtResult",
|
|
18
|
+
"ThoughtProcessingMetrics",
|
|
19
|
+
"ProcessingError",
|
|
20
|
+
# Error handling schemas
|
|
21
|
+
"ErrorSeverity",
|
|
22
|
+
"ErrorContext",
|
|
23
|
+
"ProcessorError",
|
|
24
|
+
"ErrorHandlingResult",
|
|
25
|
+
"ProcessorConfig",
|
|
26
|
+
]
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Schemas for base processor operations.
|
|
3
|
+
|
|
4
|
+
These replace all Dict[str, Any] usage in base_processor.py.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
from typing import Any, Dict, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ProcessorSpecificMetrics(BaseModel):
|
|
14
|
+
"""Processor-specific metrics that extend base metrics."""
|
|
15
|
+
|
|
16
|
+
thoughts_generated: int = Field(0, description="Number of thoughts generated")
|
|
17
|
+
actions_dispatched: int = Field(0, description="Number of actions dispatched")
|
|
18
|
+
memories_created: int = Field(0, description="Number of memories created")
|
|
19
|
+
state_transitions: int = Field(0, description="Number of state transitions")
|
|
20
|
+
average_response_time_ms: Optional[float] = Field(None, description="Average response time")
|
|
21
|
+
llm_tokens_used: int = Field(0, description="Total LLM tokens consumed")
|
|
22
|
+
cache_hits: int = Field(0, description="Number of cache hits")
|
|
23
|
+
cache_misses: int = Field(0, description="Number of cache misses")
|
|
24
|
+
custom_counters: Dict[str, int] = Field(default_factory=dict, description="Custom counter metrics")
|
|
25
|
+
custom_gauges: Dict[str, float] = Field(default_factory=dict, description="Custom gauge metrics")
|
|
26
|
+
|
|
27
|
+
model_config = ConfigDict(extra="forbid") # Strict validation for metrics
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ProcessorMetrics(BaseModel):
|
|
31
|
+
"""Metrics tracked by processors."""
|
|
32
|
+
|
|
33
|
+
start_time: Optional[datetime] = Field(None, description="When processing started")
|
|
34
|
+
end_time: Optional[datetime] = Field(None, description="When processing ended")
|
|
35
|
+
items_processed: int = Field(0, description="Number of items processed")
|
|
36
|
+
errors: int = Field(0, description="Number of errors encountered")
|
|
37
|
+
rounds_completed: int = Field(0, description="Number of processing rounds completed")
|
|
38
|
+
|
|
39
|
+
# Additional metrics can be added by specific processors
|
|
40
|
+
additional_metrics: ProcessorSpecificMetrics = Field(
|
|
41
|
+
default_factory=ProcessorSpecificMetrics, description="Processor-specific metrics"
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class ProcessorServices(BaseModel):
|
|
46
|
+
"""Services available to processors.
|
|
47
|
+
|
|
48
|
+
This schema replaces Dict[str, Any] for service dependencies.
|
|
49
|
+
All services are optional as different processors need different services.
|
|
50
|
+
|
|
51
|
+
Type safety: Processors must cast services to their expected types when
|
|
52
|
+
accessing them. This ensures mypy strictness while maintaining Pydantic's
|
|
53
|
+
runtime flexibility with arbitrary_types_allowed.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
# Core services (REQUIRED for most processors)
|
|
57
|
+
time_service: Any = Field(None, description="Time service (TimeServiceProtocol)")
|
|
58
|
+
resource_monitor: Any = Field(None, description="Resource monitor service")
|
|
59
|
+
|
|
60
|
+
# Communication services
|
|
61
|
+
discord_service: Any = Field(None, description="Discord service if available")
|
|
62
|
+
communication_bus: Any = Field(None, description="Communication bus for multi-adapter support")
|
|
63
|
+
|
|
64
|
+
# Storage services
|
|
65
|
+
memory_service: Any = Field(None, description="Memory service")
|
|
66
|
+
audit_service: Any = Field(None, description="Audit service")
|
|
67
|
+
telemetry_service: Any = Field(None, description="Telemetry service")
|
|
68
|
+
|
|
69
|
+
# Additional services used by specialized processors
|
|
70
|
+
service_registry: Any = Field(None, description="Service registry for dynamic service lookup")
|
|
71
|
+
identity_manager: Any = Field(None, description="Agent identity manager")
|
|
72
|
+
secrets_service: Any = Field(None, description="Secrets management service")
|
|
73
|
+
graphql_provider: Any = Field(None, description="GraphQL provider for database access")
|
|
74
|
+
app_config: Any = Field(None, description="Application configuration accessor")
|
|
75
|
+
runtime: Any = Field(None, description="Runtime control interface")
|
|
76
|
+
llm_service: Any = Field(None, description="LLM service for AI operations")
|
|
77
|
+
|
|
78
|
+
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class AdapterChannelContext(BaseModel):
|
|
82
|
+
"""Context information for a specific channel from an adapter's perspective.
|
|
83
|
+
|
|
84
|
+
This is the lightweight schema used by adapters to pass channel information
|
|
85
|
+
to the system. For the comprehensive system-internal channel context, see
|
|
86
|
+
ciris_engine.schemas.runtime.system_context.ChannelContext.
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
channel_id: str = Field(..., description="Channel identifier")
|
|
90
|
+
channel_type: str = Field(..., description="Type of channel (discord, api, cli)")
|
|
91
|
+
adapter_name: str = Field(..., description="Name of the adapter")
|
|
92
|
+
user_id: Optional[str] = Field(None, description="User ID if applicable")
|
|
93
|
+
guild_id: Optional[str] = Field(None, description="Guild/server ID if applicable")
|
|
94
|
+
thread_id: Optional[str] = Field(None, description="Thread ID if in a thread")
|
|
95
|
+
permissions: Dict[str, bool] = Field(default_factory=dict, description="Channel permissions")
|
|
96
|
+
metadata: Dict[str, str] = Field(default_factory=dict, description="Additional channel metadata")
|
|
97
|
+
|
|
98
|
+
model_config = ConfigDict(extra="allow") # Allow adapter-specific fields
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class ProcessorContext(BaseModel):
|
|
102
|
+
"""Context for processor operations."""
|
|
103
|
+
|
|
104
|
+
processor_name: str = Field(..., description="Name of the processor")
|
|
105
|
+
current_state: str = Field(..., description="Current agent state")
|
|
106
|
+
round_number: int = Field(..., description="Current round number")
|
|
107
|
+
channel_context: Optional[AdapterChannelContext] = Field(None, description="Channel context if available")
|
|
108
|
+
task_context: Optional[str] = Field(None, description="Current task being processed")
|
|
109
|
+
memory_context: Optional[str] = Field(None, description="Relevant memory context")
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class MetricsUpdate(BaseModel):
|
|
113
|
+
"""Update to processor metrics."""
|
|
114
|
+
|
|
115
|
+
items_processed: Optional[int] = Field(None, description="Items processed increment")
|
|
116
|
+
errors: Optional[int] = Field(None, description="Errors increment")
|
|
117
|
+
rounds_completed: Optional[int] = Field(None, description="Rounds completed increment")
|
|
118
|
+
|
|
119
|
+
# Specific metric updates
|
|
120
|
+
thoughts_generated: Optional[int] = Field(None, description="Thoughts generated increment")
|
|
121
|
+
actions_dispatched: Optional[int] = Field(None, description="Actions dispatched increment")
|
|
122
|
+
memories_created: Optional[int] = Field(None, description="Memories created increment")
|
|
123
|
+
state_transitions: Optional[int] = Field(None, description="State transitions increment")
|
|
124
|
+
llm_tokens_used: Optional[int] = Field(None, description="LLM tokens used increment")
|
|
125
|
+
cache_hits: Optional[int] = Field(None, description="Cache hits increment")
|
|
126
|
+
cache_misses: Optional[int] = Field(None, description="Cache misses increment")
|
|
127
|
+
|
|
128
|
+
# Custom metric updates
|
|
129
|
+
custom_counters: Dict[str, int] = Field(default_factory=dict, description="Custom counter increments")
|
|
130
|
+
custom_gauges: Dict[str, float] = Field(default_factory=dict, description="Custom gauge updates")
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Cognitive state schemas for contract-driven architecture.
|
|
3
|
+
|
|
4
|
+
Typed states for each of the 6 cognitive phases.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
from typing import Dict, List, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class WakeupState(BaseModel):
|
|
14
|
+
"""State during WAKEUP phase."""
|
|
15
|
+
|
|
16
|
+
identity_confirmed: bool = Field(False, description="Identity verification status")
|
|
17
|
+
integrity_validated: bool = Field(False, description="System integrity check status")
|
|
18
|
+
resilience_evaluated: bool = Field(False, description="Resilience assessment status")
|
|
19
|
+
incompleteness_accepted: bool = Field(False, description="Incompleteness acknowledgment status")
|
|
20
|
+
gratitude_expressed: bool = Field(False, description="Gratitude expression status")
|
|
21
|
+
|
|
22
|
+
model_config = ConfigDict(extra="forbid")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class WorkState(BaseModel):
|
|
26
|
+
"""State during WORK phase."""
|
|
27
|
+
|
|
28
|
+
active_tasks: int = Field(0, ge=0, description="Number of active tasks")
|
|
29
|
+
completed_tasks: int = Field(0, ge=0, description="Number of completed tasks")
|
|
30
|
+
pending_thoughts: int = Field(0, ge=0, description="Number of pending thoughts")
|
|
31
|
+
last_activity: datetime = Field(..., description="Timestamp of last activity")
|
|
32
|
+
|
|
33
|
+
model_config = ConfigDict(extra="forbid")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class PlayState(BaseModel):
|
|
37
|
+
"""State during PLAY phase."""
|
|
38
|
+
|
|
39
|
+
creativity_level: float = Field(0.0, ge=0.0, le=1.0, description="Creativity level (0.0 to 1.0)")
|
|
40
|
+
experimental_approaches: List[str] = Field(default_factory=list, description="List of experimental approaches")
|
|
41
|
+
novel_discoveries: int = Field(0, ge=0, description="Number of novel discoveries")
|
|
42
|
+
|
|
43
|
+
model_config = ConfigDict(extra="forbid")
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class SolitudeState(BaseModel):
|
|
47
|
+
"""State during SOLITUDE phase."""
|
|
48
|
+
|
|
49
|
+
reflection_cycles: int = Field(0, ge=0, description="Number of reflection cycles completed")
|
|
50
|
+
maintenance_tasks_completed: int = Field(0, ge=0, description="Number of maintenance tasks completed")
|
|
51
|
+
patterns_identified: List[str] = Field(default_factory=list, description="Patterns identified during reflection")
|
|
52
|
+
|
|
53
|
+
model_config = ConfigDict(extra="forbid")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class DreamState(BaseModel):
|
|
57
|
+
"""State during DREAM phase."""
|
|
58
|
+
|
|
59
|
+
memory_consolidation_progress: float = Field(
|
|
60
|
+
0.0, ge=0.0, le=1.0, description="Memory consolidation progress (0.0 to 1.0)"
|
|
61
|
+
)
|
|
62
|
+
patterns_analyzed: int = Field(0, ge=0, description="Number of patterns analyzed")
|
|
63
|
+
future_plans_generated: int = Field(0, ge=0, description="Number of future plans generated")
|
|
64
|
+
benchmark_results: Optional[Dict[str, float]] = Field(None, description="Performance benchmark results")
|
|
65
|
+
|
|
66
|
+
model_config = ConfigDict(extra="forbid")
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class ShutdownState(BaseModel):
|
|
70
|
+
"""State during SHUTDOWN phase."""
|
|
71
|
+
|
|
72
|
+
shutdown_requested: bool = Field(False, description="Whether shutdown was requested")
|
|
73
|
+
shutdown_accepted: bool = Field(False, description="Whether shutdown was accepted")
|
|
74
|
+
cleanup_completed: bool = Field(False, description="Whether cleanup is completed")
|
|
75
|
+
final_message: Optional[str] = Field(None, description="Final message before shutdown")
|
|
76
|
+
|
|
77
|
+
model_config = ConfigDict(extra="forbid")
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Context models for processor operations.
|
|
3
|
+
|
|
4
|
+
Provides typed models for processor contexts instead of Dict[str, Any].
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Any, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
from ciris_engine.schemas.runtime.models import Thought
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ProcessorContext(BaseModel):
|
|
15
|
+
"""Context passed to processor.process_thought_item."""
|
|
16
|
+
|
|
17
|
+
origin: str = Field(..., description="Origin of the processing request")
|
|
18
|
+
prefetched_thought: Optional[Thought] = Field(None, description="Pre-fetched thought object")
|
|
19
|
+
batch_context: Optional[Any] = Field(None, description="Batch processing context")
|
|
20
|
+
|
|
21
|
+
model_config = ConfigDict(extra="allow")
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class BatchProcessingContext(BaseModel):
|
|
25
|
+
"""Context for batch processing operations."""
|
|
26
|
+
|
|
27
|
+
batch_id: str = Field(..., description="Unique batch identifier")
|
|
28
|
+
batch_size: int = Field(..., description="Number of items in batch")
|
|
29
|
+
current_index: int = Field(0, description="Current item index in batch")
|
|
30
|
+
total_processed: int = Field(0, description="Total items processed so far")
|
|
31
|
+
|
|
32
|
+
model_config = ConfigDict(extra="forbid")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
__all__ = ["ProcessorContext", "BatchProcessingContext"]
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Processing schemas for thought and DMA evaluation.
|
|
3
|
+
|
|
4
|
+
Provides type-safe structures for thought processing results.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Dict, List, Optional, Union
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
from ciris_engine.schemas.conscience.core import EpistemicData
|
|
12
|
+
from ciris_engine.schemas.runtime.enums import HandlerActionType
|
|
13
|
+
|
|
14
|
+
from ..actions.parameters import (
|
|
15
|
+
DeferParams,
|
|
16
|
+
ForgetParams,
|
|
17
|
+
MemorizeParams,
|
|
18
|
+
ObserveParams,
|
|
19
|
+
PonderParams,
|
|
20
|
+
RecallParams,
|
|
21
|
+
RejectParams,
|
|
22
|
+
SpeakParams,
|
|
23
|
+
TaskCompleteParams,
|
|
24
|
+
ToolParams,
|
|
25
|
+
)
|
|
26
|
+
from ..dma.results import ActionSelectionDMAResult, CSDMAResult, DSDMAResult, EthicalDMAResult
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class DMAResults(BaseModel):
|
|
30
|
+
"""Container for DMA evaluation results."""
|
|
31
|
+
|
|
32
|
+
ethical_pdma: Optional[EthicalDMAResult] = Field(None, description="Ethical evaluation")
|
|
33
|
+
csdma: Optional[CSDMAResult] = Field(None, description="Common sense evaluation")
|
|
34
|
+
dsdma: Optional[DSDMAResult] = Field(None, description="Domain-specific evaluation")
|
|
35
|
+
errors: List[str] = Field(default_factory=list, description="Errors during evaluation")
|
|
36
|
+
|
|
37
|
+
model_config = ConfigDict(extra="forbid")
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class SingleConscienceCheckResult(BaseModel):
|
|
41
|
+
"""Result from checking a single conscience."""
|
|
42
|
+
|
|
43
|
+
skip: bool = Field(False, description="Whether this conscience check should be skipped")
|
|
44
|
+
passed: bool = Field(True, description="Whether the conscience check passed")
|
|
45
|
+
reason: Optional[str] = Field(None, description="Reason for failure if not passed")
|
|
46
|
+
epistemic_data: Optional[EpistemicData] = Field(None, description="Epistemic data from this conscience")
|
|
47
|
+
replacement_action: Optional[ActionSelectionDMAResult] = Field(
|
|
48
|
+
None, description="Replacement action if conscience overrides"
|
|
49
|
+
)
|
|
50
|
+
thought_depth_triggered: Optional[bool] = Field(None, description="Whether thought depth guardrail was triggered")
|
|
51
|
+
updated_status_detected: Optional[bool] = Field(None, description="Whether updated status was detected")
|
|
52
|
+
|
|
53
|
+
model_config = ConfigDict(extra="forbid")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class ConscienceCheckInternalResult(BaseModel):
|
|
57
|
+
"""Internal result from _run_conscience_checks before creating ConscienceApplicationResult."""
|
|
58
|
+
|
|
59
|
+
final_action: ActionSelectionDMAResult = Field(..., description="Final action after all conscience checks")
|
|
60
|
+
overridden: bool = Field(False, description="Whether action was overridden by a conscience")
|
|
61
|
+
override_reason: Optional[str] = Field(None, description="Reason for conscience override")
|
|
62
|
+
epistemic_data: Optional[EpistemicData] = Field(
|
|
63
|
+
None, description="Aggregated epistemic data from conscience checks"
|
|
64
|
+
)
|
|
65
|
+
thought_depth_triggered: Optional[bool] = Field(None, description="Whether the thought depth guardrail triggered")
|
|
66
|
+
updated_status_detected: Optional[bool] = Field(
|
|
67
|
+
None, description="Whether the updated status conscience detected changes"
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
model_config = ConfigDict(extra="forbid")
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class ConscienceApplicationResult(BaseModel):
|
|
74
|
+
"""Result from conscience application."""
|
|
75
|
+
|
|
76
|
+
original_action: ActionSelectionDMAResult = Field(..., description="Original action selected")
|
|
77
|
+
final_action: ActionSelectionDMAResult = Field(..., description="Final action after consciences")
|
|
78
|
+
overridden: bool = Field(False, description="Whether action was overridden")
|
|
79
|
+
override_reason: Optional[str] = Field(None, description="Reason for override")
|
|
80
|
+
epistemic_data: EpistemicData = Field(..., description="Epistemic faculty data from conscience checks (REQUIRED)")
|
|
81
|
+
thought_depth_triggered: Optional[bool] = Field(
|
|
82
|
+
None, description="Whether the thought depth guardrail forced an override"
|
|
83
|
+
)
|
|
84
|
+
updated_status_detected: Optional[bool] = Field(
|
|
85
|
+
None, description="Whether the updated status conscience detected new information"
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
model_config = ConfigDict(extra="forbid")
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
class ProcessedThoughtResult(BaseModel):
|
|
92
|
+
"""Result from thought processor containing both action and conscience data."""
|
|
93
|
+
|
|
94
|
+
action_result: ActionSelectionDMAResult = Field(..., description="Action selection result")
|
|
95
|
+
conscience_result: Optional[ConscienceApplicationResult] = Field(None, description="conscience application result")
|
|
96
|
+
|
|
97
|
+
@property
|
|
98
|
+
def selected_action(self) -> HandlerActionType:
|
|
99
|
+
"""Convenience property for compatibility."""
|
|
100
|
+
return self.action_result.selected_action
|
|
101
|
+
|
|
102
|
+
@property
|
|
103
|
+
def action_parameters(self) -> Union[
|
|
104
|
+
ObserveParams,
|
|
105
|
+
SpeakParams,
|
|
106
|
+
ToolParams,
|
|
107
|
+
PonderParams,
|
|
108
|
+
RejectParams,
|
|
109
|
+
DeferParams,
|
|
110
|
+
MemorizeParams,
|
|
111
|
+
RecallParams,
|
|
112
|
+
ForgetParams,
|
|
113
|
+
TaskCompleteParams,
|
|
114
|
+
]:
|
|
115
|
+
"""Convenience property for compatibility."""
|
|
116
|
+
return self.action_result.action_parameters
|
|
117
|
+
|
|
118
|
+
model_config = ConfigDict(extra="forbid")
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class ThoughtProcessingMetrics(BaseModel):
|
|
122
|
+
"""Metrics for thought processing."""
|
|
123
|
+
|
|
124
|
+
processing_time_ms: float = Field(..., description="Total processing time")
|
|
125
|
+
dma_time_ms: float = Field(..., description="DMA evaluation time")
|
|
126
|
+
conscience_time_ms: float = Field(..., description="conscience application time")
|
|
127
|
+
llm_calls: int = Field(..., description="Number of LLM calls")
|
|
128
|
+
tokens_used: int = Field(..., description="Total tokens consumed")
|
|
129
|
+
|
|
130
|
+
model_config = ConfigDict(extra="forbid")
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
class ProcessingError(BaseModel):
|
|
134
|
+
"""Error during thought processing."""
|
|
135
|
+
|
|
136
|
+
error_type: str = Field(..., description="Type of error")
|
|
137
|
+
error_message: str = Field(..., description="Error message")
|
|
138
|
+
component: str = Field(..., description="Component that failed")
|
|
139
|
+
recoverable: bool = Field(..., description="Whether error is recoverable")
|
|
140
|
+
|
|
141
|
+
model_config = ConfigDict(extra="forbid")
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
__all__ = [
|
|
145
|
+
"DMAResults",
|
|
146
|
+
"SingleConscienceCheckResult",
|
|
147
|
+
"ConscienceCheckInternalResult",
|
|
148
|
+
"ConscienceApplicationResult",
|
|
149
|
+
"ProcessedThoughtResult",
|
|
150
|
+
"ThoughtProcessingMetrics",
|
|
151
|
+
"ProcessingError",
|
|
152
|
+
]
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"""Schemas for DMA orchestration operations."""
|
|
2
|
+
|
|
3
|
+
from typing import Dict, Optional
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
|
|
7
|
+
from ciris_engine.schemas.dma.results import CSDMAResult, DSDMAResult, EthicalDMAResult
|
|
8
|
+
from ciris_engine.schemas.types import ConfigDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class DMAMetadata(BaseModel):
|
|
12
|
+
"""Metadata for DSDMA operations."""
|
|
13
|
+
|
|
14
|
+
channel_id: Optional[str] = Field(None, description="Channel ID if available")
|
|
15
|
+
user_id: Optional[str] = Field(None, description="User ID if available")
|
|
16
|
+
platform: Optional[str] = Field(None, description="Platform name")
|
|
17
|
+
session_data: ConfigDict = Field(default_factory=dict, description="Session-specific data")
|
|
18
|
+
metadata: ConfigDict = Field(default_factory=dict, description="Additional context metadata")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class InitialDMAResults(BaseModel):
|
|
22
|
+
"""Results from initial DMA runs - all 3 DMA results are required."""
|
|
23
|
+
|
|
24
|
+
ethical_pdma: EthicalDMAResult = Field(..., description="Ethical PDMA result (required)")
|
|
25
|
+
csdma: CSDMAResult = Field(..., description="CSDMA result (required)")
|
|
26
|
+
dsdma: DSDMAResult = Field(..., description="DSDMA result (required)")
|
|
27
|
+
|
|
28
|
+
# User prompts passed to each DMA (for debugging/transparency)
|
|
29
|
+
ethical_pdma_prompt: Optional[str] = Field(None, description="User prompt passed to Ethical PDMA")
|
|
30
|
+
csdma_prompt: Optional[str] = Field(None, description="User prompt passed to CSDMA")
|
|
31
|
+
dsdma_prompt: Optional[str] = Field(None, description="User prompt passed to DSDMA")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class DMAError(BaseModel):
|
|
35
|
+
"""Error from a DMA execution."""
|
|
36
|
+
|
|
37
|
+
dma_name: str = Field(..., description="Name of the DMA that failed")
|
|
38
|
+
error_message: str = Field(..., description="Error message")
|
|
39
|
+
error_type: str = Field(..., description="Type of error")
|
|
40
|
+
traceback: Optional[str] = Field(None, description="Full traceback if available")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class DMAErrors(BaseModel):
|
|
44
|
+
"""Collection of DMA errors."""
|
|
45
|
+
|
|
46
|
+
ethical_pdma: Optional[DMAError] = Field(None, description="Ethical PDMA error")
|
|
47
|
+
csdma: Optional[DMAError] = Field(None, description="CSDMA error")
|
|
48
|
+
dsdma: Optional[DMAError] = Field(None, description="DSDMA error")
|
|
49
|
+
|
|
50
|
+
def has_errors(self) -> bool:
|
|
51
|
+
"""Check if any errors occurred."""
|
|
52
|
+
return any([self.ethical_pdma, self.csdma, self.dsdma])
|
|
53
|
+
|
|
54
|
+
def get_error_summary(self) -> str:
|
|
55
|
+
"""Get summary of all errors."""
|
|
56
|
+
errors = []
|
|
57
|
+
if self.ethical_pdma:
|
|
58
|
+
errors.append(f"ethical_pdma: {self.ethical_pdma.error_message}")
|
|
59
|
+
if self.csdma:
|
|
60
|
+
errors.append(f"csdma: {self.csdma.error_message}")
|
|
61
|
+
if self.dsdma:
|
|
62
|
+
errors.append(f"dsdma: {self.dsdma.error_message}")
|
|
63
|
+
return "; ".join(errors) if errors else "No errors"
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class ActionSelectionContext(BaseModel):
|
|
67
|
+
"""Context for action selection."""
|
|
68
|
+
|
|
69
|
+
thought_id: str = Field(..., description="Thought ID being processed")
|
|
70
|
+
task_id: str = Field(..., description="Task ID")
|
|
71
|
+
channel_id: Optional[str] = Field(None, description="Channel ID if available")
|
|
72
|
+
ethical_pdma_result: EthicalDMAResult = Field(..., description="Ethical evaluation")
|
|
73
|
+
csdma_result: CSDMAResult = Field(..., description="Common sense evaluation")
|
|
74
|
+
dsdma_result: Optional[DSDMAResult] = Field(None, description="Domain specific evaluation")
|
|
75
|
+
metadata: ConfigDict = Field(default_factory=dict, description="Additional context")
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class CircuitBreakerStatus(BaseModel):
|
|
79
|
+
"""Status of a circuit breaker."""
|
|
80
|
+
|
|
81
|
+
name: str = Field(..., description="Circuit breaker name")
|
|
82
|
+
is_open: bool = Field(..., description="Whether circuit is open (failing)")
|
|
83
|
+
failure_count: int = Field(0, description="Number of consecutive failures")
|
|
84
|
+
last_failure: Optional[str] = Field(None, description="Last failure timestamp")
|
|
85
|
+
next_attempt: Optional[str] = Field(None, description="When circuit will close")
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class DMAOrchestratorStatus(BaseModel):
|
|
89
|
+
"""Status of the DMA orchestrator."""
|
|
90
|
+
|
|
91
|
+
circuit_breakers: Dict[str, CircuitBreakerStatus] = Field(..., description="Circuit breaker states")
|
|
92
|
+
retry_limit: int = Field(..., description="Retry limit for DMAs")
|
|
93
|
+
timeout_seconds: float = Field(..., description="Timeout for DMA execution")
|
|
94
|
+
dsdma_available: bool = Field(..., description="Whether DSDMA is configured")
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
__all__ = [
|
|
98
|
+
"DMAMetadata",
|
|
99
|
+
"InitialDMAResults",
|
|
100
|
+
"DMAError",
|
|
101
|
+
"DMAErrors",
|
|
102
|
+
"ActionSelectionContext",
|
|
103
|
+
"CircuitBreakerStatus",
|
|
104
|
+
"DMAOrchestratorStatus",
|
|
105
|
+
]
|