mindroot 9.24.0__py3-none-any.whl → 10.2.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/chat/services.py +2 -2
- mindroot/coreplugins/chat/static/js/chat.js +15 -4
- mindroot/coreplugins/chat/static/js/chatform.js +1 -1
- mindroot/coreplugins/check_list/helpers.py +221 -0
- mindroot/coreplugins/check_list/mod.py +383 -126
- mindroot/coreplugins/check_list/mod.py.backup +378 -0
- mindroot/coreplugins/check_list/mod.py.backup2 +506 -0
- mindroot/coreplugins/check_list/mod.py.backup3 +506 -0
- mindroot/coreplugins/check_list/plugin_info.json +14 -0
- mindroot/docs/_build/doctrees/developer_documentation.doctree +0 -0
- mindroot/docs/_build/doctrees/embed_chat.doctree +0 -0
- mindroot/docs/_build/doctrees/environment.pickle +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.coreplugins.check_list.doctree +0 -0
- mindroot/docs/_build/doctrees/source/mindroot.lib.doctree +0 -0
- mindroot/docs/_build/doctrees/user_documentation.doctree +0 -0
- mindroot/docs/_build/html/_images/apikey.png +0 -0
- mindroot/docs/_build/html/_images/chatwidgetx.png +0 -0
- mindroot/docs/_build/html/_images/disablechatavatar.png +0 -0
- mindroot/docs/_build/html/_images/widgetform.png +0 -0
- mindroot/docs/_build/html/_images/widgetonpage.png +0 -0
- mindroot/docs/_build/html/_modules/index.html +1 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/agent_importer.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/agent_router.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/asset_manager.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/command_router.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_catalog_routes.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_publish_routes.html +284 -91
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_registry_routes.html +284 -91
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_routes.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mod.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/oauth_callback_router.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/persona_handler.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/persona_router.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_manager.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_router.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_routes.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/registry_settings_routes.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/router.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/server_router.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/service_models.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/settings_router.html +1 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/api_key_manager.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/mod.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/router.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/commands.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/mod.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/models.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/router.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/services.html +283 -90
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/widget_manager.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/widget_routes.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/check_list/mod.html +669 -213
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/conversion.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/ledger.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/mod.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/models.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/router.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/storage.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/email_provider.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/imap_handler.html +284 -91
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/mod.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/services.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/smtp_handler.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/test_email_service.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/env_manager/mod.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/env_manager/router.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/events/router.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/agent_ops.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/index_ops.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/plugin_ops.html +284 -91
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/publish.html +281 -88
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/mod.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/models.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/router.html +284 -91
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/utils.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/middleware.html +1 -0
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/mod.html +279 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/router.html +280 -87
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/language_detection.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/middleware.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/mod.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_enhanced.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_l8n_standalone.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_middleware.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/utils.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/catalog_commands.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/catalog_manager.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/dynamic_commands.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/mcp_manager.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/mod.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/oauth_storage.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/server_installer.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/testmcpclient.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/persona/init_persona.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/persona/mod.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/startup/mod.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/credit_integration.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/mod.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/models.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/router.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/storage.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/stripe_integration.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/subscription_manager.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/webhook_handler.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/handlers.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/mod.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/models.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/reporting.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/router.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/storage.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/admin_init.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/email_service.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/mod.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/models.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/password_reset_service.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/role_service.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/router.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/auth/api_key.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/lib/auth/auth.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/buchatlog.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/lib/buchatlog2.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/butemplates.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/chatcontext.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/lib/chatlog.html +440 -91
- mindroot/docs/_build/html/_modules/mindroot/lib/chatlog_optimized.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/json_escape.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/lib/json_str_block/json_str_block.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/parent_templates.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/installation.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/l8n_static_handler.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/loader.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/loader_with_l8n.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/manifest.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/mapping.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins/paths.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/plugins_install.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/commands.html +282 -87
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/hooks.html +280 -85
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/missing.html +282 -87
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/model_preferences_v2.html +1 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/providers/services.html +282 -87
- mindroot/docs/_build/html/_modules/mindroot/lib/providers.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/lib/route_decorators.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/session_files.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/streamcmd.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/lib/templates.html +1 -0
- mindroot/docs/_build/html/_modules/mindroot/lib/token_counter.html +280 -84
- mindroot/docs/_build/html/_modules/mindroot/migrate.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/registry/component_manager.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/registry/data_access.html +285 -89
- mindroot/docs/_build/html/_modules/mindroot/server.html +1 -0
- mindroot/docs/_build/html/_modules/mindroot/server_missing_normal_args.html +282 -86
- mindroot/docs/_build/html/_modules/mindroot/server_prev.html +282 -86
- mindroot/docs/_build/html/_sources/developer_documentation.rst.txt +1 -1
- mindroot/docs/_build/html/_sources/embed_chat.rst.txt +54 -0
- mindroot/docs/_build/html/_sources/user_documentation.rst.txt +6 -1
- mindroot/docs/_build/html/chat_with_assistant.html +1 -0
- mindroot/docs/_build/html/developer_documentation.html +5 -4
- mindroot/docs/_build/html/embed_chat.html +381 -0
- mindroot/docs/_build/html/genindex.html +9 -2
- mindroot/docs/_build/html/getting_started.html +1 -0
- mindroot/docs/_build/html/index.html +2 -0
- mindroot/docs/_build/html/install_plugins_with_tools.html +1 -0
- mindroot/docs/_build/html/installation.html +1 -0
- mindroot/docs/_build/html/llm_api_key.html +1 -0
- mindroot/docs/_build/html/llm_plugin_installation.html +1 -0
- mindroot/docs/_build/html/objects.inv +0 -0
- mindroot/docs/_build/html/programming_task.html +4 -3
- mindroot/docs/_build/html/py-modindex.html +2 -1
- mindroot/docs/_build/html/search.html +1 -0
- mindroot/docs/_build/html/searchindex.js +1 -1
- mindroot/docs/_build/html/source/ahp.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.admin.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.api_keys.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.chat.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.chat_avatar.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.check_list.html +76 -45
- mindroot/docs/_build/html/source/mindroot.coreplugins.credits.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.email.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.env_manager.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.events.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.html +3 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.index.handlers.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.index.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.jwt_auth.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.l8n.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.mcp_.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.persona.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.startup.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.subscriptions.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.usage.html +1 -0
- mindroot/docs/_build/html/source/mindroot.coreplugins.user_service.html +1 -0
- mindroot/docs/_build/html/source/mindroot.html +2 -0
- mindroot/docs/_build/html/source/mindroot.lib.auth.html +1 -0
- mindroot/docs/_build/html/source/mindroot.lib.html +34 -3
- mindroot/docs/_build/html/source/mindroot.lib.json_str_block.html +1 -0
- mindroot/docs/_build/html/source/mindroot.lib.plugins.html +1 -0
- mindroot/docs/_build/html/source/mindroot.lib.providers.backup.html +1 -0
- mindroot/docs/_build/html/source/mindroot.lib.providers.html +1 -0
- mindroot/docs/_build/html/source/mindroot.registry.html +1 -0
- mindroot/docs/_build/html/source/modules.html +1 -0
- mindroot/docs/_build/html/source/mr_agent_expert_instr.html +1 -0
- mindroot/docs/_build/html/starting_mindroot.html +1 -0
- mindroot/docs/_build/html/user_documentation.html +9 -0
- mindroot/docs/apikey.png +0 -0
- mindroot/docs/chatwidget1.png +0 -0
- mindroot/docs/chatwidgetx.png +0 -0
- mindroot/docs/disablechatavatar.png +0 -0
- mindroot/docs/embed_chat.rst +54 -0
- mindroot/docs/user_documentation.rst +6 -1
- mindroot/docs/widgetform.png +0 -0
- mindroot/docs/widgetonpage.png +0 -0
- mindroot/lib/buchatlog3.py +592 -0
- mindroot/lib/chatlog.py +155 -5
- {mindroot-9.24.0.dist-info → mindroot-10.2.0.dist-info}/METADATA +1 -1
- {mindroot-9.24.0.dist-info → mindroot-10.2.0.dist-info}/RECORD +220 -248
- mindroot/docs/_build/html/.buildinfo.bak +0 -4
- mindroot/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +0 -123
- mindroot/docs/_build/html/_static/css/badge_only.css +0 -1
- 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 +0 -2671
- 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 +0 -4
- 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 +0 -2
- mindroot/docs/_build/html/_static/js/badge_only.js +0 -1
- mindroot/docs/_build/html/_static/js/theme.js +0 -1
- mindroot/docs/_build/html/_static/js/versions.js +0 -228
- {mindroot-9.24.0.dist-info → mindroot-10.2.0.dist-info}/WHEEL +0 -0
- {mindroot-9.24.0.dist-info → mindroot-10.2.0.dist-info}/entry_points.txt +0 -0
- {mindroot-9.24.0.dist-info → mindroot-10.2.0.dist-info}/licenses/LICENSE +0 -0
- {mindroot-9.24.0.dist-info → mindroot-10.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,71 +1,259 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html class="no-js" lang="en" data-content_root="../../../">
|
|
3
|
+
<head><meta charset="utf-8"/>
|
|
4
|
+
<meta name="viewport" content="width=device-width,initial-scale=1"/>
|
|
5
|
+
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="../../../genindex.html" /><link rel="search" title="Search" href="../../../search.html" />
|
|
6
|
+
|
|
7
|
+
<!-- Generated with Sphinx 8.2.3 and Furo 2025.07.19 -->
|
|
8
|
+
<title>mindroot.lib.chatlog - MindRoot 9.10.0 documentation</title>
|
|
9
|
+
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=d111a655" />
|
|
10
|
+
<link rel="stylesheet" type="text/css" href="../../../_static/styles/furo.css?v=25af2a20" />
|
|
11
|
+
<link rel="stylesheet" type="text/css" href="../../../_static/styles/furo-extensions.css?v=8dab3a3b" />
|
|
12
|
+
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css?v=f4b9d74b" />
|
|
13
|
+
|
|
14
|
+
|
|
1
15
|
|
|
2
16
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
17
|
+
<style>
|
|
18
|
+
body {
|
|
19
|
+
--color-code-background: #f2f2f2;
|
|
20
|
+
--color-code-foreground: #1e1e1e;
|
|
21
|
+
--color-brand-primary: #007acc;
|
|
22
|
+
--color-brand-content: #007acc;
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
@media not print {
|
|
26
|
+
body[data-theme="dark"] {
|
|
27
|
+
--color-code-background: #2b2b2b;
|
|
28
|
+
--color-code-foreground: #f8f8f2;
|
|
29
|
+
--color-brand-primary: #ff7b72;
|
|
30
|
+
--color-brand-content: #ff7b72;
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
@media (prefers-color-scheme: dark) {
|
|
34
|
+
body:not([data-theme="light"]) {
|
|
35
|
+
--color-code-background: #2b2b2b;
|
|
36
|
+
--color-code-foreground: #f8f8f2;
|
|
37
|
+
--color-brand-primary: #ff7b72;
|
|
38
|
+
--color-brand-content: #ff7b72;
|
|
39
|
+
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</style></head>
|
|
44
|
+
<body>
|
|
45
|
+
|
|
46
|
+
<script>
|
|
47
|
+
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
|
|
48
|
+
</script>
|
|
49
|
+
|
|
11
50
|
|
|
51
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
|
|
52
|
+
<symbol id="svg-toc" viewBox="0 0 24 24">
|
|
53
|
+
<title>Contents</title>
|
|
54
|
+
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
|
|
55
|
+
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
|
|
56
|
+
</svg>
|
|
57
|
+
</symbol>
|
|
58
|
+
<symbol id="svg-menu" viewBox="0 0 24 24">
|
|
59
|
+
<title>Menu</title>
|
|
60
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
61
|
+
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
|
|
62
|
+
<line x1="3" y1="12" x2="21" y2="12"></line>
|
|
63
|
+
<line x1="3" y1="6" x2="21" y2="6"></line>
|
|
64
|
+
<line x1="3" y1="18" x2="21" y2="18"></line>
|
|
65
|
+
</svg>
|
|
66
|
+
</symbol>
|
|
67
|
+
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
|
|
68
|
+
<title>Expand</title>
|
|
69
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
70
|
+
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
|
|
71
|
+
<polyline points="9 18 15 12 9 6"></polyline>
|
|
72
|
+
</svg>
|
|
73
|
+
</symbol>
|
|
74
|
+
<symbol id="svg-sun" viewBox="0 0 24 24">
|
|
75
|
+
<title>Light mode</title>
|
|
76
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
77
|
+
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
|
|
78
|
+
<circle cx="12" cy="12" r="5"></circle>
|
|
79
|
+
<line x1="12" y1="1" x2="12" y2="3"></line>
|
|
80
|
+
<line x1="12" y1="21" x2="12" y2="23"></line>
|
|
81
|
+
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
|
82
|
+
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
|
83
|
+
<line x1="1" y1="12" x2="3" y2="12"></line>
|
|
84
|
+
<line x1="21" y1="12" x2="23" y2="12"></line>
|
|
85
|
+
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
|
86
|
+
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
|
87
|
+
</svg>
|
|
88
|
+
</symbol>
|
|
89
|
+
<symbol id="svg-moon" viewBox="0 0 24 24">
|
|
90
|
+
<title>Dark mode</title>
|
|
91
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
92
|
+
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
|
|
93
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
|
94
|
+
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
|
|
95
|
+
</svg>
|
|
96
|
+
</symbol>
|
|
97
|
+
<symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
|
|
98
|
+
<title>Auto light/dark, in light mode</title>
|
|
99
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
100
|
+
stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
|
|
101
|
+
class="icon-custom-derived-from-feather-sun-and-tabler-moon">
|
|
102
|
+
<path style="opacity: 50%" d="M 5.411 14.504 C 5.471 14.504 5.532 14.504 5.591 14.504 C 3.639 16.319 4.383 19.569 6.931 20.352 C 7.693 20.586 8.512 20.551 9.25 20.252 C 8.023 23.207 4.056 23.725 2.11 21.184 C 0.166 18.642 1.702 14.949 4.874 14.536 C 5.051 14.512 5.231 14.5 5.411 14.5 L 5.411 14.504 Z"/>
|
|
103
|
+
<line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/>
|
|
104
|
+
<line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/>
|
|
105
|
+
<line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/>
|
|
106
|
+
<line x1="19" y1="14.05" x2="20.414" y2="15.464"/>
|
|
107
|
+
<line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/>
|
|
108
|
+
<line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/>
|
|
109
|
+
<line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/>
|
|
110
|
+
<line x1="19" y1="5.05" x2="20.414" y2="3.636"/>
|
|
111
|
+
<circle cx="14.5" cy="9.55" r="3.6"/>
|
|
112
|
+
</svg>
|
|
113
|
+
</symbol>
|
|
114
|
+
<symbol id="svg-moon-with-sun" viewBox="0 0 24 24">
|
|
115
|
+
<title>Auto light/dark, in dark mode</title>
|
|
116
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
117
|
+
stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
|
|
118
|
+
class="icon-custom-derived-from-feather-sun-and-tabler-moon">
|
|
119
|
+
<path d="M 8.282 7.007 C 8.385 7.007 8.494 7.007 8.595 7.007 C 5.18 10.184 6.481 15.869 10.942 17.24 C 12.275 17.648 13.706 17.589 15 17.066 C 12.851 22.236 5.91 23.143 2.505 18.696 C -0.897 14.249 1.791 7.786 7.342 7.063 C 7.652 7.021 7.965 7 8.282 7 L 8.282 7.007 Z"/>
|
|
120
|
+
<line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/>
|
|
121
|
+
<line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/>
|
|
122
|
+
<line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/>
|
|
123
|
+
<line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/>
|
|
124
|
+
<line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/>
|
|
125
|
+
<line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/>
|
|
126
|
+
<line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/>
|
|
127
|
+
<line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/>
|
|
128
|
+
<circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/>
|
|
129
|
+
</svg>
|
|
130
|
+
</symbol>
|
|
131
|
+
<symbol id="svg-pencil" viewBox="0 0 24 24">
|
|
132
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
133
|
+
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code">
|
|
134
|
+
<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
|
|
135
|
+
<path d="M13.5 6.5l4 4" />
|
|
136
|
+
<path d="M20 21l2 -2l-2 -2" />
|
|
137
|
+
<path d="M17 17l-2 2l2 2" />
|
|
138
|
+
</svg>
|
|
139
|
+
</symbol>
|
|
140
|
+
<symbol id="svg-eye" viewBox="0 0 24 24">
|
|
141
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
142
|
+
stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code">
|
|
143
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
|
144
|
+
<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
|
|
145
|
+
<path
|
|
146
|
+
d="M11.11 17.958c-3.209 -.307 -5.91 -2.293 -8.11 -5.958c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6c-.21 .352 -.427 .688 -.647 1.008" />
|
|
147
|
+
<path d="M20 21l2 -2l-2 -2" />
|
|
148
|
+
<path d="M17 17l-2 2l2 2" />
|
|
149
|
+
</svg>
|
|
150
|
+
</symbol>
|
|
151
|
+
</svg>
|
|
152
|
+
|
|
153
|
+
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
|
|
154
|
+
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
|
|
155
|
+
<label class="overlay sidebar-overlay" for="__navigation">
|
|
156
|
+
<div class="visually-hidden">Hide navigation sidebar</div>
|
|
157
|
+
</label>
|
|
158
|
+
<label class="overlay toc-overlay" for="__toc">
|
|
159
|
+
<div class="visually-hidden">Hide table of contents sidebar</div>
|
|
160
|
+
</label>
|
|
161
|
+
|
|
162
|
+
<a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a>
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
<div class="page">
|
|
167
|
+
<header class="mobile-header">
|
|
168
|
+
<div class="header-left">
|
|
169
|
+
<label class="nav-overlay-icon" for="__navigation">
|
|
170
|
+
<div class="visually-hidden">Toggle site navigation sidebar</div>
|
|
171
|
+
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
|
|
172
|
+
</label>
|
|
173
|
+
</div>
|
|
174
|
+
<div class="header-center">
|
|
175
|
+
<a href="../../../index.html"><div class="brand">MindRoot 9.10.0 documentation</div></a>
|
|
176
|
+
</div>
|
|
177
|
+
<div class="header-right">
|
|
178
|
+
<div class="theme-toggle-container theme-toggle-header">
|
|
179
|
+
<button class="theme-toggle">
|
|
180
|
+
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
|
|
181
|
+
<svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
|
|
182
|
+
<svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
|
|
183
|
+
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
|
|
184
|
+
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
|
|
185
|
+
</button>
|
|
186
|
+
</div>
|
|
187
|
+
<label class="toc-overlay-icon toc-header-icon no-toc" for="__toc">
|
|
188
|
+
<div class="visually-hidden">Toggle table of contents sidebar</div>
|
|
189
|
+
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
|
|
190
|
+
</label>
|
|
191
|
+
</div>
|
|
192
|
+
</header>
|
|
193
|
+
<aside class="sidebar-drawer">
|
|
194
|
+
<div class="sidebar-container">
|
|
195
|
+
|
|
196
|
+
<div class="sidebar-sticky"><a class="sidebar-brand" href="../../../index.html">
|
|
12
197
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
198
|
+
|
|
199
|
+
</a><form class="sidebar-search-container" method="get" action="../../../search.html" role="search">
|
|
200
|
+
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
|
201
|
+
<input type="hidden" name="check_keywords" value="yes">
|
|
202
|
+
<input type="hidden" name="area" value="default">
|
|
203
|
+
</form>
|
|
204
|
+
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
|
|
205
|
+
<p class="caption" role="heading"><span class="caption-text">User Documentation:</span></p>
|
|
206
|
+
<ul>
|
|
207
|
+
<li class="toctree-l1 has-children"><a class="reference internal" href="../../../user_documentation.html">User Documentation</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of User Documentation</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
|
|
208
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../installation.html">Installation</a></li>
|
|
209
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../starting_mindroot.html">Starting MindRoot</a></li>
|
|
210
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../llm_plugin_installation.html">LLM Plugin Installation</a></li>
|
|
211
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../llm_api_key.html">LLM API Key</a></li>
|
|
212
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../chat_with_assistant.html">Chat with Assistant</a></li>
|
|
213
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../install_plugins_with_tools.html">Install Plugins with Tools</a></li>
|
|
214
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../programming_task.html">Give Assistant a Programming Task</a></li>
|
|
215
|
+
<li class="toctree-l2"><a class="reference internal" href="../../../embed_chat.html">Embed Agent Chat on Your Website</a></li>
|
|
216
|
+
</ul>
|
|
217
|
+
</li>
|
|
218
|
+
</ul>
|
|
219
|
+
<p class="caption" role="heading"><span class="caption-text">Developer Documentation:</span></p>
|
|
220
|
+
<ul>
|
|
221
|
+
<li class="toctree-l1"><a class="reference internal" href="../../../developer_documentation.html">Developer Documentation</a></li>
|
|
222
|
+
</ul>
|
|
28
223
|
|
|
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
224
|
</div>
|
|
41
|
-
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
42
|
-
<!-- Local TOC -->
|
|
43
|
-
<div class="local-toc"></div>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
|
-
</nav>
|
|
47
|
-
|
|
48
|
-
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #343131" >
|
|
49
|
-
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
50
|
-
<a href="../../../index.html">MindRoot</a>
|
|
51
|
-
</nav>
|
|
52
|
-
|
|
53
|
-
<div class="wy-nav-content">
|
|
54
|
-
<div class="rst-content">
|
|
55
|
-
<div role="navigation" aria-label="Page navigation">
|
|
56
|
-
<ul class="wy-breadcrumbs">
|
|
57
|
-
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|
58
|
-
<li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
|
|
59
|
-
<li class="breadcrumb-item active">mindroot.lib.chatlog</li>
|
|
60
|
-
<li class="wy-breadcrumbs-aside">
|
|
61
|
-
</li>
|
|
62
|
-
</ul>
|
|
63
|
-
<hr/>
|
|
64
225
|
</div>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
226
|
+
|
|
227
|
+
</div>
|
|
228
|
+
|
|
229
|
+
</div>
|
|
230
|
+
</aside>
|
|
231
|
+
<div class="main">
|
|
232
|
+
<div class="content">
|
|
233
|
+
<div class="article-container">
|
|
234
|
+
<a href="#" class="back-to-top muted-link">
|
|
235
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
236
|
+
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
|
|
237
|
+
</svg>
|
|
238
|
+
<span>Back to top</span>
|
|
239
|
+
</a>
|
|
240
|
+
<div class="content-icon-container">
|
|
241
|
+
<div class="theme-toggle-container theme-toggle-content">
|
|
242
|
+
<button class="theme-toggle">
|
|
243
|
+
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
|
|
244
|
+
<svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
|
|
245
|
+
<svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
|
|
246
|
+
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
|
|
247
|
+
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
|
|
248
|
+
</button>
|
|
249
|
+
</div>
|
|
250
|
+
<label class="toc-overlay-icon toc-content-icon no-toc" for="__toc">
|
|
251
|
+
<div class="visually-hidden">Toggle table of contents sidebar</div>
|
|
252
|
+
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
|
|
253
|
+
</label>
|
|
254
|
+
</div>
|
|
255
|
+
<article role="main" id="furo-main-content">
|
|
256
|
+
<h1>Source code for mindroot.lib.chatlog</h1><div class="highlight"><pre>
|
|
69
257
|
<span></span><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
|
|
70
258
|
<span class="kn">import</span><span class="w"> </span><span class="nn">json</span>
|
|
71
259
|
<span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span>
|
|
@@ -381,7 +569,7 @@
|
|
|
381
569
|
<a class="viewcode-back" href="../../../source/mindroot.lib.html#mindroot.lib.chatlog.extract_delegate_task_log_ids">[docs]</a>
|
|
382
570
|
<span class="k">def</span><span class="w"> </span><span class="nf">extract_delegate_task_log_ids</span><span class="p">(</span><span class="n">messages</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">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
|
|
383
571
|
<span class="w"> </span><span class="sd">"""</span>
|
|
384
|
-
<span class="sd"> Extract log IDs from delegate_task commands in messages.</span>
|
|
572
|
+
<span class="sd"> Extract log IDs from delegate_task and delegate_subtask commands in messages.</span>
|
|
385
573
|
<span class="sd"> </span>
|
|
386
574
|
<span class="sd"> Args:</span>
|
|
387
575
|
<span class="sd"> messages: List of chat messages</span>
|
|
@@ -412,10 +600,15 @@
|
|
|
412
600
|
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">cmd</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
|
|
413
601
|
<span class="k">if</span> <span class="n">key</span> <span class="o">==</span> <span class="s1">'delegate_task'</span> <span class="ow">and</span> <span class="s1">'log_id'</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
|
|
414
602
|
<span class="n">log_ids</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">[</span><span class="s1">'log_id'</span><span class="p">])</span>
|
|
603
|
+
<span class="k">elif</span> <span class="n">key</span> <span class="o">==</span> <span class="s1">'delegate_subtask'</span> <span class="ow">and</span> <span class="s1">'log_id'</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
|
|
604
|
+
<span class="n">log_ids</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">[</span><span class="s1">'log_id'</span><span class="p">])</span>
|
|
415
605
|
<span class="k">except</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="ne">TypeError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">):</span>
|
|
416
606
|
<span class="c1"># If not JSON, try regex to find log_ids in delegate_task commands</span>
|
|
417
607
|
<span class="n">matches</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">'"delegate_task"\s*:\s*{\s*"log_id"\s*:\s*"([^"]+)"'</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
|
|
418
608
|
<span class="n">log_ids</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">matches</span><span class="p">)</span>
|
|
609
|
+
<span class="c1"># Also check for delegate_subtask commands</span>
|
|
610
|
+
<span class="n">matches</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="sa">r</span><span class="s1">'"delegate_subtask"\s*:\s*{\s*"log_id"\s*:\s*"([^"]+)"'</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
|
|
611
|
+
<span class="n">log_ids</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">matches</span><span class="p">)</span>
|
|
419
612
|
|
|
420
613
|
<span class="k">return</span> <span class="n">log_ids</span></div>
|
|
421
614
|
|
|
@@ -502,9 +695,124 @@
|
|
|
502
695
|
<span class="k">await</span> <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">token_counts</span><span class="p">))</span></div>
|
|
503
696
|
|
|
504
697
|
|
|
698
|
+
<div class="viewcode-block" id="build_token_hierarchy">
|
|
699
|
+
<a class="viewcode-back" href="../../../source/mindroot.lib.html#mindroot.lib.chatlog.build_token_hierarchy">[docs]</a>
|
|
700
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">build_token_hierarchy</span><span class="p">(</span><span class="n">log_id</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">user</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">visited</span><span class="p">:</span> <span class="nb">set</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Dict</span><span class="p">:</span>
|
|
701
|
+
<span class="w"> </span><span class="sd">"""</span>
|
|
702
|
+
<span class="sd"> Build a hierarchical token count structure for a log and its children.</span>
|
|
703
|
+
<span class="sd"> </span>
|
|
704
|
+
<span class="sd"> Args:</span>
|
|
705
|
+
<span class="sd"> log_id: The log ID to build hierarchy for</span>
|
|
706
|
+
<span class="sd"> user: User for the log</span>
|
|
707
|
+
<span class="sd"> visited: Set of already visited log IDs to prevent infinite recursion</span>
|
|
708
|
+
<span class="sd"> </span>
|
|
709
|
+
<span class="sd"> Returns:</span>
|
|
710
|
+
<span class="sd"> Dictionary with hierarchical structure containing:</span>
|
|
711
|
+
<span class="sd"> - log_id: The log ID</span>
|
|
712
|
+
<span class="sd"> - individual_counts: Token counts for this log only</span>
|
|
713
|
+
<span class="sd"> - cumulative_counts: Token counts including all children</span>
|
|
714
|
+
<span class="sd"> - children: List of child hierarchies</span>
|
|
715
|
+
<span class="sd"> """</span>
|
|
716
|
+
<span class="k">if</span> <span class="n">visited</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
717
|
+
<span class="n">visited</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
|
|
718
|
+
|
|
719
|
+
<span class="k">if</span> <span class="n">log_id</span> <span class="ow">in</span> <span class="n">visited</span><span class="p">:</span>
|
|
720
|
+
<span class="k">return</span> <span class="kc">None</span> <span class="c1"># Prevent infinite recursion</span>
|
|
721
|
+
|
|
722
|
+
<span class="n">visited</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">log_id</span><span class="p">)</span>
|
|
723
|
+
|
|
724
|
+
<span class="c1"># Find the chatlog file</span>
|
|
725
|
+
<span class="n">chatlog_path</span> <span class="o">=</span> <span class="k">await</span> <span class="n">find_chatlog_file</span><span class="p">(</span><span class="n">log_id</span><span class="p">)</span>
|
|
726
|
+
<span class="k">if</span> <span class="ow">not</span> <span class="n">chatlog_path</span><span class="p">:</span>
|
|
727
|
+
<span class="k">return</span> <span class="kc">None</span>
|
|
728
|
+
|
|
729
|
+
<span class="c1"># Load the chat log</span>
|
|
730
|
+
<span class="k">async</span> <span class="k">with</span> <span class="n">aiofiles</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">chatlog_path</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>
|
|
731
|
+
<span class="n">content</span> <span class="o">=</span> <span class="k">await</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
|
|
732
|
+
<span class="n">log_data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
|
|
733
|
+
|
|
734
|
+
<span class="c1"># Check if we have cached individual counts for this specific session</span>
|
|
735
|
+
<span class="n">cached_individual</span> <span class="o">=</span> <span class="k">await</span> <span class="n">get_cached_token_counts</span><span class="p">(</span><span class="n">log_id</span><span class="p">,</span> <span class="n">chatlog_path</span><span class="p">)</span>
|
|
736
|
+
<span class="k">if</span> <span class="n">cached_individual</span> <span class="ow">and</span> <span class="s1">'input_tokens_sequence'</span> <span class="ow">in</span> <span class="n">cached_individual</span><span class="p">:</span>
|
|
737
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Using cached individual token counts for session </span><span class="si">{</span><span class="n">log_id</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
738
|
+
<span class="n">individual_counts</span> <span class="o">=</span> <span class="p">{</span>
|
|
739
|
+
<span class="s1">'input_tokens_sequence'</span><span class="p">:</span> <span class="n">cached_individual</span><span class="p">[</span><span class="s1">'input_tokens_sequence'</span><span class="p">],</span>
|
|
740
|
+
<span class="s1">'output_tokens_sequence'</span><span class="p">:</span> <span class="n">cached_individual</span><span class="p">[</span><span class="s1">'output_tokens_sequence'</span><span class="p">],</span>
|
|
741
|
+
<span class="s1">'input_tokens_total'</span><span class="p">:</span> <span class="n">cached_individual</span><span class="p">[</span><span class="s1">'input_tokens_total'</span><span class="p">]</span>
|
|
742
|
+
<span class="p">}</span>
|
|
743
|
+
<span class="k">else</span><span class="p">:</span>
|
|
744
|
+
<span class="c1"># Calculate individual counts for this session</span>
|
|
745
|
+
<span class="k">if</span> <span class="n">user</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
746
|
+
<span class="k">try</span><span class="p">:</span>
|
|
747
|
+
<span class="n">path_parts</span> <span class="o">=</span> <span class="n">chatlog_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="p">)</span>
|
|
748
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">4</span> <span class="ow">and</span> <span class="n">path_parts</span><span class="p">[</span><span class="o">-</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'chat'</span><span class="p">:</span>
|
|
749
|
+
<span class="n">user</span> <span class="o">=</span> <span class="n">path_parts</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span>
|
|
750
|
+
<span class="k">else</span><span class="p">:</span>
|
|
751
|
+
<span class="n">user</span> <span class="o">=</span> <span class="s2">"system"</span>
|
|
752
|
+
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
|
|
753
|
+
<span class="n">user</span> <span class="o">=</span> <span class="s2">"system"</span>
|
|
754
|
+
|
|
755
|
+
<span class="n">temp_log</span> <span class="o">=</span> <span class="n">ChatLog</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> <span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">,</span> <span class="n">agent</span><span class="o">=</span><span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'agent'</span><span class="p">,</span> <span class="s1">'unknown'</span><span class="p">))</span>
|
|
756
|
+
<span class="n">temp_log</span><span class="o">.</span><span class="n">messages</span> <span class="o">=</span> <span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'messages'</span><span class="p">,</span> <span class="p">[])</span>
|
|
757
|
+
|
|
758
|
+
<span class="c1"># Count tokens for this log only</span>
|
|
759
|
+
<span class="n">individual_counts</span> <span class="o">=</span> <span class="n">temp_log</span><span class="o">.</span><span class="n">count_tokens</span><span class="p">()</span>
|
|
760
|
+
|
|
761
|
+
<span class="c1"># Cache the individual session counts</span>
|
|
762
|
+
<span class="n">individual_cache_data</span> <span class="o">=</span> <span class="p">{</span>
|
|
763
|
+
<span class="s1">'input_tokens_sequence'</span><span class="p">:</span> <span class="n">individual_counts</span><span class="p">[</span><span class="s1">'input_tokens_sequence'</span><span class="p">],</span>
|
|
764
|
+
<span class="s1">'output_tokens_sequence'</span><span class="p">:</span> <span class="n">individual_counts</span><span class="p">[</span><span class="s1">'output_tokens_sequence'</span><span class="p">],</span>
|
|
765
|
+
<span class="s1">'input_tokens_total'</span><span class="p">:</span> <span class="n">individual_counts</span><span class="p">[</span><span class="s1">'input_tokens_total'</span><span class="p">]</span>
|
|
766
|
+
<span class="p">}</span>
|
|
767
|
+
<span class="k">await</span> <span class="n">save_token_counts_to_cache</span><span class="p">(</span><span class="n">log_id</span><span class="p">,</span> <span class="n">individual_cache_data</span><span class="p">)</span>
|
|
768
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cached individual token counts for session </span><span class="si">{</span><span class="n">log_id</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
769
|
+
|
|
770
|
+
<span class="c1"># Find all child log IDs</span>
|
|
771
|
+
<span class="k">if</span> <span class="n">user</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
772
|
+
<span class="k">try</span><span class="p">:</span>
|
|
773
|
+
<span class="n">path_parts</span> <span class="o">=</span> <span class="n">chatlog_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="p">)</span>
|
|
774
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">4</span> <span class="ow">and</span> <span class="n">path_parts</span><span class="p">[</span><span class="o">-</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'chat'</span><span class="p">:</span>
|
|
775
|
+
<span class="n">user</span> <span class="o">=</span> <span class="n">path_parts</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span>
|
|
776
|
+
<span class="k">else</span><span class="p">:</span>
|
|
777
|
+
<span class="n">user</span> <span class="o">=</span> <span class="s2">"system"</span>
|
|
778
|
+
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
|
|
779
|
+
<span class="n">user</span> <span class="o">=</span> <span class="s2">"system"</span>
|
|
780
|
+
|
|
781
|
+
<span class="n">temp_log</span> <span class="o">=</span> <span class="n">ChatLog</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> <span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">,</span> <span class="n">agent</span><span class="o">=</span><span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'agent'</span><span class="p">,</span> <span class="s1">'unknown'</span><span class="p">))</span>
|
|
782
|
+
<span class="n">temp_log</span><span class="o">.</span><span class="n">messages</span> <span class="o">=</span> <span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'messages'</span><span class="p">,</span> <span class="p">[])</span>
|
|
783
|
+
<span class="n">delegated_log_ids</span> <span class="o">=</span> <span class="n">extract_delegate_task_log_ids</span><span class="p">(</span><span class="n">temp_log</span><span class="o">.</span><span class="n">messages</span><span class="p">)</span>
|
|
784
|
+
<span class="n">child_logs_by_parent</span> <span class="o">=</span> <span class="k">await</span> <span class="n">find_child_logs_by_parent_id</span><span class="p">(</span><span class="n">log_id</span><span class="p">)</span>
|
|
785
|
+
<span class="n">all_child_log_ids</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">delegated_log_ids</span><span class="p">)</span> <span class="o">|</span> <span class="nb">set</span><span class="p">(</span><span class="n">child_logs_by_parent</span><span class="p">))</span>
|
|
786
|
+
|
|
787
|
+
<span class="c1"># Build child hierarchies</span>
|
|
788
|
+
<span class="n">children</span> <span class="o">=</span> <span class="p">[]</span>
|
|
789
|
+
<span class="n">cumulative_counts</span> <span class="o">=</span> <span class="p">{</span>
|
|
790
|
+
<span class="s1">'input_tokens_sequence'</span><span class="p">:</span> <span class="n">individual_counts</span><span class="p">[</span><span class="s1">'input_tokens_sequence'</span><span class="p">],</span>
|
|
791
|
+
<span class="s1">'output_tokens_sequence'</span><span class="p">:</span> <span class="n">individual_counts</span><span class="p">[</span><span class="s1">'output_tokens_sequence'</span><span class="p">],</span>
|
|
792
|
+
<span class="s1">'input_tokens_total'</span><span class="p">:</span> <span class="n">individual_counts</span><span class="p">[</span><span class="s1">'input_tokens_total'</span><span class="p">]</span>
|
|
793
|
+
<span class="p">}</span>
|
|
794
|
+
|
|
795
|
+
<span class="k">for</span> <span class="n">child_id</span> <span class="ow">in</span> <span class="n">all_child_log_ids</span><span class="p">:</span>
|
|
796
|
+
<span class="n">child_hierarchy</span> <span class="o">=</span> <span class="k">await</span> <span class="n">build_token_hierarchy</span><span class="p">(</span><span class="n">child_id</span><span class="p">,</span> <span class="n">user</span><span class="p">,</span> <span class="n">visited</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
|
|
797
|
+
<span class="k">if</span> <span class="n">child_hierarchy</span><span class="p">:</span>
|
|
798
|
+
<span class="n">children</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_hierarchy</span><span class="p">)</span>
|
|
799
|
+
<span class="c1"># Add child's cumulative counts to our cumulative counts</span>
|
|
800
|
+
<span class="n">cumulative_counts</span><span class="p">[</span><span class="s1">'input_tokens_sequence'</span><span class="p">]</span> <span class="o">+=</span> <span class="n">child_hierarchy</span><span class="p">[</span><span class="s1">'cumulative_counts'</span><span class="p">][</span><span class="s1">'input_tokens_sequence'</span><span class="p">]</span>
|
|
801
|
+
<span class="n">cumulative_counts</span><span class="p">[</span><span class="s1">'output_tokens_sequence'</span><span class="p">]</span> <span class="o">+=</span> <span class="n">child_hierarchy</span><span class="p">[</span><span class="s1">'cumulative_counts'</span><span class="p">][</span><span class="s1">'output_tokens_sequence'</span><span class="p">]</span>
|
|
802
|
+
<span class="n">cumulative_counts</span><span class="p">[</span><span class="s1">'input_tokens_total'</span><span class="p">]</span> <span class="o">+=</span> <span class="n">child_hierarchy</span><span class="p">[</span><span class="s1">'cumulative_counts'</span><span class="p">][</span><span class="s1">'input_tokens_total'</span><span class="p">]</span>
|
|
803
|
+
|
|
804
|
+
<span class="k">return</span> <span class="p">{</span>
|
|
805
|
+
<span class="s1">'log_id'</span><span class="p">:</span> <span class="n">log_id</span><span class="p">,</span>
|
|
806
|
+
<span class="s1">'agent'</span><span class="p">:</span> <span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'agent'</span><span class="p">,</span> <span class="s1">'unknown'</span><span class="p">),</span>
|
|
807
|
+
<span class="s1">'individual_counts'</span><span class="p">:</span> <span class="n">individual_counts</span><span class="p">,</span>
|
|
808
|
+
<span class="s1">'cumulative_counts'</span><span class="p">:</span> <span class="n">cumulative_counts</span><span class="p">,</span>
|
|
809
|
+
<span class="s1">'children'</span><span class="p">:</span> <span class="n">children</span>
|
|
810
|
+
<span class="p">}</span></div>
|
|
811
|
+
|
|
812
|
+
|
|
505
813
|
<div class="viewcode-block" id="count_tokens_for_log_id">
|
|
506
814
|
<a class="viewcode-back" href="../../../source/mindroot.lib.html#mindroot.lib.chatlog.count_tokens_for_log_id">[docs]</a>
|
|
507
|
-
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">count_tokens_for_log_id</span><span class="p">(</span><span class="n">log_id</span><span class="p">:</span> <span class="nb">str</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="nb">int</span><span class="p">]:</span>
|
|
815
|
+
<span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">count_tokens_for_log_id</span><span class="p">(</span><span class="n">log_id</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">user</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">hierarchical</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</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="nb">int</span><span class="p">]:</span>
|
|
508
816
|
<span class="w"> </span><span class="sd">"""</span>
|
|
509
817
|
<span class="sd"> Count tokens for a chat log identified by log_id, including any delegated tasks.</span>
|
|
510
818
|
<span class="sd"> </span>
|
|
@@ -512,13 +820,32 @@
|
|
|
512
820
|
<span class="sd"> log_id: The log ID to count tokens for</span>
|
|
513
821
|
<span class="sd"> </span>
|
|
514
822
|
<span class="sd"> Returns:</span>
|
|
515
|
-
<span class="sd"> Dictionary with token counts or None if log not found
|
|
823
|
+
<span class="sd"> Dictionary with token counts or None if log not found.</span>
|
|
824
|
+
<span class="sd"> If hierarchical=True, includes 'hierarchy' key with tree structure.</span>
|
|
825
|
+
<span class="sd"> If hierarchical=False (default), returns flat structure for backwards compatibility.</span>
|
|
516
826
|
<span class="sd"> """</span>
|
|
517
827
|
<span class="c1"># Find the chatlog file</span>
|
|
518
828
|
<span class="n">chatlog_path</span> <span class="o">=</span> <span class="k">await</span> <span class="n">find_chatlog_file</span><span class="p">(</span><span class="n">log_id</span><span class="p">)</span>
|
|
519
829
|
<span class="k">if</span> <span class="ow">not</span> <span class="n">chatlog_path</span><span class="p">:</span>
|
|
520
830
|
<span class="k">return</span> <span class="kc">None</span>
|
|
521
831
|
|
|
832
|
+
<span class="c1"># If hierarchical structure is requested, build and return it</span>
|
|
833
|
+
<span class="k">if</span> <span class="n">hierarchical</span><span class="p">:</span>
|
|
834
|
+
<span class="c1"># Check cache first for hierarchical data</span>
|
|
835
|
+
<span class="n">cached_counts</span> <span class="o">=</span> <span class="k">await</span> <span class="n">get_cached_token_counts</span><span class="p">(</span><span class="n">log_id</span><span class="p">,</span> <span class="n">chatlog_path</span><span class="p">)</span>
|
|
836
|
+
<span class="k">if</span> <span class="n">cached_counts</span> <span class="ow">and</span> <span class="s1">'hierarchy'</span> <span class="ow">in</span> <span class="n">cached_counts</span><span class="p">:</span>
|
|
837
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Using cached hierarchical token counts for </span><span class="si">{</span><span class="n">log_id</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
838
|
+
<span class="k">return</span> <span class="n">cached_counts</span>
|
|
839
|
+
|
|
840
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Calculating hierarchical token counts for </span><span class="si">{</span><span class="n">log_id</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
841
|
+
<span class="n">hierarchy</span> <span class="o">=</span> <span class="k">await</span> <span class="n">build_token_hierarchy</span><span class="p">(</span><span class="n">log_id</span><span class="p">,</span> <span class="n">user</span><span class="p">)</span>
|
|
842
|
+
<span class="k">if</span> <span class="n">hierarchy</span><span class="p">:</span>
|
|
843
|
+
<span class="n">result</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'hierarchy'</span><span class="p">:</span> <span class="n">hierarchy</span><span class="p">}</span>
|
|
844
|
+
<span class="c1"># Save hierarchical data to cache</span>
|
|
845
|
+
<span class="k">await</span> <span class="n">save_token_counts_to_cache</span><span class="p">(</span><span class="n">log_id</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span>
|
|
846
|
+
<span class="k">return</span> <span class="n">result</span>
|
|
847
|
+
<span class="k">return</span> <span class="kc">None</span>
|
|
848
|
+
|
|
522
849
|
<span class="c1"># Check cache first</span>
|
|
523
850
|
<span class="n">cached_counts</span> <span class="o">=</span> <span class="k">await</span> <span class="n">get_cached_token_counts</span><span class="p">(</span><span class="n">log_id</span><span class="p">,</span> <span class="n">chatlog_path</span><span class="p">)</span>
|
|
524
851
|
<span class="k">if</span> <span class="n">cached_counts</span><span class="p">:</span>
|
|
@@ -536,7 +863,21 @@
|
|
|
536
863
|
<span class="n">parent_log_id</span> <span class="o">=</span> <span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'parent_log_id'</span><span class="p">)</span>
|
|
537
864
|
|
|
538
865
|
<span class="c1"># Create a temporary ChatLog instance to count tokens</span>
|
|
539
|
-
<span class="
|
|
866
|
+
<span class="c1"># Use provided user or try to determine from chatlog path or fallback to "system"</span>
|
|
867
|
+
<span class="k">if</span> <span class="n">user</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
|
868
|
+
<span class="c1"># Try to extract user from chatlog path: data/chat/{user}/{agent}/chatlog_{log_id}.json</span>
|
|
869
|
+
<span class="k">try</span><span class="p">:</span>
|
|
870
|
+
<span class="n">path_parts</span> <span class="o">=</span> <span class="n">chatlog_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="p">)</span>
|
|
871
|
+
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">path_parts</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">4</span> <span class="ow">and</span> <span class="n">path_parts</span><span class="p">[</span><span class="o">-</span><span class="mi">4</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'chat'</span><span class="p">:</span>
|
|
872
|
+
<span class="n">extracted_user</span> <span class="o">=</span> <span class="n">path_parts</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="c1"># User is third from the end</span>
|
|
873
|
+
<span class="n">user</span> <span class="o">=</span> <span class="n">extracted_user</span>
|
|
874
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Extracted user '</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">' from chatlog path: </span><span class="si">{</span><span class="n">chatlog_path</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
875
|
+
<span class="k">else</span><span class="p">:</span>
|
|
876
|
+
<span class="n">user</span> <span class="o">=</span> <span class="s2">"system"</span> <span class="c1"># Default fallback</span>
|
|
877
|
+
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
878
|
+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Error extracting user from path </span><span class="si">{</span><span class="n">chatlog_path</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
879
|
+
<span class="n">user</span> <span class="o">=</span> <span class="s2">"system"</span> <span class="c1"># Default fallback</span>
|
|
880
|
+
<span class="n">temp_log</span> <span class="o">=</span> <span class="n">ChatLog</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> <span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">,</span> <span class="n">agent</span><span class="o">=</span><span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'agent'</span><span class="p">,</span> <span class="s1">'unknown'</span><span class="p">))</span>
|
|
540
881
|
<span class="n">temp_log</span><span class="o">.</span><span class="n">messages</span> <span class="o">=</span> <span class="n">log_data</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'messages'</span><span class="p">,</span> <span class="p">[])</span>
|
|
541
882
|
|
|
542
883
|
<span class="c1"># Count tokens for this log</span>
|
|
@@ -564,7 +905,7 @@
|
|
|
564
905
|
|
|
565
906
|
<span class="c1"># Recursively count tokens for all child tasks</span>
|
|
566
907
|
<span class="k">for</span> <span class="n">child_id</span> <span class="ow">in</span> <span class="n">all_child_log_ids</span><span class="p">:</span>
|
|
567
|
-
<span class="n">delegated_counts</span> <span class="o">=</span> <span class="k">await</span> <span class="n">count_tokens_for_log_id</span><span class="p">(</span><span class="n">child_id</span><span class="p">)</span>
|
|
908
|
+
<span class="n">delegated_counts</span> <span class="o">=</span> <span class="k">await</span> <span class="n">count_tokens_for_log_id</span><span class="p">(</span><span class="n">child_id</span><span class="p">,</span> <span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">)</span>
|
|
568
909
|
<span class="k">if</span> <span class="n">delegated_counts</span><span class="p">:</span>
|
|
569
910
|
<span class="n">combined_counts</span><span class="p">[</span><span class="s1">'input_tokens_sequence'</span><span class="p">]</span> <span class="o">+=</span> <span class="n">delegated_counts</span><span class="p">[</span><span class="s1">'input_tokens_sequence'</span><span class="p">]</span>
|
|
570
911
|
<span class="n">combined_counts</span><span class="p">[</span><span class="s1">'output_tokens_sequence'</span><span class="p">]</span> <span class="o">+=</span> <span class="n">delegated_counts</span><span class="p">[</span><span class="s1">'output_tokens_sequence'</span><span class="p">]</span>
|
|
@@ -588,32 +929,40 @@
|
|
|
588
929
|
<span class="k">return</span> <span class="n">token_counts</span></div>
|
|
589
930
|
|
|
590
931
|
</pre></div>
|
|
591
|
-
|
|
592
|
-
|
|
932
|
+
</article>
|
|
933
|
+
</div>
|
|
934
|
+
<footer>
|
|
935
|
+
|
|
936
|
+
<div class="related-pages">
|
|
937
|
+
|
|
938
|
+
|
|
939
|
+
</div>
|
|
940
|
+
<div class="bottom-of-page">
|
|
941
|
+
<div class="left-details">
|
|
942
|
+
<div class="copyright">
|
|
943
|
+
Copyright © 2025, Jason Livesay
|
|
944
|
+
</div>
|
|
945
|
+
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
|
|
946
|
+
|
|
947
|
+
<a href="https://github.com/pradyunsg/furo">Furo</a>
|
|
948
|
+
|
|
949
|
+
</div>
|
|
950
|
+
<div class="right-details">
|
|
951
|
+
|
|
593
952
|
</div>
|
|
594
|
-
<footer>
|
|
595
|
-
|
|
596
|
-
<hr/>
|
|
597
|
-
|
|
598
|
-
<div role="contentinfo">
|
|
599
|
-
<p>© Copyright 2025, Jason Livesay.</p>
|
|
600
|
-
</div>
|
|
601
|
-
|
|
602
|
-
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
603
|
-
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
604
|
-
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
</footer>
|
|
608
953
|
</div>
|
|
609
|
-
|
|
610
|
-
|
|
954
|
+
|
|
955
|
+
</footer>
|
|
956
|
+
</div>
|
|
957
|
+
<aside class="toc-drawer no-toc">
|
|
958
|
+
|
|
959
|
+
|
|
960
|
+
|
|
961
|
+
</aside>
|
|
611
962
|
</div>
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
</body>
|
|
963
|
+
</div><script src="../../../_static/documentation_options.js?v=3c16008f"></script>
|
|
964
|
+
<script src="../../../_static/doctools.js?v=9bcbadda"></script>
|
|
965
|
+
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|
966
|
+
<script src="../../../_static/scripts/furo.js?v=46bd48cc"></script>
|
|
967
|
+
</body>
|
|
619
968
|
</html>
|