mito-ai 0.1.35__tar.gz → 0.1.37__tar.gz

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 mito-ai might be problematic. Click here for more details.

Files changed (948) hide show
  1. {mito_ai-0.1.35 → mito_ai-0.1.37}/PKG-INFO +1 -1
  2. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/__init__.py +6 -4
  3. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/_version.py +1 -1
  4. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/anthropic_client.py +3 -10
  5. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/app_builder/handlers.py +89 -11
  6. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/app_builder/models.py +3 -0
  7. mito_ai-0.1.37/mito_ai/auth/README.md +18 -0
  8. mito_ai-0.1.37/mito_ai/auth/__init__.py +6 -0
  9. mito_ai-0.1.37/mito_ai/auth/handlers.py +96 -0
  10. mito_ai-0.1.37/mito_ai/auth/urls.py +13 -0
  11. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/chat_completion_handler.py +2 -2
  12. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/models.py +7 -6
  13. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/agent_execution_prompt.py +8 -3
  14. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/agent_system_message.py +21 -7
  15. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/chat_prompt.py +18 -11
  16. mito_ai-0.1.37/mito_ai/completions/prompt_builders/utils.py +65 -0
  17. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/constants.py +11 -1
  18. {mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai → mito_ai-0.1.37/mito_ai/labextension}/build_log.json +100 -100
  19. {mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai → mito_ai-0.1.37/mito_ai/labextension}/package.json +2 -2
  20. {mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai → mito_ai-0.1.37/mito_ai/labextension}/schemas/mito_ai/package.json.orig +1 -1
  21. mito_ai-0.1.35/mito_ai/labextension/static/lib_index_js.a20772bc113422d0f505.js → mito_ai-0.1.37/mito_ai/labextension/static/lib_index_js.831f63b48760c7119b9b.js +1165 -539
  22. mito_ai-0.1.37/mito_ai/labextension/static/lib_index_js.831f63b48760c7119b9b.js.map +1 -0
  23. mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai/static/remoteEntry.d2eea6519fa332d79efb.js → mito_ai-0.1.37/mito_ai/labextension/static/remoteEntry.93ecc9bc0edba61535cc.js +18 -14
  24. mito_ai-0.1.37/mito_ai/labextension/static/remoteEntry.93ecc9bc0edba61535cc.js.map +1 -0
  25. mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai/static/style_index_js.76efcc5c3be4056457ee.js → mito_ai-0.1.37/mito_ai/labextension/static/style_index_js.5876024bb17dbd6a3ee6.js +6 -2
  26. mito_ai-0.1.37/mito_ai/labextension/static/style_index_js.5876024bb17dbd6a3ee6.js.map +1 -0
  27. mito_ai-0.1.37/mito_ai/streamlit_conversion/streamlit_agent_handler.py +112 -0
  28. mito_ai-0.1.37/mito_ai/streamlit_conversion/streamlit_system_prompt.py +42 -0
  29. mito_ai-0.1.37/mito_ai/streamlit_conversion/streamlit_utils.py +96 -0
  30. mito_ai-0.1.37/mito_ai/streamlit_conversion/validate_and_run_streamlit_code.py +207 -0
  31. mito_ai-0.1.37/mito_ai/tests/providers/test_stream_mito_server_utils.py +140 -0
  32. mito_ai-0.1.37/mito_ai/tests/streamlit_conversion/test_streamlit_agent_handler.py +265 -0
  33. mito_ai-0.1.37/mito_ai/tests/streamlit_conversion/test_streamlit_utils.py +197 -0
  34. mito_ai-0.1.37/mito_ai/tests/streamlit_conversion/test_validate_and_run_streamlit_code.py +418 -0
  35. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/test_constants.py +18 -3
  36. mito_ai-0.1.37/mito_ai/utils/__init__.py +3 -0
  37. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/anthropic_utils.py +18 -70
  38. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/gemini_utils.py +22 -73
  39. mito_ai-0.1.37/mito_ai/utils/mito_server_utils.py +235 -0
  40. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/open_ai_utils.py +18 -107
  41. {mito_ai-0.1.35 → mito_ai-0.1.37}/package.json +1 -1
  42. {mito_ai-0.1.35 → mito_ai-0.1.37}/pyproject.toml +3 -1
  43. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/AiChatPlugin.ts +11 -2
  44. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatHistoryManager.tsx +9 -6
  45. mito_ai-0.1.37/src/Extensions/AiChat/ChatMessage/ChatDropdown.tsx +313 -0
  46. mito_ai-0.1.37/src/Extensions/AiChat/ChatMessage/ChatDropdownItems.tsx +138 -0
  47. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/ChatInput.tsx +108 -34
  48. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/ChatMessage.tsx +57 -22
  49. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatTaskpane.tsx +16 -19
  50. mito_ai-0.1.37/src/Extensions/AiChat/jupyterSettingsManager.ts +22 -0
  51. mito_ai-0.1.37/src/Extensions/AiChat/utils.tsx +34 -0
  52. mito_ai-0.1.37/src/Extensions/AppBuilder/NotebookToStreamlit.tsx +79 -0
  53. mito_ai-0.1.37/src/Extensions/AppBuilder/auth.ts +168 -0
  54. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AppBuilder/requirementsUtils.tsx +14 -5
  55. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/database/ConnectionList.tsx +7 -2
  56. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/database/model.ts +44 -0
  57. mito_ai-0.1.37/src/components/AgentComponents/AssumptionToolUI.tsx +42 -0
  58. mito_ai-0.1.37/src/components/DatabaseButton.tsx +57 -0
  59. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/IconButton.tsx +5 -2
  60. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/SelectedContextContainer.tsx +20 -4
  61. mito_ai-0.1.37/src/icons/DatabaseIcon.tsx +16 -0
  62. mito_ai-0.1.37/src/icons/DatabaseOutlineIcon.tsx +16 -0
  63. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/restAPI/RestAPI.tsx +14 -0
  64. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/ChatDropdown.test.tsx +33 -24
  65. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/ChatInput.test.tsx +95 -2
  66. mito_ai-0.1.37/src/tests/AiChat/getBase64EncodedCellOutput.test.tsx +97 -0
  67. mito_ai-0.1.37/src/tests/AppBuilder/NotebookToStreamlit.test.tsx +216 -0
  68. mito_ai-0.1.37/src/tests/AppBuilder/auth.test.ts +56 -0
  69. mito_ai-0.1.37/src/tests/AppBuilder/requirementsUtils.test.tsx +532 -0
  70. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/SettingsManager/ConnectionList.test.tsx +1 -1
  71. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/websockets/appBuilder/appBuilderModels.ts +1 -0
  72. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/websockets/completions/CompletionModels.ts +4 -3
  73. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/AgentComponentHeader.css +2 -2
  74. mito_ai-0.1.37/style/AssumptionTool.css +46 -0
  75. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ChatDropdown.css +35 -14
  76. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ChatInput.css +18 -1
  77. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ChatMessage.css +2 -2
  78. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/DatabasePage.css +19 -7
  79. mito_ai-0.1.37/style/IconButton.css +37 -0
  80. mito_ai-0.1.37/style/SelectedContextContainer.css +55 -0
  81. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/base.css +4 -0
  82. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/application-extension/package.json.orig +10 -10
  83. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/package.json.orig +14 -14
  84. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/cell-toolbar-extension/package.json.orig +6 -6
  85. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/celltags-extension/package.json.orig +5 -5
  86. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/codemirror-extension/package.json.orig +9 -9
  87. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/package.json.orig +7 -7
  88. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/console-extension/package.json.orig +13 -13
  89. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/package.json.orig +10 -10
  90. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/debugger-extension/package.json.orig +17 -17
  91. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/package.json.orig +12 -12
  92. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/documentsearch-extension/package.json.orig +6 -6
  93. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/extensionmanager-extension/package.json.orig +7 -7
  94. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/package.json.orig +13 -13
  95. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/package.json.orig +23 -23
  96. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/help-extension/package.json.orig +8 -8
  97. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/htmlviewer-extension/package.json.orig +9 -9
  98. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/package.json.orig +6 -6
  99. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/imageviewer-extension/package.json.orig +6 -6
  100. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/package.json.orig +9 -9
  101. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/package.json.orig +7 -7
  102. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/logconsole-extension/package.json.orig +11 -11
  103. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/lsp-extension/package.json.orig +8 -8
  104. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/mainmenu-extension/package.json.orig +11 -11
  105. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/markdownviewer-extension/package.json.orig +9 -9
  106. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/mathjax-extension/package.json.orig +3 -3
  107. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/metadataform-extension/package.json.orig +7 -7
  108. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/package.json.orig +31 -31
  109. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/running-extension/package.json.orig +12 -12
  110. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/package.json.orig +11 -11
  111. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/shortcuts-extension/package.json.orig +6 -6
  112. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/statusbar-extension/package.json.orig +6 -6
  113. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/terminal-extension/package.json.orig +11 -11
  114. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/toc-extension/package.json.orig +6 -6
  115. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/package.json.orig +11 -11
  116. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/package.json.orig +6 -6
  117. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/package.json.orig +12 -12
  118. mito_ai-0.1.35/venv/share/jupyter/lab/static/9137.179a3c47465e7fb8f067.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/1518.3e4807844734ff34efd0.js +1 -1
  119. mito_ai-0.1.37/venv/share/jupyter/lab/static/2211.04a176892c4c3071836c.js +1 -0
  120. mito_ai-0.1.37/venv/share/jupyter/lab/static/2491.c169ecbc5fde2bcdb1b3.js +1 -0
  121. mito_ai-0.1.35/venv/share/jupyter/lab/static/9744.c7c91fdb0180dcf5cd9b.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/2601.2429d5a03c8465ae6290.js +1 -1
  122. mito_ai-0.1.35/venv/share/jupyter/lab/static/3824.5f2d72e7866264f44c07.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/3824.5e23be1e37fce5b7c6b3.js +1 -1
  123. mito_ai-0.1.35/venv/share/jupyter/lab/static/4010.5271baedaaff5113c699.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/4010.7ccc4c383efb7272d781.js +1 -1
  124. mito_ai-0.1.37/venv/share/jupyter/lab/static/4090.eec44f90a54aa383426c.js +1 -0
  125. mito_ai-0.1.37/venv/share/jupyter/lab/static/4728.56c0b9d87316b2fa012e.js +2 -0
  126. mito_ai-0.1.37/venv/share/jupyter/lab/static/6180.edc40db2566e62650403.js +1 -0
  127. mito_ai-0.1.35/venv/share/jupyter/lab/static/7799.97fcec85f6547cd50a54.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/6208.feaef264d58c31fc4201.js +1 -1
  128. mito_ai-0.1.35/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/6733.bf3398ba9bb890f0fb67.js +2 -2
  129. mito_ai-0.1.35/venv/share/jupyter/lab/static/6986.c4dab251590b27fdd9ad.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/6986.a89a5aba790481992875.js +1 -1
  130. mito_ai-0.1.35/venv/share/jupyter/lab/static/7990.0d774450b53727ab32d5.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/7990.01eaa552261b6e12a74a.js +2 -2
  131. mito_ai-0.1.35/venv/share/jupyter/lab/static/9046.99c477ea375dcbb8c7ca.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/9046.2a28e08629ab71d9ebb1.js +1 -1
  132. mito_ai-0.1.35/venv/share/jupyter/lab/static/9085.93df3ddfd17e1e45d82c.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js +2 -2
  133. mito_ai-0.1.37/venv/share/jupyter/lab/static/9296.c82d1f1a8d9204ca6ed7.js +1 -0
  134. mito_ai-0.1.35/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js → mito_ai-0.1.37/venv/share/jupyter/lab/static/9892.1c3a710069391fd93b5d.js +2 -2
  135. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/build_log.json +99 -99
  136. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/index.html +1 -1
  137. mito_ai-0.1.37/venv/share/jupyter/lab/static/jlab_core.39ffbf5b9a750816e020.js +1 -0
  138. mito_ai-0.1.37/venv/share/jupyter/lab/static/main.2155fa5c4dce2b7a12e6.js +1 -0
  139. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/package.json +154 -154
  140. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/third-party-licenses.json +106 -106
  141. {mito_ai-0.1.35/mito_ai/labextension → mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai}/build_log.json +100 -100
  142. {mito_ai-0.1.35/mito_ai/labextension → mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai}/package.json +2 -2
  143. {mito_ai-0.1.35/mito_ai/labextension → mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai}/schemas/mito_ai/package.json.orig +1 -1
  144. mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai/static/lib_index_js.a20772bc113422d0f505.js → mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai/static/lib_index_js.831f63b48760c7119b9b.js +1165 -539
  145. mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai/static/lib_index_js.831f63b48760c7119b9b.js.map +1 -0
  146. mito_ai-0.1.35/mito_ai/labextension/static/remoteEntry.d2eea6519fa332d79efb.js → mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai/static/remoteEntry.93ecc9bc0edba61535cc.js +18 -14
  147. mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai/static/remoteEntry.93ecc9bc0edba61535cc.js.map +1 -0
  148. mito_ai-0.1.35/mito_ai/labextension/static/style_index_js.76efcc5c3be4056457ee.js → mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js +6 -2
  149. mito_ai-0.1.37/venv/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js.map +1 -0
  150. mito_ai-0.1.35/mito_ai/completions/prompt_builders/utils.py +0 -22
  151. mito_ai-0.1.35/mito_ai/labextension/static/lib_index_js.a20772bc113422d0f505.js.map +0 -1
  152. mito_ai-0.1.35/mito_ai/labextension/static/remoteEntry.d2eea6519fa332d79efb.js.map +0 -1
  153. mito_ai-0.1.35/mito_ai/labextension/static/style_index_js.76efcc5c3be4056457ee.js.map +0 -1
  154. mito_ai-0.1.35/mito_ai/utils/mito_server_utils.py +0 -92
  155. mito_ai-0.1.35/src/Extensions/AiChat/ChatMessage/ChatDropdown.tsx +0 -236
  156. mito_ai-0.1.35/src/Extensions/AppBuilder/NotebookToStreamlit.tsx +0 -155
  157. mito_ai-0.1.35/src/Extensions/AppBuilder/visualizationConversionUtils.tsx +0 -147
  158. mito_ai-0.1.35/src/tests/AppBuilder/NotebookToStreamlit.test.tsx +0 -423
  159. mito_ai-0.1.35/src/tests/AppBuilder/transformVisualizationCell.test.tsx +0 -385
  160. mito_ai-0.1.35/style/IconButton.css +0 -13
  161. mito_ai-0.1.35/style/SelectedContextContainer.css +0 -35
  162. mito_ai-0.1.35/venv/share/jupyter/lab/static/2211.3123543dcc217549bbb0.js +0 -1
  163. mito_ai-0.1.35/venv/share/jupyter/lab/static/4090.c1367cf63af4f0088045.js +0 -1
  164. mito_ai-0.1.35/venv/share/jupyter/lab/static/4728.f59e4bd4b29409da82bc.js +0 -2
  165. mito_ai-0.1.35/venv/share/jupyter/lab/static/4958.0a9dba3bf643df0b91de.js +0 -1
  166. mito_ai-0.1.35/venv/share/jupyter/lab/static/6180.1a4acf96a100bec7a003.js +0 -1
  167. mito_ai-0.1.35/venv/share/jupyter/lab/static/9296.1c75c887f933757c6bfb.js +0 -1
  168. mito_ai-0.1.35/venv/share/jupyter/lab/static/jlab_core.7930f75c363206fef83d.js +0 -1
  169. mito_ai-0.1.35/venv/share/jupyter/lab/static/main.e0ad11baf75be894f6f6.js +0 -1
  170. mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai/static/lib_index_js.a20772bc113422d0f505.js.map +0 -1
  171. mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai/static/remoteEntry.d2eea6519fa332d79efb.js.map +0 -1
  172. mito_ai-0.1.35/venv/share/jupyter/labextensions/mito_ai/static/style_index_js.76efcc5c3be4056457ee.js.map +0 -1
  173. {mito_ai-0.1.35 → mito_ai-0.1.37}/.babelrc +0 -0
  174. {mito_ai-0.1.35 → mito_ai-0.1.37}/.copier-answers.yml +0 -0
  175. {mito_ai-0.1.35 → mito_ai-0.1.37}/.eslintrc.js +0 -0
  176. {mito_ai-0.1.35 → mito_ai-0.1.37}/.gitignore +0 -0
  177. {mito_ai-0.1.35 → mito_ai-0.1.37}/.prettierignore +0 -0
  178. {mito_ai-0.1.35 → mito_ai-0.1.37}/.yarnrc.yml +0 -0
  179. {mito_ai-0.1.35 → mito_ai-0.1.37}/CLAUDE.md +0 -0
  180. {mito_ai-0.1.35 → mito_ai-0.1.37}/LICENSE +0 -0
  181. {mito_ai-0.1.35 → mito_ai-0.1.37}/README.md +0 -0
  182. {mito_ai-0.1.35 → mito_ai-0.1.37}/babel.config.js +0 -0
  183. {mito_ai-0.1.35 → mito_ai-0.1.37}/declarations.d.ts +0 -0
  184. {mito_ai-0.1.35 → mito_ai-0.1.37}/dev/README.md +0 -0
  185. {mito_ai-0.1.35 → mito_ai-0.1.37}/dev/generate_ai_chats.py +0 -0
  186. {mito_ai-0.1.35 → mito_ai-0.1.37}/jest.config.js +0 -0
  187. {mito_ai-0.1.35 → mito_ai-0.1.37}/jupyter-config/jupyter_server_config.d/mito_ai.json +0 -0
  188. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/app_builder/__init__.py +0 -0
  189. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/__init__.py +0 -0
  190. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/agent_auto_error_fixup_handler.py +0 -0
  191. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/agent_execution_handler.py +0 -0
  192. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/code_explain_handler.py +0 -0
  193. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/completion_handler.py +0 -0
  194. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/inline_completer_handler.py +0 -0
  195. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/smart_debug_handler.py +0 -0
  196. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/completion_handlers/utils.py +0 -0
  197. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/handlers.py +0 -0
  198. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/message_history.py +0 -0
  199. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/__init__.py +0 -0
  200. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/agent_smart_debug_prompt.py +0 -0
  201. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/chat_name_prompt.py +0 -0
  202. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/chat_system_message.py +0 -0
  203. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/explain_code_prompt.py +0 -0
  204. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/inline_completer_prompt.py +0 -0
  205. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/prompt_constants.py +0 -0
  206. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/prompt_builders/smart_debug_prompt.py +0 -0
  207. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/completions/providers.py +0 -0
  208. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/__init__.py +0 -0
  209. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/crawlers/__init__.py +0 -0
  210. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/crawlers/base_crawler.py +0 -0
  211. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/crawlers/constants.py +0 -0
  212. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/crawlers/snowflake.py +0 -0
  213. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/handlers.py +0 -0
  214. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/models.py +0 -0
  215. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/urls.py +0 -0
  216. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/db/utils.py +0 -0
  217. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/mssql/compose.yml +0 -0
  218. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/mssql/init/setup.sql +0 -0
  219. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/mysql/compose.yml +0 -0
  220. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/mysql/init/setup.sql +0 -0
  221. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/oracle/compose.yml +0 -0
  222. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/oracle/init/setup.sql +0 -0
  223. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/postgres/compose.yml +0 -0
  224. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/docker/postgres/init/setup.sql +0 -0
  225. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/enterprise/__init__.py +0 -0
  226. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/enterprise/utils.py +0 -0
  227. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/gemini_client.py +0 -0
  228. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/labextension/schemas/mito_ai/toolbar-buttons.json +0 -0
  229. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/labextension/static/style.js +0 -0
  230. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/labextension/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js +0 -0
  231. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/labextension/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map +0 -0
  232. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/labextension/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js +0 -0
  233. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/labextension/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map +0 -0
  234. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/log/handlers.py +0 -0
  235. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/log/urls.py +0 -0
  236. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/logger.py +0 -0
  237. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/openai_client.py +0 -0
  238. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/rules/handlers.py +0 -0
  239. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/rules/urls.py +0 -0
  240. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/rules/utils.py +0 -0
  241. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/settings/handlers.py +0 -0
  242. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/settings/urls.py +0 -0
  243. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/settings/utils.py +0 -0
  244. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/__init__.py +0 -0
  245. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/conftest.py +0 -0
  246. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/create_agent_system_message_prompt_test.py +0 -0
  247. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/data/prompt_lg.py +0 -0
  248. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/data/prompt_sm.py +0 -0
  249. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/data/prompt_xl.py +0 -0
  250. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/data/stock_data.sqlite3 +0 -0
  251. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/conftest.py +0 -0
  252. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/connections_test.py +0 -0
  253. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/mssql_test.py +0 -0
  254. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/mysql_test.py +0 -0
  255. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/oracle_test.py +0 -0
  256. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/postgres_test.py +0 -0
  257. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/schema_test.py +0 -0
  258. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/sqlite_test.py +0 -0
  259. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/db/test_db_constants.py +0 -0
  260. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/message_history/test_generate_short_chat_name.py +0 -0
  261. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/message_history/test_message_history_utils.py +0 -0
  262. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/open_ai_utils_test.py +0 -0
  263. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/performance_test.py +0 -0
  264. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_anthropic_client.py +0 -0
  265. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_azure.py +0 -0
  266. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_capabilities.py +0 -0
  267. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_gemini_client.py +0 -0
  268. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_mito_server_utils.py +0 -0
  269. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_model_resolution.py +0 -0
  270. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_openai_client.py +0 -0
  271. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_provider_completion_exception.py +0 -0
  272. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_provider_limits.py +0 -0
  273. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_providers.py +0 -0
  274. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/test_retry_logic.py +0 -0
  275. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/providers/utils.py +0 -0
  276. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/rules/conftest.py +0 -0
  277. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/rules/rules_test.py +0 -0
  278. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/server_limits_test.py +0 -0
  279. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/settings/conftest.py +0 -0
  280. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/settings/settings_test.py +0 -0
  281. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/settings/test_settings_constants.py +0 -0
  282. {mito_ai-0.1.35/mito_ai/tests/utils → mito_ai-0.1.37/mito_ai/tests/streamlit_conversion}/__init__.py +0 -0
  283. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/test_telemetry.py +0 -0
  284. {mito_ai-0.1.35/mito_ai → mito_ai-0.1.37/mito_ai/tests}/utils/__init__.py +0 -0
  285. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/utils/test_anthropic_utils.py +0 -0
  286. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/utils/test_gemini_utils.py +0 -0
  287. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/tests/version_check_test.py +0 -0
  288. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/create.py +0 -0
  289. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/db.py +0 -0
  290. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/message_history_utils.py +0 -0
  291. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/provider_utils.py +0 -0
  292. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/schema.py +0 -0
  293. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/server_limits.py +0 -0
  294. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/telemetry_utils.py +0 -0
  295. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/utils.py +0 -0
  296. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/version_utils.py +0 -0
  297. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/utils/websocket_base.py +0 -0
  298. {mito_ai-0.1.35 → mito_ai-0.1.37}/mito_ai/version_check.py +0 -0
  299. {mito_ai-0.1.35 → mito_ai-0.1.37}/mypy.ini +0 -0
  300. {mito_ai-0.1.35 → mito_ai-0.1.37}/package-lock.json +0 -0
  301. {mito_ai-0.1.35 → mito_ai-0.1.37}/requirements.txt +0 -0
  302. {mito_ai-0.1.35 → mito_ai-0.1.37}/schema/toolbar-buttons.json +0 -0
  303. {mito_ai-0.1.35 → mito_ai-0.1.37}/setup.py +0 -0
  304. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/CTACarousel.tsx +0 -0
  305. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/AlertBlock.tsx +0 -0
  306. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/AssistantCodeBlock.tsx +0 -0
  307. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/Citation.tsx +0 -0
  308. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/CodeBlockToolbar.tsx +0 -0
  309. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/MarkdownBlock.tsx +0 -0
  310. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/PythonCode.tsx +0 -0
  311. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/ScrollableSuggestions.tsx +0 -0
  312. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatMessage/UserCodeBlock.tsx +0 -0
  313. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/ChatWidget.tsx +0 -0
  314. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/CodeDiffDisplay.tsx +0 -0
  315. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/FirstMessage.ts +0 -0
  316. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AiChat/token.ts +0 -0
  317. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AppBuilder/AppBuilderPlugin.ts +0 -0
  318. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AppBuilder/DeployAppNotification.tsx +0 -0
  319. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AppBuilder/cellConversionUtils.tsx +0 -0
  320. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AppBuilder/fileUtils.tsx +0 -0
  321. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/AppBuilder/visualization_test_notebook.ipynb +0 -0
  322. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/ContextManager/ContextManagerPlugin.ts +0 -0
  323. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/ContextManager/FileInspector.tsx +0 -0
  324. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/ContextManager/VariableInspector.tsx +0 -0
  325. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/ErrorMimeRenderer/CollapsibleWarningBlock.tsx +0 -0
  326. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/ErrorMimeRenderer/ErrorMimeRendererPlugin.tsx +0 -0
  327. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/ErrorMimeRenderer/errorUtils.tsx +0 -0
  328. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/InlineCompleter/index.ts +0 -0
  329. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/InlineCompleter/provider.ts +0 -0
  330. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/NotebookFooter/NotebookFooter.tsx +0 -0
  331. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/NotebookFooter/index.tsx +0 -0
  332. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/SettingsManagerPlugin.tsx +0 -0
  333. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/SettingsWidget.tsx +0 -0
  334. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/database/ConnectionForm.tsx +0 -0
  335. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/database/DatabasePage.tsx +0 -0
  336. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/general/GeneralPage.tsx +0 -0
  337. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/rules/RulesForm.tsx +0 -0
  338. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/rules/RulesPage.tsx +0 -0
  339. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/rules/models.ts +0 -0
  340. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/SettingsManager/support/SupportPage.tsx +0 -0
  341. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/ToolbarButtons/ToolbarButtonsPlugin.tsx +0 -0
  342. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/VersionCheck/index.ts +0 -0
  343. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/emptyCell/EmptyCellPlugin.ts +0 -0
  344. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/emptyCell/emptyCell.ts +0 -0
  345. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/Extensions/status/index.tsx +0 -0
  346. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/commands.tsx +0 -0
  347. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/AgentComponents/AgentComponentHeader.tsx +0 -0
  348. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/AgentComponents/ErrorFixupToolUI.tsx +0 -0
  349. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/AgentComponents/GetCellOutputToolUI.tsx +0 -0
  350. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/DropdownMenu.tsx +0 -0
  351. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/LoadingCircle.tsx +0 -0
  352. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/LoadingDots.tsx +0 -0
  353. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/ModelSelector.tsx +0 -0
  354. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/NextStepsPills.tsx +0 -0
  355. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/TextAndIconButton.tsx +0 -0
  356. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/TextButton.tsx +0 -0
  357. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/components/ToggleButton.tsx +0 -0
  358. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/hooks/useDebouncedEffect.tsx +0 -0
  359. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/hooks/useDebouncedFunction.tsx +0 -0
  360. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/AcceptIcon.tsx +0 -0
  361. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/AiIcon.tsx +0 -0
  362. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/AlertIcon.tsx +0 -0
  363. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/AppBuilderExcludeCellIcon.svg +0 -0
  364. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/AppBuilderIncludeCellIcon.svg +0 -0
  365. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/ChatIcon.svg +0 -0
  366. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/ChatIcon.tsx +0 -0
  367. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/Check.tsx +0 -0
  368. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/CodeIcon.tsx +0 -0
  369. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/CopyIcon.tsx +0 -0
  370. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/ErrorIcon.tsx +0 -0
  371. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/ExpandIcon.tsx +0 -0
  372. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/GarbageIcon.tsx +0 -0
  373. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/LightbulbIcon.svg +0 -0
  374. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/MagicWand.tsx +0 -0
  375. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/MagnifyingGlassIcon.tsx +0 -0
  376. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/MitoLogo.tsx +0 -0
  377. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/NotebookFooter/CodeIcon.tsx +0 -0
  378. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/NotebookFooter/TextIcon.tsx +0 -0
  379. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/NucleausIcon.tsx +0 -0
  380. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/NucleusIcon.svg +0 -0
  381. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/OpenIndicatorIcon.svg +0 -0
  382. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/Pencil.tsx +0 -0
  383. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/PlayButtonIcon.tsx +0 -0
  384. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/RejectIcon.tsx +0 -0
  385. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/RobotHeadIcon.tsx +0 -0
  386. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/RuleIcon.tsx +0 -0
  387. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/SupportIcon.tsx +0 -0
  388. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/UndoIcon.tsx +0 -0
  389. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/WrenchAndScrewdriverIcon.tsx +0 -0
  390. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/XMark.tsx +0 -0
  391. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/icons/index.ts +0 -0
  392. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/index.ts +0 -0
  393. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/restAPI/utils.ts +0 -0
  394. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/AssistantCodeBlock.test.tsx +0 -0
  395. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/CTACarousel.test.tsx +0 -0
  396. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/ChatMessage.test.tsx +0 -0
  397. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/CodeBlockToolbar.test.tsx +0 -0
  398. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/ModelSelector.test.tsx +0 -0
  399. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/NextSteps.test.tsx +0 -0
  400. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/RestoreCheckpoint.test.tsx +0 -0
  401. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AiChat/UserCodeBlock.test.tsx +0 -0
  402. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AppBuilder/transformInvalidLines.test.tsx +0 -0
  403. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/AppBuilder/transformMitoAppInput.test.tsx +0 -0
  404. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/ContextManager/ContextManagerPlugin.test.tsx +0 -0
  405. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/NotebookFooter/notebookFooter.test.tsx +0 -0
  406. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/__mocks__/fileMock.js +0 -0
  407. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/__mocks__/jupyterMocks.ts +0 -0
  408. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/__mocks__/openaiMocks.ts +0 -0
  409. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/__mocks__/styleMock.js +0 -0
  410. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/setup/setupTests.js +0 -0
  411. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/utils/blacklistedWords.test.tsx +0 -0
  412. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/tests/utils/processChatHistoryForErrorGrouping.test.tsx +0 -0
  413. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/agentActions.tsx +0 -0
  414. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/arrays.tsx +0 -0
  415. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/blacklistedWords.tsx +0 -0
  416. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/chatHistory.tsx +0 -0
  417. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/checkpoint.tsx +0 -0
  418. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/classNames.tsx +0 -0
  419. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/codeDiff.tsx +0 -0
  420. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/copyToClipboard.tsx +0 -0
  421. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/errors.tsx +0 -0
  422. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/fileName.tsx +0 -0
  423. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/nodeToPng.tsx +0 -0
  424. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/notebook.tsx +0 -0
  425. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/scroll.tsx +0 -0
  426. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/scrollMask.ts +0 -0
  427. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/sleep.ts +0 -0
  428. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/strings.tsx +0 -0
  429. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/stripe.tsx +0 -0
  430. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/user.tsx +0 -0
  431. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/version_check.ts +0 -0
  432. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/utils/waitForNotebookReady.ts +0 -0
  433. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/websockets/BaseWebsocketClient.ts +0 -0
  434. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/websockets/appBuilder/appBuilderWebsocketClient.ts +0 -0
  435. {mito_ai-0.1.35 → mito_ai-0.1.37}/src/websockets/completions/CompletionsWebsocketClient.ts +0 -0
  436. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/CTACarousel.css +0 -0
  437. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ChatTaskpane.css +0 -0
  438. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/Citation.css +0 -0
  439. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/CodeBlock.css +0 -0
  440. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ConnectionForm.css +0 -0
  441. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/DropdownMenu.css +0 -0
  442. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ErrorFixupToolUI.css +0 -0
  443. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ErrorMimeRendererPlugin.css +0 -0
  444. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/GetCellOutputToolUI.css +0 -0
  445. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/MarkdownMessage.css +0 -0
  446. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ModelSelector.css +0 -0
  447. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/NextStepsPills.css +0 -0
  448. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/NotebookFooter.css +0 -0
  449. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/PythonCode.css +0 -0
  450. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/RulesForm.css +0 -0
  451. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/SettingsWidget.css +0 -0
  452. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/TextAndIconButton.css +0 -0
  453. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/TextButton.css +0 -0
  454. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/ToggleButton.css +0 -0
  455. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/button.css +0 -0
  456. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/icons.css +0 -0
  457. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/index.css +0 -0
  458. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/index.js +0 -0
  459. {mito_ai-0.1.35 → mito_ai-0.1.37}/style/statusItem.css +0 -0
  460. {mito_ai-0.1.35 → mito_ai-0.1.37}/tsconfig.json +0 -0
  461. {mito_ai-0.1.35 → mito_ai-0.1.37}/tsconfig.test.json +0 -0
  462. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/Activate.ps1 +0 -0
  463. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/activate +0 -0
  464. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/activate.csh +0 -0
  465. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/activate.fish +0 -0
  466. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/debugpy +0 -0
  467. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/debugpy-adapter +0 -0
  468. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/distro +0 -0
  469. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/docutils +0 -0
  470. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/hatch-jupyter-builder +0 -0
  471. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/hatchling +0 -0
  472. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/httpx +0 -0
  473. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/ipython +0 -0
  474. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/ipython3 +0 -0
  475. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jlpm +0 -0
  476. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jsonpointer +0 -0
  477. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jsonschema +0 -0
  478. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter +0 -0
  479. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-dejavu +0 -0
  480. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-events +0 -0
  481. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-execute +0 -0
  482. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-kernel +0 -0
  483. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-kernelspec +0 -0
  484. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-lab +0 -0
  485. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-labextension +0 -0
  486. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-labhub +0 -0
  487. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-migrate +0 -0
  488. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-nbconvert +0 -0
  489. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-run +0 -0
  490. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-server +0 -0
  491. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-troubleshoot +0 -0
  492. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/jupyter-trust +0 -0
  493. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/keyring +0 -0
  494. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/markdown-it +0 -0
  495. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/normalizer +0 -0
  496. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/openai +0 -0
  497. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pip +0 -0
  498. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pip3 +0 -0
  499. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pip3.11 +0 -0
  500. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pipreqs +0 -0
  501. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pybabel +0 -0
  502. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pygmentize +0 -0
  503. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pyjson5 +0 -0
  504. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pyrsa-decrypt +0 -0
  505. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pyrsa-encrypt +0 -0
  506. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pyrsa-keygen +0 -0
  507. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pyrsa-priv2pub +0 -0
  508. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pyrsa-sign +0 -0
  509. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/pyrsa-verify +0 -0
  510. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/python +0 -0
  511. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/python3 +0 -0
  512. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/python3.11 +0 -0
  513. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2html +0 -0
  514. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2html4 +0 -0
  515. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2html5 +0 -0
  516. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2latex +0 -0
  517. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2man +0 -0
  518. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2odt +0 -0
  519. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2pseudoxml +0 -0
  520. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2s5 +0 -0
  521. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2xetex +0 -0
  522. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/rst2xml +0 -0
  523. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/send2trash +0 -0
  524. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/tqdm +0 -0
  525. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/trove-classifiers +0 -0
  526. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/twine +0 -0
  527. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/websockets +0 -0
  528. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/bin/wsdump +0 -0
  529. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/etc/jupyter/jupyter_notebook_config.d/jupyterlab.json +0 -0
  530. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/etc/jupyter/jupyter_server_config.d/jupyter-lsp-jupyter-server.json +0 -0
  531. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/etc/jupyter/jupyter_server_config.d/jupyter_server_terminals.json +0 -0
  532. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/etc/jupyter/jupyter_server_config.d/jupyterlab.json +0 -0
  533. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
  534. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/etc/jupyter/jupyter_server_config.d/notebook_shim.json +0 -0
  535. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/etc/jupyter/labconfig/page_config.json +0 -0
  536. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/include/site/python3.11/greenlet/greenlet.h +0 -0
  537. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/pyvenv.cfg +0 -0
  538. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/applications/jupyterlab.desktop +0 -0
  539. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/icons/hicolor/scalable/apps/jupyterlab.svg +0 -0
  540. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/kernels/python3/kernel.json +0 -0
  541. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/kernels/python3/logo-32x32.png +0 -0
  542. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/kernels/python3/logo-64x64.png +0 -0
  543. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/kernels/python3/logo-svg.svg +0 -0
  544. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/application-extension/commands.json +0 -0
  545. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/application-extension/context-menu.json +0 -0
  546. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/application-extension/property-inspector.json +0 -0
  547. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/application-extension/shell.json +0 -0
  548. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/application-extension/top-bar.json +0 -0
  549. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/kernels-settings.json +0 -0
  550. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/notification.json +0 -0
  551. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/palette.json +0 -0
  552. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/print.json +0 -0
  553. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/sanitizer.json +0 -0
  554. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/sessionDialogs.json +0 -0
  555. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/themes.json +0 -0
  556. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/utilityCommands.json +0 -0
  557. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/cell-toolbar-extension/plugin.json +0 -0
  558. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/celltags-extension/plugin.json +0 -0
  559. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/codemirror-extension/plugin.json +0 -0
  560. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/inline-completer.json +0 -0
  561. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/completer-extension/manager.json +0 -0
  562. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/console-extension/completer.json +0 -0
  563. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/console-extension/foreign.json +0 -0
  564. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/console-extension/tracker.json +0 -0
  565. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/csv.json +0 -0
  566. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/tsv.json +0 -0
  567. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/debugger-extension/main.json +0 -0
  568. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/download.json +0 -0
  569. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/plugin.json +0 -0
  570. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/documentsearch-extension/plugin.json +0 -0
  571. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/extensionmanager-extension/plugin.json +0 -0
  572. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/browser.json +0 -0
  573. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/download.json +0 -0
  574. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/open-browser-tab.json +0 -0
  575. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/open-with.json +0 -0
  576. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/widget.json +0 -0
  577. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/completer.json +0 -0
  578. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/plugin.json +0 -0
  579. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/help-extension/about.json +0 -0
  580. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/help-extension/jupyter-forum.json +0 -0
  581. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/help-extension/launch-classic.json +0 -0
  582. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/htmlviewer-extension/plugin.json +0 -0
  583. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/hub-extension/menu.json +0 -0
  584. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/imageviewer-extension/plugin.json +0 -0
  585. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/consoles.json +0 -0
  586. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/inspector.json +0 -0
  587. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/notebooks.json +0 -0
  588. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/plugin.json +0 -0
  589. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/logconsole-extension/plugin.json +0 -0
  590. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/lsp-extension/plugin.json +0 -0
  591. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/mainmenu-extension/plugin.json +0 -0
  592. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/markdownviewer-extension/plugin.json +0 -0
  593. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/mathjax-extension/plugin.json +0 -0
  594. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/metadataform-extension/metadataforms.json +0 -0
  595. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/completer.json +0 -0
  596. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/export.json +0 -0
  597. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/panel.json +0 -0
  598. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/tools.json +0 -0
  599. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/tracker.json +0 -0
  600. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/running-extension/plugin.json +0 -0
  601. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/form-ui.json +0 -0
  602. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/plugin.json +0 -0
  603. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/shortcuts-extension/shortcuts.json +0 -0
  604. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/statusbar-extension/plugin.json +0 -0
  605. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/terminal-extension/plugin.json +0 -0
  606. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/toc-extension/registry.json +0 -0
  607. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/consoles.json +0 -0
  608. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/files.json +0 -0
  609. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/notebooks.json +0 -0
  610. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/translation-extension/plugin.json +0 -0
  611. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/indicator.json +0 -0
  612. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/menu.json +0 -0
  613. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/schemas/@jupyterlab/workspaces-extension/sidebar.json +0 -0
  614. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/100.1d14ca44a3cc8849349f.js +0 -0
  615. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1039.3fe94e87219c0ed159d3.js +0 -0
  616. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1096.dd4c563e0483cbbeb9c9.js +0 -0
  617. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1189.c1482e88f0e949753db6.js +0 -0
  618. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1208.4b9ab7b231d39ebdbc3f.js +0 -0
  619. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1219.b5630aa3a46050fddc27.js +0 -0
  620. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1268.e75d8a6dd557ac8957ca.js +0 -0
  621. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1359.d5f23f0e2a6f67b69751.js +0 -0
  622. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1423.4bcf4453e1c1d12d872f.js +0 -0
  623. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1436.2c11d9dee0ad6f49e968.js +0 -0
  624. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1445.a0e099c27d073217031a.js +0 -0
  625. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1449.7026e8748d2a77e15d5b.js +0 -0
  626. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1462.57e39f487257f25263d4.js +0 -0
  627. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1491.010c623dd546db976e95.js +0 -0
  628. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1495.13603dd823bbf5eb08b3.js +0 -0
  629. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1673.b0ee25168543434bdbca.js +0 -0
  630. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1737.a5fc97075f693ec36fe6.js +0 -0
  631. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1832.b1ede2fe899bdec88938.js +0 -0
  632. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1834.7445ad0c82371ac40737.js +0 -0
  633. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1838.839690ff17ec3c532f0a.js +0 -0
  634. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1887.56f83f163a18c61efb16.js +0 -0
  635. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js +0 -0
  636. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1909.7487a09fefbe7f9eabb6.js.LICENSE.txt +0 -0
  637. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1912.f16dddc294d66c3c81e9.js +0 -0
  638. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1954.f1c519cb1415c7da3e8c.js +0 -0
  639. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1960.f8d8ef8a91360e60f0b9.js +0 -0
  640. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1962.6a7da74e809b70d5200d.js +0 -0
  641. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1969.86e3168e52802569d650.js +0 -0
  642. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1986.26029e99ef54a5652df8.js +0 -0
  643. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1991.84fc123d7cfe8ae2948e.js +0 -0
  644. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/1cb1c39ea642f26a4dfe.woff +0 -0
  645. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2023.59b30086fbeff6d17e3b.js +0 -0
  646. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/227.6bd3154334bb91c5ca1c.js +0 -0
  647. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/227.6bd3154334bb91c5ca1c.js.LICENSE.txt +0 -0
  648. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2280.6614699f54522fffbc00.js +0 -0
  649. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js +0 -0
  650. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/232.5419cbec68e3fd0cf431.js.LICENSE.txt +0 -0
  651. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2353.ab70488f07a7c0a7a3fd.js +0 -0
  652. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/246.326a6482593e8a7bcd58.js +0 -0
  653. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2467.4227742ac4b60289f222.js +0 -0
  654. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/247.84259ab142dd8c151fc2.js +0 -0
  655. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2550.75fcaa650ffac405c0dc.js +0 -0
  656. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2574.327dadfe49120269ff31.js +0 -0
  657. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2576.b98b7b23adeec4cb6932.js +0 -0
  658. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2590.99e505d19b964439aa31.js +0 -0
  659. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2633.ea053b40991eb5adbc69.js +0 -0
  660. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2641.e77441e7a3e0d12834c5.js +0 -0
  661. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/265.6f9e37c0b72db64203b1.js +0 -0
  662. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2658.d1cae1b08b068d864368.js +0 -0
  663. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/26683bf201fb258a2237.woff +0 -0
  664. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2681.a47f40e38ecd31ccd687.js +0 -0
  665. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2707.61050e600b0aa9624127.js +0 -0
  666. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2729.cafaf0caf2c0c83ac9fe.js +0 -0
  667. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2794.05495c139ed000b57598.js +0 -0
  668. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2823.0b6015b5e03c08281f41.js +0 -0
  669. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2880.8483d51b11998bfe8e4b.js +0 -0
  670. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2957.bc5eb9549a0b15c44916.js +0 -0
  671. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/2959.b24c9f67d639376f5ead.js +0 -0
  672. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3048.59e6166a886a78f4f698.js +0 -0
  673. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/30e889b58cbc51adfbb0.woff +0 -0
  674. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3111.33574d9124842f355bce.js +0 -0
  675. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3112.0757b31e24c5334fda73.js +0 -0
  676. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3122.fed5688acdcf6ff6aa6b.js +0 -0
  677. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/321.0fb994fd384a54491584.js +0 -0
  678. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3257.30af681f0c294efb65f7.js +0 -0
  679. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3257.30af681f0c294efb65f7.js.LICENSE.txt +0 -0
  680. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/32792104b5ef69eded90.woff +0 -0
  681. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3282.22e78350d54fcaf3c6c8.js +0 -0
  682. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3293.375c6685d72662fc062f.js +0 -0
  683. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3303.b5596c0715d2d58332fb.js +0 -0
  684. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3358.7ba73a6804155b619b44.js +0 -0
  685. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3372.8eeafd96de9a7a205f40.js +0 -0
  686. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/339.380593b40d8d41150a4e.js +0 -0
  687. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/355254db9ca10a09a3b5.woff +0 -0
  688. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3616.a4271ffcf2ac3b4c2338.js +0 -0
  689. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/36e0d72d8a7afc696a3e.woff +0 -0
  690. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3709.e33bc30c83272aa85628.js +0 -0
  691. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/373c04fd2418f5c77eea.eot +0 -0
  692. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3763.56191df5d72d2ffa5aa6.js +0 -0
  693. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3780.c9294dc98ae926717741.js +0 -0
  694. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3799.eaa0438bc5c41bad0516.js +0 -0
  695. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3832.c6026c483bb46cc8e599.js +0 -0
  696. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3974.79f68bca9a02c92dab5e.js +0 -0
  697. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3991.678edf189fe92a216c70.js +0 -0
  698. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3bc6ecaae7ecf6f8d7f8.woff +0 -0
  699. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3de784d07b9fa8f104c1.woff +0 -0
  700. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/3f6d3488cf65374f6f67.woff +0 -0
  701. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4001.80ab3ef5300d7ce2d1fe.js +0 -0
  702. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4053.4945facc348478fd59f4.js +0 -0
  703. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4068.9cc41f46f729f2c4369b.js +0 -0
  704. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4076.b4d803d8bf1bd6c97854.js +0 -0
  705. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4266.155b468271987c81d948.js +0 -0
  706. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4296.721da424585874d0789e.js +0 -0
  707. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4311.b44e8bc4829e0b1226d2.js +0 -0
  708. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4323.b2bd8a329a81d30ed039.js +0 -0
  709. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4350.8c8a0e7a3ffe036494e1.js +0 -0
  710. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4353.8572f6845cfde92dc152.js +0 -0
  711. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4364.b9b49d8d836882f44e62.js +0 -0
  712. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js +0 -0
  713. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4372.645626a2452c190dbb22.js.LICENSE.txt +0 -0
  714. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4408.f24dd0edf35e08548967.js +0 -0
  715. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4462.c3c6de84bc9399e0290d.js +0 -0
  716. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4484.e1d2565d1a3daa5fe5f1.js +0 -0
  717. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4486.8d2f41ae787607b7bf31.js +0 -0
  718. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4528.43328125d98d6cfdfa99.js +0 -0
  719. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4611.bd2b768223b0cd570834.js +0 -0
  720. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4616.04cfbd55593c51921cc7.js +0 -0
  721. /mito_ai-0.1.35/venv/share/jupyter/lab/static/4728.f59e4bd4b29409da82bc.js.LICENSE.txt → /mito_ai-0.1.37/venv/share/jupyter/lab/static/4728.56c0b9d87316b2fa012e.js.LICENSE.txt +0 -0
  722. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4735.7731d551ca68bcb58e9f.js +0 -0
  723. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4797.3740ef47b224a11a7fab.js +0 -0
  724. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/481e39042508ae313a60.woff +0 -0
  725. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4838.8db4c61349bfba200547.js +0 -0
  726. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4855.29e8dc6982ba4873487d.js +0 -0
  727. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4878.f7557c5c99a54b40c49b.js +0 -0
  728. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/492.5f186062d2dcdf79c86c.js +0 -0
  729. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4928.6cb408e4def87534970d.js +0 -0
  730. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4981.eed4ddb90566e90e3df4.js +0 -0
  731. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/4982.c609185756485c6e3344.js +0 -0
  732. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5085.a38923f36b551620798a.js +0 -0
  733. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js +0 -0
  734. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5090.404be96d8a6eae1e719a.js.LICENSE.txt +0 -0
  735. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5135.7f204de2153e4d85406d.js +0 -0
  736. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5211.83e78dadcef89cae04bf.js +0 -0
  737. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5224.8a6bbc774d20be66fdfb.js +0 -0
  738. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5244.eefac84704ad30f00af3.js +0 -0
  739. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5317.f4bba2e3d0f4fdd088f7.js +0 -0
  740. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5318.d5df5c275e925c22d780.js +0 -0
  741. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5338.38c32bdfb0695f9b501f.js +0 -0
  742. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5489.7fab44eac7538297b164.js +0 -0
  743. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5492.44728a640c37a4b4aa0c.js +0 -0
  744. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5521.0337f193af4e5eee6057.js +0 -0
  745. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5566.c76ea61eb723ee84e2cf.js +0 -0
  746. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5606.e03dfa10c124a03f36ba.js +0 -0
  747. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/580.4ea1e6182e0b35ff091a.js +0 -0
  748. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5829.0e46d479b4ade4783661.js +0 -0
  749. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5847.930208c25e45ecf30657.js +0 -0
  750. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5862.be1ec453e8db6844c62d.js +0 -0
  751. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5877.72ab5a29e95ce21981e4.js +0 -0
  752. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5929.d561797f8259994ecdd8.js +0 -0
  753. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5942.05cbcd55c5f45ff7db43.js +0 -0
  754. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5987.7e967df5417044d337a4.js +0 -0
  755. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/5cda41563a095bd70c78.woff +0 -0
  756. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6003.94cdab770c801f3c46f7.js +0 -0
  757. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6060.52dca011e9f2f279fc5e.js +0 -0
  758. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6095.6e79e3bad86e054aa8c8.js +0 -0
  759. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6145.c422868290460078c013.js +0 -0
  760. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6166.2bc9ac8e2156c0701a52.js +0 -0
  761. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6170.65d899f43342f1e34bf1.js +0 -0
  762. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6214.617de47747c5a9b19ef7.js +0 -0
  763. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6275.e99f9312900c481b467d.js +0 -0
  764. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6294.b3cb5e16527b9d09b4a2.js +0 -0
  765. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6364.c592f3101de349ba3904.js +0 -0
  766. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6372.edc0712a4be855493530.js +0 -0
  767. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6412.ebdf8da40f1ba8272df9.js +0 -0
  768. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6439.1723c0b3882bf535486e.js +0 -0
  769. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6460.d9aaa1e48da295c6035d.js +0 -0
  770. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/649.4081045b1737e4213282.js +0 -0
  771. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6492.804d51a693edf6978ef4.js +0 -0
  772. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js +0 -0
  773. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6540.51c00e890179a4832552.js.LICENSE.txt +0 -0
  774. /mito_ai-0.1.35/venv/share/jupyter/lab/static/6733.2d8d3e01d56d79a52e7e.js.LICENSE.txt → /mito_ai-0.1.37/venv/share/jupyter/lab/static/6733.bf3398ba9bb890f0fb67.js.LICENSE.txt +0 -0
  775. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6767.4b82d96c237ca7e31bc6.js +0 -0
  776. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6779.051cfbcb0700a96839b2.js +0 -0
  777. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6831.1df8fa4cabb5b1c19803.js +0 -0
  778. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6843.dabcc3c9658bc6ded6d1.js +0 -0
  779. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6874.bb2f7fbc6ce56eecc800.js +0 -0
  780. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6896.af1d649e0efae70b7b1a.js +0 -0
  781. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6941.465bebbd3d8a024f5f15.js +0 -0
  782. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6974.b5b353b8af28fbc91291.js +0 -0
  783. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/6993.c93f5a810fcf441cbb6f.js +0 -0
  784. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7136.b312751fbb25b73f5e71.js +0 -0
  785. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/721921bab0d001ebff02.woff +0 -0
  786. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7250.b88d0a5e237ff5ff1aad.js +0 -0
  787. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7260.b47dcaccbe7991104e8a.js +0 -0
  788. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7269.962f078e97afc4f68e79.js +0 -0
  789. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/72bc573386dd1d48c5bb.woff +0 -0
  790. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/731.82a7b980b5b7f4b7a14f.js +0 -0
  791. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7318.7cc6b4b0b3151b205ecb.js +0 -0
  792. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7371.63b12ce793df713ab95b.js +0 -0
  793. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7425.f1c25f6c8aaec77e8635.js +0 -0
  794. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7445.7c793c8e1720f8ec4f85.js +0 -0
  795. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7575.2e3e32236d5667bba43f.js +0 -0
  796. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7587.3112240b6b82407b0f16.js +0 -0
  797. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7694.1cbff84dccb512476b7c.js +0 -0
  798. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7741.2ad1372a5862c4522be3.js +0 -0
  799. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7756.93d0ab41829355a147ab.js +0 -0
  800. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7769.d39df7673ee2660a9ac4.js +0 -0
  801. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7803.0c8929610218552319bf.js +0 -0
  802. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7856.dd9523e57bed80f1f694.js +0 -0
  803. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7879.5c485d200dc01b6f43ff.js +0 -0
  804. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/7881.c5a234ce171f347c94e2.js +0 -0
  805. /mito_ai-0.1.35/venv/share/jupyter/lab/static/7990.0d774450b53727ab32d5.js.LICENSE.txt → /mito_ai-0.1.37/venv/share/jupyter/lab/static/7990.01eaa552261b6e12a74a.js.LICENSE.txt +0 -0
  806. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/79d088064beb3826054f.eot +0 -0
  807. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8038.aea19fb961abd87d6255.js +0 -0
  808. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/805.2a0b8ac50aa8e6ab096f.js +0 -0
  809. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8103.ed2b21471519b58a3d73.js +0 -0
  810. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8217.801fbb0b549a74238760.js +0 -0
  811. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8232.e31d5021e77a9b5215d6.js +0 -0
  812. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8313.aac706f5036a7209b3a8.js +0 -0
  813. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8326.9dda93079a9e4f1b9be6.js +0 -0
  814. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8354.94077232b086a13541cc.js +0 -0
  815. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8368.c75a4b32ae45ec88465d.js +0 -0
  816. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8391.e5fb2e35cced405eb819.js +0 -0
  817. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/84.fe0a55d7756c37585fb4.js +0 -0
  818. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8418.42e29778d4b49fb54e8e.js +0 -0
  819. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8493.3b6106e45d5661438d8e.js +0 -0
  820. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8537.21b8b9ae0d81ae264499.js +0 -0
  821. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8606.bc1b0136e61d173913cd.js +0 -0
  822. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/867.e814bf26fbfc77fc4f16.js +0 -0
  823. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/870673df72e70f87c91a.woff +0 -0
  824. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/874.fbd3ae653c7337f3425b.js +0 -0
  825. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8753.56da17175b663d61f9d3.js +0 -0
  826. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8778.a3883f9acac5a903d6be.js +0 -0
  827. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8779.6eebdb56785e3d38a457.js +0 -0
  828. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8786.a2bc3dfc1ea13c04ba94.js +0 -0
  829. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8786.a2bc3dfc1ea13c04ba94.js.LICENSE.txt +0 -0
  830. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8816.d7ec52fb31e9c6749593.js +0 -0
  831. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8830.d5bb102ed8737ffe38cb.js +0 -0
  832. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8855.b17b9969fce42d0398e4.js +0 -0
  833. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/88b98cad3688915e50da.woff +0 -0
  834. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/89.933673451ca4a51053cb.js +0 -0
  835. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8915.ab253990b1581460b255.js +0 -0
  836. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/898.ed04189e15f0a3781fb1.js +0 -0
  837. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8ea8791754915a898a31.woff2 +0 -0
  838. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/8ea8dbb1b02e6f730f55.woff +0 -0
  839. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9023.2ff687d7ff50df3719fc.js +0 -0
  840. /mito_ai-0.1.35/venv/share/jupyter/lab/static/9085.93df3ddfd17e1e45d82c.js.LICENSE.txt → /mito_ai-0.1.37/venv/share/jupyter/lab/static/9085.5a959b5878e7afd8a878.js.LICENSE.txt +0 -0
  841. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9123.501219cd782693d6539f.js +0 -0
  842. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9136.8f4cc6ecadcf250fd8ac.js +0 -0
  843. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9311.ad0012965aa52db7a3e3.js +0 -0
  844. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9329.1683d45b6478b7c81a24.js +0 -0
  845. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9359.34d1b961b733676193cb.js +0 -0
  846. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9400.90fd1d2212781c80b587.js +0 -0
  847. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9474.01b4e1d1e3376f4a5919.js +0 -0
  848. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9517.7056cafdf1da3a136d45.js +0 -0
  849. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9572.f91bbaa33e932d524f8f.js +0 -0
  850. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js +0 -0
  851. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/961.29c067b15a524e556eed.js.LICENSE.txt +0 -0
  852. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9652.a8d2e5854bcae4d40041.js +0 -0
  853. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9674eb1bd55047179038.svg +0 -0
  854. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9746.c7e86b432363dfd28caa.js +0 -0
  855. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9834b82ad26e2a37583d.woff2 +0 -0
  856. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9881.37d189ff085cb3468683.js +0 -0
  857. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/9890.75ea8024e2c1c49c89a3.js +0 -0
  858. /mito_ai-0.1.35/venv/share/jupyter/lab/static/9892.6d289e7baed8c64d88e2.js.LICENSE.txt → /mito_ai-0.1.37/venv/share/jupyter/lab/static/9892.1c3a710069391fd93b5d.js.LICENSE.txt +0 -0
  859. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/a009bea404f7a500ded4.woff +0 -0
  860. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/a3b9817780214caf01e8.svg +0 -0
  861. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/af04542b29eaac04550a.woff +0 -0
  862. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/af6397503fcefbd61397.ttf +0 -0
  863. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/af96f67d7accf5fd2a4a.woff +0 -0
  864. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/b418136e3b384baaadec.woff +0 -0
  865. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/be0a084962d8066884f7.svg +0 -0
  866. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/bootstrap.js +0 -0
  867. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/c49810b53ecc0d87d802.woff +0 -0
  868. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/c56da8d69f1a0208b8e0.woff +0 -0
  869. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/cb9e9e693192413cde2b.woff +0 -0
  870. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/cda59d6efffa685830fd.ttf +0 -0
  871. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/e4299464e7b012968eed.eot +0 -0
  872. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/e42a88444448ac3d6054.woff2 +0 -0
  873. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/e8711bbb871afd8e9dea.ttf +0 -0
  874. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/f9217f66874b0c01cd8c.woff +0 -0
  875. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/fc6ddf5df402b263cfb1.woff +0 -0
  876. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/index.out.js +0 -0
  877. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/static/style.js +0 -0
  878. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/themes/@jupyterlab/theme-dark-extension/index.css +0 -0
  879. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/themes/@jupyterlab/theme-dark-extension/index.js +0 -0
  880. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/themes/@jupyterlab/theme-dark-high-contrast-extension/index.css +0 -0
  881. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/themes/@jupyterlab/theme-dark-high-contrast-extension/index.js +0 -0
  882. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/themes/@jupyterlab/theme-light-extension/index.css +0 -0
  883. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/lab/themes/@jupyterlab/theme-light-extension/index.js +0 -0
  884. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/jupyterlab_pygments/install.json +0 -0
  885. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/jupyterlab_pygments/package.json +0 -0
  886. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/jupyterlab_pygments/static/568.1e2faa2ba0bbe59c4780.js +0 -0
  887. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/jupyterlab_pygments/static/747.67662283a5707eeb4d4c.js +0 -0
  888. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/jupyterlab_pygments/static/remoteEntry.5cbb9d2323598fbda535.js +0 -0
  889. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/jupyterlab_pygments/static/style.js +0 -0
  890. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/jupyterlab_pygments/static/third-party-licenses.json +0 -0
  891. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json +0 -0
  892. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
  893. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js +0 -0
  894. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map +0 -0
  895. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js +0 -0
  896. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map +0 -0
  897. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/asciidoc/conf.json +0 -0
  898. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/asciidoc/index.asciidoc.j2 +0 -0
  899. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/base/cell_id_anchor.j2 +0 -0
  900. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/base/celltags.j2 +0 -0
  901. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/base/display_priority.j2 +0 -0
  902. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/base/jupyter_widgets.html.j2 +0 -0
  903. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/base/mathjax.html.j2 +0 -0
  904. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/base/null.j2 +0 -0
  905. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/basic/conf.json +0 -0
  906. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/basic/index.html.j2 +0 -0
  907. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/classic/base.html.j2 +0 -0
  908. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/classic/conf.json +0 -0
  909. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/classic/index.html.j2 +0 -0
  910. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/classic/static/style.css +0 -0
  911. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/compatibility/display_priority.tpl +0 -0
  912. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/compatibility/full.tpl +0 -0
  913. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/lab/base.html.j2 +0 -0
  914. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/lab/conf.json +0 -0
  915. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/lab/index.html.j2 +0 -0
  916. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/lab/mermaidjs.html.j2 +0 -0
  917. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/lab/static/index.css +0 -0
  918. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/lab/static/theme-dark.css +0 -0
  919. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/lab/static/theme-light.css +0 -0
  920. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/base.tex.j2 +0 -0
  921. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/conf.json +0 -0
  922. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/display_priority.j2 +0 -0
  923. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/document_contents.tex.j2 +0 -0
  924. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/index.tex.j2 +0 -0
  925. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/null.j2 +0 -0
  926. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/report.tex.j2 +0 -0
  927. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/style_bw_ipython.tex.j2 +0 -0
  928. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/style_bw_python.tex.j2 +0 -0
  929. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/style_ipython.tex.j2 +0 -0
  930. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/style_jupyter.tex.j2 +0 -0
  931. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/latex/style_python.tex.j2 +0 -0
  932. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/markdown/conf.json +0 -0
  933. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/markdown/index.md.j2 +0 -0
  934. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/python/conf.json +0 -0
  935. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/python/index.py.j2 +0 -0
  936. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/reveal/base.html.j2 +0 -0
  937. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/reveal/cellslidedata.j2 +0 -0
  938. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/reveal/conf.json +0 -0
  939. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/reveal/index.html.j2 +0 -0
  940. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/reveal/static/custom_reveal.css +0 -0
  941. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/rst/conf.json +0 -0
  942. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/rst/index.rst.j2 +0 -0
  943. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/script/conf.json +0 -0
  944. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/script/script.j2 +0 -0
  945. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/webpdf/conf.json +0 -0
  946. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/jupyter/nbconvert/templates/webpdf/index.pdf.j2 +0 -0
  947. {mito_ai-0.1.35 → mito_ai-0.1.37}/venv/share/man/man1/ipython.1 +0 -0
  948. {mito_ai-0.1.35 → mito_ai-0.1.37}/yarn.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mito_ai
3
- Version: 0.1.35
3
+ Version: 0.1.37
4
4
  Summary: AI chat for JupyterLab
5
5
  Project-URL: Homepage, https://trymito.io
6
6
  Project-URL: Bug Tracker, https://github.com/mito-ds/monorepo/issues
@@ -11,6 +11,7 @@ from mito_ai.version_check import VersionCheckHandler
11
11
  from mito_ai.db.urls import get_db_urls
12
12
  from mito_ai.settings.urls import get_settings_urls
13
13
  from mito_ai.rules.urls import get_rules_urls
14
+ from mito_ai.auth.urls import get_auth_urls
14
15
  try:
15
16
  from _version import __version__
16
17
  except ImportError:
@@ -65,10 +66,11 @@ def _load_jupyter_server_extension(server_app) -> None: # type: ignore
65
66
  ]
66
67
 
67
68
  # REST API endpoints
68
- handlers.extend(get_db_urls(base_url))
69
- handlers.extend(get_settings_urls(base_url))
70
- handlers.extend(get_rules_urls(base_url))
71
- handlers.extend(get_log_urls(base_url))
69
+ handlers.extend(get_db_urls(base_url)) # type: ignore
70
+ handlers.extend(get_settings_urls(base_url)) # type: ignore
71
+ handlers.extend(get_rules_urls(base_url)) # type: ignore
72
+ handlers.extend(get_log_urls(base_url)) # type: ignore
73
+ handlers.extend(get_auth_urls(base_url)) # type: ignore
72
74
 
73
75
  web_app.add_handlers(host_pattern, handlers)
74
76
  server_app.log.info("Loaded the mito_ai server extension")
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '0.1.35'
4
+ __version__ = VERSION = '0.1.37'
@@ -232,18 +232,11 @@ class AnthropicClient:
232
232
  system=anthropic_system_prompt,
233
233
  messages=anthropic_messages,
234
234
  stream=True,
235
- message_type=message_type
235
+ message_type=message_type,
236
+ reply_fn=reply_fn,
237
+ message_id=message_id
236
238
  ):
237
239
  accumulated_response += stram_chunk
238
- reply_fn(CompletionStreamChunk(
239
- parent_id=message_id,
240
- chunk=CompletionItem(
241
- content=stram_chunk,
242
- isIncomplete=True,
243
- token=message_id,
244
- ),
245
- done=False,
246
- ))
247
240
 
248
241
  return accumulated_response
249
242
 
@@ -8,6 +8,7 @@ from typing import Any, Union
8
8
  import zipfile
9
9
  import tempfile
10
10
  from mito_ai.utils.create import initialize_user
11
+ from mito_ai.utils.version_utils import is_pro
11
12
  from mito_ai.utils.websocket_base import BaseWebSocketHandler
12
13
  from mito_ai.app_builder.models import (
13
14
  BuildAppReply,
@@ -15,10 +16,12 @@ from mito_ai.app_builder.models import (
15
16
  ErrorMessage,
16
17
  MessageType
17
18
  )
19
+ from mito_ai.streamlit_conversion.streamlit_agent_handler import streamlit_handler
18
20
  from mito_ai.logger import get_logger
19
21
  from mito_ai.constants import ACTIVE_STREAMLIT_BASE_URL
20
22
  import requests
21
23
 
24
+
22
25
  class AppBuilderHandler(BaseWebSocketHandler):
23
26
  """Handler for app building requests."""
24
27
 
@@ -62,6 +65,10 @@ class AppBuilderHandler(BaseWebSocketHandler):
62
65
  self.log.debug("App builder message received: %s", message)
63
66
 
64
67
  try:
68
+ # Ensure message is a string before parsing
69
+ if not isinstance(message, str):
70
+ raise ValueError("Message must be a string")
71
+
65
72
  parsed_message = self.parse_message(message)
66
73
  message_type = parsed_message.get('type')
67
74
 
@@ -98,8 +105,10 @@ class AppBuilderHandler(BaseWebSocketHandler):
98
105
  message: The parsed message.
99
106
  """
100
107
  message_id = message.get('message_id', '') # Default to empty string if not present
101
- app_path = message.get('path')
102
-
108
+ notebook_path = message.get('notebook_path')
109
+ app_path = message.get('app_path')
110
+ jwt_token = message.get('jwt_token', '') # Extract JWT token from request, default to empty string
111
+
103
112
  if not message_id:
104
113
  self.log.error("Missing message_id in request")
105
114
  return
@@ -115,13 +124,37 @@ class AppBuilderHandler(BaseWebSocketHandler):
115
124
  error=error
116
125
  ))
117
126
  return
118
-
127
+
128
+ # Validate JWT token if provided
129
+ if jwt_token and jwt_token != 'placeholder-jwt-token':
130
+ self.log.info(f"Validating JWT token: {jwt_token[:20]}...")
131
+ is_valid = self._validate_jwt_token(jwt_token)
132
+ if not is_valid:
133
+ self.log.error("JWT token validation failed")
134
+ error = AppBuilderError(
135
+ error_type="Unauthorized",
136
+ title="Invalid authentication token",
137
+ hint="Please sign in again to deploy your app."
138
+ )
139
+ self.reply(BuildAppReply(
140
+ parent_id=message_id,
141
+ url="",
142
+ error=error
143
+ ))
144
+ return
145
+ else:
146
+ self.log.info("JWT token validation successful")
147
+ else:
148
+ self.log.warning("No JWT token provided or using placeholder token")
149
+
119
150
  try:
120
- # This is a placeholder for the actual app building logic
121
- # In a real implementation, this would deploy the app to a hosting service
122
- # and return the URL
123
- deploy_url = await self._deploy_app(app_path)
124
-
151
+
152
+ success_flag, result_message = await streamlit_handler(str(notebook_path) if notebook_path else "", app_path)
153
+ if not success_flag:
154
+ raise Exception(result_message)
155
+
156
+ deploy_url = await self._deploy_app(app_path, jwt_token)
157
+
125
158
  # Send the response
126
159
  self.reply(BuildAppReply(
127
160
  parent_id=message_id,
@@ -137,12 +170,47 @@ class AppBuilderHandler(BaseWebSocketHandler):
137
170
  error=error
138
171
  ))
139
172
 
140
- async def _deploy_app(self, app_path: str) -> str:
173
+ def _validate_jwt_token(self, token: str) -> bool:
174
+ """Basic JWT token validation logic.
175
+
176
+ In a production environment, you would:
177
+ 1. Decode the JWT token
178
+ 2. Verify the signature using AWS Cognito public keys
179
+ 3. Check the expiration time
180
+ 4. Validate the issuer and audience claims
181
+
182
+ For now, we'll do a basic check that the token exists and has a reasonable format.
183
+ """
184
+ try:
185
+ # Basic JWT format validation (header.payload.signature)
186
+ if not token or '.' not in token:
187
+ self.log.error("Token is empty or missing dots")
188
+ return False
189
+
190
+ parts = token.split('.')
191
+ if len(parts) != 3:
192
+ self.log.error("Token does not have 3 parts")
193
+ return False
194
+
195
+ # Check for placeholder token
196
+ if token == 'placeholder-jwt-token':
197
+ self.log.error("Placeholder token detected")
198
+ return False
199
+
200
+ return True
201
+
202
+ except Exception as e:
203
+ self.log.error(f"Error validating JWT token: {e}")
204
+ return False
205
+
206
+
207
+ async def _deploy_app(self, app_path: str, jwt_token: str = '') -> str:
141
208
  """Deploy the app using pre-signed URLs.
142
209
 
143
210
  Args:
144
211
  app_path: Path to the app file.
145
-
212
+ jwt_token: JWT token for authentication (optional)
213
+
146
214
  Returns:
147
215
  The URL of the deployed app.
148
216
  """
@@ -153,7 +221,17 @@ class AppBuilderHandler(BaseWebSocketHandler):
153
221
  try:
154
222
  # Step 1: Get pre-signed URL from API
155
223
  self.log.info("Getting pre-signed upload URL...")
156
- url_response = requests.get(f"{ACTIVE_STREAMLIT_BASE_URL}/get-upload-url?app_name={app_name}")
224
+
225
+ # Prepare headers with JWT token if provided
226
+ headers = {}
227
+ if jwt_token and jwt_token != 'placeholder-jwt-token':
228
+ headers['Authorization'] = f'Bearer {jwt_token}'
229
+ else:
230
+ self.log.warning("No JWT token provided for API request")
231
+
232
+ headers["Subscription-Tier"] = 'Pro' if is_pro() else 'Standard'
233
+
234
+ url_response = requests.get(f"{ACTIVE_STREAMLIT_BASE_URL}/get-upload-url?app_name={app_name}", headers=headers)
157
235
  url_response.raise_for_status()
158
236
 
159
237
  url_data = url_response.json()
@@ -66,6 +66,9 @@ class BuildAppRequest:
66
66
 
67
67
  # Path to the app file.
68
68
  path: str
69
+
70
+ # JWT token for authorization.
71
+ jwt_token: Optional[str] = None
69
72
 
70
73
 
71
74
  @dataclass(frozen=True)
@@ -0,0 +1,18 @@
1
+ # Authorization
2
+
3
+ ### Authorization Code Flow:
4
+
5
+ 1. User clicks "Sign In" → then they are redirected to Cognito's hosted UI
6
+ 2. User authenticates → then Cognito redirects back with an authorization code
7
+ 3. Our backend then exchanges the code for JWT tokens
8
+
9
+ The authorization code in step2 is a short-lived, one-time use code.
10
+ To exchange the authorization code for tokens, we have to make a POST request to Cognito's token endpoint:
11
+ POST https://your-domain.auth.region.amazoncognito.com/oauth2/token
12
+
13
+ The JWT tokens received will provide an hour's session for the user for the next deployments, without having to re-login.
14
+
15
+ ### The response from this request contains 3 JWT tokens:
16
+ 1. Access Token - Used to call APIs (expires in 1 hour by default)
17
+ 2. ID Token - Contains user identity information (name, email, etc.)
18
+ 3. Refresh Token - Used to get new access/ID tokens when they expire
@@ -0,0 +1,6 @@
1
+ # Copyright (c) Saga Inc.
2
+ # Distributed under the terms of the GNU Affero General Public License v3.0 License.
3
+
4
+ from .handlers import AuthHandler
5
+
6
+ __all__ = ['AuthHandler']
@@ -0,0 +1,96 @@
1
+ # Copyright (c) Saga Inc.
2
+ # Distributed under the terms of the GNU Affero General Public License v3.0 License.
3
+
4
+ import json
5
+ import logging
6
+ import requests
7
+ import tornado
8
+ from datetime import datetime, timezone
9
+ from jupyter_server.base.handlers import APIHandler
10
+ from mito_ai.logger import get_logger
11
+ from mito_ai.constants import ACTIVE_COGNITO_CONFIG
12
+ from typing import Dict, Any
13
+
14
+
15
+ class AuthHandler(APIHandler):
16
+ """Handler for authentication operations."""
17
+
18
+ @property
19
+ def log(self) -> logging.Logger:
20
+ """Use Mito AI logger."""
21
+ return get_logger()
22
+
23
+ @tornado.web.authenticated
24
+ def post(self) -> None:
25
+ """Exchange authorization code for JWT tokens."""
26
+ try:
27
+ data = json.loads(self.request.body)
28
+ code = data.get('code')
29
+
30
+ if not code:
31
+ self.set_status(400)
32
+ self.finish(json.dumps({"error": "Authorization code is required"}))
33
+ return
34
+
35
+ # Exchange authorization code for tokens
36
+ token_response = self._exchange_code_for_tokens(code)
37
+
38
+ if token_response.get('error'):
39
+ self.set_status(400)
40
+ self.finish(json.dumps({"error": token_response['error']}))
41
+ return
42
+
43
+ # Return the tokens to the client
44
+ self.finish(json.dumps({
45
+ "access_token": token_response.get('access_token'),
46
+ "id_token": token_response.get('id_token'),
47
+ "refresh_token": token_response.get('refresh_token'),
48
+ "expires_in": token_response.get('expires_in')
49
+ }))
50
+
51
+ except json.JSONDecodeError:
52
+ self.set_status(400)
53
+ self.finish(json.dumps({"error": "Invalid JSON in request body"}))
54
+ except Exception as e:
55
+ self.log.error(f"Error in auth handler: {e}")
56
+ self.set_status(500)
57
+ self.finish(json.dumps({"error": "Internal server error"}))
58
+
59
+ def _exchange_code_for_tokens(self, code: str) -> Dict[str, Any]:
60
+ """Exchange authorization code for JWT tokens using AWS Cognito."""
61
+ try:
62
+ # Prepare the token request
63
+ token_data = {
64
+ 'grant_type': 'authorization_code',
65
+ 'client_id': ACTIVE_COGNITO_CONFIG['CLIENT_ID'],
66
+ 'code': code,
67
+ 'redirect_uri': ACTIVE_COGNITO_CONFIG['REDIRECT_URI']
68
+ }
69
+
70
+ # Add client secret if configured
71
+ if ACTIVE_COGNITO_CONFIG['CLIENT_SECRET']:
72
+ token_data['client_secret'] = ACTIVE_COGNITO_CONFIG['CLIENT_SECRET']
73
+
74
+ # Make the token request
75
+ response = requests.post(
76
+ ACTIVE_COGNITO_CONFIG['TOKEN_ENDPOINT'],
77
+ data=token_data,
78
+ headers={'Content-Type': 'application/x-www-form-urlencoded'}
79
+ )
80
+
81
+ if response.status_code == 200:
82
+ token_response: Dict[str, Any] = response.json()
83
+
84
+ current_time = datetime.now(timezone.utc)
85
+ self.log.info(f"Token exchange successful at {current_time.isoformat()}")
86
+ return token_response
87
+ else:
88
+ self.log.error(f"Token exchange failed: {response.status_code} - {response.text}")
89
+ return {"error": "Failed to exchange authorization code for tokens"}
90
+
91
+ except requests.exceptions.RequestException as e:
92
+ self.log.error(f"Request error during token exchange: {e}")
93
+ return {"error": "Network error during token exchange"}
94
+ except Exception as e:
95
+ self.log.error(f"Unexpected error during token exchange: {e}")
96
+ return {"error": "Unexpected error during token exchange"}
@@ -0,0 +1,13 @@
1
+ # Copyright (c) Saga Inc.
2
+ # Distributed under the terms of the GNU Affero General Public License v3.0 License.
3
+
4
+ from typing import List, Tuple
5
+ from jupyter_server.utils import url_path_join
6
+ from .handlers import AuthHandler
7
+
8
+
9
+ def get_auth_urls(base_url: str) -> List[Tuple[str, type]]:
10
+ """Get the auth URL patterns."""
11
+ return [
12
+ (url_path_join(base_url, "mito-ai", "auth", "token"), AuthHandler),
13
+ ]
@@ -42,7 +42,7 @@ class ChatCompletionHandler(CompletionHandler[ChatMessageMetadata]):
42
42
  metadata.activeCellId,
43
43
  metadata.base64EncodedActiveCellOutput is not None and metadata.base64EncodedActiveCellOutput != '',
44
44
  metadata.input,
45
- metadata.selectedRules
45
+ metadata.additionalContext
46
46
  )
47
47
  display_prompt = f"```python{metadata.activeCellCode or ''}```{metadata.input}"
48
48
 
@@ -105,7 +105,7 @@ class ChatCompletionHandler(CompletionHandler[ChatMessageMetadata]):
105
105
  metadata.activeCellId,
106
106
  metadata.base64EncodedActiveCellOutput is not None and metadata.base64EncodedActiveCellOutput != '',
107
107
  metadata.input,
108
- metadata.selectedRules
108
+ metadata.additionalContext
109
109
  )
110
110
  display_prompt = f"```python{metadata.activeCellCode or ''}```{metadata.input}"
111
111
 
@@ -3,11 +3,10 @@
3
3
 
4
4
  import traceback
5
5
  from dataclasses import dataclass, field
6
- from typing import Annotated, List, Literal, Optional, Type, Union, NewType
6
+ from typing import List, Literal, Optional, NewType, Dict
7
7
  from openai.types.chat import ChatCompletionMessageParam
8
8
  from enum import Enum
9
- from pydantic import BaseModel, Field
10
-
9
+ from pydantic import BaseModel
11
10
 
12
11
  # The ThreadID is the unique identifier for the chat thread.
13
12
  ThreadID = NewType('ThreadID', str)
@@ -35,6 +34,7 @@ class AgentResponse(BaseModel):
35
34
  cell_update: Optional[CellUpdate]
36
35
  get_cell_output_cell_id: Optional[str]
37
36
  next_steps: Optional[List[str]]
37
+ analysis_assumptions: Optional[List[str]]
38
38
 
39
39
 
40
40
  @dataclass(frozen=True)
@@ -63,6 +63,7 @@ class MessageType(Enum):
63
63
  GET_THREADS = "get_threads"
64
64
  DELETE_THREAD = "delete_thread"
65
65
  UPDATE_MODEL_CONFIG = "update_model_config"
66
+ STREAMLIT_CONVERSION = "streamlit_conversion"
66
67
 
67
68
 
68
69
  @dataclass(frozen=True)
@@ -84,7 +85,7 @@ class ChatMessageMetadata():
84
85
  base64EncodedActiveCellOutput: Optional[str] = None
85
86
  index: Optional[int] = None
86
87
  stream: bool = False
87
- selectedRules: Optional[List[str]] = None
88
+ additionalContext: Optional[List[Dict[str, str]]] = None
88
89
 
89
90
 
90
91
  @dataclass(frozen=True)
@@ -98,7 +99,7 @@ class AgentExecutionMetadata():
98
99
  variables: Optional[List[str]] = None
99
100
  files: Optional[List[str]] = None
100
101
  index: Optional[int] = None
101
- selectedRules: Optional[List[str]] = None
102
+ additionalContext: Optional[List[Dict[str, str]]] = None
102
103
 
103
104
  @dataclass(frozen=True)
104
105
  class AgentSmartDebugMetadata():
@@ -135,7 +136,7 @@ class InlineCompleterMetadata():
135
136
  suffix: str
136
137
  variables: Optional[List[str]] = None
137
138
  files: Optional[List[str]] = None
138
-
139
+
139
140
  @dataclass(frozen=True)
140
141
  class CompletionRequest:
141
142
  """
@@ -8,14 +8,17 @@ from mito_ai.completions.prompt_builders.prompt_constants import (
8
8
  VARIABLES_SECTION_HEADING,
9
9
  cell_update_output_str
10
10
  )
11
- from mito_ai.completions.prompt_builders.utils import get_rules_str
11
+ from mito_ai.completions.prompt_builders.utils import (
12
+ get_rules_str,
13
+ get_selected_context_str,
14
+ )
12
15
 
13
16
  def create_agent_execution_prompt(md: AgentExecutionMetadata) -> str:
14
17
  variables_str = '\n'.join([f"{variable}" for variable in md.variables or []])
15
18
  files_str = '\n'.join([f"{file}" for file in md.files or []])
16
19
  ai_optimized_cells_str = '\n'.join([f"{cell}" for cell in md.aiOptimizedCells or []])
17
- rules_str = get_rules_str(md.selectedRules)
18
-
20
+ rules_str = get_rules_str(md.additionalContext)
21
+ selected_context_str = get_selected_context_str(md.additionalContext)
19
22
  context_str = f"""Remember to choose the correct tool to respond with.
20
23
 
21
24
  {rules_str}
@@ -30,6 +33,8 @@ def create_agent_execution_prompt(md: AgentExecutionMetadata) -> str:
30
33
  {FILES_SECTION_HEADING}
31
34
  {files_str}
32
35
 
36
+ {selected_context_str}
37
+
33
38
  {cell_update_output_str(md.base64EncodedActiveCellOutput is not None)}"""
34
39
 
35
40
  task_str = '' if md.input == '' else f"""Your task:
@@ -53,7 +53,8 @@ Format:
53
53
  cell_type: 'code' | 'markdown'
54
54
  }}
55
55
  get_cell_output_cell_id: None,
56
- next_steps: None
56
+ next_steps: None,
57
+ analysis_assumptions: None
57
58
  }}
58
59
 
59
60
  Important information:
@@ -62,6 +63,9 @@ Important information:
62
63
  3. The code should be the full contents of that updated code cell. The code that you return will overwrite the existing contents of the code cell so it must contain all necessary code.
63
64
  4. The code_summary must be a very short phrase (1–5 words maximum) that begins with a verb ending in "-ing" (e.g., "Loading data", "Filtering rows", "Calculating average", "Plotting revenue"). Avoid full sentences or explanations—this should read like a quick commit message or code label, not a description.
64
65
  5. Important: Only use the CELL_UPDATE tool if you want to add/modify a notebook cell in response to the user's request. If the user is just sending you a friendly greeting or asking you a question about yourself, you SHOULD NOT USE A CELL_UPDATE tool because it does not require modifying the notebook. Instead, just use the FINISHED_TASK response.
66
+ 6. The assumptions is an optional list of critical assumptions that you made about the data or analysis approach. The assumptions you list here will be displayed to the user so that they can confirm or correct the assumptions. For example: ["NaN values in the impressions column represent 0 impressions", "Only crashes with pedestrian or cyclist fatalities are considered fatal crashes", "Intervention priority combines both volume and severity to identify maximum impact opportunities"].
67
+ 7. Only include important data and analytical assumptions that if incorrect would fundamentally change your analysis conclusions. These should be data handling decisions, methodological choices, and definitional boundaries. Do not include: obvious statements ("Each record is counted once"), result interpretation guidance ("Gaps in the plot represent zero values"), display choices ("Data is sorted for clarity"), internal reasoning ("Bar chart is better than line plot"), or environment assumptions ("Library X is installed"). Prioritize quality over quantity - include only the most critical assumptions or None if there are no critical assumptions made in this step that have not already be shared with the user. If you ever doubt whether an assumption is critical enough to be shared with the user as an assumption, don't include it. Most messages should not include an assumption.
68
+ 8. Do not include the same assumption or variations of the same assumption multiple times in the same conversation. Once you have presented the assumption to the user, they will already have the opportunity to confirm or correct it so do not include it again.
65
69
 
66
70
  #### Cell Addition:
67
71
  When you want to add a new cell to the notebook, respond in this format
@@ -78,7 +82,8 @@ Format:
78
82
  cell_type: 'code' | 'markdown'
79
83
  }}
80
84
  get_cell_output_cell_id: None,
81
- next_steps: None
85
+ next_steps: None,
86
+ analysis_assumptions: None
82
87
  }}
83
88
 
84
89
  Important information:
@@ -87,6 +92,9 @@ Important information:
87
92
  3. The code should be the full contents of that updated code cell. The code that you return will overwrite the existing contents of the code cell so it must contain all necessary code.
88
93
  4. code_summary must be a very short phrase (1–5 words maximum) that begins with a verb ending in "-ing" (e.g., "Loading data", "Filtering rows", "Calculating average", "Plotting revenue"). Avoid full sentences or explanations—this should read like a quick commit message or code label, not a description.
89
94
  5. The cell_type should only be 'markdown' if there is no code to add. There may be times where the code has comments. These are still code cells and should have the cell_type 'code'. Any cells that are labeled 'markdown' will be converted to markdown cells by the user.
95
+ 6. The assumptions is an optional list of critical assumptions that you made about the data or analysis approach. The assumptions you list here will be displayed to the user so that they can confirm or correct the assumptions. For example: ["NaN values in the impressions column represent 0 impressions", "Only crashes with pedestrian or cyclist fatalities are considered fatal crashes", "Intervention priority combines both volume and severity to identify maximum impact opportunities"].
96
+ 7. Only include important data and analytical assumptions that if incorrect would fundamentally change your analysis conclusions. These should be data handling decisions, methodological choices, and definitional boundaries. Do not include: obvious statements ("Each record is counted once"), result interpretation guidance ("Gaps in the plot represent zero values"), display choices ("Data is sorted for clarity"), internal reasoning ("Bar chart is better than line plot"), or environment assumptions ("Library X is installed"). Prioritize quality over quantity - include only the most critical assumptions or None if there are no critical assumptions made in this step that have not already be shared with the user. If you ever doubt whether an assumption is critical enough to be shared with the user as an assumption, don't include it. Most messages should not include an assumption.
97
+ 8. Do not include the same assumption or variations of the same assumption multiple times in the same conversation. Once you have presented the assumption to the user, they will already have the opportunity to confirm or correct it so do not include it again.
90
98
 
91
99
  <Cell Modification Example>
92
100
  Jupyter Notebook:
@@ -134,7 +142,8 @@ Output:
134
142
  cell_type: 'code'
135
143
  }},
136
144
  get_cell_output_cell_id: None,
137
- next_steps: None
145
+ next_steps: None,
146
+ analysis_assumptions: None
138
147
  }}
139
148
 
140
149
  </Cell Modification Example>
@@ -184,7 +193,8 @@ Output:
184
193
  code_summary: "Plotting total_price"
185
194
  }},
186
195
  get_cell_output_cell_id: None,
187
- next_steps: None
196
+ next_steps: None,
197
+ analysis_assumptions: None
188
198
  }}
189
199
 
190
200
  </Cell Addition Example>
@@ -200,7 +210,8 @@ When you want to get a base64 encoded version of a cell's output, respond with t
200
210
  message: str,
201
211
  get_cell_output_cell_id: str,
202
212
  cell_update: None,
203
- next_steps: Optional[List[str]]
213
+ next_steps: Optional[List[str]],
214
+ analysis_assumptions: Optional[List[str]]
204
215
  }}
205
216
 
206
217
  Important information:
@@ -219,7 +230,8 @@ When you have completed the user's task, respond with a message in this format:
219
230
  message: str,
220
231
  get_cell_output_cell_id: None,
221
232
  cell_update: None,
222
- next_steps: Optional[List[str]]
233
+ next_steps: Optional[List[str]],
234
+ analysis_assumptions: None
223
235
  }}
224
236
 
225
237
  Important information:
@@ -230,6 +242,7 @@ Important information:
230
242
  5. If you are not sure what the user might want to do next, err on the side of suggesting next steps instead of making an assumption and using more CELL_UPDATES.
231
243
  6. If the user's task doesn't involve creating or modifying a code cell, you should respond with a FINISHED_TASK response.
232
244
  7. If the user is just sending a friendly greeting (like "Hello", "Hi", "Hey", "How are you?", "What can you help me with?", etc.), you must respond with a FINISHED_TASK response message with a friendly message like this: "Hello! I'm Mito AI, your AI assistant for data analysis and Python programming in Jupyter notebooks. I can help you analyze datasets, create visualizations, clean data, and much more. What would you like to work on today?"
245
+ 8. Do not include any analysis_assumptions in the FINISHED_TASK response.
233
246
 
234
247
  <Finished Task Example 1>
235
248
 
@@ -253,7 +266,8 @@ Output:
253
266
  message: "Hey there! I'm Mito AI. How can I help you today?",
254
267
  get_cell_output_cell_id: None,
255
268
  cell_update: None,
256
- next_steps: None
269
+ next_steps: None,
270
+ analysis_assumptions: None
257
271
  }}
258
272
 
259
273
  </Finished Task Example 2>
@@ -1,30 +1,35 @@
1
1
  # Copyright (c) Saga Inc.
2
2
  # Distributed under the terms of the GNU Affero General Public License v3.0 License.
3
3
 
4
- from typing import List, Optional
4
+ from typing import List, Optional, Dict
5
5
  from mito_ai.completions.prompt_builders.prompt_constants import (
6
6
  ACTIVE_CELL_ID_SECTION_HEADING,
7
7
  CHAT_CODE_FORMATTING_RULES,
8
8
  FILES_SECTION_HEADING,
9
9
  VARIABLES_SECTION_HEADING,
10
10
  CODE_SECTION_HEADING,
11
- get_active_cell_output_str
11
+ get_active_cell_output_str,
12
12
  )
13
- from mito_ai.completions.prompt_builders.utils import get_rules_str
13
+ from mito_ai.completions.prompt_builders.utils import (
14
+ get_rules_str,
15
+ get_selected_context_str,
16
+ )
17
+
14
18
 
15
19
  def create_chat_prompt(
16
20
  variables: List[str],
17
21
  files: List[str],
18
- active_cell_code: str,
22
+ active_cell_code: str,
19
23
  active_cell_id: str,
20
24
  has_active_cell_output: bool,
21
25
  input: str,
22
- selected_rules: Optional[List[str]] = None
26
+ additional_context: Optional[List[Dict[str, str]]] = None,
23
27
  ) -> str:
24
- variables_str = '\n'.join([f"{variable}" for variable in variables])
25
- files_str = '\n'.join([f"{file}" for file in files])
26
- rules_str = get_rules_str(selected_rules)
27
-
28
+ variables_str = "\n".join([f"{variable}" for variable in variables])
29
+ files_str = "\n".join([f"{file}" for file in files])
30
+ selected_context_str = get_selected_context_str(additional_context)
31
+ rules_str = get_rules_str(additional_context)
32
+
28
33
  prompt = f"""{rules_str}
29
34
 
30
35
  Help me complete the following task. I will provide you with a set of variables, existing code, and a task to complete.
@@ -101,9 +106,11 @@ Hey there! I'm Mito AI. How can I help you today?
101
106
  {active_cell_code}
102
107
  ```
103
108
 
109
+ {selected_context_str}
110
+
104
111
  {get_active_cell_output_str(has_active_cell_output)}
105
112
 
106
113
  Your task: {input}
107
114
  """
108
-
109
- return prompt
115
+
116
+ return prompt