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,20 @@
|
|
|
1
|
+
"""
|
|
2
|
+
ThoughtProcessor module - H3ERE pipeline implementation.
|
|
3
|
+
|
|
4
|
+
This module contains the ThoughtProcessor class organized into focused phase files:
|
|
5
|
+
- main.py: Core orchestration and coordination
|
|
6
|
+
- gather_context.py: Context building phase
|
|
7
|
+
- perform_dmas.py: Multi-perspective analysis phase
|
|
8
|
+
- perform_aspdma.py: Action selection phase
|
|
9
|
+
- conscience_execution.py: Ethical validation phase
|
|
10
|
+
- recursive_processing.py: Retry logic phase
|
|
11
|
+
- finalize_action.py: Final action determination phase
|
|
12
|
+
- action_execution.py: Action dispatch and completion phase
|
|
13
|
+
|
|
14
|
+
The main ThoughtProcessor class inherits from all phase mixins to provide
|
|
15
|
+
a complete implementation of the H3ERE (Hyper3 Ethical Recursive Engine) pipeline.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from .main import ThoughtProcessor
|
|
19
|
+
|
|
20
|
+
__all__ = ["ThoughtProcessor"]
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Action Execution Phase - H3ERE Pipeline Step 7.
|
|
3
|
+
|
|
4
|
+
Handles the final execution steps including action dispatch
|
|
5
|
+
and completion tracking.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
from typing import Any, Dict
|
|
10
|
+
|
|
11
|
+
from ciris_engine.logic.processors.core.step_decorators import step_point, streaming_step
|
|
12
|
+
from ciris_engine.logic.processors.support.processing_queue import ProcessingQueueItem
|
|
13
|
+
from ciris_engine.schemas.services.runtime_control import StepPoint
|
|
14
|
+
from ciris_engine.schemas.types import JSONDict
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ActionExecutionPhase:
|
|
20
|
+
"""
|
|
21
|
+
Phase 7: Action Execution
|
|
22
|
+
|
|
23
|
+
Handles the final execution steps:
|
|
24
|
+
- PERFORM_ACTION: Dispatch action to appropriate handler
|
|
25
|
+
- ACTION_COMPLETE: Track completion and results
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
@streaming_step(StepPoint.PERFORM_ACTION)
|
|
29
|
+
@step_point(StepPoint.PERFORM_ACTION)
|
|
30
|
+
async def _perform_action_step(self, thought_item: ProcessingQueueItem, result: Any, context: JSONDict) -> Any:
|
|
31
|
+
"""Step 6: Dispatch action to handler."""
|
|
32
|
+
# This step is handled by base_processor dispatch_action method
|
|
33
|
+
# Just pass through the result - actual dispatch happens after this
|
|
34
|
+
return result
|
|
35
|
+
|
|
36
|
+
@streaming_step(StepPoint.ACTION_COMPLETE)
|
|
37
|
+
@step_point(StepPoint.ACTION_COMPLETE)
|
|
38
|
+
async def _action_complete_step(self, thought_item: ProcessingQueueItem, dispatch_result: Any) -> JSONDict:
|
|
39
|
+
"""Step 7: Action execution completed."""
|
|
40
|
+
# This step is handled by base_processor after dispatch
|
|
41
|
+
# Mark the completion status
|
|
42
|
+
return {
|
|
43
|
+
"thought_id": thought_item.thought_id,
|
|
44
|
+
"action_completed": True,
|
|
45
|
+
"dispatch_success": dispatch_result.get("success", True) if isinstance(dispatch_result, dict) else True,
|
|
46
|
+
"execution_time_ms": (
|
|
47
|
+
dispatch_result.get("execution_time_ms", 0.0) if isinstance(dispatch_result, dict) else 0.0
|
|
48
|
+
),
|
|
49
|
+
}
|
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Conscience Execution Phase - H3ERE Pipeline Step 4.
|
|
3
|
+
|
|
4
|
+
Applies ethical safety validation to the selected action using the
|
|
5
|
+
conscience registry to ensure alignment with ethical principles.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
from typing import TYPE_CHECKING, Any, Dict, Optional
|
|
10
|
+
|
|
11
|
+
from ciris_engine.logic.processors.core.step_decorators import step_point, streaming_step
|
|
12
|
+
from ciris_engine.logic.processors.support.processing_queue import ProcessingQueueItem
|
|
13
|
+
from ciris_engine.logic.registries.circuit_breaker import CircuitBreakerError
|
|
14
|
+
from ciris_engine.schemas.actions.parameters import PonderParams
|
|
15
|
+
from ciris_engine.schemas.dma.results import ActionSelectionDMAResult
|
|
16
|
+
from ciris_engine.schemas.runtime.enums import HandlerActionType
|
|
17
|
+
from ciris_engine.schemas.services.runtime_control import StepPoint
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
from ciris_engine.schemas.processors.core import ConscienceApplicationResult
|
|
21
|
+
|
|
22
|
+
logger = logging.getLogger(__name__)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ConscienceExecutionPhase:
|
|
26
|
+
"""
|
|
27
|
+
Phase 4: Conscience Execution
|
|
28
|
+
|
|
29
|
+
Applies ethical safety validation through conscience registry:
|
|
30
|
+
- Validates selected action against ethical principles
|
|
31
|
+
- Can override actions that fail safety checks
|
|
32
|
+
- Provides guidance for retry attempts
|
|
33
|
+
|
|
34
|
+
Attributes (provided by ThoughtProcessor):
|
|
35
|
+
conscience_registry: Registry of conscience validation functions
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
if TYPE_CHECKING:
|
|
39
|
+
conscience_registry: Any
|
|
40
|
+
|
|
41
|
+
def _describe_action(self, action: ActionSelectionDMAResult) -> str: ...
|
|
42
|
+
|
|
43
|
+
@streaming_step(StepPoint.CONSCIENCE_EXECUTION)
|
|
44
|
+
@step_point(StepPoint.CONSCIENCE_EXECUTION)
|
|
45
|
+
async def _conscience_execution_step(
|
|
46
|
+
self,
|
|
47
|
+
thought_item: ProcessingQueueItem,
|
|
48
|
+
action_result: Any,
|
|
49
|
+
thought: Any = None,
|
|
50
|
+
dma_results: Any = None,
|
|
51
|
+
processing_context: Any = None,
|
|
52
|
+
) -> "ConscienceApplicationResult":
|
|
53
|
+
"""Step 4: Ethical safety validation matching _apply_conscience_simple expectations."""
|
|
54
|
+
# Import ConscienceApplicationResult here to avoid circular imports
|
|
55
|
+
from ciris_engine.schemas.processors.core import ConscienceApplicationResult
|
|
56
|
+
|
|
57
|
+
if not action_result:
|
|
58
|
+
return action_result # type: ignore[no-any-return]
|
|
59
|
+
|
|
60
|
+
# Check if this is a conscience retry
|
|
61
|
+
is_conscience_retry = False
|
|
62
|
+
if processing_context is not None:
|
|
63
|
+
if isinstance(processing_context, dict):
|
|
64
|
+
is_conscience_retry = processing_context.get("is_conscience_retry", False)
|
|
65
|
+
elif hasattr(processing_context, "is_conscience_retry"):
|
|
66
|
+
is_conscience_retry = processing_context.is_conscience_retry
|
|
67
|
+
|
|
68
|
+
# If this is a conscience retry, unset the flag to prevent loops
|
|
69
|
+
if is_conscience_retry and processing_context is not None:
|
|
70
|
+
if isinstance(processing_context, dict):
|
|
71
|
+
processing_context["is_conscience_retry"] = False
|
|
72
|
+
elif hasattr(processing_context, "is_conscience_retry"):
|
|
73
|
+
processing_context.is_conscience_retry = False
|
|
74
|
+
|
|
75
|
+
# Create typed context for conscience checks BEFORE exemption check
|
|
76
|
+
# (bypass consciences need this context to run)
|
|
77
|
+
from ciris_engine.schemas.conscience.context import ConscienceCheckContext
|
|
78
|
+
|
|
79
|
+
context = ConscienceCheckContext(
|
|
80
|
+
thought=thought or thought_item,
|
|
81
|
+
task=None, # Will be populated by conscience checks if needed
|
|
82
|
+
round_number=None,
|
|
83
|
+
system_snapshot=dma_results or {}, # Store DMA results in system_snapshot
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
# CRITICAL: Run bypass consciences FIRST, even for exempt actions
|
|
87
|
+
# This allows UpdatedStatusConscience to detect new messages before TASK_COMPLETE
|
|
88
|
+
bypass_result = await self._run_bypass_conscience_entries(action_result, context)
|
|
89
|
+
|
|
90
|
+
if bypass_result["overridden"]:
|
|
91
|
+
logger.info(
|
|
92
|
+
f"Bypass conscience overrode action {action_result.selected_action} -> "
|
|
93
|
+
f"{bypass_result['final_action'].selected_action}: {bypass_result['override_reason']}"
|
|
94
|
+
)
|
|
95
|
+
from ciris_engine.schemas.conscience.core import EpistemicData
|
|
96
|
+
|
|
97
|
+
# CRITICAL: Include the new observation content in epistemic_data
|
|
98
|
+
# so it can be accessed by _prepare_conscience_retry_context
|
|
99
|
+
updated_obs = bypass_result.get("updated_observation_content")
|
|
100
|
+
if updated_obs:
|
|
101
|
+
logger.info(
|
|
102
|
+
f"[CONSCIENCE_EXEC] Including updated_observation_content in result: {updated_obs[:100]}..."
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
return ConscienceApplicationResult(
|
|
106
|
+
original_action=action_result,
|
|
107
|
+
final_action=bypass_result["final_action"],
|
|
108
|
+
overridden=True,
|
|
109
|
+
override_reason=bypass_result["override_reason"],
|
|
110
|
+
epistemic_data=EpistemicData(
|
|
111
|
+
entropy_level=0.5, # Moderate uncertainty during override
|
|
112
|
+
coherence_level=0.8, # Good coherence
|
|
113
|
+
uncertainty_acknowledged=True,
|
|
114
|
+
reasoning_transparency=1.0,
|
|
115
|
+
CIRIS_OBSERVATION_UPDATED_STATUS=updated_obs, # NEW: Pass through the observation
|
|
116
|
+
),
|
|
117
|
+
updated_status_detected=bypass_result.get("updated_status_detected"),
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
# Exempt actions that shouldn't be overridden by NORMAL consciences
|
|
121
|
+
# Conscience runs for: SPEAK, TOOL, PONDER, MEMORIZE, FORGET (5 actions)
|
|
122
|
+
# Conscience exempt: RECALL, TASK_COMPLETE, OBSERVE, DEFER, REJECT (5 actions)
|
|
123
|
+
exempt_actions = {
|
|
124
|
+
HandlerActionType.RECALL.value,
|
|
125
|
+
HandlerActionType.TASK_COMPLETE.value,
|
|
126
|
+
HandlerActionType.OBSERVE.value,
|
|
127
|
+
HandlerActionType.DEFER.value,
|
|
128
|
+
HandlerActionType.REJECT.value,
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if action_result.selected_action in exempt_actions:
|
|
132
|
+
# Exempt actions bypass NORMAL conscience checks - return immediately with safe epistemic values
|
|
133
|
+
from ciris_engine.schemas.conscience.core import EpistemicData
|
|
134
|
+
|
|
135
|
+
# Exempt actions are considered safe: low entropy, high coherence, acknowledged, transparent
|
|
136
|
+
return ConscienceApplicationResult(
|
|
137
|
+
original_action=action_result,
|
|
138
|
+
final_action=action_result,
|
|
139
|
+
overridden=False,
|
|
140
|
+
override_reason=None,
|
|
141
|
+
epistemic_data=EpistemicData(
|
|
142
|
+
entropy_level=0.0, # No uncertainty for exempt actions
|
|
143
|
+
coherence_level=1.0, # Perfect coherence
|
|
144
|
+
uncertainty_acknowledged=True, # System is aware this is exempt
|
|
145
|
+
reasoning_transparency=1.0, # Fully transparent (exempt = explicit)
|
|
146
|
+
),
|
|
147
|
+
# Propagate any detection flags from bypass checks
|
|
148
|
+
updated_status_detected=bypass_result.get("updated_status_detected"),
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
final_action = action_result
|
|
152
|
+
overridden = False
|
|
153
|
+
override_reason = None
|
|
154
|
+
thought_depth_triggered: Optional[bool] = None
|
|
155
|
+
updated_status_detected: Optional[bool] = None
|
|
156
|
+
|
|
157
|
+
# Track conscience check results for epistemic data aggregation
|
|
158
|
+
entropy_level: Optional[float] = None
|
|
159
|
+
coherence_level: Optional[float] = None
|
|
160
|
+
uncertainty_acknowledged: bool = False
|
|
161
|
+
reasoning_transparency: float = 0.0
|
|
162
|
+
conscience_checks_ran: int = 0
|
|
163
|
+
|
|
164
|
+
# Get consciences from registry
|
|
165
|
+
for entry in self.conscience_registry.get_consciences():
|
|
166
|
+
conscience = entry.conscience
|
|
167
|
+
cb = entry.circuit_breaker
|
|
168
|
+
|
|
169
|
+
try:
|
|
170
|
+
if cb:
|
|
171
|
+
cb.check_and_raise()
|
|
172
|
+
result = await conscience.check(final_action, context)
|
|
173
|
+
if cb:
|
|
174
|
+
cb.record_success()
|
|
175
|
+
conscience_checks_ran += 1
|
|
176
|
+
except CircuitBreakerError as e:
|
|
177
|
+
logger.warning(f"conscience {entry.name} unavailable: {e}")
|
|
178
|
+
continue
|
|
179
|
+
except Exception as e: # noqa: BLE001
|
|
180
|
+
logger.error(f"conscience {entry.name} error: {e}", exc_info=True)
|
|
181
|
+
if cb:
|
|
182
|
+
cb.record_failure()
|
|
183
|
+
continue
|
|
184
|
+
|
|
185
|
+
# Aggregate epistemic metrics from conscience results
|
|
186
|
+
if result.entropy_score is not None:
|
|
187
|
+
entropy_level = result.entropy_score
|
|
188
|
+
if result.coherence_score is not None:
|
|
189
|
+
coherence_level = result.coherence_score
|
|
190
|
+
if result.epistemic_humility_check is not None:
|
|
191
|
+
uncertainty_acknowledged = True
|
|
192
|
+
reasoning_transparency = 1.0 # Humility check ran, transparency confirmed
|
|
193
|
+
|
|
194
|
+
# Note: Individual conscience epistemic_data is now aggregated below
|
|
195
|
+
# Legacy per-conscience epistemic_data storage removed
|
|
196
|
+
|
|
197
|
+
if result.thought_depth_triggered is not None:
|
|
198
|
+
thought_depth_triggered = result.thought_depth_triggered
|
|
199
|
+
|
|
200
|
+
if result.updated_status_detected is not None:
|
|
201
|
+
updated_status_detected = result.updated_status_detected
|
|
202
|
+
|
|
203
|
+
if not result.passed:
|
|
204
|
+
overridden = True
|
|
205
|
+
override_reason = result.reason
|
|
206
|
+
|
|
207
|
+
# Check if the conscience provides a replacement action (top-level field)
|
|
208
|
+
if result.replacement_action:
|
|
209
|
+
# Use the conscience's suggested replacement action
|
|
210
|
+
final_action = ActionSelectionDMAResult.model_validate(result.replacement_action)
|
|
211
|
+
else:
|
|
212
|
+
# Default behavior: create a PONDER action
|
|
213
|
+
attempted_action_desc = self._describe_action(action_result)
|
|
214
|
+
questions = [
|
|
215
|
+
f"I attempted to {attempted_action_desc}",
|
|
216
|
+
result.reason or "conscience failed",
|
|
217
|
+
"What alternative approach would better align with my principles?",
|
|
218
|
+
]
|
|
219
|
+
|
|
220
|
+
ponder_params = PonderParams(questions=questions)
|
|
221
|
+
|
|
222
|
+
# Create PONDER action with required fields
|
|
223
|
+
final_action = ActionSelectionDMAResult(
|
|
224
|
+
selected_action=HandlerActionType.PONDER,
|
|
225
|
+
action_parameters=ponder_params,
|
|
226
|
+
rationale=f"Overridden by {entry.name}: Need to reconsider {attempted_action_desc}",
|
|
227
|
+
raw_llm_response=None,
|
|
228
|
+
reasoning=None,
|
|
229
|
+
evaluation_time_ms=None,
|
|
230
|
+
resource_usage=None,
|
|
231
|
+
)
|
|
232
|
+
break
|
|
233
|
+
|
|
234
|
+
# If this was a conscience retry and we didn't override, force PONDER
|
|
235
|
+
# unless the override was from thought depth guardrail
|
|
236
|
+
if is_conscience_retry and not overridden:
|
|
237
|
+
# Check if any conscience that ran was the depth guardrail
|
|
238
|
+
has_depth_guardrail = any(
|
|
239
|
+
"ThoughtDepthGuardrail" in entry.conscience.__class__.__name__
|
|
240
|
+
for entry in self.conscience_registry.get_consciences()
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
if not has_depth_guardrail:
|
|
244
|
+
logger.info("ThoughtProcessor: Conscience retry without override - forcing PONDER")
|
|
245
|
+
final_action = ActionSelectionDMAResult(
|
|
246
|
+
selected_action=HandlerActionType.PONDER,
|
|
247
|
+
action_parameters=PonderParams(questions=["Forced PONDER after conscience retry"]),
|
|
248
|
+
rationale="Forced PONDER after conscience retry to prevent loops",
|
|
249
|
+
raw_llm_response=None,
|
|
250
|
+
reasoning=None,
|
|
251
|
+
evaluation_time_ms=None,
|
|
252
|
+
resource_usage=None,
|
|
253
|
+
)
|
|
254
|
+
overridden = True
|
|
255
|
+
override_reason = "Conscience retry - forcing PONDER to prevent loops"
|
|
256
|
+
|
|
257
|
+
# Build EpistemicData from aggregated conscience results
|
|
258
|
+
from ciris_engine.schemas.conscience.core import EpistemicData
|
|
259
|
+
|
|
260
|
+
# epistemic_data is REQUIRED - fail hard if missing for non-exempt actions
|
|
261
|
+
if conscience_checks_ran == 0:
|
|
262
|
+
# This should only happen for exempt actions (which return early above)
|
|
263
|
+
# If we reach here with no conscience checks, it's a bug in conscience implementation
|
|
264
|
+
raise RuntimeError(
|
|
265
|
+
f"CONSCIENCE BUG: No conscience checks ran for non-exempt action {action_result.selected_action.value}. "
|
|
266
|
+
f"All consciences must provide epistemic_data for non-exempt actions."
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
# Use actual data from conscience checks - no defaults for missing metrics
|
|
270
|
+
epistemic_data = EpistemicData(
|
|
271
|
+
entropy_level=entropy_level if entropy_level is not None else 0.1, # Default safe value
|
|
272
|
+
coherence_level=coherence_level if coherence_level is not None else 0.9, # Default high coherence
|
|
273
|
+
uncertainty_acknowledged=uncertainty_acknowledged,
|
|
274
|
+
reasoning_transparency=reasoning_transparency,
|
|
275
|
+
)
|
|
276
|
+
|
|
277
|
+
# Build final application result (explicitly typed for mypy)
|
|
278
|
+
application_result: ConscienceApplicationResult = ConscienceApplicationResult(
|
|
279
|
+
original_action=action_result,
|
|
280
|
+
final_action=final_action,
|
|
281
|
+
overridden=overridden,
|
|
282
|
+
override_reason=override_reason,
|
|
283
|
+
epistemic_data=epistemic_data,
|
|
284
|
+
)
|
|
285
|
+
if thought_depth_triggered is not None:
|
|
286
|
+
application_result.thought_depth_triggered = thought_depth_triggered
|
|
287
|
+
if updated_status_detected is not None:
|
|
288
|
+
application_result.updated_status_detected = updated_status_detected
|
|
289
|
+
return application_result
|
|
290
|
+
|
|
291
|
+
async def _run_bypass_conscience_entries(
|
|
292
|
+
self,
|
|
293
|
+
action_result: ActionSelectionDMAResult,
|
|
294
|
+
context: Any,
|
|
295
|
+
) -> Dict[str, Any]:
|
|
296
|
+
"""Run bypass conscience entries that should run even for exempt actions.
|
|
297
|
+
|
|
298
|
+
These are critical checks like UpdatedStatusConscience that must run
|
|
299
|
+
even for TASK_COMPLETE, DEFER, REJECT actions.
|
|
300
|
+
|
|
301
|
+
Returns:
|
|
302
|
+
Dict with keys: final_action, overridden, override_reason, updated_status_detected,
|
|
303
|
+
updated_observation_content (the actual new message text)
|
|
304
|
+
"""
|
|
305
|
+
final_action = action_result
|
|
306
|
+
overridden = False
|
|
307
|
+
override_reason: Optional[str] = None
|
|
308
|
+
updated_status_detected: Optional[bool] = None
|
|
309
|
+
updated_observation_content: Optional[str] = None # NEW: Store the actual observation
|
|
310
|
+
|
|
311
|
+
# Get bypass consciences from registry
|
|
312
|
+
for entry in self.conscience_registry.get_bypass_consciences():
|
|
313
|
+
conscience = entry.conscience
|
|
314
|
+
cb = entry.circuit_breaker
|
|
315
|
+
|
|
316
|
+
try:
|
|
317
|
+
if cb:
|
|
318
|
+
cb.check_and_raise()
|
|
319
|
+
result = await conscience.check(final_action, context)
|
|
320
|
+
if cb:
|
|
321
|
+
cb.record_success()
|
|
322
|
+
except CircuitBreakerError as e:
|
|
323
|
+
logger.warning(f"Bypass conscience {entry.name} unavailable: {e}")
|
|
324
|
+
continue
|
|
325
|
+
except Exception as e: # noqa: BLE001
|
|
326
|
+
logger.error(f"Bypass conscience {entry.name} error: {e}", exc_info=True)
|
|
327
|
+
if cb:
|
|
328
|
+
cb.record_failure()
|
|
329
|
+
continue
|
|
330
|
+
|
|
331
|
+
if result.updated_status_detected is not None:
|
|
332
|
+
updated_status_detected = result.updated_status_detected
|
|
333
|
+
|
|
334
|
+
# CRITICAL: Extract the actual observation content from CIRIS_OBSERVATION_UPDATED_STATUS
|
|
335
|
+
if hasattr(result, "CIRIS_OBSERVATION_UPDATED_STATUS") and result.CIRIS_OBSERVATION_UPDATED_STATUS:
|
|
336
|
+
updated_observation_content = result.CIRIS_OBSERVATION_UPDATED_STATUS
|
|
337
|
+
logger.info(
|
|
338
|
+
f"[BYPASS_CONSCIENCE] Extracted new observation: {updated_observation_content[:100] if updated_observation_content else 'None'}..."
|
|
339
|
+
)
|
|
340
|
+
|
|
341
|
+
if not result.passed:
|
|
342
|
+
overridden = True
|
|
343
|
+
override_reason = result.reason
|
|
344
|
+
logger.info(f"[BYPASS_CONSCIENCE] {entry.name} overriding action {action_result.selected_action}")
|
|
345
|
+
logger.info(f"[BYPASS_CONSCIENCE] Override reason: {override_reason}")
|
|
346
|
+
logger.info(f"[BYPASS_CONSCIENCE] updated_status_detected={updated_status_detected}")
|
|
347
|
+
logger.info(
|
|
348
|
+
f"[BYPASS_CONSCIENCE] updated_observation_content={updated_observation_content[:100] if updated_observation_content else 'None'}..."
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
# Check if the conscience provides a replacement action
|
|
352
|
+
if result.replacement_action:
|
|
353
|
+
final_action = ActionSelectionDMAResult.model_validate(result.replacement_action)
|
|
354
|
+
logger.info(f"[BYPASS_CONSCIENCE] Using replacement action: {final_action.selected_action}")
|
|
355
|
+
else:
|
|
356
|
+
# Default behavior: create a PONDER action
|
|
357
|
+
attempted_action_desc = self._describe_action(action_result)
|
|
358
|
+
questions = [
|
|
359
|
+
f"I attempted to {attempted_action_desc}",
|
|
360
|
+
result.reason or "bypass conscience failed",
|
|
361
|
+
"What alternative approach would better align with my principles?",
|
|
362
|
+
]
|
|
363
|
+
|
|
364
|
+
ponder_params = PonderParams(questions=questions)
|
|
365
|
+
final_action = ActionSelectionDMAResult(
|
|
366
|
+
selected_action=HandlerActionType.PONDER,
|
|
367
|
+
action_parameters=ponder_params,
|
|
368
|
+
rationale=f"Overridden by {entry.name}: Need to reconsider {attempted_action_desc}",
|
|
369
|
+
raw_llm_response=None,
|
|
370
|
+
reasoning=None,
|
|
371
|
+
evaluation_time_ms=None,
|
|
372
|
+
resource_usage=None,
|
|
373
|
+
)
|
|
374
|
+
break
|
|
375
|
+
|
|
376
|
+
return {
|
|
377
|
+
"final_action": final_action,
|
|
378
|
+
"overridden": overridden,
|
|
379
|
+
"override_reason": override_reason,
|
|
380
|
+
"updated_status_detected": updated_status_detected,
|
|
381
|
+
"updated_observation_content": updated_observation_content, # NEW: Include the actual text
|
|
382
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Action Finalization Phase - H3ERE Pipeline Step 6.
|
|
3
|
+
|
|
4
|
+
Determines the final action after all processing phases complete,
|
|
5
|
+
handling special cases and ensuring a valid action result.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
from typing import TYPE_CHECKING, Any
|
|
10
|
+
|
|
11
|
+
from ciris_engine.logic.processors.core.step_decorators import step_point, streaming_step
|
|
12
|
+
from ciris_engine.logic.processors.support.processing_queue import ProcessingQueueItem
|
|
13
|
+
from ciris_engine.schemas.actions.parameters import PonderParams
|
|
14
|
+
from ciris_engine.schemas.dma.results import ActionSelectionDMAResult
|
|
15
|
+
from ciris_engine.schemas.runtime.enums import HandlerActionType
|
|
16
|
+
from ciris_engine.schemas.services.runtime_control import StepPoint
|
|
17
|
+
|
|
18
|
+
if TYPE_CHECKING:
|
|
19
|
+
from ciris_engine.schemas.processors.core import ConscienceApplicationResult
|
|
20
|
+
|
|
21
|
+
logger = logging.getLogger(__name__)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ActionFinalizationPhase:
|
|
25
|
+
"""
|
|
26
|
+
Phase 6: Action Finalization
|
|
27
|
+
|
|
28
|
+
Determines the final action to execute:
|
|
29
|
+
- Handles edge cases and special processing
|
|
30
|
+
- Ensures a valid action result exists
|
|
31
|
+
- Applies any final transformations
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
@streaming_step(StepPoint.FINALIZE_ACTION)
|
|
35
|
+
@step_point(StepPoint.FINALIZE_ACTION)
|
|
36
|
+
async def _finalize_action_step(
|
|
37
|
+
self, thought_item: ProcessingQueueItem, conscience_result: Any
|
|
38
|
+
) -> "ConscienceApplicationResult":
|
|
39
|
+
"""Step 5: Final action determination with full conscience data."""
|
|
40
|
+
# Import here to avoid circular imports
|
|
41
|
+
from ciris_engine.schemas.processors.core import ConscienceApplicationResult
|
|
42
|
+
|
|
43
|
+
if not conscience_result:
|
|
44
|
+
# If no conscience result, create ponder action and wrap in ConscienceApplicationResult
|
|
45
|
+
from ciris_engine.schemas.conscience.core import EpistemicData
|
|
46
|
+
|
|
47
|
+
ponder_action = ActionSelectionDMAResult(
|
|
48
|
+
selected_action=HandlerActionType.PONDER,
|
|
49
|
+
action_parameters=PonderParams(questions=["No valid action could be determined - what should I do?"]),
|
|
50
|
+
rationale="Failed to determine valid action - pondering instead",
|
|
51
|
+
resource_usage=None,
|
|
52
|
+
)
|
|
53
|
+
return ConscienceApplicationResult(
|
|
54
|
+
original_action=ponder_action,
|
|
55
|
+
final_action=ponder_action,
|
|
56
|
+
overridden=False,
|
|
57
|
+
override_reason=None,
|
|
58
|
+
epistemic_data=EpistemicData(
|
|
59
|
+
entropy_level=0.5, # Moderate uncertainty
|
|
60
|
+
coherence_level=0.5, # Moderate coherence
|
|
61
|
+
uncertainty_acknowledged=True, # System is aware of failure
|
|
62
|
+
reasoning_transparency=1.0, # Fully transparent about the issue
|
|
63
|
+
),
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
return conscience_result # type: ignore[no-any-return]
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Context Gathering Phase - H3ERE Pipeline Step 1.
|
|
3
|
+
|
|
4
|
+
Responsible for building the ThoughtContext that provides necessary
|
|
5
|
+
background information for DMA processing.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import logging
|
|
9
|
+
from typing import TYPE_CHECKING, Optional
|
|
10
|
+
|
|
11
|
+
from ciris_engine.logic.processors.core.step_decorators import step_point, streaming_step
|
|
12
|
+
from ciris_engine.logic.processors.support.processing_queue import ProcessingQueueItem
|
|
13
|
+
from ciris_engine.schemas.processors.context import ProcessorContext
|
|
14
|
+
from ciris_engine.schemas.runtime.processing_context import ProcessingThoughtContext
|
|
15
|
+
from ciris_engine.schemas.services.runtime_control import StepPoint
|
|
16
|
+
from ciris_engine.schemas.types import JSONDict
|
|
17
|
+
|
|
18
|
+
if TYPE_CHECKING:
|
|
19
|
+
from ciris_engine.logic.context.builder import ContextBuilder
|
|
20
|
+
from ciris_engine.schemas.runtime.models import Thought
|
|
21
|
+
|
|
22
|
+
logger = logging.getLogger(__name__)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ContextGatheringPhase:
|
|
26
|
+
"""
|
|
27
|
+
Phase 1: Context Gathering
|
|
28
|
+
|
|
29
|
+
Builds comprehensive context for thought processing including:
|
|
30
|
+
- User context and permissions
|
|
31
|
+
- Conversation history
|
|
32
|
+
- Task-specific context
|
|
33
|
+
- Environmental state
|
|
34
|
+
|
|
35
|
+
Mixin class - expects parent to provide:
|
|
36
|
+
- context_builder: ContextBuilder
|
|
37
|
+
- _fetch_thought: async method to fetch Thought by ID
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
# Type hints for attributes provided by ThoughtProcessor
|
|
41
|
+
context_builder: "ContextBuilder"
|
|
42
|
+
|
|
43
|
+
async def _fetch_thought(self, thought_id: str, occurrence_id: str = "default") -> Optional["Thought"]:
|
|
44
|
+
"""Fetch thought - implemented in ThoughtProcessor."""
|
|
45
|
+
raise NotImplementedError("Must be implemented by ThoughtProcessor")
|
|
46
|
+
|
|
47
|
+
@streaming_step(StepPoint.GATHER_CONTEXT)
|
|
48
|
+
@step_point(StepPoint.GATHER_CONTEXT)
|
|
49
|
+
async def _gather_context_step(
|
|
50
|
+
self, thought_item: ProcessingQueueItem, context: Optional[JSONDict] = None
|
|
51
|
+
) -> ProcessingThoughtContext:
|
|
52
|
+
"""
|
|
53
|
+
Step 1: Build context for DMA processing.
|
|
54
|
+
|
|
55
|
+
UNIFIED BATCH APPROACH:
|
|
56
|
+
- Always fetches the task from thought.source_task_id for user context
|
|
57
|
+
- Always uses build_system_snapshot_with_batch (creates minimal batch if needed)
|
|
58
|
+
- Ensures consistent snapshot building for both batch and single thoughts
|
|
59
|
+
"""
|
|
60
|
+
from ciris_engine.logic import persistence
|
|
61
|
+
from ciris_engine.logic.context.batch_context import build_system_snapshot_with_batch
|
|
62
|
+
|
|
63
|
+
thought = await self._fetch_thought(thought_item.thought_id, thought_item.agent_occurrence_id)
|
|
64
|
+
|
|
65
|
+
# Validate thought was successfully fetched
|
|
66
|
+
if thought is None:
|
|
67
|
+
raise ValueError(f"Failed to fetch thought {thought_item.thought_id}")
|
|
68
|
+
|
|
69
|
+
# ALWAYS fetch task for user context extraction
|
|
70
|
+
task = None
|
|
71
|
+
source_task_id = getattr(thought, "source_task_id", None)
|
|
72
|
+
logger.info(f"[UNIFIED CONTEXT] Thought {thought_item.thought_id} source_task_id: {source_task_id}")
|
|
73
|
+
|
|
74
|
+
if source_task_id:
|
|
75
|
+
logger.info(f"[UNIFIED CONTEXT] Fetching task {source_task_id} for user context")
|
|
76
|
+
task = persistence.get_task_by_id(source_task_id)
|
|
77
|
+
task_user_id = getattr(task.context, "user_id", None) if task and task.context else None
|
|
78
|
+
log_msg = (
|
|
79
|
+
f"Fetched task {task.task_id} with context user_id={task_user_id}"
|
|
80
|
+
if task
|
|
81
|
+
else f"Could not fetch task {source_task_id} for thought {thought_item.thought_id}"
|
|
82
|
+
)
|
|
83
|
+
log_fn = logger.info if task else logger.warning
|
|
84
|
+
log_fn(f"[UNIFIED CONTEXT] {log_msg}")
|
|
85
|
+
|
|
86
|
+
# Get pre-fetched batch context if available, otherwise will create on-demand
|
|
87
|
+
batch_context_data_raw = context.get("batch_context") if context else None
|
|
88
|
+
# Type narrow: batch_context could be dict or BatchContextData
|
|
89
|
+
from ciris_engine.logic.context.batch_context import BatchContextData
|
|
90
|
+
|
|
91
|
+
batch_context_data = batch_context_data_raw if isinstance(batch_context_data_raw, BatchContextData) else None
|
|
92
|
+
|
|
93
|
+
# ALWAYS use unified batch approach
|
|
94
|
+
system_snapshot = await build_system_snapshot_with_batch(
|
|
95
|
+
task=task, # Always pass task for user enrichment
|
|
96
|
+
thought=thought,
|
|
97
|
+
batch_data=batch_context_data, # Pre-fetched or None (will create minimal)
|
|
98
|
+
memory_service=self.context_builder.memory_service if self.context_builder else None,
|
|
99
|
+
graphql_provider=None,
|
|
100
|
+
time_service=self.context_builder.time_service if self.context_builder else None,
|
|
101
|
+
# Additional services for on-demand batch creation
|
|
102
|
+
secrets_service=self.context_builder.secrets_service if self.context_builder else None,
|
|
103
|
+
service_registry=self.context_builder.service_registry if self.context_builder else None,
|
|
104
|
+
resource_monitor=self.context_builder.resource_monitor if self.context_builder else None,
|
|
105
|
+
telemetry_service=self.context_builder.telemetry_service if self.context_builder else None,
|
|
106
|
+
runtime=self.context_builder.runtime if self.context_builder else None,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
# Build thought context with the unified snapshot
|
|
110
|
+
thought_context = await self.context_builder.build_thought_context(
|
|
111
|
+
thought, task=task, system_snapshot=system_snapshot
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
# Store context on queue item
|
|
115
|
+
if hasattr(thought_context, "model_dump"):
|
|
116
|
+
thought_item.initial_context = thought_context.model_dump()
|
|
117
|
+
else:
|
|
118
|
+
thought_item.initial_context = thought_context
|
|
119
|
+
|
|
120
|
+
return thought_context
|