mindroot 9.11.0__py3-none-any.whl → 9.13.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/admin/static/js/model-preferences-v2.js +1 -1
- 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/lib/providers/model_preferences_v2.py +5 -3
- mindroot/server.py +10 -1
- {mindroot-9.11.0.dist-info → mindroot-9.13.0.dist-info}/METADATA +1 -1
- {mindroot-9.11.0.dist-info → mindroot-9.13.0.dist-info}/RECORD +417 -10
- {mindroot-9.11.0.dist-info → mindroot-9.13.0.dist-info}/WHEEL +0 -0
- {mindroot-9.11.0.dist-info → mindroot-9.13.0.dist-info}/entry_points.txt +0 -0
- {mindroot-9.11.0.dist-info → mindroot-9.13.0.dist-info}/licenses/LICENSE +0 -0
- {mindroot-9.11.0.dist-info → mindroot-9.13.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,565 @@
|
|
|
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.coreplugins.chat.commands — 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
|
+
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
|
|
43
|
+
<ul>
|
|
44
|
+
<li class="toctree-l1"><a class="reference internal" href="../../../../getting_started.html">Getting Started</a></li>
|
|
45
|
+
</ul>
|
|
46
|
+
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</nav>
|
|
50
|
+
|
|
51
|
+
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #343131" >
|
|
52
|
+
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
53
|
+
<a href="../../../../index.html">MindRoot</a>
|
|
54
|
+
</nav>
|
|
55
|
+
|
|
56
|
+
<div class="wy-nav-content">
|
|
57
|
+
<div class="rst-content">
|
|
58
|
+
<div role="navigation" aria-label="Page navigation">
|
|
59
|
+
<ul class="wy-breadcrumbs">
|
|
60
|
+
<li><a href="../../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
61
|
+
<li class="breadcrumb-item"><a href="../../../index.html">Module code</a></li>
|
|
62
|
+
<li class="breadcrumb-item active">mindroot.coreplugins.chat.commands</li>
|
|
63
|
+
<li class="wy-breadcrumbs-aside">
|
|
64
|
+
</li>
|
|
65
|
+
</ul>
|
|
66
|
+
<hr/>
|
|
67
|
+
</div>
|
|
68
|
+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
69
|
+
<div itemprop="articleBody">
|
|
70
|
+
|
|
71
|
+
<h1>Source code for mindroot.coreplugins.chat.commands</h1><div class="highlight"><pre>
|
|
72
|
+
<span></span><span class="kn">from</span><span class="w"> </span><span class="nn">lib.providers.commands</span><span class="w"> </span><span class="kn">import</span> <span class="n">command</span><span class="p">,</span> <span class="n">command_manager</span>
|
|
73
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">lib.providers.services</span><span class="w"> </span><span class="kn">import</span> <span class="n">service_manager</span>
|
|
74
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">lib.chatcontext</span><span class="w"> </span><span class="kn">import</span> <span class="n">ChatContext</span>
|
|
75
|
+
<span class="kn">from</span><span class="w"> </span><span class="nn">.services</span><span class="w"> </span><span class="kn">import</span> <span class="n">init_chat_session</span><span class="p">,</span> <span class="n">send_message_to_agent</span><span class="p">,</span> <span class="n">subscribe_to_agent_messages</span>
|
|
76
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">asyncio</span>
|
|
77
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
|
|
78
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">nanoid</span>
|
|
79
|
+
<span class="kn">import</span><span class="w"> </span><span class="nn">termcolor</span>
|
|
80
|
+
|
|
81
|
+
<div class="viewcode-block" id="tell_and_continue">
|
|
82
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.tell_and_continue">[docs]</a>
|
|
83
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
84
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">tell_and_continue</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
85
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
86
|
+
<span class="sd"> Say something to the user or chat room, then CONTINUE processing.</span>
|
|
87
|
+
<span class="sd"> One sentence per command. If you want to say multiple sentences, use multiple commands.</span>
|
|
88
|
+
<span class="sd"> This is for providing the user with a status update without stopping.</span>
|
|
89
|
+
|
|
90
|
+
<span class="sd"> Parameters:</span>
|
|
91
|
+
<span class="sd"> text - String. The text to say.</span>
|
|
92
|
+
|
|
93
|
+
<span class="sd"> Return: True </span>
|
|
94
|
+
|
|
95
|
+
<span class="sd"> ## Example 1</span>
|
|
96
|
+
<span class="sd"> </span>
|
|
97
|
+
<span class="sd"> [</span>
|
|
98
|
+
<span class="sd"> { "tell_and_continue": { "text": "Hello, user. I will make that directory for you and then continue with the task.." } },</span>
|
|
99
|
+
<span class="sd"> { "mkdir": { "absolute_path": "/new/dir" } }</span>
|
|
100
|
+
<span class="sd"> ]</span>
|
|
101
|
+
|
|
102
|
+
<span class="sd"> """</span>
|
|
103
|
+
<span class="k">await</span> <span class="n">context</span><span class="o">.</span><span class="n">agent_output</span><span class="p">(</span><span class="s2">"new_message"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"content"</span><span class="p">:</span> <span class="n">text</span><span class="p">,</span>
|
|
104
|
+
<span class="s2">"agent"</span><span class="p">:</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">[</span><span class="s1">'name'</span><span class="p">]</span> <span class="p">})</span>
|
|
105
|
+
<span class="k">return</span> <span class="kc">True</span></div>
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
<div class="viewcode-block" id="wait_for_user_reply">
|
|
110
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.wait_for_user_reply">[docs]</a>
|
|
111
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
112
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">wait_for_user_reply</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
113
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
114
|
+
<span class="sd"> Say something to the user or chat room, then STOP processing and wait for them to reply.</span>
|
|
115
|
+
<span class="sd"> One sentence per command. If you want to say multiple sentences, use multiple commands.</span>
|
|
116
|
+
|
|
117
|
+
<span class="sd"> Parameters:</span>
|
|
118
|
+
<span class="sd"> text - String. The text to say.</span>
|
|
119
|
+
|
|
120
|
+
<span class="sd"> Return: No return value. After executing commands in the command list, the</span>
|
|
121
|
+
<span class="sd"> system will wait for the user to reply, UNLESS you include a command</span>
|
|
122
|
+
<span class="sd"> in your list that returns a value. Therefore, do not use this with</span>
|
|
123
|
+
<span class="sd"> other commands that return a value instead of waiting.</span>
|
|
124
|
+
|
|
125
|
+
<span class="sd"> ## Example 1</span>
|
|
126
|
+
<span class="sd"> </span>
|
|
127
|
+
<span class="sd"> (in this example we issue multiple commands, but are finished with commands after that)</span>
|
|
128
|
+
|
|
129
|
+
<span class="sd"> [</span>
|
|
130
|
+
<span class="sd"> { "wait_for_user_reply": { "text": "Hello, user. Here is some more info on that:" } },</span>
|
|
131
|
+
<span class="sd"> { "markdown_await_user": { "text": "[A few paragraphs of info, using RAW encoding]" } },</span>
|
|
132
|
+
<span class="sd"> { "task_complete": {} }</span>
|
|
133
|
+
<span class="sd"> ]</span>
|
|
134
|
+
|
|
135
|
+
<span class="sd"> (The system waits for the user reply)</span>
|
|
136
|
+
|
|
137
|
+
<span class="sd"> """</span>
|
|
138
|
+
<span class="k">await</span> <span class="n">context</span><span class="o">.</span><span class="n">agent_output</span><span class="p">(</span><span class="s2">"new_message"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"content"</span><span class="p">:</span> <span class="n">text</span><span class="p">,</span>
|
|
139
|
+
<span class="s2">"agent"</span><span class="p">:</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">[</span><span class="s1">'name'</span><span class="p">]</span> <span class="p">})</span>
|
|
140
|
+
<span class="k">return</span> <span class="s1">'stop'</span></div>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
<div class="viewcode-block" id="markdown_await_user">
|
|
145
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.markdown_await_user">[docs]</a>
|
|
146
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
147
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">markdown_await_user</span><span class="p">(</span><span class="n">markdown</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
148
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
149
|
+
<span class="sd"> Output some markdown text to the user or chat room and then wait for the user's reply.</span>
|
|
150
|
+
<span class="sd"> Use this for any somewhat longer text that the user can read and</span>
|
|
151
|
+
<span class="sd"> and doesn't necessarily need to be spoken out loud.</span>
|
|
152
|
+
|
|
153
|
+
<span class="sd"> You can write as much text/sentences etc. as you need.</span>
|
|
154
|
+
|
|
155
|
+
<span class="sd"> Use the special RAW format with START_RAW and END_RAW to output raw markdown.</span>
|
|
156
|
+
|
|
157
|
+
<span class="sd"> Parameters:</span>
|
|
158
|
+
|
|
159
|
+
<span class="sd"> markdown - String. Insert using RAW mode.</span>
|
|
160
|
+
|
|
161
|
+
<span class="sd"> Note that you can use Katex for math rendering in markdown, but remember to</span>
|
|
162
|
+
<span class="sd"> use 'aligned' instead of 'align'. Always use 'math' code blocks for this.</span>
|
|
163
|
+
<span class="sd"> Be careful of limitations with KaTeX such as macros etc.</span>
|
|
164
|
+
|
|
165
|
+
<span class="sd"> Also, IMPORTANT: if you need to do other formatting in math sections such as</span>
|
|
166
|
+
<span class="sd"> a list of steps or a table, use the KaTeX formatting for this </span>
|
|
167
|
+
<span class="sd"> rather than trying to add LaTeX in the middle of markdown lists</span>
|
|
168
|
+
<span class="sd"> or tables etc.</span>
|
|
169
|
+
|
|
170
|
+
<span class="sd"> Also, you can use HTML in the typical way it is inserted into markdown,</span>
|
|
171
|
+
<span class="sd"> including, for example, embedding YouTube videos.</span>
|
|
172
|
+
|
|
173
|
+
<span class="sd"> # Basic Example</span>
|
|
174
|
+
|
|
175
|
+
<span class="sd"> { "markdown_await_user":</span>
|
|
176
|
+
<span class="sd"> { "markdown": START_RAW</span>
|
|
177
|
+
<span class="sd"> ## Section 1</span>
|
|
178
|
+
|
|
179
|
+
<span class="sd"> - item 1</span>
|
|
180
|
+
<span class="sd"> - item 2</span>
|
|
181
|
+
<span class="sd"> END_RAW</span>
|
|
182
|
+
<span class="sd"> }</span>
|
|
183
|
+
<span class="sd"> }</span>
|
|
184
|
+
|
|
185
|
+
<span class="sd"> NOTE: Do NOT start a new command list if there already is one!!</span>
|
|
186
|
+
|
|
187
|
+
<span class="sd"> """</span>
|
|
188
|
+
<span class="c1">#await context.agent_output("new_message", {"content": markdown,</span>
|
|
189
|
+
<span class="c1"># "agent": context.agent['name'] })</span>
|
|
190
|
+
<span class="k">return</span> <span class="s1">'stop'</span></div>
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
<div class="viewcode-block" id="insert_image">
|
|
195
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.insert_image">[docs]</a>
|
|
196
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
197
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">insert_image</span><span class="p">(</span><span class="n">image_url</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
198
|
+
<span class="k">await</span> <span class="n">context</span><span class="o">.</span><span class="n">agent_output</span><span class="p">(</span><span class="s2">"image"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"url"</span><span class="p">:</span> <span class="n">image_url</span><span class="p">})</span></div>
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
<div class="viewcode-block" id="delegate_task">
|
|
202
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.delegate_task">[docs]</a>
|
|
203
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
204
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">delegate_task</span><span class="p">(</span><span class="n">instructions</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">agent_name</span><span class="p">,</span> <span class="n">log_id</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">retries</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
205
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
206
|
+
<span class="sd"> Delegate a task to another agent.</span>
|
|
207
|
+
|
|
208
|
+
<span class="sd"> Example:</span>
|
|
209
|
+
|
|
210
|
+
<span class="sd"> { "delegate_task": { "log_id": "poem.moon.03_22_2024.4PM.1", "instructions": "Write a poem about the moon", "agent_name": "poet" } }</span>
|
|
211
|
+
|
|
212
|
+
<span class="sd"> Note: do not specify any other arguments than those in the example.</span>
|
|
213
|
+
<span class="sd"> In particular, 'context' is not a valid argument!</span>
|
|
214
|
+
|
|
215
|
+
<span class="sd"> log_id is optional, if you specify it you must use something unique.</span>
|
|
216
|
+
|
|
217
|
+
<span class="sd"> You can also let the system assign log_id automatically:</span>
|
|
218
|
+
|
|
219
|
+
<span class="sd"> Example:</span>
|
|
220
|
+
|
|
221
|
+
<span class="sd"> { "delegate_task": { "instructions": "Write a poem about the moon", "agent_name": "poet" } }</span>
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
<span class="sd"> """</span>
|
|
225
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"in delegate task, context is:"</span><span class="p">)</span>
|
|
226
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">context</span><span class="p">)</span>
|
|
227
|
+
<span class="k">if</span> <span class="n">log_id</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
228
|
+
<span class="n">log_id</span> <span class="o">=</span> <span class="n">nanoid</span><span class="o">.</span><span class="n">generate</span><span class="p">()</span>
|
|
229
|
+
<span class="n">llm</span> <span class="o">=</span> <span class="kc">None</span>
|
|
230
|
+
<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="p">:</span>
|
|
231
|
+
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="s1">'current_model'</span><span class="p">):</span>
|
|
232
|
+
<span class="n">llm</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">current_model</span>
|
|
233
|
+
<span class="k">elif</span> <span class="s1">'llm'</span> <span class="ow">in</span> <span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">:</span>
|
|
234
|
+
<span class="n">llm</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'llm'</span><span class="p">]</span>
|
|
235
|
+
<span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">full_results</span><span class="p">,</span> <span class="n">xx</span><span class="p">)</span> <span class="o">=</span> <span class="k">await</span> <span class="n">service_manager</span><span class="o">.</span><span class="n">run_task</span><span class="p">(</span><span class="n">instructions</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="n">context</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> <span class="n">log_id</span><span class="o">=</span><span class="n">log_id</span><span class="p">,</span>
|
|
236
|
+
<span class="n">parent_log_id</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">log_id</span><span class="p">,</span>
|
|
237
|
+
<span class="n">llm</span><span class="o">=</span><span class="n">llm</span><span class="p">,</span> <span class="n">agent_name</span><span class="o">=</span><span class="n">agent_name</span><span class="p">,</span> <span class="n">retries</span><span class="o">=</span><span class="n">retries</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
|
238
|
+
<span class="k">return</span> <span class="sa">f</span><span class="s2">"""<a href="/session/</span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2">/</span><span class="si">{</span><span class="n">log_id</span><span class="si">}</span><span class="s2">" target="_blank">Task completed with log ID: </span><span class="si">{</span><span class="n">log_id</span><span class="si">}</span><span class="s2"></a></span><span class="se">\n</span><span class="s2">Results:</span><span class="se">\n\n</span><span class="si">{</span><span class="n">text</span><span class="si">}</span><span class="s2">"""</span></div>
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
<div class="viewcode-block" id="task_result">
|
|
243
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.task_result">[docs]</a>
|
|
244
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
245
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">task_result</span><span class="p">(</span><span class="n">output</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
246
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
247
|
+
<span class="sd"> Return the result of a task to the user.</span>
|
|
248
|
+
|
|
249
|
+
<span class="sd"> This should be the final output of a task that the user requested.</span>
|
|
250
|
+
|
|
251
|
+
<span class="sd"> Note: if you have this command defined, you MUST use it at the end of a task.</span>
|
|
252
|
+
<span class="sd"> Be sure to include the full output of the task, unless they specified </span>
|
|
253
|
+
<span class="sd"> that they only want a brief or final answer.</span>
|
|
254
|
+
|
|
255
|
+
<span class="sd"> If you do not call this, the task will be repeated.</span>
|
|
256
|
+
|
|
257
|
+
<span class="sd"> Parameters:</span>
|
|
258
|
+
|
|
259
|
+
<span class="sd"> output - Array OR Object OR String. The output of the task, such as analysis, structured data,</span>
|
|
260
|
+
<span class="sd"> report, answer, etc.</span>
|
|
261
|
+
|
|
262
|
+
<span class="sd"> IMPORTANT: If the user requests JSON output or provides a schema, you must</span>
|
|
263
|
+
<span class="sd"> output ONLY the data in the format requested. </span>
|
|
264
|
+
|
|
265
|
+
<span class="sd"> Unless otherwise indicated for your model, use the special </span>
|
|
266
|
+
<span class="sd"> RAW format with START_RAW and END_RAW to output raw markdown.</span>
|
|
267
|
+
|
|
268
|
+
<span class="sd"> Example:</span>
|
|
269
|
+
|
|
270
|
+
<span class="sd"> User: Please output the addresses from the following document</span>
|
|
271
|
+
<span class="sd"> using this format (e.g.): </span>
|
|
272
|
+
<span class="sd"> [{ "address1": "Main St.", "state": "CA", "zip: "90210" }]</span>
|
|
273
|
+
|
|
274
|
+
<span class="sd"> (... document ...)</span>
|
|
275
|
+
|
|
276
|
+
<span class="sd"> you would output something like this:</span>
|
|
277
|
+
|
|
278
|
+
<span class="sd"> { "task_result": {</span>
|
|
279
|
+
<span class="sd"> "output": [</span>
|
|
280
|
+
<span class="sd"> { "address1": "First St.", "state": "TX", "zip: "78573" },</span>
|
|
281
|
+
<span class="sd"> { "address2": "Second St.", "state": "TX", "zip: "78001" }</span>
|
|
282
|
+
<span class="sd"> ] }</span>
|
|
283
|
+
<span class="sd"> }</span>
|
|
284
|
+
|
|
285
|
+
<span class="sd"> ___</span>
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
<span class="sd"> In the case that the user requested a formatted report:</span>
|
|
289
|
+
|
|
290
|
+
<span class="sd"> Example:</span>
|
|
291
|
+
|
|
292
|
+
<span class="sd"> User: What is the answer to the universe?</span>
|
|
293
|
+
|
|
294
|
+
<span class="sd"> you would output something like this:</span>
|
|
295
|
+
|
|
296
|
+
<span class="sd"> { "task_result":</span>
|
|
297
|
+
<span class="sd"> { "output": START_RAW</span>
|
|
298
|
+
<span class="sd"> ## Answer</span>
|
|
299
|
+
<span class="sd"> </span>
|
|
300
|
+
<span class="sd"> The answer is 42.</span>
|
|
301
|
+
|
|
302
|
+
<span class="sd"> END_RAW</span>
|
|
303
|
+
|
|
304
|
+
<span class="sd"> }</span>
|
|
305
|
+
<span class="sd"> }</span>
|
|
306
|
+
|
|
307
|
+
<span class="sd"> """</span>
|
|
308
|
+
<span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'finished_conversation'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
|
309
|
+
<span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'task_result'</span><span class="p">]</span> <span class="o">=</span> <span class="n">output</span>
|
|
310
|
+
<span class="n">context</span><span class="o">.</span><span class="n">save_context</span><span class="p">()</span>
|
|
311
|
+
<span class="k">return</span> <span class="kc">None</span></div>
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
<div class="viewcode-block" id="initiate_agent_session">
|
|
315
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.initiate_agent_session">[docs]</a>
|
|
316
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
317
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">initiate_agent_session</span><span class="p">(</span><span class="n">agent_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
318
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
319
|
+
<span class="sd"> Initiate a chat session with another agent.</span>
|
|
320
|
+
<span class="sd"> IMPORTANT NOTE: You may not use this command while already in conversation with another agent.</span>
|
|
321
|
+
<span class="sd"> You must exit the current conversation and then the parent context will continue.</span>
|
|
322
|
+
|
|
323
|
+
<span class="sd"> Parameters:</span>
|
|
324
|
+
<span class="sd"> agent_name - String. The name of the agent to start a session with.</span>
|
|
325
|
+
|
|
326
|
+
<span class="sd"> Important: wait for the system to return the log_id for the new chat session before using the converse_with_agent() command.</span>
|
|
327
|
+
<span class="sd"> Return: String. The log_id for the new chat session.</span>
|
|
328
|
+
<span class="sd"> """</span>
|
|
329
|
+
<span class="n">log_id</span> <span class="o">=</span> <span class="n">nanoid</span><span class="o">.</span><span class="n">generate</span><span class="p">()</span>
|
|
330
|
+
|
|
331
|
+
<span class="k">await</span> <span class="n">init_chat_session</span><span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> <span class="n">agent_name</span><span class="p">,</span> <span class="n">log_id</span><span class="p">)</span>
|
|
332
|
+
|
|
333
|
+
<span class="k">return</span> <span class="n">log_id</span></div>
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
<div class="viewcode-block" id="exit_conversation">
|
|
338
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.exit_conversation">[docs]</a>
|
|
339
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
340
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">exit_conversation</span><span class="p">(</span><span class="n">output</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
341
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
342
|
+
<span class="sd"> Exit a chat session with another agent. Use this when exit criteria are met.</span>
|
|
343
|
+
<span class="sd"> Use this command when you are finished with an agent. You may not initiate another conversation whie in a chat session with an agent.</span>
|
|
344
|
+
|
|
345
|
+
<span class="sd"> Parameters:</span>
|
|
346
|
+
<span class="sd"> output - String :</span>
|
|
347
|
+
<span class="sd"> ALL relevant details of the conversation.</span>
|
|
348
|
+
<span class="sd"> IMPORTANT: if the output of the conversation is a deliverable </span>
|
|
349
|
+
<span class="sd"> in the form of text, then depending on the wording of the user's </span>
|
|
350
|
+
<span class="sd"> instructions, you may need to include the ALL the text</span>
|
|
351
|
+
<span class="sd"> of the deliverable here!</span>
|
|
352
|
+
<span class="sd"> If the user asked for only a summary, then provide a summary.</span>
|
|
353
|
+
<span class="sd"> If there was work output to a file, this must include the full filename. </span>
|
|
354
|
+
<span class="sd"> Etc.</span>
|
|
355
|
+
|
|
356
|
+
<span class="sd"> This should be EVERY detail that is needed to continue, but none of </span>
|
|
357
|
+
<span class="sd"> any intermediary details of the conversation that aren't relevant.</span>
|
|
358
|
+
<span class="sd"> Such as greetings, intermediary work steps, etc.</span>
|
|
359
|
+
<span class="sd"> But assume that you will not be able to refer back to this conversation </span>
|
|
360
|
+
<span class="sd"> other than the takeaways listed here. So err on the side of caution of </span>
|
|
361
|
+
<span class="sd"> including MORE information. But be concise without losing ANY potentially </span>
|
|
362
|
+
<span class="sd"> relevant detail.</span>
|
|
363
|
+
|
|
364
|
+
<span class="sd"> Example: discussion was about a shopping list that was requested from the user.</span>
|
|
365
|
+
<span class="sd"> The output should be the full shopping list verbatim (but you can use abbreviations)</span>
|
|
366
|
+
|
|
367
|
+
<span class="sd"> Example: discussion was about a long process ending in a file being created. </span>
|
|
368
|
+
<span class="sd"> The output should be the full filename and path.</span>
|
|
369
|
+
|
|
370
|
+
<span class="sd"> Example: user requested to have an agent install some software. The output should be </span>
|
|
371
|
+
<span class="sd"> whether the software was successfully installed or not, and how to start and configure it.</span>
|
|
372
|
+
<span class="sd"> The output in this case should not include all of the steps involved or files installed.</span>
|
|
373
|
+
<span class="sd"> """</span>
|
|
374
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'-------------------------------------------------------------------'</span><span class="p">)</span>
|
|
375
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">log_id</span><span class="p">)</span>
|
|
376
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="s1">'exiting conversation'</span><span class="p">,</span> <span class="s1">'yellow'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
377
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="n">output</span><span class="p">,</span> <span class="s1">'yellow'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
378
|
+
<span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'finished_conversation'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
|
|
379
|
+
<span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'takeaways'</span><span class="p">]</span> <span class="o">=</span> <span class="n">output</span>
|
|
380
|
+
|
|
381
|
+
<span class="n">context</span><span class="o">.</span><span class="n">save_context</span><span class="p">()</span>
|
|
382
|
+
<span class="k">return</span> <span class="n">output</span></div>
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
<div class="viewcode-block" id="converse_with_agent">
|
|
388
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.converse_with_agent">[docs]</a>
|
|
389
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
390
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">converse_with_agent</span><span class="p">(</span><span class="n">agent_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sub_log_id</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">first_message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">contextual_info</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">exit_criteria</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
391
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
392
|
+
<span class="sd"> IMPORTANT: Wait for the system to return the sub_log_id from the initiate_agent_session() command before using this command.</span>
|
|
393
|
+
<span class="sd"> Have a conversation with an agent in an existing chat session.</span>
|
|
394
|
+
<span class="sd"> Note:</span>
|
|
395
|
+
<span class="sd"> Do not use this command again to send more messages to the agent. </span>
|
|
396
|
+
<span class="sd"> Again, IMPORTANT: do NOT use this command from within a subconversation.</span>
|
|
397
|
+
<span class="sd"> You only issue this command ONCE, then the conversation occurs in another subcontext.</span>
|
|
398
|
+
|
|
399
|
+
<span class="sd"> Parameters:</span>
|
|
400
|
+
<span class="sd"> agent_name - String. The name of the agent to converse with.</span>
|
|
401
|
+
<span class="sd"> sub_log_id - String. The log_id of the existing chat session with a secondary agent.</span>
|
|
402
|
+
|
|
403
|
+
<span class="sd"> first_message - String. The first message to the agent.</span>
|
|
404
|
+
<span class="sd"> contextual_info - String. Relevant details that may come up.</span>
|
|
405
|
+
<span class="sd"> exit_criteria - String. The criteria for ending the conversation.</span>
|
|
406
|
+
|
|
407
|
+
<span class="sd"> Return: String. Contains a concise summary of relevant details of conversation.</span>
|
|
408
|
+
<span class="sd"> """</span>
|
|
409
|
+
<span class="c1"># create a temp chat log for the agent's perspective on this subconversation</span>
|
|
410
|
+
<span class="n">first_message</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">first_message</span><span class="si">}</span><span class="se">\n\n</span><span class="s2">Additional Context:</span><span class="se">\n</span><span class="si">{</span><span class="n">contextual_info</span><span class="si">}</span><span class="s2">"</span>
|
|
411
|
+
|
|
412
|
+
<span class="n">my_sub_log_id</span> <span class="o">=</span> <span class="n">nanoid</span><span class="o">.</span><span class="n">generate</span><span class="p">()</span>
|
|
413
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'-------------------------------------------------------------------'</span><span class="p">)</span>
|
|
414
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">'==================================================================='</span><span class="p">)</span>
|
|
415
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">context</span><span class="o">.</span><span class="n">agent_name</span><span class="p">)</span>
|
|
416
|
+
<span class="k">await</span> <span class="n">init_chat_session</span><span class="p">(</span><span class="n">context</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> <span class="n">context</span><span class="o">.</span><span class="n">agent_name</span><span class="p">,</span> <span class="n">my_sub_log_id</span><span class="p">)</span>
|
|
417
|
+
<span class="n">my_sub_context</span> <span class="o">=</span> <span class="n">ChatContext</span><span class="p">(</span><span class="n">service_manager</span><span class="p">,</span> <span class="n">command_manager</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="n">context</span><span class="o">.</span><span class="n">user</span><span class="p">)</span>
|
|
418
|
+
<span class="k">await</span> <span class="n">my_sub_context</span><span class="o">.</span><span class="n">load_context</span><span class="p">(</span><span class="n">my_sub_log_id</span><span class="p">)</span>
|
|
419
|
+
<span class="n">my_sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'parent_log_id'</span><span class="p">]</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">log_id</span>
|
|
420
|
+
<span class="n">my_sub_log</span> <span class="o">=</span> <span class="n">my_sub_context</span><span class="o">.</span><span class="n">chat_log</span>
|
|
421
|
+
|
|
422
|
+
<span class="n">init_sub_msg</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"""[SYSTEM]:</span>
|
|
423
|
+
<span class="s2"> Initiating chat session between [</span><span class="si">{</span><span class="n">my_sub_context</span><span class="o">.</span><span class="n">agent_name</span><span class="si">}</span><span class="s2">] and </span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2"> ...</span>
|
|
424
|
+
<span class="s2"> </span><span class="si">{</span><span class="n">contextual_info</span><span class="si">}</span>
|
|
425
|
+
<span class="s2"> </span>
|
|
426
|
+
<span class="s2"> </span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2"> may execute several commands to achieve the goal.</span>
|
|
427
|
+
|
|
428
|
+
<span class="s2"> The commands and results from </span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2"> will be shown in the User role as "[</span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2">]:"</span>
|
|
429
|
+
<span class="s2"> </span>
|
|
430
|
+
<span class="s2"> Conversation exit criteria: </span><span class="si">{</span><span class="n">exit_criteria</span><span class="si">}</span><span class="s2">.</span>
|
|
431
|
+
|
|
432
|
+
<span class="s2"> At each conversation turn, evaluate whether they have completed the task satisfactorily according to </span>
|
|
433
|
+
<span class="s2"> the exit criteria. If not, give them instructions to guide them towards completion.</span>
|
|
434
|
+
|
|
435
|
+
<span class="s2"> If their command parameters or results or statements satsify the exit criteria, use the exit_conversation() command</span>
|
|
436
|
+
<span class="s2"> immediately with the detailed takeaways from the output of </span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2">.</span>
|
|
437
|
+
|
|
438
|
+
<span class="s2"> Important note: do not ever use the converse_with_agent() command from within this conversation.</span>
|
|
439
|
+
<span class="s2"> You are already in such a subconversation. Your role now is to judge whether they have completed the </span>
|
|
440
|
+
<span class="s2"> task at each conversation turn and if necessary guide them towards completion.</span>
|
|
441
|
+
|
|
442
|
+
<span class="s2"> Remember the command list format from your system message!</span>
|
|
443
|
+
<span class="s2"> """</span>
|
|
444
|
+
<span class="n">my_sub_log</span><span class="o">.</span><span class="n">add_message</span><span class="p">({</span><span class="s2">"role"</span><span class="p">:</span> <span class="s2">"user"</span><span class="p">,</span> <span class="s2">"content"</span><span class="p">:</span> <span class="n">init_sub_msg</span><span class="p">})</span>
|
|
445
|
+
<span class="n">my_sub_log</span><span class="o">.</span><span class="n">add_message</span><span class="p">({</span><span class="s2">"role"</span><span class="p">:</span> <span class="s2">"assistant"</span><span class="p">,</span> <span class="s2">"content"</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"[</span><span class="si">{</span><span class="n">context</span><span class="o">.</span><span class="n">agent_name</span><span class="si">}</span><span class="s2">]:"</span> <span class="o">+</span> <span class="n">first_message</span><span class="p">})</span>
|
|
446
|
+
|
|
447
|
+
<span class="n">finished_conversation</span> <span class="o">=</span> <span class="kc">False</span>
|
|
448
|
+
<span class="n">my_sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'finished_conversation'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span>
|
|
449
|
+
<span class="n">my_sub_context</span><span class="o">.</span><span class="n">save_context</span><span class="p">()</span>
|
|
450
|
+
|
|
451
|
+
<span class="n">takeaways</span> <span class="o">=</span> <span class="s2">"..."</span>
|
|
452
|
+
|
|
453
|
+
<span class="n">blank_my_replies</span> <span class="o">=</span> <span class="mi">0</span>
|
|
454
|
+
|
|
455
|
+
<span class="k">while</span> <span class="ow">not</span> <span class="n">finished_conversation</span><span class="p">:</span>
|
|
456
|
+
<span class="k">if</span> <span class="s1">'finished_conversation'</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">my_sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">:</span>
|
|
457
|
+
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"Error: 'finished_conversation' key not found in context.data "</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">my_sub_context</span><span class="p">))</span>
|
|
458
|
+
<span class="n">replies</span> <span class="o">=</span> <span class="p">[]</span>
|
|
459
|
+
<span class="k">async</span> <span class="k">with</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">timeout</span><span class="p">(</span><span class="mf">1200.0</span><span class="p">):</span>
|
|
460
|
+
<span class="p">[</span><span class="n">_</span><span class="p">,</span> <span class="n">replies</span><span class="p">]</span> <span class="o">=</span> <span class="k">await</span> <span class="n">send_message_to_agent</span><span class="p">(</span><span class="n">sub_log_id</span><span class="p">,</span> <span class="n">first_message</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="n">context</span><span class="o">.</span><span class="n">user</span><span class="p">)</span>
|
|
461
|
+
<span class="c1">#print replies data for debugging, in magenta</span>
|
|
462
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="s1">'replies:'</span><span class="p">,</span> <span class="s1">'magenta'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
463
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="n">replies</span><span class="p">,</span> <span class="s1">'magenta'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
464
|
+
|
|
465
|
+
<span class="n">task_output</span> <span class="o">=</span> <span class="n">replies</span>
|
|
466
|
+
<span class="k">for</span> <span class="n">result</span> <span class="ow">in</span> <span class="n">replies</span><span class="p">:</span>
|
|
467
|
+
<span class="k">if</span> <span class="s1">'output'</span> <span class="ow">in</span> <span class="n">result</span><span class="p">[</span><span class="s1">'args'</span><span class="p">]:</span>
|
|
468
|
+
<span class="n">task_output</span> <span class="o">=</span> <span class="n">result</span><span class="p">[</span><span class="s1">'args'</span><span class="p">][</span><span class="s1">'output'</span><span class="p">]</span>
|
|
469
|
+
|
|
470
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="n">task_output</span><span class="p">,</span> <span class="s1">'magenta'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
471
|
+
|
|
472
|
+
<span class="k">async</span> <span class="k">with</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">timeout</span><span class="p">(</span><span class="mf">1200.0</span><span class="p">):</span>
|
|
473
|
+
<span class="p">[</span><span class="n">_</span><span class="p">,</span> <span class="n">my_replies</span><span class="p">]</span> <span class="o">=</span> <span class="k">await</span> <span class="n">send_message_to_agent</span><span class="p">(</span><span class="n">my_sub_log_id</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"[</span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2">]: </span><span class="si">{</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">task_output</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="n">context</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="n">my_sub_context</span><span class="p">)</span>
|
|
474
|
+
<span class="c1"># print my_replies data for debugging, in cyan</span>
|
|
475
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="s1">'my_replies:'</span><span class="p">,</span> <span class="s1">'cyan'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
476
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="n">my_replies</span><span class="p">,</span> <span class="s1">'cyan'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
477
|
+
|
|
478
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">my_replies</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
|
479
|
+
<span class="n">blank_my_replies</span> <span class="o">+=</span> <span class="mi">1</span>
|
|
480
|
+
<span class="k">if</span> <span class="n">blank_my_replies</span> <span class="o">></span> <span class="mi">3</span><span class="p">:</span>
|
|
481
|
+
<span class="c1"># print in red for debugging</span>
|
|
482
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"Too many blank replies, exiting conversation"</span><span class="p">)</span>
|
|
483
|
+
<span class="k">break</span>
|
|
484
|
+
|
|
485
|
+
<span class="k">if</span> <span class="n">my_sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'finished_conversation'</span><span class="p">]</span> <span class="o">==</span> <span class="kc">True</span><span class="p">:</span>
|
|
486
|
+
<span class="k">if</span> <span class="s1">'takeaways'</span> <span class="ow">in</span> <span class="n">my_sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">:</span>
|
|
487
|
+
<span class="n">takeaways</span> <span class="o">=</span> <span class="n">my_sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'takeaways'</span><span class="p">]</span>
|
|
488
|
+
<span class="n">finished_conversation</span> <span class="o">=</span> <span class="kc">True</span>
|
|
489
|
+
<span class="k">break</span>
|
|
490
|
+
<span class="k">else</span><span class="p">:</span>
|
|
491
|
+
<span class="n">first_message</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">my_replies</span><span class="p">)</span>
|
|
492
|
+
|
|
493
|
+
<span class="nb">print</span><span class="p">(</span><span class="s2">"End of loop"</span><span class="p">)</span>
|
|
494
|
+
<span class="n">sub_context</span> <span class="o">=</span> <span class="n">ChatContext</span><span class="p">(</span><span class="n">service_manager</span><span class="p">,</span> <span class="n">command_manager</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="n">context</span><span class="o">.</span><span class="n">user</span><span class="p">)</span>
|
|
495
|
+
|
|
496
|
+
<span class="k">await</span> <span class="n">sub_context</span><span class="o">.</span><span class="n">load_context</span><span class="p">(</span><span class="n">sub_log_id</span><span class="p">)</span>
|
|
497
|
+
<span class="k">await</span> <span class="n">my_sub_context</span><span class="o">.</span><span class="n">load_context</span><span class="p">(</span><span class="n">my_sub_log_id</span><span class="p">)</span>
|
|
498
|
+
|
|
499
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="s1">'my_sub_context.data:'</span><span class="p">,</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
500
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="n">my_sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
501
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="s1">'sub_context.data:'</span><span class="p">,</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
502
|
+
<span class="nb">print</span><span class="p">(</span><span class="n">termcolor</span><span class="o">.</span><span class="n">colored</span><span class="p">(</span><span class="n">sub_context</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s1">'blue'</span><span class="p">,</span> <span class="n">attrs</span><span class="o">=</span><span class="p">[</span><span class="s1">'bold'</span><span class="p">]))</span>
|
|
503
|
+
|
|
504
|
+
<span class="n">ret</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"[SYSTEM]: Exited conversation with </span><span class="si">{</span><span class="n">agent_name</span><span class="si">}</span><span class="s2">"</span>
|
|
505
|
+
<span class="k">if</span> <span class="n">takeaways</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">:</span>
|
|
506
|
+
<span class="n">ret</span> <span class="o">+=</span> <span class="s2">" takeaways were:"</span> <span class="o">+</span> <span class="n">takeaways</span>
|
|
507
|
+
|
|
508
|
+
<span class="k">return</span> <span class="p">{</span>
|
|
509
|
+
<span class="n">ret</span>
|
|
510
|
+
<span class="p">}</span></div>
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
<div class="viewcode-block" id="send_to_parent_chat">
|
|
515
|
+
<a class="viewcode-back" href="../../../../source/mindroot.coreplugins.chat.html#mindroot.coreplugins.chat.commands.send_to_parent_chat">[docs]</a>
|
|
516
|
+
<span class="nd">@command</span><span class="p">()</span>
|
|
517
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">send_to_parent_chat</span><span class="p">(</span><span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
|
518
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
519
|
+
<span class="sd"> Send a message to the parent chat session.</span>
|
|
520
|
+
<span class="sd"> This must only be used within a subconversation initiated by converse_with_agent().</span>
|
|
521
|
+
<span class="sd"> It is useful for things like informing the user about task status or requesting that the user provide a file, etc.</span>
|
|
522
|
+
|
|
523
|
+
<span class="sd">Parameters:</span>
|
|
524
|
+
<span class="sd"> message - String. The message to send to the parent chat session.</span>
|
|
525
|
+
<span class="sd"> Return: None</span>
|
|
526
|
+
<span class="sd"> """</span>
|
|
527
|
+
<span class="n">parent_log</span> <span class="o">=</span> <span class="n">context</span><span class="o">.</span><span class="n">data</span><span class="p">[</span><span class="s1">'parent_log_id'</span><span class="p">]</span>
|
|
528
|
+
<span class="n">parent_context</span> <span class="o">=</span> <span class="n">ChatContext</span><span class="p">(</span><span class="n">service_manager</span><span class="p">,</span> <span class="n">command_manager</span><span class="p">)</span>
|
|
529
|
+
<span class="k">await</span> <span class="n">parent_context</span><span class="o">.</span><span class="n">load_context</span><span class="p">(</span><span class="n">parent_log</span><span class="p">)</span>
|
|
530
|
+
<span class="n">chat_log</span><span class="o">.</span><span class="n">add_message</span><span class="p">({</span><span class="s2">"role"</span><span class="p">:</span> <span class="s2">"assistant"</span><span class="p">,</span> <span class="s2">"content"</span><span class="p">:</span> <span class="n">message</span><span class="p">})</span>
|
|
531
|
+
<span class="k">await</span> <span class="n">agent_output</span><span class="p">(</span><span class="s2">"new_message"</span><span class="p">,</span> <span class="p">{</span><span class="s2">"content"</span><span class="p">:</span> <span class="n">message</span><span class="p">,</span> <span class="s2">"agent"</span><span class="p">:</span> <span class="n">context</span><span class="o">.</span><span class="n">agent</span><span class="p">[</span><span class="s1">'name'</span><span class="p">]})</span>
|
|
532
|
+
<span class="n">chat_log</span> <span class="o">=</span> <span class="n">parent_context</span><span class="o">.</span><span class="n">chat_log</span>
|
|
533
|
+
<span class="k">return</span> <span class="kc">None</span></div>
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
</pre></div>
|
|
537
|
+
|
|
538
|
+
</div>
|
|
539
|
+
</div>
|
|
540
|
+
<footer>
|
|
541
|
+
|
|
542
|
+
<hr/>
|
|
543
|
+
|
|
544
|
+
<div role="contentinfo">
|
|
545
|
+
<p>© Copyright 2025, Jason Livesay.</p>
|
|
546
|
+
</div>
|
|
547
|
+
|
|
548
|
+
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
549
|
+
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
550
|
+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
</footer>
|
|
554
|
+
</div>
|
|
555
|
+
</div>
|
|
556
|
+
</section>
|
|
557
|
+
</div>
|
|
558
|
+
<script>
|
|
559
|
+
jQuery(function () {
|
|
560
|
+
SphinxRtdTheme.Navigation.enable(true);
|
|
561
|
+
});
|
|
562
|
+
</script>
|
|
563
|
+
|
|
564
|
+
</body>
|
|
565
|
+
</html>
|