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,291 @@
|
|
|
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.model_preferences_v2 — 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"><a href="../providers.html">mindroot.lib.providers</a></li>
|
|
60
|
+
<li class="breadcrumb-item active">mindroot.lib.providers.model_preferences_v2</li>
|
|
61
|
+
<li class="wy-breadcrumbs-aside">
|
|
62
|
+
</li>
|
|
63
|
+
</ul>
|
|
64
|
+
<hr/>
|
|
65
|
+
</div>
|
|
66
|
+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
67
|
+
<div itemprop="articleBody">
|
|
68
|
+
|
|
69
|
+
<h1>Source code for mindroot.lib.providers.model_preferences_v2</h1><div class="highlight"><pre>
|
|
70
|
+
<span></span><span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
|
|
71
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
|
|
72
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">shutil</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">Dict</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Optional</span>
|
|
74
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
|
|
75
|
+
|
|
76
|
+
<div class="viewcode-block" id="ModelPreferencesV2">
|
|
77
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2">[docs]</a>
|
|
78
|
+
<span class="k">class</span><span class="w"> </span><span class="nc">ModelPreferencesV2</span><span class="p">:</span>
|
|
79
|
+
<span class="w"> </span><span class="sd">"""New model preferences system supporting ordered provider/model pairs for fallback selection."""</span>
|
|
80
|
+
|
|
81
|
+
<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>
|
|
82
|
+
<span class="c1"># Use current working directory for data (supports multiple installations)</span>
|
|
83
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">data_dir</span> <span class="o">=</span> <span class="n">Path</span><span class="o">.</span><span class="n">cwd</span><span class="p">()</span> <span class="o">/</span> <span class="s1">'data'</span>
|
|
84
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">preferences_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data_dir</span> <span class="o">/</span> <span class="s1">'preferred_models_v2.json'</span>
|
|
85
|
+
|
|
86
|
+
<span class="c1"># Locate template file relative to this script's location</span>
|
|
87
|
+
<span class="n">script_dir</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="vm">__file__</span><span class="p">)</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">parent</span> <span class="o">/</span> <span class="s1">'coreplugins'</span> <span class="o">/</span> <span class="s1">'admin'</span>
|
|
88
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">template_file</span> <span class="o">=</span> <span class="n">script_dir</span> <span class="o">/</span> <span class="s1">'default_preferred_models.json'</span>
|
|
89
|
+
|
|
90
|
+
<div class="viewcode-block" id="ModelPreferencesV2.ensure_preferences_exist">
|
|
91
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.ensure_preferences_exist">[docs]</a>
|
|
92
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">ensure_preferences_exist</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
93
|
+
<span class="w"> </span><span class="sd">"""Copy template preferences file to data directory if it doesn't exist."""</span>
|
|
94
|
+
<span class="c1"># Ensure data directory exists</span>
|
|
95
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">data_dir</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
96
|
+
|
|
97
|
+
<span class="c1"># If preferences file doesn't exist, copy from template</span>
|
|
98
|
+
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">preferences_file</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
|
|
99
|
+
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">template_file</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span>
|
|
100
|
+
<span class="n">shutil</span><span class="o">.</span><span class="n">copy2</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">template_file</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">preferences_file</span><span class="p">)</span>
|
|
101
|
+
<span class="k">else</span><span class="p">:</span>
|
|
102
|
+
<span class="c1"># Create minimal default if template doesn't exist</span>
|
|
103
|
+
<span class="n">default_prefs</span> <span class="o">=</span> <span class="p">{</span>
|
|
104
|
+
<span class="s2">"stream_chat"</span><span class="p">:</span> <span class="p">[</span>
|
|
105
|
+
<span class="p">[</span><span class="s2">"ah_anthropic"</span><span class="p">,</span> <span class="s2">"claude-3-5-sonnet-20240620"</span><span class="p">],</span>
|
|
106
|
+
<span class="p">[</span><span class="s2">"ah_openai"</span><span class="p">,</span> <span class="s2">"gpt-4o"</span><span class="p">]</span>
|
|
107
|
+
<span class="p">],</span>
|
|
108
|
+
<span class="s2">"text_to_image"</span><span class="p">:</span> <span class="p">[</span>
|
|
109
|
+
<span class="p">[</span><span class="s2">"ah_flux"</span><span class="p">,</span> <span class="s2">"flux-dev"</span><span class="p">]</span>
|
|
110
|
+
<span class="p">]</span>
|
|
111
|
+
<span class="p">}</span>
|
|
112
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">save_preferences</span><span class="p">(</span><span class="n">default_prefs</span><span class="p">)</span></div>
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
<div class="viewcode-block" id="ModelPreferencesV2.get_preferences">
|
|
116
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.get_preferences">[docs]</a>
|
|
117
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_preferences</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]]:</span>
|
|
118
|
+
<span class="w"> </span><span class="sd">"""Get preferences in new format: {service: [[provider, model], ...]}"""</span>
|
|
119
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">ensure_preferences_exist</span><span class="p">()</span>
|
|
120
|
+
|
|
121
|
+
<span class="k">try</span><span class="p">:</span>
|
|
122
|
+
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">preferences_file</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
|
123
|
+
<span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
|
|
124
|
+
<span class="k">except</span> <span class="p">(</span><span class="ne">FileNotFoundError</span><span class="p">,</span> <span class="n">json</span><span class="o">.</span><span class="n">JSONDecodeError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
125
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Error reading preferences v2: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
126
|
+
<span class="k">return</span> <span class="p">{}</span></div>
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
<div class="viewcode-block" id="ModelPreferencesV2.save_preferences">
|
|
130
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.save_preferences">[docs]</a>
|
|
131
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">save_preferences</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">preferences</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]])</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
132
|
+
<span class="w"> </span><span class="sd">"""Save preferences in new format."""</span>
|
|
133
|
+
|
|
134
|
+
<span class="c1"># Ensure data directory exists before saving</span>
|
|
135
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">data_dir</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
136
|
+
|
|
137
|
+
<span class="k">try</span><span class="p">:</span>
|
|
138
|
+
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">preferences_file</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
|
|
139
|
+
<span class="n">json</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">preferences</span><span class="p">,</span> <span class="n">f</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
|
|
140
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
141
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Error saving preferences v2: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
142
|
+
<span class="k">raise</span></div>
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
<div class="viewcode-block" id="ModelPreferencesV2.get_ordered_providers_for_service">
|
|
146
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.get_ordered_providers_for_service">[docs]</a>
|
|
147
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">get_ordered_providers_for_service</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">List</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]:</span>
|
|
148
|
+
<span class="w"> </span><span class="sd">"""Get ordered list of (provider, model) pairs for a service."""</span>
|
|
149
|
+
<span class="n">preferences</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_preferences</span><span class="p">()</span>
|
|
150
|
+
|
|
151
|
+
<span class="k">if</span> <span class="n">service_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">preferences</span><span class="p">:</span>
|
|
152
|
+
<span class="k">return</span> <span class="p">[]</span>
|
|
153
|
+
|
|
154
|
+
<span class="c1"># Convert list of lists to list of tuples</span>
|
|
155
|
+
<span class="k">return</span> <span class="p">[(</span><span class="n">provider</span><span class="p">,</span> <span class="n">model</span><span class="p">)</span> <span class="k">for</span> <span class="n">provider</span><span class="p">,</span> <span class="n">model</span> <span class="ow">in</span> <span class="n">preferences</span><span class="p">[</span><span class="n">service_name</span><span class="p">]]</span></div>
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
<div class="viewcode-block" id="ModelPreferencesV2.migrate_from_old_format">
|
|
159
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.migrate_from_old_format">[docs]</a>
|
|
160
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">migrate_from_old_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old_preferences</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">])</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]]:</span>
|
|
161
|
+
<span class="w"> </span><span class="sd">"""Convert old format preferences to new format.</span>
|
|
162
|
+
<span class="sd"> </span>
|
|
163
|
+
<span class="sd"> Old format: [{"service_or_command_name": "stream_chat", "flag": "default", "model": "claude-3"}]</span>
|
|
164
|
+
<span class="sd"> New format: {"stream_chat": [["ah_anthropic", "claude-3.5-sonnet"]]}</span>
|
|
165
|
+
<span class="sd"> """</span>
|
|
166
|
+
<span class="n">new_preferences</span> <span class="o">=</span> <span class="p">{}</span>
|
|
167
|
+
|
|
168
|
+
<span class="k">for</span> <span class="n">old_pref</span> <span class="ow">in</span> <span class="n">old_preferences</span><span class="p">:</span>
|
|
169
|
+
<span class="n">service</span> <span class="o">=</span> <span class="n">old_pref</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'service_or_command_name'</span><span class="p">)</span>
|
|
170
|
+
<span class="n">model</span> <span class="o">=</span> <span class="n">old_pref</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'model'</span><span class="p">)</span>
|
|
171
|
+
|
|
172
|
+
<span class="k">if</span> <span class="ow">not</span> <span class="n">service</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">model</span><span class="p">:</span>
|
|
173
|
+
<span class="k">continue</span>
|
|
174
|
+
|
|
175
|
+
<span class="c1"># For migration, we'll need to guess the provider based on model name</span>
|
|
176
|
+
<span class="c1"># This is a best-effort conversion</span>
|
|
177
|
+
<span class="n">provider</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_guess_provider_from_model</span><span class="p">(</span><span class="n">model</span><span class="p">)</span>
|
|
178
|
+
|
|
179
|
+
<span class="k">if</span> <span class="n">service</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">new_preferences</span><span class="p">:</span>
|
|
180
|
+
<span class="n">new_preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
181
|
+
|
|
182
|
+
<span class="c1"># Add if not already present</span>
|
|
183
|
+
<span class="n">provider_model_pair</span> <span class="o">=</span> <span class="p">[</span><span class="n">provider</span><span class="p">,</span> <span class="n">model</span><span class="p">]</span>
|
|
184
|
+
<span class="k">if</span> <span class="n">provider_model_pair</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">new_preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]:</span>
|
|
185
|
+
<span class="n">new_preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">provider_model_pair</span><span class="p">)</span>
|
|
186
|
+
|
|
187
|
+
<span class="k">return</span> <span class="n">new_preferences</span></div>
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">_guess_provider_from_model</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
191
|
+
<span class="w"> </span><span class="sd">"""Best-effort guess of provider based on model name."""</span>
|
|
192
|
+
<span class="n">model_lower</span> <span class="o">=</span> <span class="n">model_name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
|
|
193
|
+
|
|
194
|
+
<span class="c1"># Common model name patterns</span>
|
|
195
|
+
<span class="k">if</span> <span class="s1">'claude'</span> <span class="ow">in</span> <span class="n">model_lower</span><span class="p">:</span>
|
|
196
|
+
<span class="k">return</span> <span class="s1">'ah_anthropic'</span>
|
|
197
|
+
<span class="k">elif</span> <span class="s1">'gpt'</span> <span class="ow">in</span> <span class="n">model_lower</span> <span class="ow">or</span> <span class="s1">'chatgpt'</span> <span class="ow">in</span> <span class="n">model_lower</span><span class="p">:</span>
|
|
198
|
+
<span class="k">return</span> <span class="s1">'ah_openai'</span>
|
|
199
|
+
<span class="k">elif</span> <span class="s1">'gemini'</span> <span class="ow">in</span> <span class="n">model_lower</span><span class="p">:</span>
|
|
200
|
+
<span class="k">return</span> <span class="s1">'mr_gemini'</span>
|
|
201
|
+
<span class="k">elif</span> <span class="s1">'llama'</span> <span class="ow">in</span> <span class="n">model_lower</span><span class="p">:</span>
|
|
202
|
+
<span class="k">return</span> <span class="s1">'ah_together'</span> <span class="c1"># or another llama provider</span>
|
|
203
|
+
<span class="k">elif</span> <span class="s1">'flux'</span> <span class="ow">in</span> <span class="n">model_lower</span><span class="p">:</span>
|
|
204
|
+
<span class="k">return</span> <span class="s1">'ah_flux'</span>
|
|
205
|
+
<span class="k">elif</span> <span class="s1">'stable'</span> <span class="ow">in</span> <span class="n">model_lower</span> <span class="ow">or</span> <span class="s1">'sd'</span> <span class="ow">in</span> <span class="n">model_lower</span><span class="p">:</span>
|
|
206
|
+
<span class="k">return</span> <span class="s1">'ah_stability'</span>
|
|
207
|
+
<span class="k">else</span><span class="p">:</span>
|
|
208
|
+
<span class="c1"># Default fallback</span>
|
|
209
|
+
<span class="k">return</span> <span class="s1">'unknown_provider'</span>
|
|
210
|
+
|
|
211
|
+
<div class="viewcode-block" id="ModelPreferencesV2.add_preference">
|
|
212
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.add_preference">[docs]</a>
|
|
213
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">add_preference</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">provider</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">position</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
214
|
+
<span class="w"> </span><span class="sd">"""Add a provider/model preference for a service at specified position (or end)."""</span>
|
|
215
|
+
<span class="n">preferences</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_preferences</span><span class="p">()</span>
|
|
216
|
+
|
|
217
|
+
<span class="k">if</span> <span class="n">service</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">preferences</span><span class="p">:</span>
|
|
218
|
+
<span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
|
|
219
|
+
|
|
220
|
+
<span class="n">provider_model_pair</span> <span class="o">=</span> <span class="p">[</span><span class="n">provider</span><span class="p">,</span> <span class="n">model</span><span class="p">]</span>
|
|
221
|
+
|
|
222
|
+
<span class="c1"># Remove if already exists</span>
|
|
223
|
+
<span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">pm</span> <span class="k">for</span> <span class="n">pm</span> <span class="ow">in</span> <span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="k">if</span> <span class="n">pm</span> <span class="o">!=</span> <span class="n">provider_model_pair</span><span class="p">]</span>
|
|
224
|
+
|
|
225
|
+
<span class="c1"># Add at specified position or end</span>
|
|
226
|
+
<span class="k">if</span> <span class="n">position</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="mi">0</span> <span class="o"><=</span> <span class="n">position</span> <span class="o"><=</span> <span class="nb">len</span><span class="p">(</span><span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]):</span>
|
|
227
|
+
<span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="n">position</span><span class="p">,</span> <span class="n">provider_model_pair</span><span class="p">)</span>
|
|
228
|
+
<span class="k">else</span><span class="p">:</span>
|
|
229
|
+
<span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">provider_model_pair</span><span class="p">)</span>
|
|
230
|
+
|
|
231
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">save_preferences</span><span class="p">(</span><span class="n">preferences</span><span class="p">)</span></div>
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
<div class="viewcode-block" id="ModelPreferencesV2.remove_preference">
|
|
235
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.remove_preference">[docs]</a>
|
|
236
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">remove_preference</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">provider</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span>
|
|
237
|
+
<span class="w"> </span><span class="sd">"""Remove a provider/model preference for a service. Returns True if removed."""</span>
|
|
238
|
+
<span class="n">preferences</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_preferences</span><span class="p">()</span>
|
|
239
|
+
|
|
240
|
+
<span class="k">if</span> <span class="n">service</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">preferences</span><span class="p">:</span>
|
|
241
|
+
<span class="k">return</span> <span class="kc">False</span>
|
|
242
|
+
|
|
243
|
+
<span class="n">provider_model_pair</span> <span class="o">=</span> <span class="p">[</span><span class="n">provider</span><span class="p">,</span> <span class="n">model</span><span class="p">]</span>
|
|
244
|
+
|
|
245
|
+
<span class="k">if</span> <span class="n">provider_model_pair</span> <span class="ow">in</span> <span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]:</span>
|
|
246
|
+
<span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">provider_model_pair</span><span class="p">)</span>
|
|
247
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">save_preferences</span><span class="p">(</span><span class="n">preferences</span><span class="p">)</span>
|
|
248
|
+
<span class="k">return</span> <span class="kc">True</span>
|
|
249
|
+
|
|
250
|
+
<span class="k">return</span> <span class="kc">False</span></div>
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
<div class="viewcode-block" id="ModelPreferencesV2.reorder_preferences">
|
|
254
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.model_preferences_v2.ModelPreferencesV2.reorder_preferences">[docs]</a>
|
|
255
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">reorder_preferences</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">ordered_pairs</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
256
|
+
<span class="w"> </span><span class="sd">"""Set the complete ordered list of provider/model pairs for a service."""</span>
|
|
257
|
+
<span class="n">preferences</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_preferences</span><span class="p">()</span>
|
|
258
|
+
<span class="n">preferences</span><span class="p">[</span><span class="n">service</span><span class="p">]</span> <span class="o">=</span> <span class="n">ordered_pairs</span>
|
|
259
|
+
<span class="bp">self</span><span class="o">.</span><span class="n">save_preferences</span><span class="p">(</span><span class="n">preferences</span><span class="p">)</span></div>
|
|
260
|
+
</div>
|
|
261
|
+
|
|
262
|
+
</pre></div>
|
|
263
|
+
|
|
264
|
+
</div>
|
|
265
|
+
</div>
|
|
266
|
+
<footer>
|
|
267
|
+
|
|
268
|
+
<hr/>
|
|
269
|
+
|
|
270
|
+
<div role="contentinfo">
|
|
271
|
+
<p>© Copyright 2025, Jason Livesay.</p>
|
|
272
|
+
</div>
|
|
273
|
+
|
|
274
|
+
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
275
|
+
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
276
|
+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
</footer>
|
|
280
|
+
</div>
|
|
281
|
+
</div>
|
|
282
|
+
</section>
|
|
283
|
+
</div>
|
|
284
|
+
<script>
|
|
285
|
+
jQuery(function () {
|
|
286
|
+
SphinxRtdTheme.Navigation.enable(true);
|
|
287
|
+
});
|
|
288
|
+
</script>
|
|
289
|
+
|
|
290
|
+
</body>
|
|
291
|
+
</html>
|
|
@@ -0,0 +1,122 @@
|
|
|
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.services — 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"><a href="../providers.html">mindroot.lib.providers</a></li>
|
|
60
|
+
<li class="breadcrumb-item active">mindroot.lib.providers.services</li>
|
|
61
|
+
<li class="wy-breadcrumbs-aside">
|
|
62
|
+
</li>
|
|
63
|
+
</ul>
|
|
64
|
+
<hr/>
|
|
65
|
+
</div>
|
|
66
|
+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
67
|
+
<div itemprop="articleBody">
|
|
68
|
+
|
|
69
|
+
<h1>Source code for mindroot.lib.providers.services</h1><div class="highlight"><pre>
|
|
70
|
+
<span></span><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
|
|
71
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">inspect</span>
|
|
72
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">.</span><span class="w"> </span><span class="kn">import</span> <span class="n">ProviderManager</span>
|
|
73
|
+
|
|
74
|
+
<span class="n">service_manager</span> <span class="o">=</span> <span class="n">ProviderManager</span><span class="p">()</span>
|
|
75
|
+
|
|
76
|
+
<div class="viewcode-block" id="service">
|
|
77
|
+
<a class="viewcode-back" href="../../../../source/mindroot.lib.providers.html#mindroot.lib.providers.services.service">[docs]</a>
|
|
78
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">service</span><span class="p">(</span><span class="o">*</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="p">[]):</span>
|
|
79
|
+
<span class="k">def</span><span class="w"> </span><span class="nf">decorator</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
|
|
80
|
+
<span class="n">docstring</span> <span class="o">=</span> <span class="n">func</span><span class="o">.</span><span class="vm">__doc__</span>
|
|
81
|
+
<span class="n">name</span> <span class="o">=</span> <span class="n">func</span><span class="o">.</span><span class="vm">__name__</span>
|
|
82
|
+
<span class="n">signature</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">signature</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
|
|
83
|
+
<span class="n">module</span> <span class="o">=</span> <span class="n">inspect</span><span class="o">.</span><span class="n">getmodule</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
|
|
84
|
+
<span class="k">if</span> <span class="n">module</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
85
|
+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Cannot determine module of function"</span><span class="p">)</span>
|
|
86
|
+
|
|
87
|
+
<span class="n">module_name</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">module</span><span class="o">.</span><span class="vm">__file__</span><span class="p">))</span>
|
|
88
|
+
<span class="n">service_manager</span><span class="o">.</span><span class="n">register_function</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">module_name</span><span class="p">,</span> <span class="n">func</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>
|
|
89
|
+
<span class="k">return</span> <span class="n">func</span>
|
|
90
|
+
<span class="k">return</span> <span class="n">decorator</span></div>
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
</pre></div>
|
|
94
|
+
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
<footer>
|
|
98
|
+
|
|
99
|
+
<hr/>
|
|
100
|
+
|
|
101
|
+
<div role="contentinfo">
|
|
102
|
+
<p>© Copyright 2025, Jason Livesay.</p>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
106
|
+
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
107
|
+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
</footer>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</section>
|
|
114
|
+
</div>
|
|
115
|
+
<script>
|
|
116
|
+
jQuery(function () {
|
|
117
|
+
SphinxRtdTheme.Navigation.enable(true);
|
|
118
|
+
});
|
|
119
|
+
</script>
|
|
120
|
+
|
|
121
|
+
</body>
|
|
122
|
+
</html>
|