mindroot 9.11.0__py3-none-any.whl → 9.12.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mindroot might be problematic. Click here for more details.
- mindroot/coreplugins/home/templates/home.jinja2 +1 -0
- mindroot/docs/Makefile +20 -0
- mindroot/docs/_build/doctrees/chat_with_assistant.doctree +0 -0
- mindroot/docs/_build/doctrees/developer_documentation.doctree +0 -0
- mindroot/docs/_build/doctrees/environment.pickle +0 -0
- mindroot/docs/_build/doctrees/getting_started.doctree +0 -0
- mindroot/docs/_build/doctrees/index.doctree +0 -0
- mindroot/docs/_build/doctrees/install_plugins_with_tools.doctree +0 -0
- mindroot/docs/_build/doctrees/installation.doctree +0 -0
- mindroot/docs/_build/doctrees/llm_api_key.doctree +0 -0
- mindroot/docs/_build/doctrees/llm_plugin_installation.doctree +0 -0
- mindroot/docs/_build/doctrees/programming_task.doctree +0 -0
- mindroot/docs/_build/doctrees/source/ahp.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.admin.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.api_keys.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.chat.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.chat_avatar.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.check_list.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.credits.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.email.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.env_manager.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.events.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.index.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.index.handlers.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.jwt_auth.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.l8n.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.mcp_.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.persona.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.startup.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.subscriptions.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.usage.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.user_service.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.lib.auth.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.lib.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.lib.json_str_block.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.lib.plugins.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.lib.providers.backup.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.lib.providers.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.registry.doctree +0 -0
- mindroot/docs/_build/doctrees/source/modules.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mr_agent_expert_instr.doctree +0 -0
- mindroot/docs/_build/doctrees/starting_mindroot.doctree +0 -0
- mindroot/docs/_build/doctrees/user_documentation.doctree +0 -0
- mindroot/docs/_build/html/.buildinfo +4 -0
- mindroot/docs/_build/html/.buildinfo.bak +4 -0
- mindroot/docs/_build/html/_images/envvar.png +0 -0
- mindroot/docs/_build/html/_images/files.png +0 -0
- mindroot/docs/_build/html/_images/installopenrouter.png +0 -0
- mindroot/docs/_build/html/_images/mood.png +0 -0
- mindroot/docs/_build/html/_images/moon.png +0 -0
- mindroot/docs/_build/html/_images/openrouter.png +0 -0
- mindroot/docs/_build/html/_images/restart.png +0 -0
- mindroot/docs/_build/html/_modules/index.html +425 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/agent_importer.html +292 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/agent_router.html +620 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/asset_manager.html +289 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/command_router.html +518 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_catalog_routes.html +275 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_publish_routes.html +581 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_registry_routes.html +623 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_routes.html +347 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mod.html +163 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/oauth_callback_router.html +188 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/persona_handler.html +195 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/persona_router.html +428 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_manager.html +610 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_router.html +146 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_routes.html +230 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/registry_settings_routes.html +253 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/router.html +267 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/server_router.html +271 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/service_models.html +195 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/settings_router.html +403 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/api_key_manager.html +215 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/mod.html +127 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/router.html +170 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/commands.html +565 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/mod.html +118 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/models.html +130 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/router.html +571 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/services.html +645 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/widget_manager.html +258 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/widget_routes.html +409 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/check_list/mod.html +460 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/conversion.html +232 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/ledger.html +283 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/mod.html +355 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/models.html +269 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/router.html +306 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/storage.html +257 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/email_provider.html +159 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/imap_handler.html +343 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/mod.html +210 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/services.html +172 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/smtp_handler.html +188 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/test_email_service.html +179 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/env_manager/mod.html +409 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/env_manager/router.html +147 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/events/router.html +201 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/agent_ops.html +195 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/index_ops.html +214 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/plugin_ops.html +263 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/publish.html +225 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/mod.html +120 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/models.html +148 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/router.html +184 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/utils.html +166 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/middleware.html +400 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/mod.html +153 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/router.html +134 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/language_detection.html +296 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/middleware.html +258 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/mod.html +393 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_enhanced.html +408 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_l8n_standalone.html +379 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_middleware.html +394 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/utils.html +348 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/catalog_commands.html +456 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/catalog_manager.html +409 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/dynamic_commands.html +267 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/mcp_manager.html +1186 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/mod.html +510 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/oauth_storage.html +260 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/server_installer.html +195 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/testmcpclient.html +217 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/persona/init_persona.html +117 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/persona/mod.html +276 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/startup/mod.html +122 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/credit_integration.html +163 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/mod.html +1089 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/models.html +261 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/router.html +502 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/storage.html +413 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/stripe_integration.html +178 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/subscription_manager.html +289 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/webhook_handler.html +327 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/handlers.html +157 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/mod.html +253 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/models.html +141 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/reporting.html +226 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/router.html +228 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/storage.html +264 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/admin_init.html +234 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/email_service.html +204 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/mod.html +260 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/models.html +148 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/password_reset_service.html +336 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/role_service.html +183 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/router.html +202 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/auth/api_key.html +129 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/auth/auth.html +203 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/buchatlog.html +259 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/buchatlog2.html +500 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/butemplates.html +415 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/chatcontext.html +401 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/chatlog.html +619 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/chatlog_optimized.html +655 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/json_escape.html +138 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/json_str_block/json_str_block.html +213 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/parent_templates.html +181 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/installation.html +481 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/l8n_static_handler.html +347 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/loader.html +403 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/loader_with_l8n.html +391 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/manifest.html +450 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/mapping.html +127 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/paths.html +215 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins_install.html +171 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/commands.html +125 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/hooks.html +117 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/missing.html +169 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/model_preferences_v2.html +291 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/services.html +122 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/providers.html +465 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/route_decorators.html +175 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/session_files.html +142 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/streamcmd.html +246 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/templates.html +677 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/token_counter.html +326 -0
- mindroot/docs/_build/html/_modules/mindroot/migrate.html +153 -0
- mindroot/docs/_build/html/_modules/mindroot/registry/component_manager.html +140 -0
- mindroot/docs/_build/html/_modules/mindroot/registry/data_access.html +302 -0
- mindroot/docs/_build/html/_modules/mindroot/server.html +317 -0
- mindroot/docs/_build/html/_modules/mindroot/server_missing_normal_args.html +322 -0
- mindroot/docs/_build/html/_modules/mindroot/server_prev.html +298 -0
- mindroot/docs/_build/html/_sources/chat_with_assistant.rst.txt +14 -0
- mindroot/docs/_build/html/_sources/developer_documentation.rst.txt +26 -0
- mindroot/docs/_build/html/_sources/getting_started.rst.txt +139 -0
- mindroot/docs/_build/html/_sources/index.rst.txt +38 -0
- mindroot/docs/_build/html/_sources/install_plugins_with_tools.rst.txt +25 -0
- mindroot/docs/_build/html/_sources/installation.rst.txt +21 -0
- mindroot/docs/_build/html/_sources/llm_api_key.rst.txt +22 -0
- mindroot/docs/_build/html/_sources/llm_plugin_installation.rst.txt +27 -0
- mindroot/docs/_build/html/_sources/programming_task.rst.txt +10 -0
- mindroot/docs/_build/html/_sources/source/ahp.rst.txt +7 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.admin.rst.txt +189 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.api_keys.rst.txt +45 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.chat.rst.txt +93 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.chat_avatar.rst.txt +10 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.check_list.rst.txt +21 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.credits.rst.txt +61 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.email.rst.txt +77 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.env_manager.rst.txt +29 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.events.rst.txt +29 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.index.handlers.rst.txt +45 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.index.rst.txt +53 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.jwt_auth.rst.txt +45 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.l8n.rst.txt +109 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.mcp_.rst.txt +93 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.persona.rst.txt +29 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.rst.txt +35 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.startup.rst.txt +21 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.subscriptions.rst.txt +85 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.usage.rst.txt +61 -0
- mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.user_service.rst.txt +69 -0
- mindroot/docs/_build/html/_sources/source/mindroot.lib.auth.rst.txt +29 -0
- mindroot/docs/_build/html/_sources/source/mindroot.lib.json_str_block.rst.txt +21 -0
- mindroot/docs/_build/html/_sources/source/mindroot.lib.plugins.rst.txt +69 -0
- mindroot/docs/_build/html/_sources/source/mindroot.lib.providers.backup.rst.txt +10 -0
- mindroot/docs/_build/html/_sources/source/mindroot.lib.providers.rst.txt +61 -0
- mindroot/docs/_build/html/_sources/source/mindroot.lib.rst.txt +152 -0
- mindroot/docs/_build/html/_sources/source/mindroot.registry.rst.txt +29 -0
- mindroot/docs/_build/html/_sources/source/mindroot.rst.txt +54 -0
- mindroot/docs/_build/html/_sources/source/modules.rst.txt +7 -0
- mindroot/docs/_build/html/_sources/source/mr_agent_expert_instr.rst.txt +7 -0
- mindroot/docs/_build/html/_sources/starting_mindroot.rst.txt +12 -0
- mindroot/docs/_build/html/_sources/user_documentation.rst.txt +16 -0
- mindroot/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +123 -0
- mindroot/docs/_build/html/_static/basic.css +906 -0
- mindroot/docs/_build/html/_static/css/badge_only.css +1 -0
- mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
- mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
- mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
- mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
- mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
- mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +2671 -0
- mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
- mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
- mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
- mindroot/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
- mindroot/docs/_build/html/_static/css/theme.css +4 -0
- mindroot/docs/_build/html/_static/custom.css +19 -0
- mindroot/docs/_build/html/_static/debug.css +69 -0
- mindroot/docs/_build/html/_static/doctools.js +149 -0
- mindroot/docs/_build/html/_static/documentation_options.js +13 -0
- mindroot/docs/_build/html/_static/file.png +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.eot +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.woff +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.eot +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.woff +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.eot +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.woff +0 -0
- mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
- mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
- mindroot/docs/_build/html/_static/jquery.js +2 -0
- mindroot/docs/_build/html/_static/js/badge_only.js +1 -0
- mindroot/docs/_build/html/_static/js/theme.js +1 -0
- mindroot/docs/_build/html/_static/js/versions.js +228 -0
- mindroot/docs/_build/html/_static/language_data.js +192 -0
- mindroot/docs/_build/html/_static/minus.png +0 -0
- mindroot/docs/_build/html/_static/plus.png +0 -0
- mindroot/docs/_build/html/_static/pygments.css +232 -0
- mindroot/docs/_build/html/_static/scripts/furo-extensions.js +0 -0
- mindroot/docs/_build/html/_static/scripts/furo.js +3 -0
- mindroot/docs/_build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
- mindroot/docs/_build/html/_static/scripts/furo.js.map +1 -0
- mindroot/docs/_build/html/_static/searchtools.js +635 -0
- mindroot/docs/_build/html/_static/skeleton.css +296 -0
- mindroot/docs/_build/html/_static/sphinx_highlight.js +154 -0
- mindroot/docs/_build/html/_static/styles/furo-extensions.css +2 -0
- mindroot/docs/_build/html/_static/styles/furo-extensions.css.map +1 -0
- mindroot/docs/_build/html/_static/styles/furo.css +2 -0
- mindroot/docs/_build/html/_static/styles/furo.css.map +1 -0
- mindroot/docs/_build/html/chat_with_assistant.html +329 -0
- mindroot/docs/_build/html/developer_documentation.html +338 -0
- mindroot/docs/_build/html/genindex.html +4690 -0
- mindroot/docs/_build/html/getting_started.html +423 -0
- mindroot/docs/_build/html/index.html +357 -0
- mindroot/docs/_build/html/install_plugins_with_tools.html +336 -0
- mindroot/docs/_build/html/installation.html +330 -0
- mindroot/docs/_build/html/llm_api_key.html +337 -0
- mindroot/docs/_build/html/llm_plugin_installation.html +338 -0
- mindroot/docs/_build/html/objects.inv +0 -0
- mindroot/docs/_build/html/programming_task.html +326 -0
- mindroot/docs/_build/html/py-modindex.html +1307 -0
- mindroot/docs/_build/html/search.html +307 -0
- mindroot/docs/_build/html/searchindex.js +1 -0
- mindroot/docs/_build/html/source/ahp.html +302 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.admin.html +2212 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.api_keys.html +532 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.chat.html +1185 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.chat_avatar.html +311 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.check_list.html +441 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.credits.html +879 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.email.html +554 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.env_manager.html +447 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.events.html +338 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.html +1785 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.index.handlers.html +481 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.index.html +696 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.jwt_auth.html +432 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.l8n.html +933 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.mcp_.html +1271 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.persona.html +386 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.startup.html +327 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.subscriptions.html +1631 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.usage.html +677 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.user_service.html +681 -0
- mindroot/docs/_build/html/source/mindroot.html +811 -0
- mindroot/docs/_build/html/source/mindroot.lib.auth.html +407 -0
- mindroot/docs/_build/html/source/mindroot.lib.html +2027 -0
- mindroot/docs/_build/html/source/mindroot.lib.json_str_block.html +344 -0
- mindroot/docs/_build/html/source/mindroot.lib.plugins.html +1050 -0
- mindroot/docs/_build/html/source/mindroot.lib.providers.backup.html +324 -0
- mindroot/docs/_build/html/source/mindroot.lib.providers.html +572 -0
- mindroot/docs/_build/html/source/mindroot.registry.html +501 -0
- mindroot/docs/_build/html/source/modules.html +377 -0
- mindroot/docs/_build/html/source/mr_agent_expert_instr.html +302 -0
- mindroot/docs/_build/html/starting_mindroot.html +325 -0
- mindroot/docs/_build/html/user_documentation.html +333 -0
- mindroot/docs/_static/custom.css +19 -0
- mindroot/docs/chat_with_assistant.rst +14 -0
- mindroot/docs/conf.py +54 -0
- mindroot/docs/data/agents/local/Assistant/agent.json +27 -0
- mindroot/docs/data/agents/local/SysAdmin/agent.json +33 -0
- mindroot/docs/data/equivalent_flags.json +1 -0
- mindroot/docs/data/mcp/servers.json +9 -0
- mindroot/docs/data/models.json +57 -0
- mindroot/docs/data/plugin_manifest.json +95 -0
- mindroot/docs/data/preferred_models.json +12 -0
- mindroot/docs/data/providers.json +62 -0
- mindroot/docs/developer_documentation.rst +26 -0
- mindroot/docs/envvar.png +0 -0
- mindroot/docs/files.png +0 -0
- mindroot/docs/getting_started.rst +139 -0
- mindroot/docs/index.rst +38 -0
- mindroot/docs/install_plugins_with_tools.rst +25 -0
- mindroot/docs/installation.rst +21 -0
- mindroot/docs/installopenrouter.png +0 -0
- mindroot/docs/llm_api_key.rst +22 -0
- mindroot/docs/llm_plugin_installation.rst +27 -0
- mindroot/docs/make.bat +35 -0
- mindroot/docs/mood.png +0 -0
- mindroot/docs/moon.png +0 -0
- mindroot/docs/openrouter.png +0 -0
- mindroot/docs/personas/local/Assistant/avatar.png +0 -0
- mindroot/docs/personas/local/Assistant/faceref.png +0 -0
- mindroot/docs/personas/local/Assistant/persona.json +7 -0
- mindroot/docs/programming_task.rst +10 -0
- mindroot/docs/restart.png +0 -0
- mindroot/docs/source/ahp.rst +7 -0
- mindroot/docs/source/mindroot.coreplugins.admin.rst +189 -0
- mindroot/docs/source/mindroot.coreplugins.api_keys.rst +45 -0
- mindroot/docs/source/mindroot.coreplugins.chat.rst +93 -0
- mindroot/docs/source/mindroot.coreplugins.chat_avatar.rst +10 -0
- mindroot/docs/source/mindroot.coreplugins.check_list.rst +21 -0
- mindroot/docs/source/mindroot.coreplugins.credits.rst +61 -0
- mindroot/docs/source/mindroot.coreplugins.email.rst +77 -0
- mindroot/docs/source/mindroot.coreplugins.env_manager.rst +29 -0
- mindroot/docs/source/mindroot.coreplugins.events.rst +29 -0
- mindroot/docs/source/mindroot.coreplugins.index.handlers.rst +45 -0
- mindroot/docs/source/mindroot.coreplugins.index.rst +53 -0
- mindroot/docs/source/mindroot.coreplugins.jwt_auth.rst +45 -0
- mindroot/docs/source/mindroot.coreplugins.l8n.rst +109 -0
- mindroot/docs/source/mindroot.coreplugins.mcp_.rst +93 -0
- mindroot/docs/source/mindroot.coreplugins.persona.rst +29 -0
- mindroot/docs/source/mindroot.coreplugins.rst +35 -0
- mindroot/docs/source/mindroot.coreplugins.startup.rst +21 -0
- mindroot/docs/source/mindroot.coreplugins.subscriptions.rst +85 -0
- mindroot/docs/source/mindroot.coreplugins.usage.rst +61 -0
- mindroot/docs/source/mindroot.coreplugins.user_service.rst +69 -0
- mindroot/docs/source/mindroot.lib.auth.rst +29 -0
- mindroot/docs/source/mindroot.lib.json_str_block.rst +21 -0
- mindroot/docs/source/mindroot.lib.plugins.rst +69 -0
- mindroot/docs/source/mindroot.lib.providers.backup.rst +10 -0
- mindroot/docs/source/mindroot.lib.providers.rst +61 -0
- mindroot/docs/source/mindroot.lib.rst +152 -0
- mindroot/docs/source/mindroot.registry.rst +29 -0
- mindroot/docs/source/mindroot.rst +54 -0
- mindroot/docs/source/modules.rst +7 -0
- mindroot/docs/source/mr_agent_expert_instr.rst +7 -0
- mindroot/docs/starting_mindroot.rst +12 -0
- mindroot/docs/user_documentation.rst +16 -0
- mindroot/server.py +10 -1
- {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/METADATA +1 -1
- {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/RECORD +415 -8
- {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/WHEEL +0 -0
- {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/entry_points.txt +0 -0
- {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/licenses/LICENSE +0 -0
- {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
<!DOCTYPE html>
|
|
4
|
+
<html class="writer-html5" lang="en" data-content_root="../../../">
|
|
5
|
+
<head>
|
|
6
|
+
<meta charset="utf-8" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
|
+
<title>mindroot.lib.providers — MindRoot 9.10.0 documentation</title>
|
|
9
|
+
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
|
|
10
|
+
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=e59714d7" />
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
<script src="../../../_static/jquery.js?v=5d32c60e"></script>
|
|
14
|
+
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|
15
|
+
<script src="../../../_static/documentation_options.js?v=3c16008f"></script>
|
|
16
|
+
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
|
|
17
|
+
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
18
|
+
<script src="../../../_static/js/theme.js"></script>
|
|
19
|
+
<link rel="index" title="Index" href="../../../genindex.html" />
|
|
20
|
+
<link rel="search" title="Search" href="../../../search.html" />
|
|
21
|
+
</head>
|
|
22
|
+
|
|
23
|
+
<body class="wy-body-for-nav">
|
|
24
|
+
<div class="wy-grid-for-nav">
|
|
25
|
+
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
26
|
+
<div class="wy-side-scroll">
|
|
27
|
+
<div class="wy-side-nav-search" style="background: #343131" >
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
<a href="../../../index.html" class="icon icon-home">
|
|
32
|
+
MindRoot
|
|
33
|
+
</a>
|
|
34
|
+
<div role="search">
|
|
35
|
+
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
|
|
36
|
+
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|
37
|
+
<input type="hidden" name="check_keywords" value="yes" />
|
|
38
|
+
<input type="hidden" name="area" value="default" />
|
|
39
|
+
</form>
|
|
40
|
+
</div>
|
|
41
|
+
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
42
|
+
<!-- Local TOC -->
|
|
43
|
+
<div class="local-toc"></div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</nav>
|
|
47
|
+
|
|
48
|
+
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #343131" >
|
|
49
|
+
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
50
|
+
<a href="../../../index.html">MindRoot</a>
|
|
51
|
+
</nav>
|
|
52
|
+
|
|
53
|
+
<div class="wy-nav-content">
|
|
54
|
+
<div class="rst-content">
|
|
55
|
+
<div role="navigation" aria-label="Page navigation">
|
|
56
|
+
<ul class="wy-breadcrumbs">
|
|
57
|
+
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
58
|
+
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
|
|
59
|
+
<li class="breadcrumb-item active">mindroot.lib.providers</li>
|
|
60
|
+
<li class="wy-breadcrumbs-aside">
|
|
61
|
+
</li>
|
|
62
|
+
</ul>
|
|
63
|
+
<hr/>
|
|
64
|
+
</div>
|
|
65
|
+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
66
|
+
<div itemprop="articleBody">
|
|
67
|
+
|
|
68
|
+
<h1>Source code for mindroot.lib.providers</h1><div class="highlight"><pre>
|
|
69
|
+
<span></span><span class="kn">import</span><span class="w"> </span><span class="nn">inspect</span>
|
|
70
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">traceback</span>
|
|
71
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
|
|
72
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">logging</span>
|
|
73
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">Optional</span>
|
|
74
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">..db.preferences</span><span class="w"> </span><span class="kn">import</span> <span class="n">find_preferred_models</span>
|
|
75
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">..db.organize_models</span><span class="w"> </span><span class="kn">import</span> <span class="n">uses_models</span><span class="p">,</span> <span class="n">matching_models</span>
|
|
76
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">..utils.check_args</span><span class="w"> </span><span class="kn">import</span> <span class="o">*</span>
|
|
77
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">..utils.debug</span><span class="w"> </span><span class="kn">import</span> <span class="n">debug_box</span>
|
|
78
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">sys</span>
|
|
79
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">nanoid</span>
|
|
80
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">termcolor</span><span class="w"> </span><span class="kn">import</span> <span class="n">colored</span>
|
|
81
|
+
|
|
82
|
+
<span class="c1"># Import the new v2 preferences system with try/except for backward compatibility</span>
|
|
83
|
+
<span class="k">try</span><span class="p">:</span>
|
|
84
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">.model_preferences_v2</span><span class="w"> </span><span class="kn">import</span> <span class="n">ModelPreferencesV2</span>
|
|
85
|
+
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
|
|
86
|
+
<span class="n">ModelPreferencesV2</span> <span class="o">=</span> <span class="kc">None</span>
|
|
87
|
+
|
|
88
|
+
<div class="viewcode-block" id="ProviderManager">
|
|
89
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager">[docs]</a>
|
|
90
|
+
<span class="k">class</span><span class="w"> </span><span class="nc">ProviderManager</span><span class="p">:</span>
|
|
91
|
+
|
|
92
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
93
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">functions</span> <span class="o">=</span> <span class="p">{}</span>
|
|
94
|
+
|
|
95
|
+
<div class="viewcode-block" id="ProviderManager.register_function">
|
|
96
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.register_function">[docs]</a>
|
|
97
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">register_function</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">provider</span><span class="p">,</span> <span class="n">implementation</span><span class="p">,</span> <span class="n">signature</span><span class="p">,</span> <span class="n">docstring</span><span class="p">,</span> <span class="n">flags</span><span class="p">):</span>
|
|
98
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
99
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
100
|
+
<span class="k">if</span> <span class="n">provider</span> <span class="ow">in</span> <span class="p">[</span><span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]]:</span>
|
|
101
|
+
<span class="k">return</span>
|
|
102
|
+
<span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s1">'say'</span><span class="p">:</span>
|
|
103
|
+
<span class="n">debug_box</span><span class="p">(</span><span class="s1">'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'</span><span class="p">)</span>
|
|
104
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"REGISTER:"</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">provider</span><span class="p">)</span>
|
|
105
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">({</span><span class="s1">'implementation'</span><span class="p">:</span> <span class="n">implementation</span><span class="p">,</span> <span class="s1">'docstring'</span><span class="p">:</span> <span class="n">docstring</span><span class="p">,</span> <span class="s1">'flags'</span><span class="p">:</span> <span class="n">flags</span><span class="p">,</span> <span class="s1">'provider'</span><span class="p">:</span> <span class="n">provider</span><span class="p">})</span></div>
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
<div class="viewcode-block" id="ProviderManager.exec_with_provider">
|
|
109
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.exec_with_provider">[docs]</a>
|
|
110
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">exec_with_provider</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">provider</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
111
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
112
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"function '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found."</span><span class="p">)</span>
|
|
113
|
+
<span class="n">func_info</span> <span class="o">=</span> <span class="kc">None</span>
|
|
114
|
+
<span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
115
|
+
<span class="k">if</span> <span class="n">f</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">provider</span><span class="p">:</span>
|
|
116
|
+
<span class="n">func_info</span> <span class="o">=</span> <span class="n">f</span>
|
|
117
|
+
<span class="k">break</span>
|
|
118
|
+
|
|
119
|
+
<span class="n">implementation</span> <span class="o">=</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">]</span>
|
|
120
|
+
<span class="k">if</span> <span class="n">implementation</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
121
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"function '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found for provider '</span><span class="si">{</span><span class="n">provider</span><span class="si">}</span><span class="s2">'."</span><span class="p">)</span>
|
|
122
|
+
<span class="k">try</span><span class="p">:</span>
|
|
123
|
+
<span class="n">result</span> <span class="o">=</span> <span class="k">await</span> <span class="n">implementation</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
124
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
125
|
+
<span class="k">raise</span> <span class="n">e</span>
|
|
126
|
+
<span class="k">return</span> <span class="n">result</span></div>
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
<div class="viewcode-block" id="ProviderManager.execute">
|
|
130
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.execute">[docs]</a>
|
|
131
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">execute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
132
|
+
<span class="k">if</span> <span class="n">check_empty_args</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="n">kwargs</span><span class="p">):</span>
|
|
133
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"function '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' called with empty arguments."</span><span class="p">)</span>
|
|
134
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
135
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"function '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found."</span><span class="p">)</span>
|
|
136
|
+
|
|
137
|
+
<span class="n">preferred_models</span> <span class="o">=</span> <span class="kc">None</span>
|
|
138
|
+
<span class="n">preferred_provider</span> <span class="o">=</span> <span class="kc">None</span>
|
|
139
|
+
<span class="n">preferred_providers</span> <span class="o">=</span> <span class="kc">None</span>
|
|
140
|
+
<span class="n">found_context</span> <span class="o">=</span> <span class="kc">False</span>
|
|
141
|
+
<span class="n">context</span> <span class="o">=</span> <span class="kc">None</span>
|
|
142
|
+
|
|
143
|
+
<span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">:</span>
|
|
144
|
+
<span class="k">if</span> <span class="n">arg</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'ChatContext'</span> <span class="ow">or</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="s1">'agent'</span><span class="p">):</span>
|
|
145
|
+
<span class="n">found_context</span> <span class="o">=</span> <span class="kc">True</span>
|
|
146
|
+
<span class="n">context</span> <span class="o">=</span> <span class="n">arg</span>
|
|
147
|
+
<span class="k">break</span>
|
|
148
|
+
<span class="k">if</span> <span class="ow">not</span> <span class="n">found_context</span> <span class="ow">and</span> <span class="s1">'context'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
|
149
|
+
<span class="n">context</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'context'</span><span class="p">]</span>
|
|
150
|
+
<span class="n">found_context</span> <span class="o">=</span> <span class="kc">True</span>
|
|
151
|
+
|
|
152
|
+
<span class="k">if</span> <span class="ow">not</span> <span class="n">found_context</span> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="s1">'context'</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">):</span>
|
|
153
|
+
<span class="n">kwargs</span><span class="p">[</span><span class="s1">'context'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">context</span>
|
|
154
|
+
<span class="n">context</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">context</span>
|
|
155
|
+
|
|
156
|
+
<span class="n">need_model</span> <span class="o">=</span> <span class="k">await</span> <span class="n">uses_models</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
|
157
|
+
|
|
158
|
+
<span class="c1"># DEBUG: Check what we have for model selection</span>
|
|
159
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">=== MODEL SELECTION DEBUG for </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2"> ==="</span><span class="p">)</span>
|
|
160
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"args[0]: </span><span class="si">{</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'N/A'</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
161
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"kwargs.get('model'): </span><span class="si">{</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'model'</span><span class="p">,</span><span class="w"> </span><span class="s1">'N/A'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
162
|
+
<span class="k">if</span> <span class="n">context</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s1">'agent'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">:</span>
|
|
163
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Agent service_models: </span><span class="si">{</span><span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'service_models'</span><span class="p">,</span><span class="w"> </span><span class="s1">'N/A'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
164
|
+
<span class="k">else</span><span class="p">:</span>
|
|
165
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"No agent context or service_models"</span><span class="p">)</span>
|
|
166
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"=== END DEBUG ==="</span><span class="p">)</span>
|
|
167
|
+
|
|
168
|
+
<span class="k">if</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="s1">'model'</span> <span class="ow">in</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">(</span><span class="s1">'model'</span> <span class="ow">in</span> <span class="n">kwargs</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'model'</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">):</span>
|
|
169
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"No model specified, checking service_models"</span><span class="p">)</span>
|
|
170
|
+
<span class="k">if</span> <span class="n">context</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="s1">'service_models'</span> <span class="ow">in</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">:</span>
|
|
171
|
+
<span class="n">service_models</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">[</span><span class="s1">'service_models'</span><span class="p">]</span>
|
|
172
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">service_models</span><span class="p">:</span>
|
|
173
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"found service_models in agent"</span><span class="p">)</span>
|
|
174
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"set model (args[0]) to"</span><span class="p">,</span> <span class="n">service_models</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="s1">'model'</span><span class="p">])</span>
|
|
175
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
176
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">service_models</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="s1">'provider'</span><span class="p">]:</span>
|
|
177
|
+
<span class="n">args</span> <span class="o">=</span> <span class="p">(</span><span class="n">service_models</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="s1">'model'</span><span class="p">],</span> <span class="o">*</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
|
|
178
|
+
<span class="k">return</span> <span class="k">await</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
179
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"WARNING: provider </span><span class="si">{</span><span class="n">service_models</span><span class="p">[</span><span class="s1">'name'</span><span class="p">][</span><span class="s1">'model'</span><span class="p">]</span><span class="si">}</span><span class="s2"> specified for service </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">, but provider not enabled not enabled."</span><span class="p">)</span>
|
|
180
|
+
<span class="k">else</span><span class="p">:</span>
|
|
181
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"did not find service_models in agent"</span><span class="p">)</span>
|
|
182
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'context.agent:'</span><span class="p">,</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">)</span>
|
|
183
|
+
|
|
184
|
+
<span class="c1"># NEW V2 PREFERENCES LOGIC - Only as fallback when no agent-specific model</span>
|
|
185
|
+
<span class="k">if</span> <span class="n">ModelPreferencesV2</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
186
|
+
<span class="k">try</span><span class="p">:</span>
|
|
187
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"No agent-specific model found, trying V2 system preferences..."</span><span class="p">)</span>
|
|
188
|
+
<span class="n">prefs_manager</span> <span class="o">=</span> <span class="n">ModelPreferencesV2</span><span class="p">()</span>
|
|
189
|
+
<span class="n">ordered_providers</span> <span class="o">=</span> <span class="n">prefs_manager</span><span class="o">.</span><span class="n">get_ordered_providers_for_service</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
|
190
|
+
|
|
191
|
+
<span class="k">if</span> <span class="n">ordered_providers</span><span class="p">:</span>
|
|
192
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Found V2 preferences for </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">ordered_providers</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
193
|
+
|
|
194
|
+
<span class="k">for</span> <span class="n">provider_name</span><span class="p">,</span> <span class="n">model_name</span> <span class="ow">in</span> <span class="n">ordered_providers</span><span class="p">:</span>
|
|
195
|
+
<span class="c1"># Check if this provider is available for this function</span>
|
|
196
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
197
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
198
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">provider_name</span><span class="p">:</span>
|
|
199
|
+
<span class="k">try</span><span class="p">:</span>
|
|
200
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Trying V2 provider </span><span class="si">{</span><span class="n">provider_name</span><span class="si">}</span><span class="s2"> with model </span><span class="si">{</span><span class="n">model_name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
201
|
+
<span class="c1"># Set the model as first argument if needed</span>
|
|
202
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span> <span class="ow">and</span> <span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
|
|
203
|
+
<span class="n">args</span> <span class="o">=</span> <span class="p">(</span><span class="n">model_name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
|
|
204
|
+
<span class="k">elif</span> <span class="s1">'model'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
|
|
205
|
+
<span class="n">kwargs</span><span class="p">[</span><span class="s1">'model'</span><span class="p">]</span> <span class="o">=</span> <span class="n">model_name</span>
|
|
206
|
+
|
|
207
|
+
<span class="k">return</span> <span class="k">await</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
208
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
209
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"V2 provider </span><span class="si">{</span><span class="n">provider_name</span><span class="si">}</span><span class="s2"> failed: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">, trying next..."</span><span class="p">)</span>
|
|
210
|
+
<span class="k">continue</span>
|
|
211
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
212
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"V2 preferences failed: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">, continuing with existing logic"</span><span class="p">)</span>
|
|
213
|
+
<span class="k">else</span><span class="p">:</span>
|
|
214
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"Found possible model in zeroth arg:"</span><span class="p">)</span>
|
|
215
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
|
216
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
|
217
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">coreplugins.admin.service_models</span><span class="w"> </span><span class="kn">import</span> <span class="n">cached_get_service_models</span>
|
|
218
|
+
|
|
219
|
+
<span class="n">all_service_models</span> <span class="o">=</span> <span class="k">await</span> <span class="n">cached_get_service_models</span><span class="p">()</span>
|
|
220
|
+
<span class="n">this_service_models</span> <span class="o">=</span> <span class="n">all_service_models</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="p">{})</span>
|
|
221
|
+
<span class="n">model_name</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
222
|
+
<span class="k">try</span><span class="p">:</span>
|
|
223
|
+
<span class="k">if</span> <span class="s1">'__'</span> <span class="ow">in</span> <span class="n">model_name</span><span class="p">:</span>
|
|
224
|
+
<span class="c1">#provider = model_name.split('__')[0]</span>
|
|
225
|
+
<span class="n">model_name</span> <span class="o">=</span> <span class="n">model_name</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'__'</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
|
|
226
|
+
|
|
227
|
+
<span class="k">for</span> <span class="n">provider</span><span class="p">,</span> <span class="n">model_list</span> <span class="ow">in</span> <span class="n">this_service_models</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
|
228
|
+
<span class="k">if</span> <span class="n">model_name</span> <span class="ow">in</span> <span class="n">model_list</span><span class="p">:</span>
|
|
229
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"found provider"</span><span class="p">,</span> <span class="n">provider</span><span class="p">)</span>
|
|
230
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
231
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">provider</span><span class="p">:</span>
|
|
232
|
+
<span class="k">return</span> <span class="k">await</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
233
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
234
|
+
<span class="k">pass</span>
|
|
235
|
+
|
|
236
|
+
<span class="n">required_plugins</span> <span class="o">=</span> <span class="p">[]</span>
|
|
237
|
+
<span class="k">if</span> <span class="n">context</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s1">'agent'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">:</span>
|
|
238
|
+
<span class="n">required_plugins</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'required_plugins'</span><span class="p">,</span> <span class="p">[])</span>
|
|
239
|
+
<span class="k">if</span> <span class="n">required_plugins</span> <span class="ow">and</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
240
|
+
<span class="k">for</span> <span class="n">plugin</span> <span class="ow">in</span> <span class="n">required_plugins</span><span class="p">:</span>
|
|
241
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
242
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">plugin</span><span class="p">:</span>
|
|
243
|
+
<span class="n">function_info</span> <span class="o">=</span> <span class="n">func_info</span>
|
|
244
|
+
<span class="k">return</span> <span class="k">await</span> <span class="n">function_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
245
|
+
|
|
246
|
+
<span class="n">preferred_providers_list</span> <span class="o">=</span> <span class="p">[]</span>
|
|
247
|
+
<span class="k">if</span> <span class="n">context</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s1">'agent'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">:</span>
|
|
248
|
+
<span class="n">preferred_providers</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'preferred_providers'</span><span class="p">,</span> <span class="p">[])</span>
|
|
249
|
+
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">preferred_providers</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
|
250
|
+
<span class="n">preferred_providers_list</span> <span class="o">=</span> <span class="n">preferred_providers</span>
|
|
251
|
+
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">preferred_providers</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
|
|
252
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">preferred_providers</span><span class="p">:</span>
|
|
253
|
+
<span class="n">preferred_provider</span> <span class="o">=</span> <span class="n">preferred_providers</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
|
254
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
255
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">preferred_provider</span><span class="p">:</span>
|
|
256
|
+
<span class="n">function_info</span> <span class="o">=</span> <span class="n">func_info</span>
|
|
257
|
+
<span class="k">return</span> <span class="k">await</span> <span class="n">function_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
258
|
+
<span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s1">'stream_chat'</span> <span class="ow">and</span> <span class="n">context</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
259
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">'stream_chat, context is None'</span><span class="p">)</span>
|
|
260
|
+
<span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s1">'stream_chat'</span> <span class="ow">and</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
261
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">'stream_chat, context.agent is None'</span><span class="p">)</span>
|
|
262
|
+
|
|
263
|
+
<span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s1">'stream_chat'</span><span class="p">:</span>
|
|
264
|
+
<span class="n">debug_box</span><span class="p">(</span><span class="s1">'execute stream_chat <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'</span><span class="p">)</span>
|
|
265
|
+
|
|
266
|
+
<span class="k">if</span> <span class="n">context</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s1">'data'</span><span class="p">)</span> <span class="ow">and</span> <span class="s1">'PREFERRED_PROVIDER'</span> <span class="ow">in</span> <span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">:</span>
|
|
267
|
+
<span class="n">preferred_providers_list</span> <span class="o">=</span> <span class="p">[</span> <span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'PREFERRED_PROVIDER'</span><span class="p">]</span> <span class="p">]</span>
|
|
268
|
+
|
|
269
|
+
<span class="k">if</span> <span class="n">preferred_providers_list</span> <span class="ow">and</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
270
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
271
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="ow">in</span> <span class="n">preferred_providers_list</span><span class="p">:</span>
|
|
272
|
+
<span class="k">return</span> <span class="k">await</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
273
|
+
|
|
274
|
+
<span class="k">if</span> <span class="n">preferred_providers</span> <span class="ow">and</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">preferred_providers</span><span class="p">:</span>
|
|
275
|
+
<span class="n">preferred_provider</span> <span class="o">=</span> <span class="n">preferred_providers</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
|
|
276
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
277
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">preferred_provider</span><span class="p">:</span>
|
|
278
|
+
<span class="n">function_info</span> <span class="o">=</span> <span class="n">func_info</span>
|
|
279
|
+
<span class="k">return</span> <span class="k">await</span> <span class="n">function_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">](</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
280
|
+
|
|
281
|
+
<span class="k">if</span> <span class="n">context</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'ChatContext'</span><span class="p">:</span>
|
|
282
|
+
<span class="n">preferred_models</span> <span class="o">=</span> <span class="k">await</span> <span class="n">find_preferred_models</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">context</span><span class="o">.</span><span class="n">flags</span><span class="p">)</span>
|
|
283
|
+
<span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'model'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
|
|
284
|
+
<span class="k">if</span> <span class="n">need_model</span> <span class="ow">and</span> <span class="n">preferred_models</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
285
|
+
<span class="n">preferred_models</span> <span class="o">=</span> <span class="k">await</span> <span class="n">matching_models</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">context</span><span class="o">.</span><span class="n">flags</span><span class="p">)</span>
|
|
286
|
+
<span class="k">if</span> <span class="n">preferred_models</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
287
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">preferred_models</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
|
288
|
+
<span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'model'</span><span class="p">]</span> <span class="o">=</span> <span class="n">preferred_models</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
|
289
|
+
|
|
290
|
+
<span class="k">if</span> <span class="n">preferred_models</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
291
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">preferred_models</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
|
292
|
+
<span class="k">try</span><span class="p">:</span>
|
|
293
|
+
<span class="n">preferred_provider</span> <span class="o">=</span> <span class="n">preferred_models</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s1">'provider'</span><span class="p">]</span>
|
|
294
|
+
<span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
|
|
295
|
+
<span class="n">preferred_provider</span> <span class="o">=</span> <span class="kc">None</span>
|
|
296
|
+
<span class="n">function_info</span> <span class="o">=</span> <span class="kc">None</span>
|
|
297
|
+
<span class="k">if</span> <span class="ow">not</span> <span class="n">need_model</span> <span class="ow">and</span> <span class="n">preferred_provider</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
298
|
+
<span class="n">preferred_provider</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'provider'</span><span class="p">]</span>
|
|
299
|
+
<span class="k">if</span> <span class="n">preferred_provider</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
300
|
+
<span class="k">for</span> <span class="n">func_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
301
|
+
<span class="k">if</span> <span class="n">func_info</span><span class="p">[</span><span class="s1">'provider'</span><span class="p">]</span> <span class="o">==</span> <span class="n">preferred_provider</span><span class="p">:</span>
|
|
302
|
+
<span class="n">function_info</span> <span class="o">=</span> <span class="n">func_info</span>
|
|
303
|
+
<span class="k">break</span>
|
|
304
|
+
<span class="n">function_info</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
|
|
305
|
+
|
|
306
|
+
<span class="k">if</span> <span class="n">function_info</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
307
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"1. function '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found. preferred_provider is '</span><span class="si">{</span><span class="n">preferred_provider</span><span class="si">}</span><span class="s2">'."</span><span class="p">)</span>
|
|
308
|
+
|
|
309
|
+
<span class="n">implementation</span> <span class="o">=</span> <span class="n">function_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">]</span>
|
|
310
|
+
<span class="k">if</span> <span class="n">implementation</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
311
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"2. function '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found. preferred_provider is '</span><span class="si">{</span><span class="n">preferred_provider</span><span class="si">}</span><span class="s2">'."</span><span class="p">)</span>
|
|
312
|
+
|
|
313
|
+
<span class="k">try</span><span class="p">:</span>
|
|
314
|
+
<span class="n">result</span> <span class="o">=</span> <span class="k">await</span> <span class="n">implementation</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
315
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
316
|
+
<span class="k">raise</span> <span class="n">e</span>
|
|
317
|
+
|
|
318
|
+
<span class="k">return</span> <span class="n">result</span></div>
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
<div class="viewcode-block" id="ProviderManager.get_docstring">
|
|
322
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.get_docstring">[docs]</a>
|
|
323
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_docstring</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
|
324
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
325
|
+
<span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">"docstring for '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found."</span><span class="p">)</span>
|
|
326
|
+
<span class="k">return</span> <span class="p">[]</span>
|
|
327
|
+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">[</span><span class="n">name</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'docstring'</span><span class="p">]</span></div>
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
<div class="viewcode-block" id="ProviderManager.get_detailed_functions">
|
|
331
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.get_detailed_functions">[docs]</a>
|
|
332
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_detailed_functions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
333
|
+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span></div>
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
<div class="viewcode-block" id="ProviderManager.get_functions">
|
|
337
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.get_functions">[docs]</a>
|
|
338
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_functions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
339
|
+
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span></div>
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
<div class="viewcode-block" id="ProviderManager.get_docstrings">
|
|
343
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.get_docstrings">[docs]</a>
|
|
344
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_docstrings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
345
|
+
<span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_docstring</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="o">.</span><span class="n">keys</span><span class="p">()}</span></div>
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
<div class="viewcode-block" id="ProviderManager.get_some_docstrings">
|
|
349
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.ProviderManager.get_some_docstrings">[docs]</a>
|
|
350
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_some_docstrings</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">names</span><span class="p">):</span>
|
|
351
|
+
<span class="n">debug_box</span><span class="p">(</span><span class="s2">"------------------------->>>>>>>>>>>>>>>>>>>>>>"</span><span class="p">)</span>
|
|
352
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"Get some doc strings"</span><span class="p">)</span>
|
|
353
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"self.functions"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
|
|
354
|
+
<span class="n">filtered</span> <span class="o">=</span> <span class="p">[]</span>
|
|
355
|
+
<span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span>
|
|
356
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">functions</span><span class="p">:</span>
|
|
357
|
+
<span class="n">logging</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="sa">f</span><span class="s2">"agent function '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found"</span><span class="p">)</span>
|
|
358
|
+
<span class="k">else</span><span class="p">:</span>
|
|
359
|
+
<span class="n">filtered</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
|
|
360
|
+
<span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_docstring</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">filtered</span><span class="p">}</span></div>
|
|
361
|
+
|
|
362
|
+
|
|
363
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
|
364
|
+
|
|
365
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">method</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
366
|
+
<span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
367
|
+
<span class="k">return</span> <span class="n">method</span></div>
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
<div class="viewcode-block" id="HookManager">
|
|
371
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.HookManager">[docs]</a>
|
|
372
|
+
<span class="k">class</span><span class="w"> </span><span class="nc">HookManager</span><span class="p">:</span>
|
|
373
|
+
<span class="n">_instance</span> <span class="o">=</span> <span class="kc">None</span>
|
|
374
|
+
<span class="n">_initialized</span> <span class="o">=</span> <span class="kc">False</span>
|
|
375
|
+
<span class="n">_hook_manager</span> <span class="o">=</span> <span class="kc">None</span>
|
|
376
|
+
|
|
377
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
|
|
378
|
+
<span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_instance</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
379
|
+
<span class="bp">cls</span><span class="o">.</span><span class="n">_instance</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">)</span>
|
|
380
|
+
<span class="bp">cls</span><span class="o">.</span><span class="n">_hook_manager</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_instance</span>
|
|
381
|
+
<span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_instance</span>
|
|
382
|
+
|
|
383
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
384
|
+
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_initialized</span><span class="p">:</span>
|
|
385
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">unique_id</span> <span class="o">=</span> <span class="n">nanoid</span><span class="o">.</span><span class="n">generate</span><span class="p">()</span>
|
|
386
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">hooks</span> <span class="o">=</span> <span class="p">{}</span>
|
|
387
|
+
<span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_initialized</span> <span class="o">=</span> <span class="kc">True</span>
|
|
388
|
+
|
|
389
|
+
<div class="viewcode-block" id="HookManager.register_hook">
|
|
390
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.HookManager.register_hook">[docs]</a>
|
|
391
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">register_hook</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">implementation</span><span class="p">,</span> <span class="n">signature</span><span class="p">,</span> <span class="n">docstring</span><span class="p">):</span>
|
|
392
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="p">:</span>
|
|
393
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
394
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">({</span><span class="s1">'implementation'</span><span class="p">:</span> <span class="n">implementation</span><span class="p">,</span> <span class="s1">'docstring'</span><span class="p">:</span> <span class="n">docstring</span><span class="p">})</span></div>
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
<div class="viewcode-block" id="HookManager.execute_hooks">
|
|
398
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.HookManager.execute_hooks">[docs]</a>
|
|
399
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">execute_hooks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
400
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="p">:</span>
|
|
401
|
+
<span class="k">return</span> <span class="p">[]</span>
|
|
402
|
+
<span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
|
|
403
|
+
<span class="k">for</span> <span class="n">hook_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="p">[</span><span class="n">name</span><span class="p">]:</span>
|
|
404
|
+
<span class="n">implementation</span> <span class="o">=</span> <span class="n">hook_info</span><span class="p">[</span><span class="s1">'implementation'</span><span class="p">]</span>
|
|
405
|
+
<span class="n">result</span> <span class="o">=</span> <span class="k">await</span> <span class="n">implementation</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
406
|
+
<span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
|
|
407
|
+
<span class="k">return</span> <span class="n">results</span></div>
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
<div class="viewcode-block" id="HookManager.get_docstring">
|
|
411
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.HookManager.get_docstring">[docs]</a>
|
|
412
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_docstring</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
|
413
|
+
<span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="p">:</span>
|
|
414
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"hook '</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">' not found."</span><span class="p">)</span>
|
|
415
|
+
<span class="k">return</span> <span class="p">[</span><span class="n">hook_info</span><span class="p">[</span><span class="s1">'docstring'</span><span class="p">]</span> <span class="k">for</span> <span class="n">hook_info</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="p">[</span><span class="n">name</span><span class="p">]]</span></div>
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
<div class="viewcode-block" id="HookManager.get_hooks">
|
|
419
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.HookManager.get_hooks">[docs]</a>
|
|
420
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_hooks</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
421
|
+
<span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span></div>
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
<div class="viewcode-block" id="HookManager.get_docstrings">
|
|
425
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.providers.html#mindroot.lib.providers.HookManager.get_docstrings">[docs]</a>
|
|
426
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_docstrings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
427
|
+
<span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_docstring</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">hooks</span><span class="o">.</span><span class="n">keys</span><span class="p">()}</span></div>
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
<span class="k">def</span><span class="w"> </span><span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
|
431
|
+
|
|
432
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">method</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
433
|
+
<span class="k">return</span> <span class="k">await</span> <span class="bp">self</span><span class="o">.</span><span class="n">execute_hooks</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
|
434
|
+
<span class="k">return</span> <span class="n">method</span></div>
|
|
435
|
+
|
|
436
|
+
</pre></div>
|
|
437
|
+
|
|
438
|
+
</div>
|
|
439
|
+
</div>
|
|
440
|
+
<footer>
|
|
441
|
+
|
|
442
|
+
<hr/>
|
|
443
|
+
|
|
444
|
+
<div role="contentinfo">
|
|
445
|
+
<p>© Copyright 2025, Jason Livesay.</p>
|
|
446
|
+
</div>
|
|
447
|
+
|
|
448
|
+
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
449
|
+
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
450
|
+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
</footer>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
</section>
|
|
457
|
+
</div>
|
|
458
|
+
<script>
|
|
459
|
+
jQuery(function () {
|
|
460
|
+
SphinxRtdTheme.Navigation.enable(true);
|
|
461
|
+
});
|
|
462
|
+
</script>
|
|
463
|
+
|
|
464
|
+
</body>
|
|
465
|
+
</html>
|