mindroot 9.11.0__py3-none-any.whl → 9.12.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mindroot might be problematic. Click here for more details.

Files changed (415) hide show
  1. mindroot/coreplugins/home/templates/home.jinja2 +1 -0
  2. mindroot/docs/Makefile +20 -0
  3. mindroot/docs/_build/doctrees/chat_with_assistant.doctree +0 -0
  4. mindroot/docs/_build/doctrees/developer_documentation.doctree +0 -0
  5. mindroot/docs/_build/doctrees/environment.pickle +0 -0
  6. mindroot/docs/_build/doctrees/getting_started.doctree +0 -0
  7. mindroot/docs/_build/doctrees/index.doctree +0 -0
  8. mindroot/docs/_build/doctrees/install_plugins_with_tools.doctree +0 -0
  9. mindroot/docs/_build/doctrees/installation.doctree +0 -0
  10. mindroot/docs/_build/doctrees/llm_api_key.doctree +0 -0
  11. mindroot/docs/_build/doctrees/llm_plugin_installation.doctree +0 -0
  12. mindroot/docs/_build/doctrees/programming_task.doctree +0 -0
  13. mindroot/docs/_build/doctrees/source/ahp.doctree +0 -0
  14. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.admin.doctree +0 -0
  15. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.api_keys.doctree +0 -0
  16. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.chat.doctree +0 -0
  17. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.chat_avatar.doctree +0 -0
  18. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.check_list.doctree +0 -0
  19. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.credits.doctree +0 -0
  20. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.doctree +0 -0
  21. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.email.doctree +0 -0
  22. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.env_manager.doctree +0 -0
  23. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.events.doctree +0 -0
  24. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.index.doctree +0 -0
  25. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.index.handlers.doctree +0 -0
  26. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.jwt_auth.doctree +0 -0
  27. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.l8n.doctree +0 -0
  28. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.mcp_.doctree +0 -0
  29. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.persona.doctree +0 -0
  30. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.startup.doctree +0 -0
  31. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.subscriptions.doctree +0 -0
  32. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.usage.doctree +0 -0
  33. mindroot/docs/_build/doctrees/source/mindroot.coreplugins.user_service.doctree +0 -0
  34. mindroot/docs/_build/doctrees/source/mindroot.doctree +0 -0
  35. mindroot/docs/_build/doctrees/source/mindroot.lib.auth.doctree +0 -0
  36. mindroot/docs/_build/doctrees/source/mindroot.lib.doctree +0 -0
  37. mindroot/docs/_build/doctrees/source/mindroot.lib.json_str_block.doctree +0 -0
  38. mindroot/docs/_build/doctrees/source/mindroot.lib.plugins.doctree +0 -0
  39. mindroot/docs/_build/doctrees/source/mindroot.lib.providers.backup.doctree +0 -0
  40. mindroot/docs/_build/doctrees/source/mindroot.lib.providers.doctree +0 -0
  41. mindroot/docs/_build/doctrees/source/mindroot.registry.doctree +0 -0
  42. mindroot/docs/_build/doctrees/source/modules.doctree +0 -0
  43. mindroot/docs/_build/doctrees/source/mr_agent_expert_instr.doctree +0 -0
  44. mindroot/docs/_build/doctrees/starting_mindroot.doctree +0 -0
  45. mindroot/docs/_build/doctrees/user_documentation.doctree +0 -0
  46. mindroot/docs/_build/html/.buildinfo +4 -0
  47. mindroot/docs/_build/html/.buildinfo.bak +4 -0
  48. mindroot/docs/_build/html/_images/envvar.png +0 -0
  49. mindroot/docs/_build/html/_images/files.png +0 -0
  50. mindroot/docs/_build/html/_images/installopenrouter.png +0 -0
  51. mindroot/docs/_build/html/_images/mood.png +0 -0
  52. mindroot/docs/_build/html/_images/moon.png +0 -0
  53. mindroot/docs/_build/html/_images/openrouter.png +0 -0
  54. mindroot/docs/_build/html/_images/restart.png +0 -0
  55. mindroot/docs/_build/html/_modules/index.html +425 -0
  56. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/agent_importer.html +292 -0
  57. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/agent_router.html +620 -0
  58. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/asset_manager.html +289 -0
  59. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/command_router.html +518 -0
  60. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_catalog_routes.html +275 -0
  61. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_publish_routes.html +581 -0
  62. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_registry_routes.html +623 -0
  63. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mcp_routes.html +347 -0
  64. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/mod.html +163 -0
  65. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/oauth_callback_router.html +188 -0
  66. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/persona_handler.html +195 -0
  67. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/persona_router.html +428 -0
  68. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_manager.html +610 -0
  69. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_router.html +146 -0
  70. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/plugin_routes.html +230 -0
  71. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/registry_settings_routes.html +253 -0
  72. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/router.html +267 -0
  73. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/server_router.html +271 -0
  74. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/service_models.html +195 -0
  75. mindroot/docs/_build/html/_modules/mindroot/coreplugins/admin/settings_router.html +403 -0
  76. mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/api_key_manager.html +215 -0
  77. mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/mod.html +127 -0
  78. mindroot/docs/_build/html/_modules/mindroot/coreplugins/api_keys/router.html +170 -0
  79. mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/commands.html +565 -0
  80. mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/mod.html +118 -0
  81. mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/models.html +130 -0
  82. mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/router.html +571 -0
  83. mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/services.html +645 -0
  84. mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/widget_manager.html +258 -0
  85. mindroot/docs/_build/html/_modules/mindroot/coreplugins/chat/widget_routes.html +409 -0
  86. mindroot/docs/_build/html/_modules/mindroot/coreplugins/check_list/mod.html +460 -0
  87. mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/conversion.html +232 -0
  88. mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/ledger.html +283 -0
  89. mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/mod.html +355 -0
  90. mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/models.html +269 -0
  91. mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/router.html +306 -0
  92. mindroot/docs/_build/html/_modules/mindroot/coreplugins/credits/storage.html +257 -0
  93. mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/email_provider.html +159 -0
  94. mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/imap_handler.html +343 -0
  95. mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/mod.html +210 -0
  96. mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/services.html +172 -0
  97. mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/smtp_handler.html +188 -0
  98. mindroot/docs/_build/html/_modules/mindroot/coreplugins/email/test_email_service.html +179 -0
  99. mindroot/docs/_build/html/_modules/mindroot/coreplugins/env_manager/mod.html +409 -0
  100. mindroot/docs/_build/html/_modules/mindroot/coreplugins/env_manager/router.html +147 -0
  101. mindroot/docs/_build/html/_modules/mindroot/coreplugins/events/router.html +201 -0
  102. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/agent_ops.html +195 -0
  103. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/index_ops.html +214 -0
  104. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/plugin_ops.html +263 -0
  105. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/handlers/publish.html +225 -0
  106. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/mod.html +120 -0
  107. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/models.html +148 -0
  108. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/router.html +184 -0
  109. mindroot/docs/_build/html/_modules/mindroot/coreplugins/index/utils.html +166 -0
  110. mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/middleware.html +400 -0
  111. mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/mod.html +153 -0
  112. mindroot/docs/_build/html/_modules/mindroot/coreplugins/jwt_auth/router.html +134 -0
  113. mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/language_detection.html +296 -0
  114. mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/middleware.html +258 -0
  115. mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/mod.html +393 -0
  116. mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_enhanced.html +408 -0
  117. mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_l8n_standalone.html +379 -0
  118. mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/test_middleware.html +394 -0
  119. mindroot/docs/_build/html/_modules/mindroot/coreplugins/l8n/utils.html +348 -0
  120. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/catalog_commands.html +456 -0
  121. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/catalog_manager.html +409 -0
  122. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/dynamic_commands.html +267 -0
  123. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/mcp_manager.html +1186 -0
  124. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/mod.html +510 -0
  125. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/oauth_storage.html +260 -0
  126. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/server_installer.html +195 -0
  127. mindroot/docs/_build/html/_modules/mindroot/coreplugins/mcp_/testmcpclient.html +217 -0
  128. mindroot/docs/_build/html/_modules/mindroot/coreplugins/persona/init_persona.html +117 -0
  129. mindroot/docs/_build/html/_modules/mindroot/coreplugins/persona/mod.html +276 -0
  130. mindroot/docs/_build/html/_modules/mindroot/coreplugins/startup/mod.html +122 -0
  131. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/credit_integration.html +163 -0
  132. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/mod.html +1089 -0
  133. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/models.html +261 -0
  134. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/router.html +502 -0
  135. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/storage.html +413 -0
  136. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/stripe_integration.html +178 -0
  137. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/subscription_manager.html +289 -0
  138. mindroot/docs/_build/html/_modules/mindroot/coreplugins/subscriptions/webhook_handler.html +327 -0
  139. mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/handlers.html +157 -0
  140. mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/mod.html +253 -0
  141. mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/models.html +141 -0
  142. mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/reporting.html +226 -0
  143. mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/router.html +228 -0
  144. mindroot/docs/_build/html/_modules/mindroot/coreplugins/usage/storage.html +264 -0
  145. mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/admin_init.html +234 -0
  146. mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/email_service.html +204 -0
  147. mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/mod.html +260 -0
  148. mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/models.html +148 -0
  149. mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/password_reset_service.html +336 -0
  150. mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/role_service.html +183 -0
  151. mindroot/docs/_build/html/_modules/mindroot/coreplugins/user_service/router.html +202 -0
  152. mindroot/docs/_build/html/_modules/mindroot/lib/auth/api_key.html +129 -0
  153. mindroot/docs/_build/html/_modules/mindroot/lib/auth/auth.html +203 -0
  154. mindroot/docs/_build/html/_modules/mindroot/lib/buchatlog.html +259 -0
  155. mindroot/docs/_build/html/_modules/mindroot/lib/buchatlog2.html +500 -0
  156. mindroot/docs/_build/html/_modules/mindroot/lib/butemplates.html +415 -0
  157. mindroot/docs/_build/html/_modules/mindroot/lib/chatcontext.html +401 -0
  158. mindroot/docs/_build/html/_modules/mindroot/lib/chatlog.html +619 -0
  159. mindroot/docs/_build/html/_modules/mindroot/lib/chatlog_optimized.html +655 -0
  160. mindroot/docs/_build/html/_modules/mindroot/lib/json_escape.html +138 -0
  161. mindroot/docs/_build/html/_modules/mindroot/lib/json_str_block/json_str_block.html +213 -0
  162. mindroot/docs/_build/html/_modules/mindroot/lib/parent_templates.html +181 -0
  163. mindroot/docs/_build/html/_modules/mindroot/lib/plugins/installation.html +481 -0
  164. mindroot/docs/_build/html/_modules/mindroot/lib/plugins/l8n_static_handler.html +347 -0
  165. mindroot/docs/_build/html/_modules/mindroot/lib/plugins/loader.html +403 -0
  166. mindroot/docs/_build/html/_modules/mindroot/lib/plugins/loader_with_l8n.html +391 -0
  167. mindroot/docs/_build/html/_modules/mindroot/lib/plugins/manifest.html +450 -0
  168. mindroot/docs/_build/html/_modules/mindroot/lib/plugins/mapping.html +127 -0
  169. mindroot/docs/_build/html/_modules/mindroot/lib/plugins/paths.html +215 -0
  170. mindroot/docs/_build/html/_modules/mindroot/lib/plugins_install.html +171 -0
  171. mindroot/docs/_build/html/_modules/mindroot/lib/providers/commands.html +125 -0
  172. mindroot/docs/_build/html/_modules/mindroot/lib/providers/hooks.html +117 -0
  173. mindroot/docs/_build/html/_modules/mindroot/lib/providers/missing.html +169 -0
  174. mindroot/docs/_build/html/_modules/mindroot/lib/providers/model_preferences_v2.html +291 -0
  175. mindroot/docs/_build/html/_modules/mindroot/lib/providers/services.html +122 -0
  176. mindroot/docs/_build/html/_modules/mindroot/lib/providers.html +465 -0
  177. mindroot/docs/_build/html/_modules/mindroot/lib/route_decorators.html +175 -0
  178. mindroot/docs/_build/html/_modules/mindroot/lib/session_files.html +142 -0
  179. mindroot/docs/_build/html/_modules/mindroot/lib/streamcmd.html +246 -0
  180. mindroot/docs/_build/html/_modules/mindroot/lib/templates.html +677 -0
  181. mindroot/docs/_build/html/_modules/mindroot/lib/token_counter.html +326 -0
  182. mindroot/docs/_build/html/_modules/mindroot/migrate.html +153 -0
  183. mindroot/docs/_build/html/_modules/mindroot/registry/component_manager.html +140 -0
  184. mindroot/docs/_build/html/_modules/mindroot/registry/data_access.html +302 -0
  185. mindroot/docs/_build/html/_modules/mindroot/server.html +317 -0
  186. mindroot/docs/_build/html/_modules/mindroot/server_missing_normal_args.html +322 -0
  187. mindroot/docs/_build/html/_modules/mindroot/server_prev.html +298 -0
  188. mindroot/docs/_build/html/_sources/chat_with_assistant.rst.txt +14 -0
  189. mindroot/docs/_build/html/_sources/developer_documentation.rst.txt +26 -0
  190. mindroot/docs/_build/html/_sources/getting_started.rst.txt +139 -0
  191. mindroot/docs/_build/html/_sources/index.rst.txt +38 -0
  192. mindroot/docs/_build/html/_sources/install_plugins_with_tools.rst.txt +25 -0
  193. mindroot/docs/_build/html/_sources/installation.rst.txt +21 -0
  194. mindroot/docs/_build/html/_sources/llm_api_key.rst.txt +22 -0
  195. mindroot/docs/_build/html/_sources/llm_plugin_installation.rst.txt +27 -0
  196. mindroot/docs/_build/html/_sources/programming_task.rst.txt +10 -0
  197. mindroot/docs/_build/html/_sources/source/ahp.rst.txt +7 -0
  198. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.admin.rst.txt +189 -0
  199. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.api_keys.rst.txt +45 -0
  200. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.chat.rst.txt +93 -0
  201. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.chat_avatar.rst.txt +10 -0
  202. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.check_list.rst.txt +21 -0
  203. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.credits.rst.txt +61 -0
  204. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.email.rst.txt +77 -0
  205. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.env_manager.rst.txt +29 -0
  206. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.events.rst.txt +29 -0
  207. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.index.handlers.rst.txt +45 -0
  208. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.index.rst.txt +53 -0
  209. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.jwt_auth.rst.txt +45 -0
  210. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.l8n.rst.txt +109 -0
  211. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.mcp_.rst.txt +93 -0
  212. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.persona.rst.txt +29 -0
  213. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.rst.txt +35 -0
  214. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.startup.rst.txt +21 -0
  215. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.subscriptions.rst.txt +85 -0
  216. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.usage.rst.txt +61 -0
  217. mindroot/docs/_build/html/_sources/source/mindroot.coreplugins.user_service.rst.txt +69 -0
  218. mindroot/docs/_build/html/_sources/source/mindroot.lib.auth.rst.txt +29 -0
  219. mindroot/docs/_build/html/_sources/source/mindroot.lib.json_str_block.rst.txt +21 -0
  220. mindroot/docs/_build/html/_sources/source/mindroot.lib.plugins.rst.txt +69 -0
  221. mindroot/docs/_build/html/_sources/source/mindroot.lib.providers.backup.rst.txt +10 -0
  222. mindroot/docs/_build/html/_sources/source/mindroot.lib.providers.rst.txt +61 -0
  223. mindroot/docs/_build/html/_sources/source/mindroot.lib.rst.txt +152 -0
  224. mindroot/docs/_build/html/_sources/source/mindroot.registry.rst.txt +29 -0
  225. mindroot/docs/_build/html/_sources/source/mindroot.rst.txt +54 -0
  226. mindroot/docs/_build/html/_sources/source/modules.rst.txt +7 -0
  227. mindroot/docs/_build/html/_sources/source/mr_agent_expert_instr.rst.txt +7 -0
  228. mindroot/docs/_build/html/_sources/starting_mindroot.rst.txt +12 -0
  229. mindroot/docs/_build/html/_sources/user_documentation.rst.txt +16 -0
  230. mindroot/docs/_build/html/_static/_sphinx_javascript_frameworks_compat.js +123 -0
  231. mindroot/docs/_build/html/_static/basic.css +906 -0
  232. mindroot/docs/_build/html/_static/css/badge_only.css +1 -0
  233. mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  234. mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  235. mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  236. mindroot/docs/_build/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  237. mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  238. mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.svg +2671 -0
  239. mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  240. mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  241. mindroot/docs/_build/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  242. mindroot/docs/_build/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  243. mindroot/docs/_build/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  244. mindroot/docs/_build/html/_static/css/fonts/lato-bold.woff +0 -0
  245. mindroot/docs/_build/html/_static/css/fonts/lato-bold.woff2 +0 -0
  246. mindroot/docs/_build/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  247. mindroot/docs/_build/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  248. mindroot/docs/_build/html/_static/css/fonts/lato-normal.woff +0 -0
  249. mindroot/docs/_build/html/_static/css/fonts/lato-normal.woff2 +0 -0
  250. mindroot/docs/_build/html/_static/css/theme.css +4 -0
  251. mindroot/docs/_build/html/_static/custom.css +19 -0
  252. mindroot/docs/_build/html/_static/debug.css +69 -0
  253. mindroot/docs/_build/html/_static/doctools.js +149 -0
  254. mindroot/docs/_build/html/_static/documentation_options.js +13 -0
  255. mindroot/docs/_build/html/_static/file.png +0 -0
  256. mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.eot +0 -0
  257. mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.ttf +0 -0
  258. mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.woff +0 -0
  259. mindroot/docs/_build/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
  260. mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  261. mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  262. mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  263. mindroot/docs/_build/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  264. mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.eot +0 -0
  265. mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.ttf +0 -0
  266. mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.woff +0 -0
  267. mindroot/docs/_build/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
  268. mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.eot +0 -0
  269. mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.ttf +0 -0
  270. mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.woff +0 -0
  271. mindroot/docs/_build/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
  272. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  273. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  274. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  275. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  276. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  277. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  278. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  279. mindroot/docs/_build/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  280. mindroot/docs/_build/html/_static/jquery.js +2 -0
  281. mindroot/docs/_build/html/_static/js/badge_only.js +1 -0
  282. mindroot/docs/_build/html/_static/js/theme.js +1 -0
  283. mindroot/docs/_build/html/_static/js/versions.js +228 -0
  284. mindroot/docs/_build/html/_static/language_data.js +192 -0
  285. mindroot/docs/_build/html/_static/minus.png +0 -0
  286. mindroot/docs/_build/html/_static/plus.png +0 -0
  287. mindroot/docs/_build/html/_static/pygments.css +232 -0
  288. mindroot/docs/_build/html/_static/scripts/furo-extensions.js +0 -0
  289. mindroot/docs/_build/html/_static/scripts/furo.js +3 -0
  290. mindroot/docs/_build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
  291. mindroot/docs/_build/html/_static/scripts/furo.js.map +1 -0
  292. mindroot/docs/_build/html/_static/searchtools.js +635 -0
  293. mindroot/docs/_build/html/_static/skeleton.css +296 -0
  294. mindroot/docs/_build/html/_static/sphinx_highlight.js +154 -0
  295. mindroot/docs/_build/html/_static/styles/furo-extensions.css +2 -0
  296. mindroot/docs/_build/html/_static/styles/furo-extensions.css.map +1 -0
  297. mindroot/docs/_build/html/_static/styles/furo.css +2 -0
  298. mindroot/docs/_build/html/_static/styles/furo.css.map +1 -0
  299. mindroot/docs/_build/html/chat_with_assistant.html +329 -0
  300. mindroot/docs/_build/html/developer_documentation.html +338 -0
  301. mindroot/docs/_build/html/genindex.html +4690 -0
  302. mindroot/docs/_build/html/getting_started.html +423 -0
  303. mindroot/docs/_build/html/index.html +357 -0
  304. mindroot/docs/_build/html/install_plugins_with_tools.html +336 -0
  305. mindroot/docs/_build/html/installation.html +330 -0
  306. mindroot/docs/_build/html/llm_api_key.html +337 -0
  307. mindroot/docs/_build/html/llm_plugin_installation.html +338 -0
  308. mindroot/docs/_build/html/objects.inv +0 -0
  309. mindroot/docs/_build/html/programming_task.html +326 -0
  310. mindroot/docs/_build/html/py-modindex.html +1307 -0
  311. mindroot/docs/_build/html/search.html +307 -0
  312. mindroot/docs/_build/html/searchindex.js +1 -0
  313. mindroot/docs/_build/html/source/ahp.html +302 -0
  314. mindroot/docs/_build/html/source/mindroot.coreplugins.admin.html +2212 -0
  315. mindroot/docs/_build/html/source/mindroot.coreplugins.api_keys.html +532 -0
  316. mindroot/docs/_build/html/source/mindroot.coreplugins.chat.html +1185 -0
  317. mindroot/docs/_build/html/source/mindroot.coreplugins.chat_avatar.html +311 -0
  318. mindroot/docs/_build/html/source/mindroot.coreplugins.check_list.html +441 -0
  319. mindroot/docs/_build/html/source/mindroot.coreplugins.credits.html +879 -0
  320. mindroot/docs/_build/html/source/mindroot.coreplugins.email.html +554 -0
  321. mindroot/docs/_build/html/source/mindroot.coreplugins.env_manager.html +447 -0
  322. mindroot/docs/_build/html/source/mindroot.coreplugins.events.html +338 -0
  323. mindroot/docs/_build/html/source/mindroot.coreplugins.html +1785 -0
  324. mindroot/docs/_build/html/source/mindroot.coreplugins.index.handlers.html +481 -0
  325. mindroot/docs/_build/html/source/mindroot.coreplugins.index.html +696 -0
  326. mindroot/docs/_build/html/source/mindroot.coreplugins.jwt_auth.html +432 -0
  327. mindroot/docs/_build/html/source/mindroot.coreplugins.l8n.html +933 -0
  328. mindroot/docs/_build/html/source/mindroot.coreplugins.mcp_.html +1271 -0
  329. mindroot/docs/_build/html/source/mindroot.coreplugins.persona.html +386 -0
  330. mindroot/docs/_build/html/source/mindroot.coreplugins.startup.html +327 -0
  331. mindroot/docs/_build/html/source/mindroot.coreplugins.subscriptions.html +1631 -0
  332. mindroot/docs/_build/html/source/mindroot.coreplugins.usage.html +677 -0
  333. mindroot/docs/_build/html/source/mindroot.coreplugins.user_service.html +681 -0
  334. mindroot/docs/_build/html/source/mindroot.html +811 -0
  335. mindroot/docs/_build/html/source/mindroot.lib.auth.html +407 -0
  336. mindroot/docs/_build/html/source/mindroot.lib.html +2027 -0
  337. mindroot/docs/_build/html/source/mindroot.lib.json_str_block.html +344 -0
  338. mindroot/docs/_build/html/source/mindroot.lib.plugins.html +1050 -0
  339. mindroot/docs/_build/html/source/mindroot.lib.providers.backup.html +324 -0
  340. mindroot/docs/_build/html/source/mindroot.lib.providers.html +572 -0
  341. mindroot/docs/_build/html/source/mindroot.registry.html +501 -0
  342. mindroot/docs/_build/html/source/modules.html +377 -0
  343. mindroot/docs/_build/html/source/mr_agent_expert_instr.html +302 -0
  344. mindroot/docs/_build/html/starting_mindroot.html +325 -0
  345. mindroot/docs/_build/html/user_documentation.html +333 -0
  346. mindroot/docs/_static/custom.css +19 -0
  347. mindroot/docs/chat_with_assistant.rst +14 -0
  348. mindroot/docs/conf.py +54 -0
  349. mindroot/docs/data/agents/local/Assistant/agent.json +27 -0
  350. mindroot/docs/data/agents/local/SysAdmin/agent.json +33 -0
  351. mindroot/docs/data/equivalent_flags.json +1 -0
  352. mindroot/docs/data/mcp/servers.json +9 -0
  353. mindroot/docs/data/models.json +57 -0
  354. mindroot/docs/data/plugin_manifest.json +95 -0
  355. mindroot/docs/data/preferred_models.json +12 -0
  356. mindroot/docs/data/providers.json +62 -0
  357. mindroot/docs/developer_documentation.rst +26 -0
  358. mindroot/docs/envvar.png +0 -0
  359. mindroot/docs/files.png +0 -0
  360. mindroot/docs/getting_started.rst +139 -0
  361. mindroot/docs/index.rst +38 -0
  362. mindroot/docs/install_plugins_with_tools.rst +25 -0
  363. mindroot/docs/installation.rst +21 -0
  364. mindroot/docs/installopenrouter.png +0 -0
  365. mindroot/docs/llm_api_key.rst +22 -0
  366. mindroot/docs/llm_plugin_installation.rst +27 -0
  367. mindroot/docs/make.bat +35 -0
  368. mindroot/docs/mood.png +0 -0
  369. mindroot/docs/moon.png +0 -0
  370. mindroot/docs/openrouter.png +0 -0
  371. mindroot/docs/personas/local/Assistant/avatar.png +0 -0
  372. mindroot/docs/personas/local/Assistant/faceref.png +0 -0
  373. mindroot/docs/personas/local/Assistant/persona.json +7 -0
  374. mindroot/docs/programming_task.rst +10 -0
  375. mindroot/docs/restart.png +0 -0
  376. mindroot/docs/source/ahp.rst +7 -0
  377. mindroot/docs/source/mindroot.coreplugins.admin.rst +189 -0
  378. mindroot/docs/source/mindroot.coreplugins.api_keys.rst +45 -0
  379. mindroot/docs/source/mindroot.coreplugins.chat.rst +93 -0
  380. mindroot/docs/source/mindroot.coreplugins.chat_avatar.rst +10 -0
  381. mindroot/docs/source/mindroot.coreplugins.check_list.rst +21 -0
  382. mindroot/docs/source/mindroot.coreplugins.credits.rst +61 -0
  383. mindroot/docs/source/mindroot.coreplugins.email.rst +77 -0
  384. mindroot/docs/source/mindroot.coreplugins.env_manager.rst +29 -0
  385. mindroot/docs/source/mindroot.coreplugins.events.rst +29 -0
  386. mindroot/docs/source/mindroot.coreplugins.index.handlers.rst +45 -0
  387. mindroot/docs/source/mindroot.coreplugins.index.rst +53 -0
  388. mindroot/docs/source/mindroot.coreplugins.jwt_auth.rst +45 -0
  389. mindroot/docs/source/mindroot.coreplugins.l8n.rst +109 -0
  390. mindroot/docs/source/mindroot.coreplugins.mcp_.rst +93 -0
  391. mindroot/docs/source/mindroot.coreplugins.persona.rst +29 -0
  392. mindroot/docs/source/mindroot.coreplugins.rst +35 -0
  393. mindroot/docs/source/mindroot.coreplugins.startup.rst +21 -0
  394. mindroot/docs/source/mindroot.coreplugins.subscriptions.rst +85 -0
  395. mindroot/docs/source/mindroot.coreplugins.usage.rst +61 -0
  396. mindroot/docs/source/mindroot.coreplugins.user_service.rst +69 -0
  397. mindroot/docs/source/mindroot.lib.auth.rst +29 -0
  398. mindroot/docs/source/mindroot.lib.json_str_block.rst +21 -0
  399. mindroot/docs/source/mindroot.lib.plugins.rst +69 -0
  400. mindroot/docs/source/mindroot.lib.providers.backup.rst +10 -0
  401. mindroot/docs/source/mindroot.lib.providers.rst +61 -0
  402. mindroot/docs/source/mindroot.lib.rst +152 -0
  403. mindroot/docs/source/mindroot.registry.rst +29 -0
  404. mindroot/docs/source/mindroot.rst +54 -0
  405. mindroot/docs/source/modules.rst +7 -0
  406. mindroot/docs/source/mr_agent_expert_instr.rst +7 -0
  407. mindroot/docs/starting_mindroot.rst +12 -0
  408. mindroot/docs/user_documentation.rst +16 -0
  409. mindroot/server.py +10 -1
  410. {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/METADATA +1 -1
  411. {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/RECORD +415 -8
  412. {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/WHEEL +0 -0
  413. {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/entry_points.txt +0 -0
  414. {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/licenses/LICENSE +0 -0
  415. {mindroot-9.11.0.dist-info → mindroot-9.12.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,879 @@
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"><meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" />
7
+
8
+ <!-- Generated with Sphinx 8.2.3 and Furo 2025.07.19 -->
9
+ <title>mindroot.coreplugins.credits package - MindRoot 9.10.0 documentation</title>
10
+ <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d111a655" />
11
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=25af2a20" />
12
+ <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=8dab3a3b" />
13
+ <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=f4b9d74b" />
14
+
15
+
16
+
17
+
18
+ <style>
19
+ body {
20
+ --color-code-background: #f2f2f2;
21
+ --color-code-foreground: #1e1e1e;
22
+ --color-brand-primary: #007acc;
23
+ --color-brand-content: #007acc;
24
+
25
+ }
26
+ @media not print {
27
+ body[data-theme="dark"] {
28
+ --color-code-background: #2b2b2b;
29
+ --color-code-foreground: #f8f8f2;
30
+ --color-brand-primary: #ff7b72;
31
+ --color-brand-content: #ff7b72;
32
+
33
+ }
34
+ @media (prefers-color-scheme: dark) {
35
+ body:not([data-theme="light"]) {
36
+ --color-code-background: #2b2b2b;
37
+ --color-code-foreground: #f8f8f2;
38
+ --color-brand-primary: #ff7b72;
39
+ --color-brand-content: #ff7b72;
40
+
41
+ }
42
+ }
43
+ }
44
+ </style></head>
45
+ <body>
46
+
47
+ <script>
48
+ document.body.dataset.theme = localStorage.getItem("theme") || "auto";
49
+ </script>
50
+
51
+
52
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
53
+ <symbol id="svg-toc" viewBox="0 0 24 24">
54
+ <title>Contents</title>
55
+ <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
56
+ <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"/>
57
+ </svg>
58
+ </symbol>
59
+ <symbol id="svg-menu" viewBox="0 0 24 24">
60
+ <title>Menu</title>
61
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
62
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
63
+ <line x1="3" y1="12" x2="21" y2="12"></line>
64
+ <line x1="3" y1="6" x2="21" y2="6"></line>
65
+ <line x1="3" y1="18" x2="21" y2="18"></line>
66
+ </svg>
67
+ </symbol>
68
+ <symbol id="svg-arrow-right" viewBox="0 0 24 24">
69
+ <title>Expand</title>
70
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
71
+ stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
72
+ <polyline points="9 18 15 12 9 6"></polyline>
73
+ </svg>
74
+ </symbol>
75
+ <symbol id="svg-sun" viewBox="0 0 24 24">
76
+ <title>Light mode</title>
77
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
78
+ stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
79
+ <circle cx="12" cy="12" r="5"></circle>
80
+ <line x1="12" y1="1" x2="12" y2="3"></line>
81
+ <line x1="12" y1="21" x2="12" y2="23"></line>
82
+ <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
83
+ <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
84
+ <line x1="1" y1="12" x2="3" y2="12"></line>
85
+ <line x1="21" y1="12" x2="23" y2="12"></line>
86
+ <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
87
+ <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
88
+ </svg>
89
+ </symbol>
90
+ <symbol id="svg-moon" viewBox="0 0 24 24">
91
+ <title>Dark mode</title>
92
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
93
+ stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
94
+ <path stroke="none" d="M0 0h24v24H0z" fill="none" />
95
+ <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" />
96
+ </svg>
97
+ </symbol>
98
+ <symbol id="svg-sun-with-moon" viewBox="0 0 24 24">
99
+ <title>Auto light/dark, in light mode</title>
100
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
101
+ stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
102
+ class="icon-custom-derived-from-feather-sun-and-tabler-moon">
103
+ <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"/>
104
+ <line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/>
105
+ <line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/>
106
+ <line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/>
107
+ <line x1="19" y1="14.05" x2="20.414" y2="15.464"/>
108
+ <line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/>
109
+ <line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/>
110
+ <line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/>
111
+ <line x1="19" y1="5.05" x2="20.414" y2="3.636"/>
112
+ <circle cx="14.5" cy="9.55" r="3.6"/>
113
+ </svg>
114
+ </symbol>
115
+ <symbol id="svg-moon-with-sun" viewBox="0 0 24 24">
116
+ <title>Auto light/dark, in dark mode</title>
117
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
118
+ stroke-width="1" stroke-linecap="round" stroke-linejoin="round"
119
+ class="icon-custom-derived-from-feather-sun-and-tabler-moon">
120
+ <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"/>
121
+ <line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/>
122
+ <line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/>
123
+ <line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/>
124
+ <line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/>
125
+ <line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/>
126
+ <line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/>
127
+ <line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/>
128
+ <line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/>
129
+ <circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/>
130
+ </svg>
131
+ </symbol>
132
+ <symbol id="svg-pencil" viewBox="0 0 24 24">
133
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
134
+ stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code">
135
+ <path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" />
136
+ <path d="M13.5 6.5l4 4" />
137
+ <path d="M20 21l2 -2l-2 -2" />
138
+ <path d="M17 17l-2 2l2 2" />
139
+ </svg>
140
+ </symbol>
141
+ <symbol id="svg-eye" viewBox="0 0 24 24">
142
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
143
+ stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code">
144
+ <path stroke="none" d="M0 0h24v24H0z" fill="none" />
145
+ <path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" />
146
+ <path
147
+ 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" />
148
+ <path d="M20 21l2 -2l-2 -2" />
149
+ <path d="M17 17l-2 2l2 2" />
150
+ </svg>
151
+ </symbol>
152
+ </svg>
153
+
154
+ <input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
155
+ <input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
156
+ <label class="overlay sidebar-overlay" for="__navigation">
157
+ <div class="visually-hidden">Hide navigation sidebar</div>
158
+ </label>
159
+ <label class="overlay toc-overlay" for="__toc">
160
+ <div class="visually-hidden">Hide table of contents sidebar</div>
161
+ </label>
162
+
163
+ <a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a>
164
+
165
+
166
+
167
+ <div class="page">
168
+ <header class="mobile-header">
169
+ <div class="header-left">
170
+ <label class="nav-overlay-icon" for="__navigation">
171
+ <div class="visually-hidden">Toggle site navigation sidebar</div>
172
+ <i class="icon"><svg><use href="#svg-menu"></use></svg></i>
173
+ </label>
174
+ </div>
175
+ <div class="header-center">
176
+ <a href="../index.html"><div class="brand">MindRoot 9.10.0 documentation</div></a>
177
+ </div>
178
+ <div class="header-right">
179
+ <div class="theme-toggle-container theme-toggle-header">
180
+ <button class="theme-toggle">
181
+ <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
182
+ <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
183
+ <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
184
+ <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
185
+ <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
186
+ </button>
187
+ </div>
188
+ <label class="toc-overlay-icon toc-header-icon" for="__toc">
189
+ <div class="visually-hidden">Toggle table of contents sidebar</div>
190
+ <i class="icon"><svg><use href="#svg-toc"></use></svg></i>
191
+ </label>
192
+ </div>
193
+ </header>
194
+ <aside class="sidebar-drawer">
195
+ <div class="sidebar-container">
196
+
197
+ <div class="sidebar-sticky"><a class="sidebar-brand" href="../index.html">
198
+
199
+
200
+ </a><form class="sidebar-search-container" method="get" action="../search.html" role="search">
201
+ <input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
202
+ <input type="hidden" name="check_keywords" value="yes">
203
+ <input type="hidden" name="area" value="default">
204
+ </form>
205
+ <div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
206
+ <p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
207
+ <ul>
208
+ <li class="toctree-l1"><a class="reference internal" href="../getting_started.html">Getting Started</a></li>
209
+ </ul>
210
+
211
+ </div>
212
+ </div>
213
+
214
+ </div>
215
+
216
+ </div>
217
+ </aside>
218
+ <div class="main">
219
+ <div class="content">
220
+ <div class="article-container">
221
+ <a href="#" class="back-to-top muted-link">
222
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
223
+ <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
224
+ </svg>
225
+ <span>Back to top</span>
226
+ </a>
227
+ <div class="content-icon-container">
228
+ <div class="view-this-page">
229
+ <a class="muted-link" href="../_sources/source/mindroot.coreplugins.credits.rst.txt" title="View this page">
230
+ <svg><use href="#svg-eye"></use></svg>
231
+ <span class="visually-hidden">View this page</span>
232
+ </a>
233
+ </div>
234
+ <div class="theme-toggle-container theme-toggle-content">
235
+ <button class="theme-toggle">
236
+ <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
237
+ <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg>
238
+ <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg>
239
+ <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
240
+ <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
241
+ </button>
242
+ </div>
243
+ <label class="toc-overlay-icon toc-content-icon" for="__toc">
244
+ <div class="visually-hidden">Toggle table of contents sidebar</div>
245
+ <i class="icon"><svg><use href="#svg-toc"></use></svg></i>
246
+ </label>
247
+ </div>
248
+ <article role="main" id="furo-main-content">
249
+ <section id="mindroot-coreplugins-credits-package">
250
+ <h1>mindroot.coreplugins.credits package<a class="headerlink" href="#mindroot-coreplugins-credits-package" title="Link to this heading">¶</a></h1>
251
+ <section id="submodules">
252
+ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading">¶</a></h2>
253
+ </section>
254
+ <section id="module-mindroot.coreplugins.credits.conversion">
255
+ <span id="mindroot-coreplugins-credits-conversion-module"></span><h2>mindroot.coreplugins.credits.conversion module<a class="headerlink" href="#module-mindroot.coreplugins.credits.conversion" title="Link to this heading">¶</a></h2>
256
+ <dl class="py class">
257
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.conversion.CreditPolicy">
258
+ <em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.conversion.</span></span><span class="sig-name descname"><span class="pre">CreditPolicy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ledger</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger" title="mindroot.coreplugins.credits.ledger.CreditLedger"><span class="pre">CreditLedger</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">ratio_config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditRatioConfig" title="mindroot.coreplugins.credits.models.CreditRatioConfig"><span class="pre">CreditRatioConfig</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">base_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/conversion.html#CreditPolicy"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.conversion.CreditPolicy" title="Link to this definition">¶</a></dt>
259
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
260
+ <p>Encapsulates credit-related business rules and policies</p>
261
+ <dl class="py method">
262
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.conversion.CreditPolicy.check_operation_allowed">
263
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">check_operation_allowed</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">estimated_cost</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/conversion.html#CreditPolicy.check_operation_allowed"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.conversion.CreditPolicy.check_operation_allowed" title="Link to this definition">¶</a></dt>
264
+ <dd><p>Check if an operation should be allowed based on estimated cost</p>
265
+ </dd></dl>
266
+
267
+ <dl class="py method">
268
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.conversion.CreditPolicy.estimate_credits_needed">
269
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">estimate_credits_needed</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">estimated_cost</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/conversion.html#CreditPolicy.estimate_credits_needed"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.conversion.CreditPolicy.estimate_credits_needed" title="Link to this definition">¶</a></dt>
270
+ <dd><p>Estimate credits needed for an operation</p>
271
+ </dd></dl>
272
+
273
+ <dl class="py method">
274
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.conversion.CreditPolicy.get_user_limits">
275
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_user_limits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/conversion.html#CreditPolicy.get_user_limits"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.conversion.CreditPolicy.get_user_limits" title="Link to this definition">¶</a></dt>
276
+ <dd><p>Get user’s credit limits and current usage</p>
277
+ </dd></dl>
278
+
279
+ </dd></dl>
280
+
281
+ <dl class="py class">
282
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.conversion.CreditUsageHandler">
283
+ <em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.conversion.</span></span><span class="sig-name descname"><span class="pre">CreditUsageHandler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ledger</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger" title="mindroot.coreplugins.credits.ledger.CreditLedger"><span class="pre">CreditLedger</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">ratio_config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditRatioConfig" title="mindroot.coreplugins.credits.models.CreditRatioConfig"><span class="pre">CreditRatioConfig</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">base_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/conversion.html#CreditUsageHandler"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.conversion.CreditUsageHandler" title="Link to this definition">¶</a></dt>
284
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
285
+ <p>Converts usage costs to credits and records credit transactions.</p>
286
+ <dl class="py method">
287
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.conversion.CreditUsageHandler.handle_usage">
288
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">handle_usage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">quantity</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/conversion.html#CreditUsageHandler.handle_usage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.conversion.CreditUsageHandler.handle_usage" title="Link to this definition">¶</a></dt>
289
+ <dd><p>Handle a usage event by converting cost to credits and recording transaction</p>
290
+ </dd></dl>
291
+
292
+ </dd></dl>
293
+
294
+ </section>
295
+ <section id="module-mindroot.coreplugins.credits.ledger">
296
+ <span id="mindroot-coreplugins-credits-ledger-module"></span><h2>mindroot.coreplugins.credits.ledger module<a class="headerlink" href="#module-mindroot.coreplugins.credits.ledger" title="Link to this heading">¶</a></h2>
297
+ <dl class="py class">
298
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger">
299
+ <em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.ledger.</span></span><span class="sig-name descname"><span class="pre">CreditLedger</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">storage</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#mindroot.coreplugins.credits.storage.CreditStorage" title="mindroot.coreplugins.credits.storage.CreditStorage"><span class="pre">CreditStorage</span></a></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger" title="Link to this definition">¶</a></dt>
300
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
301
+ <p>Manages credit transactions and balances.
302
+ Ensures consistency and provides high-level credit operations.</p>
303
+ <dl class="py method">
304
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.check_credits_available">
305
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">check_credits_available</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">required_amount</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">bool</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.check_credits_available"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.check_credits_available" title="Link to this definition">¶</a></dt>
306
+ <dd><p>Check if user has sufficient credits</p>
307
+ <dl class="field-list simple">
308
+ <dt class="field-odd">Returns<span class="colon">:</span></dt>
309
+ <dd class="field-odd"><p>has_sufficient, float: current_balance)</p>
310
+ </dd>
311
+ <dt class="field-even">Return type<span class="colon">:</span></dt>
312
+ <dd class="field-even"><p>Tuple of (bool</p>
313
+ </dd>
314
+ </dl>
315
+ </dd></dl>
316
+
317
+ <dl class="py method">
318
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.get_balance">
319
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_balance</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.get_balance"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_balance" title="Link to this definition">¶</a></dt>
320
+ <dd><p>Get current credit balance</p>
321
+ </dd></dl>
322
+
323
+ <dl class="py method">
324
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.get_balance_at">
325
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_balance_at</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">at_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.get_balance_at"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_balance_at" title="Link to this definition">¶</a></dt>
326
+ <dd><p>Get credit balance at a specific date</p>
327
+ </dd></dl>
328
+
329
+ <dl class="py method">
330
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.get_transactions">
331
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_transactions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction" title="mindroot.coreplugins.credits.models.CreditTransaction"><span class="pre">CreditTransaction</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.get_transactions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_transactions" title="Link to this definition">¶</a></dt>
332
+ <dd><p>Get transaction history</p>
333
+ </dd></dl>
334
+
335
+ <dl class="py method">
336
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.get_usage_summary">
337
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_usage_summary</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.get_usage_summary"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_usage_summary" title="Link to this definition">¶</a></dt>
338
+ <dd><p>Get summary of credit usage</p>
339
+ </dd></dl>
340
+
341
+ <dl class="py method">
342
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.record_allocation">
343
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">record_allocation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">amount</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.record_allocation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.record_allocation" title="Link to this definition">¶</a></dt>
344
+ <dd><p>Record a credit allocation (positive credit change)</p>
345
+ </dd></dl>
346
+
347
+ <dl class="py method">
348
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.record_refund">
349
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">record_refund</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">amount</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">original_transaction_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.record_refund"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.record_refund" title="Link to this definition">¶</a></dt>
350
+ <dd><p>Record a credit refund (reversal of usage)</p>
351
+ </dd></dl>
352
+
353
+ <dl class="py method">
354
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.CreditLedger.record_usage">
355
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">record_usage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">amount</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">allow_negative</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#CreditLedger.record_usage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.CreditLedger.record_usage" title="Link to this definition">¶</a></dt>
356
+ <dd><p>Record a credit usage (negative credit change)</p>
357
+ </dd></dl>
358
+
359
+ </dd></dl>
360
+
361
+ <dl class="py exception">
362
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.ledger.InsufficientCreditsError">
363
+ <em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.ledger.</span></span><span class="sig-name descname"><span class="pre">InsufficientCreditsError</span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/ledger.html#InsufficientCreditsError"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.ledger.InsufficientCreditsError" title="Link to this definition">¶</a></dt>
364
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
365
+ </dd></dl>
366
+
367
+ </section>
368
+ <section id="module-mindroot.coreplugins.credits.mod">
369
+ <span id="mindroot-coreplugins-credits-mod-module"></span><h2>mindroot.coreplugins.credits.mod module<a class="headerlink" href="#module-mindroot.coreplugins.credits.mod" title="Link to this heading">¶</a></h2>
370
+ <dl class="py class">
371
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.CreditsPlugin">
372
+ <em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">CreditsPlugin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#CreditsPlugin"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.CreditsPlugin" title="Link to this definition">¶</a></dt>
373
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
374
+ <dl class="py method">
375
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.CreditsPlugin.create_components">
376
+ <span class="sig-name descname"><span class="pre">create_components</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#CreditsPlugin.create_components"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.CreditsPlugin.create_components" title="Link to this definition">¶</a></dt>
377
+ <dd><p>Create fresh instances of all credit system components</p>
378
+ </dd></dl>
379
+
380
+ </dd></dl>
381
+
382
+ <dl class="py function">
383
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.allocate_credits">
384
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">allocate_credits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">amount</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#allocate_credits"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.allocate_credits" title="Link to this definition">¶</a></dt>
385
+ <dd><p>Allocate credits to a user.</p>
386
+ <dl class="field-list simple">
387
+ <dt class="field-odd">Parameters<span class="colon">:</span></dt>
388
+ <dd class="field-odd"><ul class="simple">
389
+ <li><p><strong>username</strong> – User to allocate credits to</p></li>
390
+ <li><p><strong>amount</strong> – Amount of credits to allocate</p></li>
391
+ <li><p><strong>source</strong> – Source of allocation (e.g., ‘purchase’, ‘admin_grant’)</p></li>
392
+ <li><p><strong>reference_id</strong> – External reference (e.g., payment ID)</p></li>
393
+ <li><p><strong>metadata</strong> – Additional information about allocation</p></li>
394
+ <li><p><strong>context</strong> – Request context</p></li>
395
+ </ul>
396
+ </dd>
397
+ <dt class="field-even">Returns<span class="colon">:</span></dt>
398
+ <dd class="field-even"><p>New credit balance</p>
399
+ </dd>
400
+ <dt class="field-odd">Return type<span class="colon">:</span></dt>
401
+ <dd class="field-odd"><p>float</p>
402
+ </dd>
403
+ </dl>
404
+ <p class="rubric">Example</p>
405
+ <dl class="simple">
406
+ <dt>new_balance = await allocate_credits(</dt><dd><p>‘user123’,
407
+ 1000.0,
408
+ ‘purchase’,
409
+ ‘payment_123’,
410
+ {‘payment_method’: ‘stripe’}</p>
411
+ </dd>
412
+ </dl>
413
+ <p>)</p>
414
+ </dd></dl>
415
+
416
+ <dl class="py function">
417
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.check_credits_available">
418
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">check_credits_available</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">required_amount</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#check_credits_available"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.check_credits_available" title="Link to this definition">¶</a></dt>
419
+ <dd><p>Check if user has sufficient credits.</p>
420
+ <dl class="field-list simple">
421
+ <dt class="field-odd">Returns<span class="colon">:</span></dt>
422
+ <dd class="field-odd"><p>Dict with ‘has_sufficient’ and ‘current_balance’ keys</p>
423
+ </dd>
424
+ </dl>
425
+ </dd></dl>
426
+
427
+ <dl class="py function">
428
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.estimate_credits">
429
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">estimate_credits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">estimated_cost</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#estimate_credits"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.estimate_credits" title="Link to this definition">¶</a></dt>
430
+ <dd><p>Estimate credits needed for an operation.</p>
431
+ <p class="rubric">Example</p>
432
+ <dl class="simple">
433
+ <dt>estimate = await estimate_credits(</dt><dd><p>‘gpt4’,
434
+ ‘gpt4.input_tokens’,
435
+ 0.01, # $0.01
436
+ ‘gpt-4-1106-preview’</p>
437
+ </dd>
438
+ </dl>
439
+ <p>)</p>
440
+ </dd></dl>
441
+
442
+ <dl class="py function">
443
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.get_base_path">
444
+ <span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">get_base_path</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#get_base_path"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.get_base_path" title="Link to this definition">¶</a></dt>
445
+ <dd><p>Get the base path for credit data storage</p>
446
+ </dd></dl>
447
+
448
+ <dl class="py function">
449
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.get_credit_balance">
450
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">get_credit_balance</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#get_credit_balance"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.get_credit_balance" title="Link to this definition">¶</a></dt>
451
+ <dd><p>Get current credit balance for a user.</p>
452
+ <p class="rubric">Example</p>
453
+ <p>balance = await get_credit_balance(‘user123’)</p>
454
+ </dd></dl>
455
+
456
+ <dl class="py function">
457
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.get_credit_ratios">
458
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">get_credit_ratios</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#get_credit_ratios"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.get_credit_ratios" title="Link to this definition">¶</a></dt>
459
+ <dd><p>Get current credit ratio configuration.</p>
460
+ </dd></dl>
461
+
462
+ <dl class="py function">
463
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.get_credit_report">
464
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">get_credit_report</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#get_credit_report"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.get_credit_report" title="Link to this definition">¶</a></dt>
465
+ <dd><p>Get detailed credit report for a user.</p>
466
+ <dl class="field-list simple">
467
+ <dt class="field-odd">Parameters<span class="colon">:</span></dt>
468
+ <dd class="field-odd"><ul class="simple">
469
+ <li><p><strong>username</strong> – User to get report for</p></li>
470
+ <li><p><strong>start_date</strong> – Optional start date (YYYY-MM-DD)</p></li>
471
+ <li><p><strong>end_date</strong> – Optional end date (YYYY-MM-DD)</p></li>
472
+ </ul>
473
+ </dd>
474
+ <dt class="field-even">Returns<span class="colon">:</span></dt>
475
+ <dd class="field-even"><p><ul class="simple">
476
+ <li><p>Current balance</p></li>
477
+ <li><p>Transaction history</p></li>
478
+ <li><p>Usage summary</p></li>
479
+ </ul>
480
+ </p>
481
+ </dd>
482
+ <dt class="field-odd">Return type<span class="colon">:</span></dt>
483
+ <dd class="field-odd"><p>Dict containing</p>
484
+ </dd>
485
+ </dl>
486
+ </dd></dl>
487
+
488
+ <dl class="py function">
489
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.handle_usage">
490
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">handle_usage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">quantity</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#handle_usage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.handle_usage" title="Link to this definition">¶</a></dt>
491
+ <dd><p>Handle usage tracking for credits system.
492
+ This service is called by the usage plugin after tracking usage.</p>
493
+ </dd></dl>
494
+
495
+ <dl class="py function">
496
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.set_credit_ratio">
497
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">set_credit_ratio</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ratio</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#set_credit_ratio"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.set_credit_ratio" title="Link to this definition">¶</a></dt>
498
+ <dd><p>Set credit ratio for cost conversion.</p>
499
+ <dl class="field-list simple">
500
+ <dt class="field-odd">Parameters<span class="colon">:</span></dt>
501
+ <dd class="field-odd"><ul class="simple">
502
+ <li><p><strong>ratio</strong> – Credits per unit cost</p></li>
503
+ <li><p><strong>plugin_id</strong> – Optional plugin identifier</p></li>
504
+ <li><p><strong>cost_type_id</strong> – Optional cost type identifier</p></li>
505
+ <li><p><strong>model_id</strong> – Optional model identifier</p></li>
506
+ </ul>
507
+ </dd>
508
+ </dl>
509
+ <p class="rubric">Example</p>
510
+ <p># Set global default ratio
511
+ await set_credit_ratio(100.0)</p>
512
+ <p># Set model-specific ratio
513
+ await set_credit_ratio(</p>
514
+ <blockquote>
515
+ <div><p>90.0,
516
+ plugin_id=’gpt4’,
517
+ cost_type_id=’gpt4.input_tokens’,
518
+ model_id=’gpt-4-1106-preview’</p>
519
+ </div></blockquote>
520
+ <p>)</p>
521
+ </dd></dl>
522
+
523
+ <dl class="py function">
524
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.mod.startup">
525
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.mod.</span></span><span class="sig-name descname"><span class="pre">startup</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">app</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">context</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/mod.html#startup"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.mod.startup" title="Link to this definition">¶</a></dt>
526
+ <dd><p>Startup tasks</p>
527
+ </dd></dl>
528
+
529
+ </section>
530
+ <section id="module-mindroot.coreplugins.credits.models">
531
+ <span id="mindroot-coreplugins-credits-models-module"></span><h2>mindroot.coreplugins.credits.models module<a class="headerlink" href="#module-mindroot.coreplugins.credits.models" title="Link to this heading">¶</a></h2>
532
+ <dl class="py class">
533
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditRatioConfig">
534
+ <em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.models.</span></span><span class="sig-name descname"><span class="pre">CreditRatioConfig</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditRatioConfig"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditRatioConfig" title="Link to this definition">¶</a></dt>
535
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
536
+ <p>Manages the hierarchical credit ratio configuration</p>
537
+ <dl class="py method">
538
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditRatioConfig.get_config">
539
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_config</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditRatioConfig.get_config"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.get_config" title="Link to this definition">¶</a></dt>
540
+ <dd><p>Get the full configuration</p>
541
+ </dd></dl>
542
+
543
+ <dl class="py method">
544
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditRatioConfig.get_ratio">
545
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_ratio</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditRatioConfig.get_ratio"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.get_ratio" title="Link to this definition">¶</a></dt>
546
+ <dd><p>Get the appropriate credit ratio following the resolution order</p>
547
+ </dd></dl>
548
+
549
+ <dl class="py method">
550
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditRatioConfig.set_config">
551
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">set_config</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditRatioConfig.set_config"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.set_config" title="Link to this definition">¶</a></dt>
552
+ <dd><p>Set the full configuration</p>
553
+ </dd></dl>
554
+
555
+ <dl class="py method">
556
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditRatioConfig.set_ratio">
557
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">set_ratio</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ratio</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditRatioConfig.set_ratio"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.set_ratio" title="Link to this definition">¶</a></dt>
558
+ <dd><p>Set a credit ratio at the specified level</p>
559
+ </dd></dl>
560
+
561
+ </dd></dl>
562
+
563
+ <dl class="py class">
564
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction">
565
+ <em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.models.</span></span><span class="sig-name descname"><span class="pre">CreditTransaction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timestamp:</span> <span class="pre">datetime.datetime</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">username:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">amount:</span> <span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">balance:</span> <span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">type:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reference_id:</span> <span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metadata:</span> <span class="pre">Dict[str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Any]</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">transaction_id:</span> <span class="pre">str</span> <span class="pre">=</span> <span class="pre">&lt;factory&gt;</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditTransaction"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction" title="Link to this definition">¶</a></dt>
566
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
567
+ <dl class="py attribute">
568
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.amount">
569
+ <span class="sig-name descname"><span class="pre">amount</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.amount" title="Link to this definition">¶</a></dt>
570
+ <dd></dd></dl>
571
+
572
+ <dl class="py attribute">
573
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.balance">
574
+ <span class="sig-name descname"><span class="pre">balance</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.balance" title="Link to this definition">¶</a></dt>
575
+ <dd></dd></dl>
576
+
577
+ <dl class="py method">
578
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.from_dict">
579
+ <em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction" title="mindroot.coreplugins.credits.models.CreditTransaction"><span class="pre">CreditTransaction</span></a></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditTransaction.from_dict"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.from_dict" title="Link to this definition">¶</a></dt>
580
+ <dd></dd></dl>
581
+
582
+ <dl class="py attribute">
583
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.metadata">
584
+ <span class="sig-name descname"><span class="pre">metadata</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.metadata" title="Link to this definition">¶</a></dt>
585
+ <dd></dd></dl>
586
+
587
+ <dl class="py attribute">
588
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.reference_id">
589
+ <span class="sig-name descname"><span class="pre">reference_id</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.reference_id" title="Link to this definition">¶</a></dt>
590
+ <dd></dd></dl>
591
+
592
+ <dl class="py attribute">
593
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.source">
594
+ <span class="sig-name descname"><span class="pre">source</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.source" title="Link to this definition">¶</a></dt>
595
+ <dd></dd></dl>
596
+
597
+ <dl class="py attribute">
598
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.timestamp">
599
+ <span class="sig-name descname"><span class="pre">timestamp</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">datetime</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.timestamp" title="Link to this definition">¶</a></dt>
600
+ <dd></dd></dl>
601
+
602
+ <dl class="py method">
603
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.to_dict">
604
+ <span class="sig-name descname"><span class="pre">to_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/models.html#CreditTransaction.to_dict"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.to_dict" title="Link to this definition">¶</a></dt>
605
+ <dd></dd></dl>
606
+
607
+ <dl class="py attribute">
608
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.transaction_id">
609
+ <span class="sig-name descname"><span class="pre">transaction_id</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.transaction_id" title="Link to this definition">¶</a></dt>
610
+ <dd></dd></dl>
611
+
612
+ <dl class="py attribute">
613
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.type">
614
+ <span class="sig-name descname"><span class="pre">type</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.type" title="Link to this definition">¶</a></dt>
615
+ <dd></dd></dl>
616
+
617
+ <dl class="py attribute">
618
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.models.CreditTransaction.username">
619
+ <span class="sig-name descname"><span class="pre">username</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#mindroot.coreplugins.credits.models.CreditTransaction.username" title="Link to this definition">¶</a></dt>
620
+ <dd></dd></dl>
621
+
622
+ </dd></dl>
623
+
624
+ </section>
625
+ <section id="module-mindroot.coreplugins.credits.router">
626
+ <span id="mindroot-coreplugins-credits-router-module"></span><h2>mindroot.coreplugins.credits.router module<a class="headerlink" href="#module-mindroot.coreplugins.credits.router" title="Link to this heading">¶</a></h2>
627
+ <dl class="py function">
628
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.router.api_allocate_credits">
629
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.router.</span></span><span class="sig-name descname"><span class="pre">api_allocate_credits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/router.html#api_allocate_credits"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.router.api_allocate_credits" title="Link to this definition">¶</a></dt>
630
+ <dd><p>Allocate credits to a user</p>
631
+ <p>Request body:
632
+ {</p>
633
+ <blockquote>
634
+ <div><p>“username”: str,
635
+ “amount”: float,
636
+ “source”: str,
637
+ “reference_id”: str,
638
+ “metadata”: dict (optional)</p>
639
+ </div></blockquote>
640
+ <p>}</p>
641
+ </dd></dl>
642
+
643
+ <dl class="py function">
644
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.router.api_credit_report">
645
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.router.</span></span><span class="sig-name descname"><span class="pre">api_credit_report</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/router.html#api_credit_report"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.router.api_credit_report" title="Link to this definition">¶</a></dt>
646
+ <dd><p>Get credit report for a user</p>
647
+ <dl class="simple">
648
+ <dt>Path parameters:</dt><dd><p>username: str - Username to get report for</p>
649
+ </dd>
650
+ <dt>Query parameters:</dt><dd><p>start_date: Optional[str] - Start date in YYYY-MM-DD format
651
+ end_date: Optional[str] - End date in YYYY-MM-DD format</p>
652
+ </dd>
653
+ </dl>
654
+ </dd></dl>
655
+
656
+ <dl class="py function">
657
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.router.api_estimate_credits">
658
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.router.</span></span><span class="sig-name descname"><span class="pre">api_estimate_credits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">plugin_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cost_type_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">estimated_cost</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">model_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/router.html#api_estimate_credits"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.router.api_estimate_credits" title="Link to this definition">¶</a></dt>
659
+ <dd><p>Estimate credits needed for an operation</p>
660
+ <dl class="simple">
661
+ <dt>Query parameters:</dt><dd><p>plugin_id: str - Plugin identifier
662
+ cost_type_id: str - Cost type identifier
663
+ estimated_cost: float - Estimated cost in base currency
664
+ model_id: Optional[str] - Model identifier</p>
665
+ </dd>
666
+ </dl>
667
+ </dd></dl>
668
+
669
+ <dl class="py function">
670
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.router.api_update_ratio">
671
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.router.</span></span><span class="sig-name descname"><span class="pre">api_update_ratio</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/router.html#api_update_ratio"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.router.api_update_ratio" title="Link to this definition">¶</a></dt>
672
+ <dd><p>Update credit ratio configuration</p>
673
+ <p>Request body:
674
+ {</p>
675
+ <blockquote>
676
+ <div><p>“ratio”: float,
677
+ “plugin_id”: str (optional),
678
+ “cost_type_id”: str (optional),
679
+ “model_id”: str (optional)</p>
680
+ </div></blockquote>
681
+ <p>}</p>
682
+ </dd></dl>
683
+
684
+ <dl class="py function">
685
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.router.credits_admin">
686
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.router.</span></span><span class="sig-name descname"><span class="pre">credits_admin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/router.html#credits_admin"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.router.credits_admin" title="Link to this definition">¶</a></dt>
687
+ <dd><p>Admin interface for credit management</p>
688
+ </dd></dl>
689
+
690
+ <dl class="py function">
691
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.router.credits_ratio_admin">
692
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.router.</span></span><span class="sig-name descname"><span class="pre">credits_ratio_admin</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">request</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Request</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/router.html#credits_ratio_admin"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.router.credits_ratio_admin" title="Link to this definition">¶</a></dt>
693
+ <dd><p>Admin interface for credit ratio configuration</p>
694
+ </dd></dl>
695
+
696
+ </section>
697
+ <section id="module-mindroot.coreplugins.credits.storage">
698
+ <span id="mindroot-coreplugins-credits-storage-module"></span><h2>mindroot.coreplugins.credits.storage module<a class="headerlink" href="#module-mindroot.coreplugins.credits.storage" title="Link to this heading">¶</a></h2>
699
+ <dl class="py class">
700
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.storage.CreditStorage">
701
+ <em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mindroot.coreplugins.credits.storage.</span></span><span class="sig-name descname"><span class="pre">CreditStorage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/storage.html#CreditStorage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.storage.CreditStorage" title="Link to this definition">¶</a></dt>
702
+ <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
703
+ <dl class="py method">
704
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.storage.CreditStorage.get_balance_at">
705
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_balance_at</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">at_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/storage.html#CreditStorage.get_balance_at"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.storage.CreditStorage.get_balance_at" title="Link to this definition">¶</a></dt>
706
+ <dd><p>Get the user’s balance at a specific date</p>
707
+ </dd></dl>
708
+
709
+ <dl class="py method">
710
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.storage.CreditStorage.get_latest_balance">
711
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_latest_balance</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/storage.html#CreditStorage.get_latest_balance"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.storage.CreditStorage.get_latest_balance" title="Link to this definition">¶</a></dt>
712
+ <dd><p>Get the user’s latest balance</p>
713
+ </dd></dl>
714
+
715
+ <dl class="py method">
716
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.storage.CreditStorage.get_transactions">
717
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_transactions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">username</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">start_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">end_date</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">date</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction" title="mindroot.coreplugins.credits.models.CreditTransaction"><span class="pre">CreditTransaction</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/storage.html#CreditStorage.get_transactions"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.storage.CreditStorage.get_transactions" title="Link to this definition">¶</a></dt>
718
+ <dd><p>Get credit transactions for a user within date range</p>
719
+ </dd></dl>
720
+
721
+ <dl class="py method">
722
+ <dt class="sig sig-object py" id="mindroot.coreplugins.credits.storage.CreditStorage.store_transaction">
723
+ <em class="property"><span class="k"><span class="pre">async</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">store_transaction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">transaction</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction" title="mindroot.coreplugins.credits.models.CreditTransaction"><span class="pre">CreditTransaction</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference internal" href="../_modules/mindroot/coreplugins/credits/storage.html#CreditStorage.store_transaction"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mindroot.coreplugins.credits.storage.CreditStorage.store_transaction" title="Link to this definition">¶</a></dt>
724
+ <dd><p>Store a credit transaction</p>
725
+ </dd></dl>
726
+
727
+ </dd></dl>
728
+
729
+ </section>
730
+ <section id="module-mindroot.coreplugins.credits">
731
+ <span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-mindroot.coreplugins.credits" title="Link to this heading">¶</a></h2>
732
+ </section>
733
+ </section>
734
+
735
+ </article>
736
+ </div>
737
+ <footer>
738
+
739
+ <div class="related-pages">
740
+
741
+
742
+ </div>
743
+ <div class="bottom-of-page">
744
+ <div class="left-details">
745
+ <div class="copyright">
746
+ Copyright &#169; 2025, Jason Livesay
747
+ </div>
748
+ Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
749
+
750
+ <a href="https://github.com/pradyunsg/furo">Furo</a>
751
+
752
+ </div>
753
+ <div class="right-details">
754
+
755
+ </div>
756
+ </div>
757
+
758
+ </footer>
759
+ </div>
760
+ <aside class="toc-drawer">
761
+
762
+
763
+ <div class="toc-sticky toc-scroll">
764
+ <div class="toc-title-container">
765
+ <span class="toc-title">
766
+ On this page
767
+ </span>
768
+ </div>
769
+ <div class="toc-tree-container">
770
+ <div class="toc-tree">
771
+ <ul>
772
+ <li><a class="reference internal" href="#">mindroot.coreplugins.credits package</a><ul>
773
+ <li><a class="reference internal" href="#submodules">Submodules</a></li>
774
+ <li><a class="reference internal" href="#module-mindroot.coreplugins.credits.conversion">mindroot.coreplugins.credits.conversion module</a><ul>
775
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.conversion.CreditPolicy"><code class="docutils literal notranslate"><span class="pre">CreditPolicy</span></code></a><ul>
776
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.conversion.CreditPolicy.check_operation_allowed"><code class="docutils literal notranslate"><span class="pre">CreditPolicy.check_operation_allowed()</span></code></a></li>
777
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.conversion.CreditPolicy.estimate_credits_needed"><code class="docutils literal notranslate"><span class="pre">CreditPolicy.estimate_credits_needed()</span></code></a></li>
778
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.conversion.CreditPolicy.get_user_limits"><code class="docutils literal notranslate"><span class="pre">CreditPolicy.get_user_limits()</span></code></a></li>
779
+ </ul>
780
+ </li>
781
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.conversion.CreditUsageHandler"><code class="docutils literal notranslate"><span class="pre">CreditUsageHandler</span></code></a><ul>
782
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.conversion.CreditUsageHandler.handle_usage"><code class="docutils literal notranslate"><span class="pre">CreditUsageHandler.handle_usage()</span></code></a></li>
783
+ </ul>
784
+ </li>
785
+ </ul>
786
+ </li>
787
+ <li><a class="reference internal" href="#module-mindroot.coreplugins.credits.ledger">mindroot.coreplugins.credits.ledger module</a><ul>
788
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger"><code class="docutils literal notranslate"><span class="pre">CreditLedger</span></code></a><ul>
789
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.check_credits_available"><code class="docutils literal notranslate"><span class="pre">CreditLedger.check_credits_available()</span></code></a></li>
790
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_balance"><code class="docutils literal notranslate"><span class="pre">CreditLedger.get_balance()</span></code></a></li>
791
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_balance_at"><code class="docutils literal notranslate"><span class="pre">CreditLedger.get_balance_at()</span></code></a></li>
792
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_transactions"><code class="docutils literal notranslate"><span class="pre">CreditLedger.get_transactions()</span></code></a></li>
793
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.get_usage_summary"><code class="docutils literal notranslate"><span class="pre">CreditLedger.get_usage_summary()</span></code></a></li>
794
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.record_allocation"><code class="docutils literal notranslate"><span class="pre">CreditLedger.record_allocation()</span></code></a></li>
795
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.record_refund"><code class="docutils literal notranslate"><span class="pre">CreditLedger.record_refund()</span></code></a></li>
796
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.CreditLedger.record_usage"><code class="docutils literal notranslate"><span class="pre">CreditLedger.record_usage()</span></code></a></li>
797
+ </ul>
798
+ </li>
799
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.ledger.InsufficientCreditsError"><code class="docutils literal notranslate"><span class="pre">InsufficientCreditsError</span></code></a></li>
800
+ </ul>
801
+ </li>
802
+ <li><a class="reference internal" href="#module-mindroot.coreplugins.credits.mod">mindroot.coreplugins.credits.mod module</a><ul>
803
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.CreditsPlugin"><code class="docutils literal notranslate"><span class="pre">CreditsPlugin</span></code></a><ul>
804
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.CreditsPlugin.create_components"><code class="docutils literal notranslate"><span class="pre">CreditsPlugin.create_components()</span></code></a></li>
805
+ </ul>
806
+ </li>
807
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.allocate_credits"><code class="docutils literal notranslate"><span class="pre">allocate_credits()</span></code></a></li>
808
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.check_credits_available"><code class="docutils literal notranslate"><span class="pre">check_credits_available()</span></code></a></li>
809
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.estimate_credits"><code class="docutils literal notranslate"><span class="pre">estimate_credits()</span></code></a></li>
810
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.get_base_path"><code class="docutils literal notranslate"><span class="pre">get_base_path()</span></code></a></li>
811
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.get_credit_balance"><code class="docutils literal notranslate"><span class="pre">get_credit_balance()</span></code></a></li>
812
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.get_credit_ratios"><code class="docutils literal notranslate"><span class="pre">get_credit_ratios()</span></code></a></li>
813
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.get_credit_report"><code class="docutils literal notranslate"><span class="pre">get_credit_report()</span></code></a></li>
814
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.handle_usage"><code class="docutils literal notranslate"><span class="pre">handle_usage()</span></code></a></li>
815
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.set_credit_ratio"><code class="docutils literal notranslate"><span class="pre">set_credit_ratio()</span></code></a></li>
816
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.mod.startup"><code class="docutils literal notranslate"><span class="pre">startup()</span></code></a></li>
817
+ </ul>
818
+ </li>
819
+ <li><a class="reference internal" href="#module-mindroot.coreplugins.credits.models">mindroot.coreplugins.credits.models module</a><ul>
820
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditRatioConfig"><code class="docutils literal notranslate"><span class="pre">CreditRatioConfig</span></code></a><ul>
821
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.get_config"><code class="docutils literal notranslate"><span class="pre">CreditRatioConfig.get_config()</span></code></a></li>
822
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.get_ratio"><code class="docutils literal notranslate"><span class="pre">CreditRatioConfig.get_ratio()</span></code></a></li>
823
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.set_config"><code class="docutils literal notranslate"><span class="pre">CreditRatioConfig.set_config()</span></code></a></li>
824
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditRatioConfig.set_ratio"><code class="docutils literal notranslate"><span class="pre">CreditRatioConfig.set_ratio()</span></code></a></li>
825
+ </ul>
826
+ </li>
827
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction"><code class="docutils literal notranslate"><span class="pre">CreditTransaction</span></code></a><ul>
828
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.amount"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.amount</span></code></a></li>
829
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.balance"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.balance</span></code></a></li>
830
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.from_dict"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.from_dict()</span></code></a></li>
831
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.metadata"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.metadata</span></code></a></li>
832
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.reference_id"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.reference_id</span></code></a></li>
833
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.source"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.source</span></code></a></li>
834
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.timestamp"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.timestamp</span></code></a></li>
835
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.to_dict"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.to_dict()</span></code></a></li>
836
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.transaction_id"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.transaction_id</span></code></a></li>
837
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.type"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.type</span></code></a></li>
838
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.models.CreditTransaction.username"><code class="docutils literal notranslate"><span class="pre">CreditTransaction.username</span></code></a></li>
839
+ </ul>
840
+ </li>
841
+ </ul>
842
+ </li>
843
+ <li><a class="reference internal" href="#module-mindroot.coreplugins.credits.router">mindroot.coreplugins.credits.router module</a><ul>
844
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.router.api_allocate_credits"><code class="docutils literal notranslate"><span class="pre">api_allocate_credits()</span></code></a></li>
845
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.router.api_credit_report"><code class="docutils literal notranslate"><span class="pre">api_credit_report()</span></code></a></li>
846
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.router.api_estimate_credits"><code class="docutils literal notranslate"><span class="pre">api_estimate_credits()</span></code></a></li>
847
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.router.api_update_ratio"><code class="docutils literal notranslate"><span class="pre">api_update_ratio()</span></code></a></li>
848
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.router.credits_admin"><code class="docutils literal notranslate"><span class="pre">credits_admin()</span></code></a></li>
849
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.router.credits_ratio_admin"><code class="docutils literal notranslate"><span class="pre">credits_ratio_admin()</span></code></a></li>
850
+ </ul>
851
+ </li>
852
+ <li><a class="reference internal" href="#module-mindroot.coreplugins.credits.storage">mindroot.coreplugins.credits.storage module</a><ul>
853
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.storage.CreditStorage"><code class="docutils literal notranslate"><span class="pre">CreditStorage</span></code></a><ul>
854
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.storage.CreditStorage.get_balance_at"><code class="docutils literal notranslate"><span class="pre">CreditStorage.get_balance_at()</span></code></a></li>
855
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.storage.CreditStorage.get_latest_balance"><code class="docutils literal notranslate"><span class="pre">CreditStorage.get_latest_balance()</span></code></a></li>
856
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.storage.CreditStorage.get_transactions"><code class="docutils literal notranslate"><span class="pre">CreditStorage.get_transactions()</span></code></a></li>
857
+ <li><a class="reference internal" href="#mindroot.coreplugins.credits.storage.CreditStorage.store_transaction"><code class="docutils literal notranslate"><span class="pre">CreditStorage.store_transaction()</span></code></a></li>
858
+ </ul>
859
+ </li>
860
+ </ul>
861
+ </li>
862
+ <li><a class="reference internal" href="#module-mindroot.coreplugins.credits">Module contents</a></li>
863
+ </ul>
864
+ </li>
865
+ </ul>
866
+
867
+ </div>
868
+ </div>
869
+ </div>
870
+
871
+
872
+ </aside>
873
+ </div>
874
+ </div><script src="../_static/documentation_options.js?v=3c16008f"></script>
875
+ <script src="../_static/doctools.js?v=9bcbadda"></script>
876
+ <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
877
+ <script src="../_static/scripts/furo.js?v=46bd48cc"></script>
878
+ </body>
879
+ </html>