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,311 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Service manifest schemas for typed module loading.
|
|
3
|
+
|
|
4
|
+
Provides typed schemas in service loading and module manifests.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from datetime import datetime, timezone
|
|
8
|
+
from enum import Enum
|
|
9
|
+
from typing import Any, Dict, List, Literal, Optional, Union
|
|
10
|
+
|
|
11
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
12
|
+
|
|
13
|
+
from ciris_engine.schemas.runtime.enums import ServiceType
|
|
14
|
+
from ciris_engine.schemas.types import JSONDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ServicePriority(str, Enum):
|
|
18
|
+
"""Service priority levels for registration."""
|
|
19
|
+
|
|
20
|
+
CRITICAL = "CRITICAL"
|
|
21
|
+
HIGH = "HIGH"
|
|
22
|
+
NORMAL = "NORMAL"
|
|
23
|
+
LOW = "LOW"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ServiceCapabilityDeclaration(BaseModel):
|
|
27
|
+
"""Declaration of a service capability."""
|
|
28
|
+
|
|
29
|
+
name: str = Field(..., description="Capability name (e.g., 'call_llm_structured')")
|
|
30
|
+
description: str = Field(..., description="Human-readable description of the capability")
|
|
31
|
+
version: str = Field(default="1.0.0", description="Capability version")
|
|
32
|
+
parameters: Optional[Dict[str, str]] = Field(None, description="Parameter descriptions")
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(extra="forbid")
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class ServiceDependency(BaseModel):
|
|
38
|
+
"""Declaration of a service dependency."""
|
|
39
|
+
|
|
40
|
+
service_type: ServiceType = Field(..., description="Type of service required")
|
|
41
|
+
required: bool = Field(True, description="Whether this dependency is required")
|
|
42
|
+
minimum_version: Optional[str] = Field(None, description="Minimum service version required")
|
|
43
|
+
capabilities_required: List[str] = Field(default_factory=list, description="Required capabilities")
|
|
44
|
+
|
|
45
|
+
model_config = ConfigDict(extra="forbid")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class ServiceDeclaration(BaseModel):
|
|
49
|
+
"""Declaration of a service in a manifest."""
|
|
50
|
+
|
|
51
|
+
type: ServiceType = Field(..., description="Service type this implements")
|
|
52
|
+
class_path: str = Field(..., description="Full class path (e.g., 'mock_llm.service.MockLLMService')", alias="class")
|
|
53
|
+
priority: ServicePriority = Field(ServicePriority.NORMAL, description="Service priority level")
|
|
54
|
+
capabilities: List[str] = Field(default_factory=list, description="List of capability names")
|
|
55
|
+
|
|
56
|
+
model_config = ConfigDict(extra="forbid", populate_by_name=True)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class ModuleInfo(BaseModel):
|
|
60
|
+
"""Module-level information."""
|
|
61
|
+
|
|
62
|
+
name: str = Field(..., description="Module name")
|
|
63
|
+
version: str = Field(..., description="Module version")
|
|
64
|
+
description: str = Field(..., description="Module description")
|
|
65
|
+
author: str = Field(..., description="Module author")
|
|
66
|
+
is_mock: bool = Field(False, description="Whether this is a MOCK module", alias="MOCK")
|
|
67
|
+
license: Optional[str] = Field(None, description="Module license")
|
|
68
|
+
homepage: Optional[str] = Field(None, description="Module homepage URL")
|
|
69
|
+
safe_domain: Optional[bool] = Field(None, description="Whether module operates in safe domains")
|
|
70
|
+
reference: bool = Field(False, description="Whether this is a reference/example module")
|
|
71
|
+
for_qa: bool = Field(False, description="Whether this module is for QA/testing")
|
|
72
|
+
|
|
73
|
+
model_config = ConfigDict(extra="forbid", populate_by_name=True)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class LegacyDependencies(BaseModel):
|
|
77
|
+
"""Legacy dependency format for backward compatibility."""
|
|
78
|
+
|
|
79
|
+
protocols: List[str] = Field(default_factory=list, description="Required protocols")
|
|
80
|
+
schemas: List[str] = Field(default_factory=list, description="Required schemas")
|
|
81
|
+
external: Optional[Dict[str, str]] = Field(None, description="External package dependencies")
|
|
82
|
+
internal: Optional[List[str]] = Field(None, description="Internal module dependencies")
|
|
83
|
+
|
|
84
|
+
model_config = ConfigDict(extra="forbid")
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class ConfigurationParameter(BaseModel):
|
|
88
|
+
"""Configuration parameter definition."""
|
|
89
|
+
|
|
90
|
+
type: str = Field(..., description="Parameter type (integer, float, string, boolean, array)")
|
|
91
|
+
default: Optional[Union[int, float, str, bool, List[str]]] = Field(None, description="Default value (optional)")
|
|
92
|
+
description: str = Field(..., description="Parameter description")
|
|
93
|
+
env: Optional[str] = Field(None, description="Environment variable name")
|
|
94
|
+
sensitivity: Optional[str] = Field(None, description="Sensitivity level (e.g., 'HIGH' for secrets)")
|
|
95
|
+
required: bool = Field(True, description="Whether this parameter is required")
|
|
96
|
+
enum: Optional[List[str]] = Field(None, description="Allowed values for string parameters")
|
|
97
|
+
|
|
98
|
+
model_config = ConfigDict(extra="forbid")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class AdapterOAuthConfig(BaseModel):
|
|
102
|
+
"""OAuth configuration for adapter authentication workflows.
|
|
103
|
+
|
|
104
|
+
This is distinct from OAuthConfig in wise_authority, which handles full
|
|
105
|
+
OAuth provider configuration. This schema is for adapter configuration
|
|
106
|
+
workflows that need OAuth authentication.
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
provider_name: str = Field(..., description="OAuth provider name")
|
|
110
|
+
authorization_path: str = Field("/auth/authorize", description="OAuth authorization endpoint path")
|
|
111
|
+
token_path: str = Field("/auth/token", description="OAuth token endpoint path")
|
|
112
|
+
client_id_source: Literal["static", "indieauth"] = Field(
|
|
113
|
+
"indieauth", description="Source of client ID (static value or IndieAuth discovery)"
|
|
114
|
+
)
|
|
115
|
+
scopes: List[str] = Field(default_factory=list, description="OAuth scopes to request")
|
|
116
|
+
pkce_required: bool = Field(True, description="Whether PKCE is required for this OAuth flow")
|
|
117
|
+
|
|
118
|
+
model_config = ConfigDict(extra="forbid")
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class ConfigurationFieldDefinition(BaseModel):
|
|
122
|
+
"""Definition of a field within an input step."""
|
|
123
|
+
|
|
124
|
+
# Field identification - supports both 'name' and 'field_id' patterns
|
|
125
|
+
name: Optional[str] = Field(None, description="Field name (alternative to field_id)")
|
|
126
|
+
field_id: Optional[str] = Field(None, description="Field identifier (alternative to name)")
|
|
127
|
+
label: Optional[str] = Field(None, description="Human-readable label for the field")
|
|
128
|
+
|
|
129
|
+
# Field type and input
|
|
130
|
+
type: Optional[str] = Field(None, description="Field data type (string, integer, number, boolean, password)")
|
|
131
|
+
input_type: Optional[str] = Field(None, description="Input control type (text, password, number, select)")
|
|
132
|
+
|
|
133
|
+
# Field metadata
|
|
134
|
+
description: Optional[str] = Field(None, description="Description of the field")
|
|
135
|
+
placeholder: Optional[str] = Field(None, description="Placeholder text for input")
|
|
136
|
+
default: Optional[Any] = Field(None, description="Default value")
|
|
137
|
+
required: bool = Field(False, description="Whether this field is required")
|
|
138
|
+
|
|
139
|
+
# Validation
|
|
140
|
+
min: Optional[Union[int, float]] = Field(None, description="Minimum value")
|
|
141
|
+
max: Optional[Union[int, float]] = Field(None, description="Maximum value")
|
|
142
|
+
|
|
143
|
+
# Conditional display
|
|
144
|
+
depends_on: Optional[Dict[str, Any]] = Field(None, description="Conditional display based on other fields")
|
|
145
|
+
|
|
146
|
+
model_config = ConfigDict(extra="allow") # Allow additional field-specific properties
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
class ConfigurationStep(BaseModel):
|
|
150
|
+
"""A step in an adapter configuration workflow."""
|
|
151
|
+
|
|
152
|
+
step_id: str = Field(..., description="Unique identifier for this step")
|
|
153
|
+
step_type: Literal["discovery", "oauth", "select", "input", "confirm"] = Field(
|
|
154
|
+
..., description="Type of configuration step"
|
|
155
|
+
)
|
|
156
|
+
title: str = Field(..., description="Human-readable step title")
|
|
157
|
+
description: str = Field(..., description="Description of what this step does")
|
|
158
|
+
|
|
159
|
+
# Discovery step fields
|
|
160
|
+
discovery_method: Optional[str] = Field(
|
|
161
|
+
None, description="Discovery method name (e.g., 'mdns', 'api_scan') for discovery steps"
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
# OAuth step fields
|
|
165
|
+
oauth_config: Optional[AdapterOAuthConfig] = Field(None, description="OAuth configuration for oauth steps")
|
|
166
|
+
|
|
167
|
+
# Select step fields
|
|
168
|
+
options_method: Optional[str] = Field(
|
|
169
|
+
None, description="Method name to call for retrieving options in select steps"
|
|
170
|
+
)
|
|
171
|
+
multiple: bool = Field(False, description="Whether multiple selections are allowed")
|
|
172
|
+
|
|
173
|
+
# Input step fields - complex form with multiple fields
|
|
174
|
+
fields: Optional[List[ConfigurationFieldDefinition]] = Field(
|
|
175
|
+
None, description="List of field definitions for input steps"
|
|
176
|
+
)
|
|
177
|
+
dynamic_fields: bool = Field(False, description="Whether fields are dynamically generated")
|
|
178
|
+
|
|
179
|
+
# Input step fields - simple single field (alternative to 'fields' list)
|
|
180
|
+
field: Optional[str] = Field(None, description="Single field name (simple input)")
|
|
181
|
+
field_name: Optional[str] = Field(None, description="Configuration field name for input/select steps")
|
|
182
|
+
input_type: Optional[str] = Field(None, description="Input type (text, password, number)")
|
|
183
|
+
placeholder: Optional[str] = Field(None, description="Placeholder text")
|
|
184
|
+
|
|
185
|
+
# Step requirements and flow control
|
|
186
|
+
required: bool = Field(False, description="Whether this step is required")
|
|
187
|
+
optional: bool = Field(False, description="Whether this step/field is optional")
|
|
188
|
+
default: Optional[Any] = Field(None, description="Default value for the field")
|
|
189
|
+
validation: Optional[Dict[str, Any]] = Field(None, description="Validation rules (e.g., min, max, pattern)")
|
|
190
|
+
|
|
191
|
+
# Dependencies - supports both list of step_ids and conditional dict
|
|
192
|
+
depends_on: Optional[Union[List[str], Dict[str, Any]]] = Field(
|
|
193
|
+
None, description="Step dependencies - list of step_ids or conditional dict"
|
|
194
|
+
)
|
|
195
|
+
condition: Optional[Dict[str, Any]] = Field(
|
|
196
|
+
None, description="Condition for showing this step (e.g., {field: 'x', equals: 'y'})"
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
# Confirm step fields
|
|
200
|
+
action: Optional[str] = Field(None, description="Action to perform on confirm (e.g., 'test_connection')")
|
|
201
|
+
|
|
202
|
+
model_config = ConfigDict(extra="allow") # Allow additional step-specific properties
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
class InteractiveConfiguration(BaseModel):
|
|
206
|
+
"""Interactive configuration definition for adapters.
|
|
207
|
+
|
|
208
|
+
Enables adapters to define multi-step configuration workflows including
|
|
209
|
+
discovery, OAuth authentication, and user input steps.
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
required: bool = Field(False, description="Whether interactive configuration is required")
|
|
213
|
+
workflow_type: Literal["wizard", "discovery_then_config", "simple_config"] = Field(
|
|
214
|
+
"wizard", description="Type of configuration workflow"
|
|
215
|
+
)
|
|
216
|
+
steps: List[ConfigurationStep] = Field(default_factory=list, description="Ordered list of configuration steps")
|
|
217
|
+
completion_method: str = Field("apply_config", description="Method name to call when configuration is complete")
|
|
218
|
+
|
|
219
|
+
model_config = ConfigDict(extra="allow") # Allow reference/documentation fields
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
class ServiceManifest(BaseModel):
|
|
223
|
+
"""Complete service module manifest."""
|
|
224
|
+
|
|
225
|
+
module: ModuleInfo = Field(..., description="Module information")
|
|
226
|
+
services: List[ServiceDeclaration] = Field(default_factory=list, description="Services provided")
|
|
227
|
+
capabilities: List[str] = Field(default_factory=list, description="Global capabilities list")
|
|
228
|
+
dependencies: Optional[LegacyDependencies] = Field(None, description="Legacy dependencies format")
|
|
229
|
+
configuration: Optional[Dict[str, ConfigurationParameter]] = Field(None, description="Configuration parameters")
|
|
230
|
+
exports: Optional[Dict[str, Union[str, List[str]]]] = Field(
|
|
231
|
+
None, description="Exported components (string or list)"
|
|
232
|
+
)
|
|
233
|
+
metadata: Optional[JSONDict] = Field(None, description="Additional metadata")
|
|
234
|
+
requirements: List[str] = Field(default_factory=list, description="Python package requirements")
|
|
235
|
+
prohibited_sensors: Optional[List[str]] = Field(None, description="Prohibited sensor types for sensor modules")
|
|
236
|
+
prohibited_capabilities: Optional[List[str]] = Field(None, description="Prohibited capabilities for this module")
|
|
237
|
+
interactive_config: Optional[InteractiveConfiguration] = Field(
|
|
238
|
+
None, description="Interactive configuration workflow for adapters"
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
model_config = ConfigDict(extra="forbid")
|
|
242
|
+
|
|
243
|
+
def validate_manifest(self) -> List[str]:
|
|
244
|
+
"""Validate manifest consistency.
|
|
245
|
+
|
|
246
|
+
Returns:
|
|
247
|
+
List of validation errors (empty if valid)
|
|
248
|
+
"""
|
|
249
|
+
errors = []
|
|
250
|
+
|
|
251
|
+
# Global capabilities are just a list in the current format
|
|
252
|
+
# Service capabilities can reference these or define their own
|
|
253
|
+
|
|
254
|
+
# Check for MOCK module warnings
|
|
255
|
+
if self.module.is_mock:
|
|
256
|
+
for service in self.services:
|
|
257
|
+
if service.priority == ServicePriority.CRITICAL:
|
|
258
|
+
# MOCK modules often use CRITICAL priority to override real services
|
|
259
|
+
# This is actually allowed but worth noting
|
|
260
|
+
pass
|
|
261
|
+
|
|
262
|
+
# Validate service types
|
|
263
|
+
for service in self.services:
|
|
264
|
+
try:
|
|
265
|
+
# Ensure service type is valid
|
|
266
|
+
_ = service.type
|
|
267
|
+
except Exception as e:
|
|
268
|
+
errors.append(f"Invalid service type in {service.class_path}: {e}")
|
|
269
|
+
|
|
270
|
+
return errors
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
class ServiceMetadata(BaseModel):
|
|
274
|
+
"""Runtime metadata about a loaded service."""
|
|
275
|
+
|
|
276
|
+
service_type: ServiceType = Field(..., description="Type of this service")
|
|
277
|
+
module_name: str = Field(..., description="Module this service came from")
|
|
278
|
+
class_name: str = Field(..., description="Service class name")
|
|
279
|
+
version: str = Field(..., description="Service version")
|
|
280
|
+
is_mock: bool = Field(False, description="Whether this is a MOCK service")
|
|
281
|
+
loaded_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
|
282
|
+
capabilities: List[str] = Field(default_factory=list, description="Active capabilities")
|
|
283
|
+
priority: ServicePriority = Field(ServicePriority.NORMAL, description="Service priority")
|
|
284
|
+
health_status: str = Field("unknown", description="Current health status")
|
|
285
|
+
|
|
286
|
+
model_config = ConfigDict(extra="forbid")
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
class ModuleLoadResult(BaseModel):
|
|
290
|
+
"""Result of loading a module."""
|
|
291
|
+
|
|
292
|
+
module_name: str = Field(..., description="Module that was loaded")
|
|
293
|
+
success: bool = Field(..., description="Whether load succeeded")
|
|
294
|
+
services_loaded: List[ServiceMetadata] = Field(default_factory=list, description="Services that were loaded")
|
|
295
|
+
errors: List[str] = Field(default_factory=list, description="Any errors encountered")
|
|
296
|
+
warnings: List[str] = Field(default_factory=list, description="Any warnings generated")
|
|
297
|
+
|
|
298
|
+
model_config = ConfigDict(extra="forbid")
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
class ServiceRegistration(BaseModel):
|
|
302
|
+
"""Registration information for a service in the registry."""
|
|
303
|
+
|
|
304
|
+
service_type: ServiceType = Field(..., description="Type of service")
|
|
305
|
+
provider_id: str = Field(..., description="Unique ID of the provider instance")
|
|
306
|
+
priority: ServicePriority = Field(..., description="Registration priority")
|
|
307
|
+
capabilities: List[str] = Field(default_factory=list, description="Service capabilities")
|
|
308
|
+
metadata: ServiceMetadata = Field(..., description="Service metadata")
|
|
309
|
+
registered_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
|
|
310
|
+
|
|
311
|
+
model_config = ConfigDict(extra="forbid")
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Memory protocol schemas.
|
|
3
|
+
|
|
4
|
+
Type-safe schemas for memory service operations.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from datetime import datetime, timezone
|
|
8
|
+
from typing import Dict, Optional, Union
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class MemorySearchResult(BaseModel):
|
|
14
|
+
"""Result from memory search operation."""
|
|
15
|
+
|
|
16
|
+
node_id: str = Field(..., description="Unique identifier of the memory node")
|
|
17
|
+
content: str = Field(..., description="Memory content")
|
|
18
|
+
node_type: str = Field(..., description="Type of memory node")
|
|
19
|
+
relevance_score: float = Field(..., ge=0.0, le=1.0, description="Relevance score (0.0-1.0)")
|
|
20
|
+
created_at: datetime = Field(..., description="When the memory was created")
|
|
21
|
+
metadata: Dict[str, str] = Field(default_factory=dict, description="Additional metadata")
|
|
22
|
+
|
|
23
|
+
model_config = ConfigDict(extra="forbid")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class TimeSeriesDataPoint(BaseModel):
|
|
27
|
+
"""A time-series data point from memory correlations."""
|
|
28
|
+
|
|
29
|
+
timestamp: datetime = Field(..., description="Time of the data point")
|
|
30
|
+
metric_name: str = Field(..., description="Name of the metric")
|
|
31
|
+
value: float = Field(..., description="Metric value")
|
|
32
|
+
correlation_type: str = Field(..., description="Type of correlation (e.g., METRIC_DATAPOINT)")
|
|
33
|
+
tags: Dict[str, str] = Field(default_factory=dict, description="Optional tags")
|
|
34
|
+
source: Optional[str] = Field(None, description="Source of the data")
|
|
35
|
+
|
|
36
|
+
model_config = ConfigDict(extra="forbid")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class IdentityUpdateRequest(BaseModel):
|
|
40
|
+
"""Request to update identity graph."""
|
|
41
|
+
|
|
42
|
+
node_id: Optional[str] = Field(None, description="Specific node to update")
|
|
43
|
+
updates: Dict[str, Union[str, int, float, bool]] = Field(..., description="Fields to update")
|
|
44
|
+
source: str = Field(..., description="Source of the update (e.g., 'wa_feedback')")
|
|
45
|
+
reason: Optional[str] = Field(None, description="Reason for the update")
|
|
46
|
+
|
|
47
|
+
model_config = ConfigDict(extra="forbid")
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class EnvironmentUpdateRequest(BaseModel):
|
|
51
|
+
"""Request to update environment graph."""
|
|
52
|
+
|
|
53
|
+
adapter_type: str = Field(..., description="Type of adapter providing update")
|
|
54
|
+
environment_data: Dict[str, str] = Field(..., description="Environment data to merge")
|
|
55
|
+
timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), description="When update occurred")
|
|
56
|
+
|
|
57
|
+
model_config = ConfigDict(extra="forbid")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
__all__ = ["MemorySearchResult", "TimeSeriesDataPoint", "IdentityUpdateRequest", "EnvironmentUpdateRequest"]
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Message schemas for CIRIS Trinity Architecture.
|
|
3
|
+
|
|
4
|
+
Typed message structures for all communication types.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
from typing import TYPE_CHECKING, Any, List, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from ciris_engine.schemas.runtime.models import ImageContent
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class MessageHandlingStatus(str, Enum):
|
|
17
|
+
"""Status of message handling after submission."""
|
|
18
|
+
|
|
19
|
+
TASK_CREATED = "TASK_CREATED" # Task successfully created
|
|
20
|
+
AGENT_OWN_MESSAGE = "AGENT_OWN_MESSAGE" # Message from agent itself (ignored)
|
|
21
|
+
FILTERED_OUT = "FILTERED_OUT" # Filtered by adaptive filter
|
|
22
|
+
CREDIT_DENIED = "CREDIT_DENIED" # Insufficient credits
|
|
23
|
+
CREDIT_CHECK_FAILED = "CREDIT_CHECK_FAILED" # Credit provider error
|
|
24
|
+
PROCESSOR_PAUSED = "PROCESSOR_PAUSED" # Agent processor paused
|
|
25
|
+
RATE_LIMITED = "RATE_LIMITED" # Rate limit exceeded
|
|
26
|
+
CHANNEL_RESTRICTED = "CHANNEL_RESTRICTED" # Channel access denied
|
|
27
|
+
UPDATED_EXISTING_TASK = "UPDATED_EXISTING_TASK" # Flagged existing task with new info
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class PassiveObservationResult(BaseModel):
|
|
31
|
+
"""Result of creating a passive observation (task + thought)."""
|
|
32
|
+
|
|
33
|
+
task_id: str = Field(..., description="Task ID (newly created or existing task that was updated)")
|
|
34
|
+
task_created: bool = Field(..., description="True if new task created, False if existing task updated")
|
|
35
|
+
thought_id: Optional[str] = Field(None, description="Thought ID if created")
|
|
36
|
+
existing_task_updated: bool = Field(default=False, description="Whether an existing task was updated")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class MessageHandlingResult(BaseModel):
|
|
40
|
+
"""Result of handling an incoming message through the observer pipeline."""
|
|
41
|
+
|
|
42
|
+
status: MessageHandlingStatus = Field(..., description="Status of message handling")
|
|
43
|
+
task_id: Optional[str] = Field(None, description="Task ID if created or updated")
|
|
44
|
+
message_id: str = Field(..., description="Original message ID")
|
|
45
|
+
channel_id: str = Field(..., description="Channel ID where message was sent")
|
|
46
|
+
filtered: bool = Field(default=False, description="Whether message was filtered out")
|
|
47
|
+
filter_reasoning: Optional[str] = Field(None, description="Filter reasoning if filtered")
|
|
48
|
+
credit_denied: bool = Field(default=False, description="Whether denied by credit policy")
|
|
49
|
+
credit_denial_reason: Optional[str] = Field(None, description="Credit denial reason")
|
|
50
|
+
task_priority: int = Field(default=0, description="Priority of created task (0=passive, 5=high, 10=critical)")
|
|
51
|
+
existing_task_updated: bool = Field(default=False, description="Whether an existing task was updated")
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class IncomingMessage(BaseModel):
|
|
55
|
+
"""Schema for incoming messages from various sources."""
|
|
56
|
+
|
|
57
|
+
message_id: str = Field(..., description="Unique message identifier")
|
|
58
|
+
author_id: str = Field(..., description="Message author ID")
|
|
59
|
+
author_name: str = Field(..., description="Message author name")
|
|
60
|
+
content: str = Field(..., description="Message content")
|
|
61
|
+
destination_id: Optional[str] = Field(default=None, alias="channel_id")
|
|
62
|
+
reference_message_id: Optional[str] = Field(None, description="ID of message being replied to")
|
|
63
|
+
timestamp: Optional[str] = Field(None, description="Message timestamp")
|
|
64
|
+
# Native multimodal support - images attached to the message
|
|
65
|
+
images: List[Any] = Field(default_factory=list, description="Images attached to this message (List[ImageContent])")
|
|
66
|
+
|
|
67
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
68
|
+
|
|
69
|
+
@property
|
|
70
|
+
def channel_id(self) -> Optional[str]:
|
|
71
|
+
"""Backward compatibility alias for destination_id."""
|
|
72
|
+
return self.destination_id
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class DiscordMessage(IncomingMessage):
|
|
76
|
+
"""Incoming message specific to the Discord platform."""
|
|
77
|
+
|
|
78
|
+
is_bot: bool = Field(default=False, description="Whether author is a bot")
|
|
79
|
+
is_dm: bool = Field(default=False, description="Whether this is a DM")
|
|
80
|
+
raw_message: Optional[Any] = Field(default=None, exclude=True) # Discord.py message object
|
|
81
|
+
|
|
82
|
+
def __init__(self, **data: Any) -> None:
|
|
83
|
+
if "destination_id" not in data and "channel_id" in data:
|
|
84
|
+
data["destination_id"] = data.get("channel_id")
|
|
85
|
+
super().__init__(**data)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class FetchedMessage(BaseModel):
|
|
89
|
+
"""Message returned by CommunicationService.fetch_messages."""
|
|
90
|
+
|
|
91
|
+
message_id: Optional[str] = Field(default=None, alias="id")
|
|
92
|
+
content: Optional[str] = None
|
|
93
|
+
author_id: Optional[str] = None
|
|
94
|
+
author_name: Optional[str] = None
|
|
95
|
+
timestamp: Optional[str] = None
|
|
96
|
+
is_bot: Optional[bool] = False
|
|
97
|
+
|
|
98
|
+
model_config = ConfigDict(populate_by_name=True, extra="allow")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
__all__ = [
|
|
102
|
+
"MessageHandlingStatus",
|
|
103
|
+
"PassiveObservationResult",
|
|
104
|
+
"MessageHandlingResult",
|
|
105
|
+
"IncomingMessage",
|
|
106
|
+
"DiscordMessage",
|
|
107
|
+
"FetchedMessage",
|
|
108
|
+
]
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Core models for CIRIS Trinity Architecture.
|
|
3
|
+
|
|
4
|
+
Task and Thought are the fundamental units of agent processing.
|
|
5
|
+
NO Dict[str, Any] - everything is typed.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import Any, Dict, List, Literal, Optional
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
from ciris_engine.schemas.types import JSONDict
|
|
13
|
+
|
|
14
|
+
from .enums import TaskStatus, ThoughtStatus, ThoughtType
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class ImageContent(BaseModel):
|
|
18
|
+
"""
|
|
19
|
+
Image content for multimodal tasks.
|
|
20
|
+
|
|
21
|
+
Supports both base64-encoded images and URLs for native vision processing.
|
|
22
|
+
Used by adapters to attach images to tasks that flow through the pipeline
|
|
23
|
+
to DMAs and ultimately to vision-capable LLMs.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
source_type: Literal["base64", "url"] = Field(..., description="How image is stored")
|
|
27
|
+
data: str = Field(..., description="Base64 data or URL")
|
|
28
|
+
media_type: str = Field(default="image/jpeg", description="MIME type: image/jpeg, image/png, image/gif, image/webp")
|
|
29
|
+
filename: Optional[str] = Field(default=None, description="Original filename if available")
|
|
30
|
+
size_bytes: Optional[int] = Field(default=None, description="File size in bytes for tracking")
|
|
31
|
+
|
|
32
|
+
model_config = ConfigDict(extra="forbid")
|
|
33
|
+
|
|
34
|
+
def to_data_url(self) -> str:
|
|
35
|
+
"""Convert to data URL format for LLM APIs."""
|
|
36
|
+
if self.source_type == "url":
|
|
37
|
+
return self.data
|
|
38
|
+
return f"data:{self.media_type};base64,{self.data}"
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class TaskContext(BaseModel):
|
|
42
|
+
"""Typed context for tasks."""
|
|
43
|
+
|
|
44
|
+
channel_id: Optional[str] = Field(None, description="Channel where task originated")
|
|
45
|
+
user_id: Optional[str] = Field(None, description="User who created task")
|
|
46
|
+
correlation_id: str = Field(..., description="Correlation ID for tracing")
|
|
47
|
+
parent_task_id: Optional[str] = Field(None, description="Parent task if nested")
|
|
48
|
+
agent_occurrence_id: str = Field(default="default", description="Runtime occurrence ID that owns this task")
|
|
49
|
+
|
|
50
|
+
model_config = ConfigDict(extra="forbid")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class TaskOutcome(BaseModel):
|
|
54
|
+
"""Typed outcome for completed tasks."""
|
|
55
|
+
|
|
56
|
+
status: str = Field(..., description="Final status: success, partial, failure")
|
|
57
|
+
summary: str = Field(..., description="Human-readable summary")
|
|
58
|
+
actions_taken: List[str] = Field(default_factory=list, description="Actions performed")
|
|
59
|
+
memories_created: List[str] = Field(default_factory=list, description="Memory node IDs created")
|
|
60
|
+
errors: List[str] = Field(default_factory=list, description="Errors encountered")
|
|
61
|
+
|
|
62
|
+
model_config = ConfigDict(extra="forbid")
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class ThoughtContext(BaseModel):
|
|
66
|
+
"""Typed context for thoughts."""
|
|
67
|
+
|
|
68
|
+
task_id: str = Field(..., description="Parent task ID")
|
|
69
|
+
channel_id: Optional[str] = Field(None, description="Channel where thought operates")
|
|
70
|
+
round_number: int = Field(0, description="Processing round")
|
|
71
|
+
depth: int = Field(0, description="Ponder depth (max 7)")
|
|
72
|
+
parent_thought_id: Optional[str] = Field(None, description="Parent thought if pondering")
|
|
73
|
+
correlation_id: str = Field(..., description="Correlation ID")
|
|
74
|
+
agent_occurrence_id: str = Field(default="default", description="Runtime occurrence ID (inherited from task)")
|
|
75
|
+
|
|
76
|
+
model_config = ConfigDict(extra="forbid")
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
class FinalAction(BaseModel):
|
|
80
|
+
"""Typed final action from thought processing."""
|
|
81
|
+
|
|
82
|
+
action_type: str = Field(..., description="Action type chosen")
|
|
83
|
+
action_params: JSONDict = Field(..., description="Action parameters (will be typed per action)")
|
|
84
|
+
reasoning: str = Field(..., description="Why this action was chosen")
|
|
85
|
+
|
|
86
|
+
model_config = ConfigDict(extra="forbid")
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
class Task(BaseModel):
|
|
90
|
+
"""Core task object - the unit of work."""
|
|
91
|
+
|
|
92
|
+
task_id: str = Field(..., description="Unique task identifier")
|
|
93
|
+
channel_id: str = Field(..., description="Channel where task originated/reports to")
|
|
94
|
+
agent_occurrence_id: str = Field(default="default", description="Runtime occurrence ID that owns this task")
|
|
95
|
+
description: str = Field(..., description="What needs to be done")
|
|
96
|
+
status: TaskStatus = Field(default=TaskStatus.PENDING)
|
|
97
|
+
priority: int = Field(default=0, ge=0, le=10, description="Priority 0-10")
|
|
98
|
+
created_at: str = Field(..., description="ISO8601 timestamp")
|
|
99
|
+
updated_at: str = Field(..., description="ISO8601 timestamp")
|
|
100
|
+
parent_task_id: Optional[str] = Field(None, description="Parent task for nested work")
|
|
101
|
+
context: Optional[TaskContext] = Field(None, description="Task context")
|
|
102
|
+
outcome: Optional[TaskOutcome] = Field(None, description="Outcome when complete")
|
|
103
|
+
# Task signing fields
|
|
104
|
+
signed_by: Optional[str] = Field(None, description="WA ID that signed this task")
|
|
105
|
+
signature: Optional[str] = Field(None, description="Cryptographic signature of task")
|
|
106
|
+
signed_at: Optional[str] = Field(None, description="ISO8601 timestamp when signed")
|
|
107
|
+
# Updated info tracking
|
|
108
|
+
updated_info_available: bool = Field(
|
|
109
|
+
default=False, description="Flag indicating new observation arrived for this task"
|
|
110
|
+
)
|
|
111
|
+
updated_info_content: Optional[str] = Field(
|
|
112
|
+
None, description="New observation content that arrived after task creation"
|
|
113
|
+
)
|
|
114
|
+
# Native multimodal support - images attached to task flow through to LLM
|
|
115
|
+
images: List[ImageContent] = Field(
|
|
116
|
+
default_factory=list, description="Images attached to this task for multimodal processing"
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
model_config = ConfigDict(extra="forbid")
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
class Thought(BaseModel):
|
|
123
|
+
"""Core thought object - a single reasoning step."""
|
|
124
|
+
|
|
125
|
+
thought_id: str = Field(..., description="Unique thought identifier")
|
|
126
|
+
source_task_id: str = Field(..., description="Task that generated this thought")
|
|
127
|
+
agent_occurrence_id: str = Field(default="default", description="Runtime occurrence ID (inherited from task)")
|
|
128
|
+
channel_id: Optional[str] = Field(None, description="Channel where thought operates")
|
|
129
|
+
thought_type: ThoughtType = Field(default=ThoughtType.STANDARD)
|
|
130
|
+
status: ThoughtStatus = Field(default=ThoughtStatus.PENDING)
|
|
131
|
+
created_at: str = Field(..., description="ISO8601 timestamp")
|
|
132
|
+
updated_at: str = Field(..., description="ISO8601 timestamp")
|
|
133
|
+
round_number: int = Field(0, ge=0, description="Processing round")
|
|
134
|
+
content: str = Field(..., description="Thought content/reasoning")
|
|
135
|
+
context: Optional[ThoughtContext] = Field(None, description="Thought context")
|
|
136
|
+
thought_depth: int = Field(0, ge=0, le=7, description="Pondering depth")
|
|
137
|
+
ponder_notes: Optional[List[str]] = Field(None, description="Notes from pondering")
|
|
138
|
+
parent_thought_id: Optional[str] = Field(None, description="Parent if pondering")
|
|
139
|
+
final_action: Optional[FinalAction] = Field(None, description="Action chosen")
|
|
140
|
+
# Native multimodal support - images inherited from source task
|
|
141
|
+
images: List[ImageContent] = Field(
|
|
142
|
+
default_factory=list, description="Images from source task for multimodal processing"
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
model_config = ConfigDict(extra="forbid")
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
__all__ = [
|
|
149
|
+
"ImageContent",
|
|
150
|
+
"Task",
|
|
151
|
+
"Thought",
|
|
152
|
+
"TaskContext",
|
|
153
|
+
"TaskOutcome",
|
|
154
|
+
"ThoughtContext",
|
|
155
|
+
"FinalAction",
|
|
156
|
+
]
|