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,122 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Processor error handling schemas.
|
|
3
|
+
|
|
4
|
+
Provides typed schemas in handle_error() method with typed schemas.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
from enum import Enum
|
|
9
|
+
from typing import Dict, Optional, Union
|
|
10
|
+
|
|
11
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ErrorSeverity(str, Enum):
|
|
15
|
+
"""Severity levels for processor errors."""
|
|
16
|
+
|
|
17
|
+
LOW = "low" # Can be ignored, processing continues
|
|
18
|
+
MEDIUM = "medium" # Should be logged, processing continues with caution
|
|
19
|
+
HIGH = "high" # Significant issue, may need intervention
|
|
20
|
+
CRITICAL = "critical" # Processing should stop, immediate attention needed
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AdditionalErrorContext(BaseModel):
|
|
24
|
+
"""Additional context for error handling."""
|
|
25
|
+
|
|
26
|
+
channel_id: Optional[str] = Field(None, description="Channel where error occurred")
|
|
27
|
+
user_id: Optional[str] = Field(None, description="User involved in the error")
|
|
28
|
+
task_id: Optional[str] = Field(None, description="Task ID if error during task processing")
|
|
29
|
+
memory_operation: Optional[str] = Field(None, description="Memory operation if error during memory access")
|
|
30
|
+
llm_model: Optional[str] = Field(None, description="LLM model if error during LLM call")
|
|
31
|
+
handler_name: Optional[str] = Field(None, description="Handler name if error during handler execution")
|
|
32
|
+
custom_data: Dict[str, Union[str, int, float, bool]] = Field(
|
|
33
|
+
default_factory=dict, description="Custom error context data"
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
model_config = ConfigDict(extra="allow")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ErrorContext(BaseModel):
|
|
40
|
+
"""Context information for processor error handling."""
|
|
41
|
+
|
|
42
|
+
processor_name: str = Field(..., description="Name of the processor where error occurred")
|
|
43
|
+
state: str = Field(..., description="Current AgentState when error occurred")
|
|
44
|
+
round_number: int = Field(..., description="Processing round when error occurred")
|
|
45
|
+
operation: str = Field(..., description="Operation being performed (e.g., 'process_thought', 'dispatch_action')")
|
|
46
|
+
item_id: Optional[str] = Field(None, description="ID of item being processed if applicable")
|
|
47
|
+
thought_content: Optional[str] = Field(None, description="Thought content if error during thought processing")
|
|
48
|
+
action_type: Optional[str] = Field(None, description="Action type if error during action dispatch")
|
|
49
|
+
additional_context: Optional[AdditionalErrorContext] = Field(None, description="Any additional context")
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class ProcessingError(BaseModel):
|
|
53
|
+
"""Structured error information for processor errors."""
|
|
54
|
+
|
|
55
|
+
error_type: str = Field(..., description="Type of error (e.g., exception class name)")
|
|
56
|
+
error_message: str = Field(..., description="Human-readable error message")
|
|
57
|
+
severity: ErrorSeverity = Field(..., description="Severity level of the error")
|
|
58
|
+
timestamp: datetime = Field(..., description="When the error occurred")
|
|
59
|
+
context: ErrorContext = Field(..., description="Context about the error")
|
|
60
|
+
stack_trace: Optional[str] = Field(None, description="Stack trace if available")
|
|
61
|
+
recovery_attempted: bool = Field(False, description="Whether recovery was attempted")
|
|
62
|
+
recovery_successful: bool = Field(False, description="Whether recovery succeeded")
|
|
63
|
+
should_continue: bool = Field(True, description="Whether processing should continue")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class ErrorHandlingResult(BaseModel):
|
|
67
|
+
"""Result of error handling operation."""
|
|
68
|
+
|
|
69
|
+
handled: bool = Field(..., description="Whether error was successfully handled")
|
|
70
|
+
should_continue: bool = Field(..., description="Whether processing should continue")
|
|
71
|
+
recovery_action: Optional[str] = Field(None, description="Action taken to recover")
|
|
72
|
+
new_state: Optional[str] = Field(None, description="New state to transition to if needed")
|
|
73
|
+
error_logged: bool = Field(True, description="Whether error was logged")
|
|
74
|
+
metrics_updated: bool = Field(True, description="Whether error metrics were updated")
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class ProcessorConfigOverrides(BaseModel):
|
|
78
|
+
"""Processor-specific configuration overrides."""
|
|
79
|
+
|
|
80
|
+
# Common processor overrides
|
|
81
|
+
batch_size: Optional[int] = Field(None, description="Batch size for processing")
|
|
82
|
+
processing_interval_ms: Optional[int] = Field(None, description="Processing interval in milliseconds")
|
|
83
|
+
enable_caching: Optional[bool] = Field(None, description="Enable caching for this processor")
|
|
84
|
+
cache_ttl_seconds: Optional[int] = Field(None, description="Cache time-to-live in seconds")
|
|
85
|
+
|
|
86
|
+
# State-specific overrides
|
|
87
|
+
min_state_duration_seconds: Optional[int] = Field(None, description="Minimum time to stay in state")
|
|
88
|
+
max_state_duration_seconds: Optional[int] = Field(None, description="Maximum time to stay in state")
|
|
89
|
+
|
|
90
|
+
# Resource limits
|
|
91
|
+
max_memory_mb: Optional[int] = Field(None, description="Maximum memory usage in MB")
|
|
92
|
+
max_cpu_percent: Optional[float] = Field(None, description="Maximum CPU usage percentage")
|
|
93
|
+
|
|
94
|
+
# Custom settings
|
|
95
|
+
custom_flags: Dict[str, bool] = Field(default_factory=dict, description="Custom boolean flags")
|
|
96
|
+
custom_values: Dict[str, Union[str, int, float]] = Field(
|
|
97
|
+
default_factory=dict, description="Custom configuration values"
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
model_config = ConfigDict(extra="forbid")
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class ProcessorConfig(BaseModel):
|
|
104
|
+
"""Configuration for a processor."""
|
|
105
|
+
|
|
106
|
+
processor_name: str = Field(..., description="Name of the processor")
|
|
107
|
+
supported_states: list[str] = Field(..., description="States this processor supports")
|
|
108
|
+
max_retries: int = Field(3, description="Maximum retry attempts on error")
|
|
109
|
+
timeout_seconds: Optional[int] = Field(None, description="Processing timeout in seconds")
|
|
110
|
+
error_threshold: int = Field(10, description="Error count before processor is considered unhealthy")
|
|
111
|
+
config_overrides: Optional[ProcessorConfigOverrides] = Field(None, description="Processor-specific configuration")
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
__all__ = [
|
|
115
|
+
"ErrorSeverity",
|
|
116
|
+
"AdditionalErrorContext",
|
|
117
|
+
"ErrorContext",
|
|
118
|
+
"ProcessingError",
|
|
119
|
+
"ErrorHandlingResult",
|
|
120
|
+
"ProcessorConfigOverrides",
|
|
121
|
+
"ProcessorConfig",
|
|
122
|
+
]
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Schemas for main processor operations.
|
|
3
|
+
|
|
4
|
+
Provides typed schemas for logic/processors/core/main_processor.py.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from datetime import datetime
|
|
8
|
+
from typing import Any, Dict, List, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
from ciris_engine.schemas.processors.states import AgentState
|
|
13
|
+
from ciris_engine.schemas.types import JSONDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ProcessorServices(BaseModel):
|
|
17
|
+
"""Services available to processors."""
|
|
18
|
+
|
|
19
|
+
service_registry: Optional[object] = Field(None, description="Service registry")
|
|
20
|
+
identity_manager: Optional[object] = Field(None, description="Identity manager")
|
|
21
|
+
memory_service: Optional[object] = Field(None, description="Memory service")
|
|
22
|
+
audit_service: Optional[object] = Field(None, description="Audit service")
|
|
23
|
+
telemetry_service: Optional[object] = Field(None, description="Telemetry service")
|
|
24
|
+
time_service: Optional[object] = Field(None, description="Time service")
|
|
25
|
+
|
|
26
|
+
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class ProcessingRoundResult(BaseModel):
|
|
30
|
+
"""Result from a single processing round."""
|
|
31
|
+
|
|
32
|
+
round_number: int = Field(..., description="Round number")
|
|
33
|
+
state: AgentState = Field(..., description="Current agent state")
|
|
34
|
+
processor_name: str = Field(..., description="Processor that handled this round")
|
|
35
|
+
success: bool = Field(..., description="Whether round succeeded")
|
|
36
|
+
items_processed: int = Field(0, description="Items processed")
|
|
37
|
+
errors: int = Field(0, description="Errors encountered")
|
|
38
|
+
state_changed: bool = Field(False, description="Whether state changed")
|
|
39
|
+
new_state: Optional[AgentState] = Field(None, description="New state if changed")
|
|
40
|
+
processing_time_ms: float = Field(..., description="Processing time in milliseconds")
|
|
41
|
+
details: JSONDict = Field(default_factory=dict, description="Additional round details")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class ProcessingStatus(BaseModel):
|
|
45
|
+
"""Overall processing status."""
|
|
46
|
+
|
|
47
|
+
is_running: bool = Field(..., description="Whether processing is active")
|
|
48
|
+
current_state: AgentState = Field(..., description="Current agent state")
|
|
49
|
+
current_round: int = Field(0, description="Current round number")
|
|
50
|
+
total_rounds_completed: int = Field(0, description="Total rounds completed")
|
|
51
|
+
start_time: Optional[datetime] = Field(None, description="When processing started")
|
|
52
|
+
last_round_time: Optional[datetime] = Field(None, description="When last round completed")
|
|
53
|
+
errors_last_hour: int = Field(0, description="Errors in last hour")
|
|
54
|
+
state_transitions: int = Field(0, description="Number of state transitions")
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class PreloadTask(BaseModel):
|
|
58
|
+
"""A task to preload after WORK state transition."""
|
|
59
|
+
|
|
60
|
+
description: str = Field(..., description="Task description")
|
|
61
|
+
priority: int = Field(5, description="Task priority")
|
|
62
|
+
channel_id: Optional[str] = Field(None, description="Channel to use")
|
|
63
|
+
metadata: JSONDict = Field(default_factory=dict, description="Additional task metadata")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class StateTransitionResult(BaseModel):
|
|
67
|
+
"""Result of a state transition."""
|
|
68
|
+
|
|
69
|
+
from_state: AgentState = Field(..., description="Previous state")
|
|
70
|
+
to_state: AgentState = Field(..., description="New state")
|
|
71
|
+
success: bool = Field(..., description="Whether transition succeeded")
|
|
72
|
+
reason: str = Field(..., description="Reason for transition")
|
|
73
|
+
timestamp: datetime = Field(..., description="When transition occurred")
|
|
74
|
+
validation_errors: List[str] = Field(default_factory=list, description="Validation errors if failed")
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class MainProcessorMetrics(BaseModel):
|
|
78
|
+
"""Metrics for a specific processor."""
|
|
79
|
+
|
|
80
|
+
processor_name: str = Field(..., description="Name of processor")
|
|
81
|
+
rounds_handled: int = Field(0, description="Rounds handled by this processor")
|
|
82
|
+
items_processed: int = Field(0, description="Total items processed")
|
|
83
|
+
errors: int = Field(0, description="Total errors")
|
|
84
|
+
average_round_time_ms: float = Field(0.0, description="Average round processing time")
|
|
85
|
+
last_active: Optional[datetime] = Field(None, description="Last activity time")
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class GlobalProcessingMetrics(BaseModel):
|
|
89
|
+
"""Global metrics across all processors."""
|
|
90
|
+
|
|
91
|
+
total_rounds: int = Field(0, description="Total rounds across all processors")
|
|
92
|
+
total_items_processed: int = Field(0, description="Total items processed")
|
|
93
|
+
total_errors: int = Field(0, description="Total errors")
|
|
94
|
+
uptime_seconds: float = Field(0.0, description="Processing uptime")
|
|
95
|
+
processor_metrics: Dict[str, MainProcessorMetrics] = Field(
|
|
96
|
+
default_factory=dict, description="Per-processor metrics"
|
|
97
|
+
)
|
|
98
|
+
state_distribution: Dict[AgentState, int] = Field(default_factory=dict, description="Time spent in each state")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class ShutdownRequest(BaseModel):
|
|
102
|
+
"""Request to shutdown processing."""
|
|
103
|
+
|
|
104
|
+
reason: str = Field(..., description="Reason for shutdown")
|
|
105
|
+
graceful: bool = Field(True, description="Whether to shutdown gracefully")
|
|
106
|
+
timeout_seconds: float = Field(30.0, description="Timeout for graceful shutdown")
|
|
107
|
+
force_after_timeout: bool = Field(True, description="Force shutdown after timeout")
|
|
108
|
+
requested_by: str = Field("system", description="Who requested shutdown")
|
|
109
|
+
timestamp: datetime = Field(..., description="When shutdown was requested")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Typed result models for H3ERE pipeline phases."""
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
|
|
5
|
+
from ciris_engine.schemas.dma.results import ActionSelectionDMAResult
|
|
6
|
+
from ciris_engine.schemas.processors.core import ConscienceApplicationResult
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ActionSelectionPhaseResult(BaseModel):
|
|
10
|
+
"""Result of action selection and conscience validation phase.
|
|
11
|
+
|
|
12
|
+
Replaces the JSONDict return type from _perform_action_selection_phase.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
action_result: ActionSelectionDMAResult = Field(..., description="The action selected by ASPDMA")
|
|
16
|
+
conscience_result: ConscienceApplicationResult = Field(
|
|
17
|
+
..., description="Result of conscience checks on the selected action"
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True # Immutable result object
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""
|
|
2
|
+
State-specific processing results for each AgentState.
|
|
3
|
+
|
|
4
|
+
These replace Dict[str, Any] returns from processors with type-safe schemas.
|
|
5
|
+
Each state has its own result type with state-specific fields.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import List, Literal, Optional, Tuple, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class WakeupResult(BaseModel):
|
|
14
|
+
"""Result from WAKEUP state processing."""
|
|
15
|
+
|
|
16
|
+
thoughts_processed: int = Field(0)
|
|
17
|
+
wakeup_complete: bool = Field(False)
|
|
18
|
+
errors: int = Field(0)
|
|
19
|
+
duration_seconds: float = Field(...)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class WorkResult(BaseModel):
|
|
23
|
+
"""Result from WORK state processing."""
|
|
24
|
+
|
|
25
|
+
tasks_processed: int = Field(0)
|
|
26
|
+
thoughts_processed: int = Field(0)
|
|
27
|
+
errors: int = Field(0)
|
|
28
|
+
duration_seconds: float = Field(...)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class PlayResult(BaseModel):
|
|
32
|
+
"""Result from PLAY state processing."""
|
|
33
|
+
|
|
34
|
+
thoughts_processed: int = Field(0)
|
|
35
|
+
errors: int = Field(0)
|
|
36
|
+
duration_seconds: float = Field(...)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class SolitudeResult(BaseModel):
|
|
40
|
+
"""Result from SOLITUDE state processing."""
|
|
41
|
+
|
|
42
|
+
thoughts_processed: int = Field(0)
|
|
43
|
+
errors: int = Field(0)
|
|
44
|
+
duration_seconds: float = Field(...)
|
|
45
|
+
should_exit_solitude: bool = Field(False, description="Whether to exit solitude state")
|
|
46
|
+
exit_reason: str = Field("Unknown reason", description="Reason for exiting solitude")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class DreamResult(BaseModel):
|
|
50
|
+
"""Result from DREAM state processing."""
|
|
51
|
+
|
|
52
|
+
thoughts_processed: int = Field(0)
|
|
53
|
+
errors: int = Field(0)
|
|
54
|
+
duration_seconds: float = Field(...)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class ShutdownResult(BaseModel):
|
|
58
|
+
"""Result from SHUTDOWN state processing.
|
|
59
|
+
|
|
60
|
+
This schema replaces all Dict[str, Any] returns from shutdown_processor.py
|
|
61
|
+
with a fully-typed result structure.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
# Core fields (used by process() method)
|
|
65
|
+
tasks_cleaned: int = Field(0, description="Number of tasks cleaned up")
|
|
66
|
+
shutdown_ready: bool = Field(False, description="Whether system is ready to shutdown")
|
|
67
|
+
errors: int = Field(0, description="Number of errors encountered")
|
|
68
|
+
duration_seconds: float = Field(..., description="Processing duration in seconds")
|
|
69
|
+
|
|
70
|
+
# Status fields (used by _process_shutdown() internal method)
|
|
71
|
+
status: Optional[Literal["completed", "rejected", "error", "in_progress", "shutdown_complete"]] = Field(
|
|
72
|
+
None, description="Detailed status of shutdown processing"
|
|
73
|
+
)
|
|
74
|
+
action: Optional[str] = Field(
|
|
75
|
+
None, description="Action taken: shutdown_accepted, shutdown_rejected, shutdown_error"
|
|
76
|
+
)
|
|
77
|
+
message: str = Field("", description="Human-readable message about shutdown state")
|
|
78
|
+
reason: Optional[str] = Field(None, description="Reason for rejection or error")
|
|
79
|
+
|
|
80
|
+
# Task tracking fields
|
|
81
|
+
task_status: Optional[str] = Field(None, description="Status of shutdown task (PENDING, ACTIVE, COMPLETED, FAILED)")
|
|
82
|
+
thoughts: Optional[List[Tuple[str, str]]] = Field(
|
|
83
|
+
None, description="List of (thought_id, status) tuples for debugging"
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
# Discriminated union of all possible results
|
|
88
|
+
ProcessingResult = Union[WakeupResult, WorkResult, PlayResult, SolitudeResult, DreamResult, ShutdownResult]
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
__all__ = [
|
|
92
|
+
"WakeupResult",
|
|
93
|
+
"WorkResult",
|
|
94
|
+
"PlayResult",
|
|
95
|
+
"SolitudeResult",
|
|
96
|
+
"DreamResult",
|
|
97
|
+
"ShutdownResult",
|
|
98
|
+
"ProcessingResult",
|
|
99
|
+
]
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Schemas for solitude processor operations.
|
|
3
|
+
|
|
4
|
+
These replace all Dict[str, Any] usage in logic/processors/states/solitude_processor.py.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Dict, List, Optional
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, Field
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ReflectionData(BaseModel):
|
|
13
|
+
"""Tracking data for reflection activities."""
|
|
14
|
+
|
|
15
|
+
tasks_reviewed: int = Field(0, description="Number of tasks reviewed")
|
|
16
|
+
thoughts_reviewed: int = Field(0, description="Number of thoughts reviewed")
|
|
17
|
+
memories_consolidated: int = Field(0, description="Number of memories consolidated")
|
|
18
|
+
cleanup_performed: bool = Field(False, description="Whether cleanup was performed")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SolitudeProcessingResult(BaseModel):
|
|
22
|
+
"""Result from a solitude processing round."""
|
|
23
|
+
|
|
24
|
+
round_number: int = Field(..., description="Processing round number")
|
|
25
|
+
critical_tasks_found: int = Field(0, description="Number of critical tasks found")
|
|
26
|
+
maintenance_performed: bool = Field(False, description="Whether maintenance was performed")
|
|
27
|
+
should_exit_solitude: bool = Field(False, description="Whether to exit solitude state")
|
|
28
|
+
reflection_summary: Optional["ReflectionResult"] = Field(None)
|
|
29
|
+
maintenance_summary: Optional["MaintenanceResult"] = Field(None, description="Maintenance results if performed")
|
|
30
|
+
exit_reason: Optional[str] = Field(None, description="Reason for exiting solitude")
|
|
31
|
+
error: Optional[str] = Field(None, description="Error message if processing failed")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class MaintenanceResult(BaseModel):
|
|
35
|
+
"""Result from maintenance operations."""
|
|
36
|
+
|
|
37
|
+
old_completed_tasks_cleaned: int = Field(0, description="Number of old completed tasks cleaned")
|
|
38
|
+
old_thoughts_cleaned: int = Field(0, description="Number of old thoughts cleaned")
|
|
39
|
+
database_optimized: bool = Field(False, description="Whether database was optimized")
|
|
40
|
+
errors: List[str] = Field(default_factory=list, description="Any errors during maintenance")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class TaskTypePattern(BaseModel):
|
|
44
|
+
"""Identified pattern in task types."""
|
|
45
|
+
|
|
46
|
+
pattern: str = Field(..., description="Pattern type")
|
|
47
|
+
value: str = Field(..., description="Pattern value")
|
|
48
|
+
count: int = Field(..., description="Occurrence count")
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class ReflectionResult(BaseModel):
|
|
52
|
+
"""Result from reflection and learning activities."""
|
|
53
|
+
|
|
54
|
+
recent_tasks_analyzed: int = Field(0, description="Number of recent tasks analyzed")
|
|
55
|
+
patterns_identified: List[TaskTypePattern] = Field(default_factory=list, description="Identified patterns")
|
|
56
|
+
memories_consolidated: int = Field(0, description="Number of memories consolidated")
|
|
57
|
+
insights: List[str] = Field(default_factory=list, description="Insights from reflection")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class ExitConditions(BaseModel):
|
|
61
|
+
"""Conditions for exiting solitude state."""
|
|
62
|
+
|
|
63
|
+
should_exit: bool = Field(False, description="Whether to exit solitude")
|
|
64
|
+
reason: Optional[str] = Field(None, description="Reason for exit decision")
|
|
65
|
+
pending_tasks: int = Field(0, description="Number of pending tasks")
|
|
66
|
+
time_in_solitude: Optional[float] = Field(None, description="Time spent in solitude (seconds)")
|
|
67
|
+
resource_usage: Optional[float] = Field(None, description="Current resource usage percentage")
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class TaskTypeStats(BaseModel):
|
|
71
|
+
"""Statistics about task types."""
|
|
72
|
+
|
|
73
|
+
task_types: Dict[str, int] = Field(default_factory=dict, description="Count by task type")
|
|
74
|
+
most_common_type: Optional[str] = Field(None, description="Most common task type")
|
|
75
|
+
most_common_count: int = Field(0, description="Count of most common type")
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# Fix forward references
|
|
79
|
+
SolitudeProcessingResult.model_rebuild()
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"""
|
|
2
|
+
State transition schemas for processor state management.
|
|
3
|
+
Provides typed schemas usage in state history and transitions.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from datetime import datetime
|
|
7
|
+
from typing import Dict, Optional, Union
|
|
8
|
+
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
10
|
+
|
|
11
|
+
from ciris_engine.schemas.processors.states import AgentState
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class StateTransitionMetadata(BaseModel):
|
|
15
|
+
"""Metadata for state transitions."""
|
|
16
|
+
|
|
17
|
+
reason: Optional[str] = Field(None, description="Reason for the transition")
|
|
18
|
+
trigger: Optional[str] = Field(None, description="What triggered the transition")
|
|
19
|
+
duration_in_previous_state: Optional[float] = Field(None, description="Seconds spent in previous state")
|
|
20
|
+
forced: bool = Field(False, description="Whether transition was forced")
|
|
21
|
+
validator_results: Dict[str, bool] = Field(default_factory=dict, description="Results of state validators")
|
|
22
|
+
|
|
23
|
+
model_config = ConfigDict(extra="allow") # Allow additional fields for extensibility
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class StateTransitionRecord(BaseModel):
|
|
27
|
+
"""Record of a state transition that occurred."""
|
|
28
|
+
|
|
29
|
+
timestamp: str = Field(description="ISO format timestamp of the transition")
|
|
30
|
+
from_state: Optional[str] = Field(None, description="State before transition (None for initial state)")
|
|
31
|
+
to_state: str = Field(description="State after transition")
|
|
32
|
+
metadata: Optional[StateTransitionMetadata] = Field(None, description="Additional transition metadata")
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(frozen=True) # Make immutable once created
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class StateTransitionContext(BaseModel):
|
|
38
|
+
"""Context for state transition requests."""
|
|
39
|
+
|
|
40
|
+
trigger_source: Optional[str] = Field(None, description="What triggered this transition request")
|
|
41
|
+
task_context: Optional[str] = Field(None, description="Current task being processed")
|
|
42
|
+
memory_state: Optional[str] = Field(None, description="Current memory state summary")
|
|
43
|
+
processor_metrics: Dict[str, float] = Field(default_factory=dict, description="Current processor metrics")
|
|
44
|
+
|
|
45
|
+
model_config = ConfigDict(extra="allow") # Allow additional fields for extensibility
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class StateTransitionRequest(BaseModel):
|
|
49
|
+
"""Request to transition to a new state."""
|
|
50
|
+
|
|
51
|
+
target_state: AgentState = Field(description="Target state to transition to")
|
|
52
|
+
reason: Optional[str] = Field(None, description="Reason for the transition")
|
|
53
|
+
force: bool = Field(False, description="Force transition even if conditions not met")
|
|
54
|
+
context: Optional[StateTransitionContext] = Field(None, description="Additional transition context")
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class StateTransitionResult(BaseModel):
|
|
58
|
+
"""Result of a state transition attempt."""
|
|
59
|
+
|
|
60
|
+
success: bool = Field(description="Whether the transition succeeded")
|
|
61
|
+
from_state: AgentState = Field(description="State before transition attempt")
|
|
62
|
+
to_state: Optional[AgentState] = Field(None, description="State after transition (if successful)")
|
|
63
|
+
reason: Optional[str] = Field(None, description="Reason for success or failure")
|
|
64
|
+
timestamp: str = Field(description="ISO format timestamp of the attempt")
|
|
65
|
+
duration_in_previous_state: Optional[float] = Field(None, description="Seconds spent in previous state")
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class StateMetrics(BaseModel):
|
|
69
|
+
"""Metrics tracked for a specific state."""
|
|
70
|
+
|
|
71
|
+
tasks_processed: int = Field(0, description="Number of tasks processed in this state")
|
|
72
|
+
errors_encountered: int = Field(0, description="Number of errors in this state")
|
|
73
|
+
average_task_duration_ms: Optional[float] = Field(None, description="Average task processing time")
|
|
74
|
+
memory_operations: int = Field(0, description="Number of memory operations performed")
|
|
75
|
+
llm_calls: int = Field(0, description="Number of LLM calls made")
|
|
76
|
+
custom_metrics: Dict[str, Union[int, float, str]] = Field(
|
|
77
|
+
default_factory=dict, description="State-specific custom metrics"
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
def increment(self, metric: str, value: Union[int, float] = 1) -> None:
|
|
81
|
+
"""Increment a metric value."""
|
|
82
|
+
if metric in self.model_fields:
|
|
83
|
+
current = getattr(self, metric, 0)
|
|
84
|
+
setattr(self, metric, current + value)
|
|
85
|
+
else:
|
|
86
|
+
current = self.custom_metrics.get(metric, 0)
|
|
87
|
+
if isinstance(current, (int, float)) and isinstance(value, (int, float)):
|
|
88
|
+
self.custom_metrics[metric] = current + value
|
|
89
|
+
else:
|
|
90
|
+
self.custom_metrics[metric] = value
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
class StateConfiguration(BaseModel):
|
|
94
|
+
"""State-specific configuration."""
|
|
95
|
+
|
|
96
|
+
# Common state configuration
|
|
97
|
+
auto_transition_enabled: bool = Field(True, description="Allow automatic state transitions")
|
|
98
|
+
max_duration_seconds: Optional[int] = Field(None, description="Maximum time to stay in this state")
|
|
99
|
+
min_duration_seconds: Optional[int] = Field(None, description="Minimum time to stay in this state")
|
|
100
|
+
|
|
101
|
+
# State-specific settings
|
|
102
|
+
processing_mode: Optional[str] = Field(None, description="Processing mode for this state")
|
|
103
|
+
priority_level: Optional[int] = Field(None, description="Priority level for state processing")
|
|
104
|
+
|
|
105
|
+
# Resource limits for this state
|
|
106
|
+
memory_limit_mb: Optional[int] = Field(None, description="Memory limit for this state")
|
|
107
|
+
cpu_limit_percent: Optional[float] = Field(None, description="CPU limit for this state")
|
|
108
|
+
|
|
109
|
+
# Custom configuration
|
|
110
|
+
custom_settings: Dict[str, Union[str, int, float, bool]] = Field(
|
|
111
|
+
default_factory=dict, description="Custom state settings"
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
model_config = ConfigDict(extra="allow") # Allow state-specific extensions
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
class StateMetadata(BaseModel):
|
|
118
|
+
"""Metadata for a specific state."""
|
|
119
|
+
|
|
120
|
+
entered_at: str = Field(description="ISO format timestamp when state was entered")
|
|
121
|
+
metrics: StateMetrics = Field(default_factory=StateMetrics, description="State-specific metrics")
|
|
122
|
+
exit_reason: Optional[str] = Field(None, description="Reason for exiting this state")
|
|
123
|
+
state_config: StateConfiguration = Field(
|
|
124
|
+
default_factory=StateConfiguration, description="State-specific configuration"
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
def add_metric(self, key: str, value: Union[int, float, str]) -> None:
|
|
128
|
+
"""Add or update a metric."""
|
|
129
|
+
self.metrics.custom_metrics[key] = value
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class StateHistory(BaseModel):
|
|
133
|
+
"""Complete state history with typed records."""
|
|
134
|
+
|
|
135
|
+
transitions: list[StateTransitionRecord] = Field(
|
|
136
|
+
default_factory=list, description="Ordered list of state transitions"
|
|
137
|
+
)
|
|
138
|
+
current_state: AgentState = Field(description="Current agent state")
|
|
139
|
+
current_state_metadata: StateMetadata = Field(description="Metadata for current state")
|
|
140
|
+
|
|
141
|
+
def add_transition(self, record: StateTransitionRecord) -> None:
|
|
142
|
+
"""Add a transition record to history."""
|
|
143
|
+
self.transitions.append(record)
|
|
144
|
+
|
|
145
|
+
def get_recent_transitions(self, limit: int = 10) -> list[StateTransitionRecord]:
|
|
146
|
+
"""Get the most recent transitions."""
|
|
147
|
+
return self.transitions[-limit:] if self.transitions else []
|
|
148
|
+
|
|
149
|
+
def get_state_duration(self, state: AgentState) -> float:
|
|
150
|
+
"""Calculate total time spent in a specific state across all transitions."""
|
|
151
|
+
total_duration = 0.0
|
|
152
|
+
|
|
153
|
+
for i, transition in enumerate(self.transitions):
|
|
154
|
+
if transition.to_state == state.value:
|
|
155
|
+
# Find when we left this state
|
|
156
|
+
exit_time = None
|
|
157
|
+
for j in range(i + 1, len(self.transitions)):
|
|
158
|
+
if self.transitions[j].from_state == state.value:
|
|
159
|
+
exit_time = self.transitions[j].timestamp
|
|
160
|
+
break
|
|
161
|
+
|
|
162
|
+
# If we haven't left yet and it's the current state, use now
|
|
163
|
+
if exit_time is None and self.current_state == state:
|
|
164
|
+
exit_time = datetime.now().isoformat()
|
|
165
|
+
|
|
166
|
+
if exit_time:
|
|
167
|
+
enter_time = datetime.fromisoformat(transition.timestamp)
|
|
168
|
+
exit_datetime = datetime.fromisoformat(exit_time)
|
|
169
|
+
total_duration += (exit_datetime - enter_time).total_seconds()
|
|
170
|
+
|
|
171
|
+
return total_duration
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class StateConditionDetails(BaseModel):
|
|
175
|
+
"""Details about a state condition check."""
|
|
176
|
+
|
|
177
|
+
checked_at: str = Field(description="ISO format timestamp of check")
|
|
178
|
+
check_duration_ms: Optional[float] = Field(None, description="Time taken to check condition")
|
|
179
|
+
threshold_value: Optional[Union[int, float]] = Field(None, description="Threshold value if applicable")
|
|
180
|
+
actual_value: Optional[Union[int, float]] = Field(None, description="Actual value if applicable")
|
|
181
|
+
error_message: Optional[str] = Field(None, description="Error if check failed")
|
|
182
|
+
|
|
183
|
+
model_config = ConfigDict(extra="allow") # Allow additional fields for specific conditions
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
class StateCondition(BaseModel):
|
|
187
|
+
"""Condition that must be met for a state transition."""
|
|
188
|
+
|
|
189
|
+
name: str = Field(description="Name of the condition")
|
|
190
|
+
description: str = Field(description="Human-readable description")
|
|
191
|
+
met: bool = Field(description="Whether the condition is currently met")
|
|
192
|
+
details: Optional[StateConditionDetails] = Field(None, description="Additional condition details")
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class StateTransitionValidation(BaseModel):
|
|
196
|
+
"""Validation result for a potential state transition."""
|
|
197
|
+
|
|
198
|
+
from_state: AgentState = Field(description="Current state")
|
|
199
|
+
to_state: AgentState = Field(description="Target state")
|
|
200
|
+
is_valid: bool = Field(description="Whether the transition is valid")
|
|
201
|
+
conditions: list[StateCondition] = Field(default_factory=list, description="Conditions checked")
|
|
202
|
+
blocking_reason: Optional[str] = Field(None, description="Reason transition is blocked if invalid")
|