mito-ai 0.1.37__py3-none-any.whl → 0.1.39__py3-none-any.whl

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

Potentially problematic release.


This version of mito-ai might be problematic. Click here for more details.

Files changed (56) hide show
  1. mito_ai/__init__.py +17 -1
  2. mito_ai/_version.py +1 -1
  3. mito_ai/app_builder/handlers.py +43 -38
  4. mito_ai/app_builder/models.py +1 -1
  5. mito_ai/completions/handlers.py +1 -1
  6. mito_ai/completions/prompt_builders/agent_system_message.py +18 -45
  7. mito_ai/completions/prompt_builders/chat_name_prompt.py +6 -6
  8. mito_ai/log/handlers.py +10 -3
  9. mito_ai/log/urls.py +3 -3
  10. mito_ai/openai_client.py +1 -1
  11. mito_ai/streamlit_conversion/agent_utils.py +116 -0
  12. mito_ai/streamlit_conversion/prompts/prompt_constants.py +59 -0
  13. mito_ai/streamlit_conversion/prompts/prompt_utils.py +10 -0
  14. mito_ai/streamlit_conversion/prompts/streamlit_app_creation_prompt.py +45 -0
  15. mito_ai/streamlit_conversion/prompts/streamlit_error_correction_prompt.py +28 -0
  16. mito_ai/streamlit_conversion/prompts/streamlit_finish_todo_prompt.py +44 -0
  17. mito_ai/streamlit_conversion/streamlit_agent_handler.py +90 -44
  18. mito_ai/streamlit_conversion/streamlit_system_prompt.py +30 -17
  19. mito_ai/streamlit_conversion/streamlit_utils.py +48 -8
  20. mito_ai/streamlit_conversion/validate_streamlit_app.py +116 -0
  21. mito_ai/streamlit_preview/__init__.py +7 -0
  22. mito_ai/streamlit_preview/handlers.py +164 -0
  23. mito_ai/streamlit_preview/manager.py +159 -0
  24. mito_ai/streamlit_preview/urls.py +22 -0
  25. mito_ai/tests/streamlit_conversion/test_streamlit_agent_handler.py +166 -78
  26. mito_ai/tests/streamlit_conversion/test_streamlit_utils.py +4 -5
  27. mito_ai/tests/streamlit_conversion/test_validate_streamlit_app.py +119 -0
  28. mito_ai/tests/streamlit_preview/test_streamlit_preview_manager.py +302 -0
  29. mito_ai/tests/utils/test_anthropic_utils.py +2 -2
  30. mito_ai/utils/anthropic_utils.py +4 -4
  31. mito_ai/utils/open_ai_utils.py +0 -4
  32. mito_ai/utils/telemetry_utils.py +28 -1
  33. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/build_log.json +1 -1
  34. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/package.json +2 -2
  35. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/package.json.orig +1 -1
  36. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json +6 -1
  37. mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.831f63b48760c7119b9b.js → mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js +799 -116
  38. mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js.map +1 -0
  39. mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.93ecc9bc0edba61535cc.js → mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.js +5 -5
  40. mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.93ecc9bc0edba61535cc.js.map → mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.js.map +1 -1
  41. {mito_ai-0.1.37.dist-info → mito_ai-0.1.39.dist-info}/METADATA +4 -1
  42. {mito_ai-0.1.37.dist-info → mito_ai-0.1.39.dist-info}/RECORD +53 -42
  43. mito_ai/streamlit_conversion/validate_and_run_streamlit_code.py +0 -207
  44. mito_ai/tests/streamlit_conversion/test_validate_and_run_streamlit_code.py +0 -418
  45. mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.831f63b48760c7119b9b.js.map +0 -1
  46. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
  47. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
  48. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js +0 -0
  49. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js.map +0 -0
  50. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js +0 -0
  51. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map +0 -0
  52. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js +0 -0
  53. {mito_ai-0.1.37.data → mito_ai-0.1.39.data}/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map +0 -0
  54. {mito_ai-0.1.37.dist-info → mito_ai-0.1.39.dist-info}/WHEEL +0 -0
  55. {mito_ai-0.1.37.dist-info → mito_ai-0.1.39.dist-info}/entry_points.txt +0 -0
  56. {mito_ai-0.1.37.dist-info → mito_ai-0.1.39.dist-info}/licenses/LICENSE +0 -0
@@ -124,7 +124,7 @@ __webpack_require__.d(exports, {
124
124
  /******/ // This function allow to reference async chunks
125
125
  /******/ __webpack_require__.u = (chunkId) => {
126
126
  /******/ // return url for filenames based on template
127
- /******/ return "" + chunkId + "." + {"lib_index_js":"831f63b48760c7119b9b","style_index_js":"5876024bb17dbd6a3ee6","vendors-node_modules_semver_index_js":"9795f79265ddb416864b","vendors-node_modules_vscode-diff_dist_index_js":"ea55f1f9346638aafbcf"}[chunkId] + ".js";
127
+ /******/ return "" + chunkId + "." + {"lib_index_js":"16b532b655cd2906e04a","style_index_js":"5876024bb17dbd6a3ee6","vendors-node_modules_semver_index_js":"9795f79265ddb416864b","vendors-node_modules_vscode-diff_dist_index_js":"ea55f1f9346638aafbcf"}[chunkId] + ".js";
128
128
  /******/ };
129
129
  /******/ })();
130
130
  /******/
@@ -243,7 +243,7 @@ __webpack_require__.d(exports, {
243
243
  /******/ var promises = [];
244
244
  /******/ switch(name) {
245
245
  /******/ case "default": {
246
- /******/ register("mito_ai", "0.1.37", () => (__webpack_require__.e("lib_index_js").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ "./lib/index.js"))))));
246
+ /******/ register("mito_ai", "0.1.39", () => (__webpack_require__.e("lib_index_js").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ "./lib/index.js"))))));
247
247
  /******/ register("semver", "7.7.2", () => (__webpack_require__.e("vendors-node_modules_semver_index_js").then(() => (() => (__webpack_require__(/*! ./node_modules/semver/index.js */ "./node_modules/semver/index.js"))))));
248
248
  /******/ register("vscode-diff", "2.1.1", () => (__webpack_require__.e("vendors-node_modules_vscode-diff_dist_index_js").then(() => (() => (__webpack_require__(/*! ./node_modules/vscode-diff/dist/index.js */ "./node_modules/vscode-diff/dist/index.js"))))));
249
249
  /******/ }
@@ -411,9 +411,9 @@ __webpack_require__.d(exports, {
411
411
  /******/ "webpack/sharing/consume/default/@lumino/coreutils": () => (loadSingletonVersion("default", "@lumino/coreutils", false, [1,2,0,0])),
412
412
  /******/ "webpack/sharing/consume/default/@jupyterlab/rendermime": () => (loadSingletonVersion("default", "@jupyterlab/rendermime", false, [1,4,4,5])),
413
413
  /******/ "webpack/sharing/consume/default/@jupyterlab/cells": () => (loadVersion("default", "@jupyterlab/cells", false, [1,4,4,5])),
414
- /******/ "webpack/sharing/consume/default/vscode-diff/vscode-diff": () => (loadStrictVersion("default", "vscode-diff", false, [1,2,1,1], () => (__webpack_require__.e("vendors-node_modules_vscode-diff_dist_index_js").then(() => (() => (__webpack_require__(/*! vscode-diff */ "./node_modules/vscode-diff/dist/index.js"))))))),
415
414
  /******/ "webpack/sharing/consume/default/@jupyterlab/coreutils": () => (loadSingletonVersion("default", "@jupyterlab/coreutils", false, [1,6,4,5])),
416
415
  /******/ "webpack/sharing/consume/default/@jupyterlab/services": () => (loadSingletonVersion("default", "@jupyterlab/services", false, [1,7,4,5])),
416
+ /******/ "webpack/sharing/consume/default/vscode-diff/vscode-diff": () => (loadStrictVersion("default", "vscode-diff", false, [1,2,1,1], () => (__webpack_require__.e("vendors-node_modules_vscode-diff_dist_index_js").then(() => (() => (__webpack_require__(/*! vscode-diff */ "./node_modules/vscode-diff/dist/index.js"))))))),
417
417
  /******/ "webpack/sharing/consume/default/@codemirror/view": () => (loadSingletonVersion("default", "@codemirror/view", false, [1,6,9,6])),
418
418
  /******/ "webpack/sharing/consume/default/react-dom": () => (loadSingletonVersion("default", "react-dom", false, [1,18,2,0])),
419
419
  /******/ "webpack/sharing/consume/default/@lumino/signaling": () => (loadSingletonVersion("default", "@lumino/signaling", false, [1,2,0,0])),
@@ -438,9 +438,9 @@ __webpack_require__.d(exports, {
438
438
  /******/ "webpack/sharing/consume/default/@lumino/coreutils",
439
439
  /******/ "webpack/sharing/consume/default/@jupyterlab/rendermime",
440
440
  /******/ "webpack/sharing/consume/default/@jupyterlab/cells",
441
- /******/ "webpack/sharing/consume/default/vscode-diff/vscode-diff",
442
441
  /******/ "webpack/sharing/consume/default/@jupyterlab/coreutils",
443
442
  /******/ "webpack/sharing/consume/default/@jupyterlab/services",
443
+ /******/ "webpack/sharing/consume/default/vscode-diff/vscode-diff",
444
444
  /******/ "webpack/sharing/consume/default/@codemirror/view",
445
445
  /******/ "webpack/sharing/consume/default/react-dom",
446
446
  /******/ "webpack/sharing/consume/default/@lumino/signaling",
@@ -592,4 +592,4 @@ __webpack_require__.d(exports, {
592
592
  /******/
593
593
  /******/ })()
594
594
  ;
595
- //# sourceMappingURL=remoteEntry.93ecc9bc0edba61535cc.js.map
595
+ //# sourceMappingURL=remoteEntry.606207904e6aaa42b1bf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remoteEntry.93ecc9bc0edba61535cc.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;UCpCD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;;;;;WCRA;WACA;WACA;WACA,8BAA8B,oNAAoN;WAClP;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA;;;;;WCzCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,oJAAoJ;WACpJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI,aAAa;WACjB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC/CA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WClBA;WACA;WACA,WAAW,6BAA6B,iBAAiB,GAAG,qEAAqE;WACjI;WACA;WACA;WACA,qCAAqC,aAAa,EAAE,wDAAwD,2BAA2B,4BAA4B,2BAA2B,+CAA+C,mCAAmC;WAChR;WACA;WACA;WACA,qBAAqB,8BAA8B,SAAS,sDAAsD,gBAAgB,eAAe,KAAK,6DAA6D,SAAS,SAAS,QAAQ,eAAe,KAAK,eAAe,qGAAqG,WAAW,aAAa;WAC7Y;WACA;WACA;WACA,gBAAgB,8BAA8B,qBAAqB,YAAY,sBAAsB,SAAS,iDAAiD,6FAA6F,WAAW,uBAAuB,2BAA2B,wBAAwB,KAAK,oCAAoC,oBAAoB,wBAAwB,oBAAoB,SAAS,KAAK,yBAAyB,KAAK,gCAAgC,yBAAyB,QAAQ,eAAe,KAAK,eAAe,4DAA4D;WACtoB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE,IAAI;WACN;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;;WAED;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN,KAAK,WAAW;WAChB;WACA,GAAG;WACH;WACA;;;;;WC7MA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL,eAAe;WACf;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WACA;WACA;;;;;WCrFA;;;;;UEAA;UACA;UACA;UACA","sources":["webpack://mito_ai/webpack/container-entry","webpack://mito_ai/webpack/bootstrap","webpack://mito_ai/webpack/runtime/compat get default export","webpack://mito_ai/webpack/runtime/define property getters","webpack://mito_ai/webpack/runtime/ensure chunk","webpack://mito_ai/webpack/runtime/get javascript chunk filename","webpack://mito_ai/webpack/runtime/global","webpack://mito_ai/webpack/runtime/hasOwnProperty shorthand","webpack://mito_ai/webpack/runtime/load script","webpack://mito_ai/webpack/runtime/make namespace object","webpack://mito_ai/webpack/runtime/sharing","webpack://mito_ai/webpack/runtime/publicPath","webpack://mito_ai/webpack/runtime/consumes","webpack://mito_ai/webpack/runtime/jsonp chunk loading","webpack://mito_ai/webpack/runtime/nonce","webpack://mito_ai/webpack/before-startup","webpack://mito_ai/webpack/startup","webpack://mito_ai/webpack/after-startup"],"sourcesContent":["var moduleMap = {\n\t\"./index\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./extension\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./style\": () => {\n\t\treturn __webpack_require__.e(\"style_index_js\").then(() => (() => ((__webpack_require__(/*! ./style/index.js */ \"./style/index.js\")))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"lib_index_js\":\"831f63b48760c7119b9b\",\"style_index_js\":\"5876024bb17dbd6a3ee6\",\"vendors-node_modules_semver_index_js\":\"9795f79265ddb416864b\",\"vendors-node_modules_vscode-diff_dist_index_js\":\"ea55f1f9346638aafbcf\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"mito_ai:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"mito_ai\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"mito_ai\", \"0.1.37\", () => (__webpack_require__.e(\"lib_index_js\").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\"))))));\n\t\t\tregister(\"semver\", \"7.7.2\", () => (__webpack_require__.e(\"vendors-node_modules_semver_index_js\").then(() => (() => (__webpack_require__(/*! ./node_modules/semver/index.js */ \"./node_modules/semver/index.js\"))))));\n\t\t\tregister(\"vscode-diff\", \"2.1.1\", () => (__webpack_require__.e(\"vendors-node_modules_vscode-diff_dist_index_js\").then(() => (() => (__webpack_require__(/*! ./node_modules/vscode-diff/dist/index.js */ \"./node_modules/vscode-diff/dist/index.js\"))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map((p=>{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&\"u\"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e<t;r++}\n}\nvar rangeToString = (range) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a<range.length;a++){e--,n+=\"u\"==(typeof(t=range[a]))[0]?\"-\":(e>0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?\"not(\"+o()+\")\":1===t?\"(\"+o()+\" || \"+o()+\")\":2===t?g.pop()+\" \"+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,\"$1\")}\n}\nvar satisfy = (range, version) => {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:\"\";if(n>=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if(\"s\"!=g&&\"n\"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else\"s\"!=g&&\"n\"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();\n}\nvar exists = (scope, key) => {\n\treturn scope && __webpack_require__.o(scope, key);\n}\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar eagerOnly = (versions) => {\n\treturn Object.keys(versions).reduce((filtered, version) => {\n\t\t\tif (versions[version].eager) {\n\t\t\t\tfiltered[version] = versions[version];\n\t\t\t}\n\t\t\treturn filtered;\n\t}, {});\n};\nvar findLatestVersion = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key];\n};\nvar findSatisfyingVersion = (scope, key, requiredVersion, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion, eager) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \")\" + (eager ? \" for eager consumption\" : \"\") + \" of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar fail = (msg) => {\n\tthrow new Error(msg);\n}\nvar failAsNotExist = (scopeName, key) => {\n\treturn fail(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n}\nvar warn = /*#__PURE__*/ (msg) => {\n\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n};\nvar init = (fn) => (function(scopeName, key, eager, c, d) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then && !eager) {\n\t\treturn promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], key, false, c, d));\n\t}\n\treturn fn(scopeName, __webpack_require__.S[scopeName], key, eager, c, d);\n});\n\nvar useFallback = (scopeName, key, fallback) => {\n\treturn fallback ? fallback() : failAsNotExist(scopeName, key);\n}\nvar load = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\twarn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadStrictVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\tif (fallback) return fallback();\n\tfail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\treturn get(scope[key][version]);\n});\nvar loadSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\twarn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar loadStrictSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\tfail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t\"webpack/sharing/consume/default/@jupyterlab/application\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/application\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/apputils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/apputils\", false, [1,4,5,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/notebook\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/notebook\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/react\": () => (loadSingletonVersion(\"default\", \"react\", false, [1,18,2,0])),\n\t\"webpack/sharing/consume/default/@codemirror/state\": () => (loadSingletonVersion(\"default\", \"@codemirror/state\", false, [1,6,2,0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/ui-components\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@lumino/coreutils\": () => (loadSingletonVersion(\"default\", \"@lumino/coreutils\", false, [1,2,0,0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/rendermime\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/rendermime\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/cells\": () => (loadVersion(\"default\", \"@jupyterlab/cells\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/vscode-diff/vscode-diff\": () => (loadStrictVersion(\"default\", \"vscode-diff\", false, [1,2,1,1], () => (__webpack_require__.e(\"vendors-node_modules_vscode-diff_dist_index_js\").then(() => (() => (__webpack_require__(/*! vscode-diff */ \"./node_modules/vscode-diff/dist/index.js\"))))))),\n\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/coreutils\", false, [1,6,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/services\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/services\", false, [1,7,4,5])),\n\t\"webpack/sharing/consume/default/@codemirror/view\": () => (loadSingletonVersion(\"default\", \"@codemirror/view\", false, [1,6,9,6])),\n\t\"webpack/sharing/consume/default/react-dom\": () => (loadSingletonVersion(\"default\", \"react-dom\", false, [1,18,2,0])),\n\t\"webpack/sharing/consume/default/@lumino/signaling\": () => (loadSingletonVersion(\"default\", \"@lumino/signaling\", false, [1,2,0,0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/settingregistry\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/docmanager\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/docmanager\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@lumino/widgets\": () => (loadSingletonVersion(\"default\", \"@lumino/widgets\", false, [1,2,3,1,,\"alpha\",0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/codeeditor\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/codeeditor\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/codemirror\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/codemirror\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@lumino/commands\": () => (loadSingletonVersion(\"default\", \"@lumino/commands\", false, [1,2,0,1])),\n\t\"webpack/sharing/consume/default/@jupyterlab/statusbar\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/statusbar\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/semver/semver\": () => (loadStrictVersion(\"default\", \"semver\", false, [1,7,7,2], () => (__webpack_require__.e(\"vendors-node_modules_semver_index_js\").then(() => (() => (__webpack_require__(/*! semver */ \"./node_modules/semver/index.js\")))))))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"lib_index_js\": [\n\t\t\"webpack/sharing/consume/default/@jupyterlab/application\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/apputils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/notebook\",\n\t\t\"webpack/sharing/consume/default/react\",\n\t\t\"webpack/sharing/consume/default/@codemirror/state\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\",\n\t\t\"webpack/sharing/consume/default/@lumino/coreutils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/rendermime\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/cells\",\n\t\t\"webpack/sharing/consume/default/vscode-diff/vscode-diff\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/services\",\n\t\t\"webpack/sharing/consume/default/@codemirror/view\",\n\t\t\"webpack/sharing/consume/default/react-dom\",\n\t\t\"webpack/sharing/consume/default/@lumino/signaling\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/docmanager\",\n\t\t\"webpack/sharing/consume/default/@lumino/widgets\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/codeeditor\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/codemirror\",\n\t\t\"webpack/sharing/consume/default/@lumino/commands\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/statusbar\",\n\t\t\"webpack/sharing/consume/default/semver/semver\"\n\t]\n};\nvar startedInstallModules = {};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tif(!startedInstallModules[id]) {\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tstartedInstallModules[id] = true;\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t\t}\n\t\t});\n\t}\n}","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"mito_ai\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmito_ai\"] = self[\"webpackChunkmito_ai\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(\"webpack/container/entry/mito_ai\");\n",""],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"remoteEntry.606207904e6aaa42b1bf.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;UCpCD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;;;;WC5BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;;;;;WCRA;WACA;WACA;WACA,8BAA8B,oNAAoN;WAClP;;;;;WCJA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA;;;;;WCzCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,oJAAoJ;WACpJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,IAAI,aAAa;WACjB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC/CA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WClBA;WACA;WACA,WAAW,6BAA6B,iBAAiB,GAAG,qEAAqE;WACjI;WACA;WACA;WACA,qCAAqC,aAAa,EAAE,wDAAwD,2BAA2B,4BAA4B,2BAA2B,+CAA+C,mCAAmC;WAChR;WACA;WACA;WACA,qBAAqB,8BAA8B,SAAS,sDAAsD,gBAAgB,eAAe,KAAK,6DAA6D,SAAS,SAAS,QAAQ,eAAe,KAAK,eAAe,qGAAqG,WAAW,aAAa;WAC7Y;WACA;WACA;WACA,gBAAgB,8BAA8B,qBAAqB,YAAY,sBAAsB,SAAS,iDAAiD,6FAA6F,WAAW,uBAAuB,2BAA2B,wBAAwB,KAAK,oCAAoC,oBAAoB,wBAAwB,oBAAoB,SAAS,KAAK,yBAAyB,KAAK,gCAAgC,yBAAyB,QAAQ,eAAe,KAAK,eAAe,4DAA4D;WACtoB;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE,IAAI;WACN;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;;WAED;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA,CAAC;WACD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM;WACN,KAAK,WAAW;WAChB;WACA,GAAG;WACH;WACA;;;;;WC7MA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL,eAAe;WACf;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WACA;WACA;;;;;WCrFA;;;;;UEAA;UACA;UACA;UACA","sources":["webpack://mito_ai/webpack/container-entry","webpack://mito_ai/webpack/bootstrap","webpack://mito_ai/webpack/runtime/compat get default export","webpack://mito_ai/webpack/runtime/define property getters","webpack://mito_ai/webpack/runtime/ensure chunk","webpack://mito_ai/webpack/runtime/get javascript chunk filename","webpack://mito_ai/webpack/runtime/global","webpack://mito_ai/webpack/runtime/hasOwnProperty shorthand","webpack://mito_ai/webpack/runtime/load script","webpack://mito_ai/webpack/runtime/make namespace object","webpack://mito_ai/webpack/runtime/sharing","webpack://mito_ai/webpack/runtime/publicPath","webpack://mito_ai/webpack/runtime/consumes","webpack://mito_ai/webpack/runtime/jsonp chunk loading","webpack://mito_ai/webpack/runtime/nonce","webpack://mito_ai/webpack/before-startup","webpack://mito_ai/webpack/startup","webpack://mito_ai/webpack/after-startup"],"sourcesContent":["var moduleMap = {\n\t\"./index\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./extension\": () => {\n\t\treturn __webpack_require__.e(\"lib_index_js\").then(() => (() => ((__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\")))));\n\t},\n\t\"./style\": () => {\n\t\treturn __webpack_require__.e(\"style_index_js\").then(() => (() => ((__webpack_require__(/*! ./style/index.js */ \"./style/index.js\")))));\n\t}\n};\nvar get = (module, getScope) => {\n\t__webpack_require__.R = getScope;\n\tgetScope = (\n\t\t__webpack_require__.o(moduleMap, module)\n\t\t\t? moduleMap[module]()\n\t\t\t: Promise.resolve().then(() => {\n\t\t\t\tthrow new Error('Module \"' + module + '\" does not exist in container.');\n\t\t\t})\n\t);\n\t__webpack_require__.R = undefined;\n\treturn getScope;\n};\nvar init = (shareScope, initScope) => {\n\tif (!__webpack_require__.S) return;\n\tvar name = \"default\"\n\tvar oldScope = __webpack_require__.S[name];\n\tif(oldScope && oldScope !== shareScope) throw new Error(\"Container initialization failed as it has already been initialized with a different share scope\");\n\t__webpack_require__.S[name] = shareScope;\n\treturn __webpack_require__.I(name, initScope);\n};\n\n// This exports getters to disallow modifications\n__webpack_require__.d(exports, {\n\tget: () => (get),\n\tinit: () => (init)\n});","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"lib_index_js\":\"16b532b655cd2906e04a\",\"style_index_js\":\"5876024bb17dbd6a3ee6\",\"vendors-node_modules_semver_index_js\":\"9795f79265ddb416864b\",\"vendors-node_modules_vscode-diff_dist_index_js\":\"ea55f1f9346638aafbcf\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"mito_ai:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.S = {};\nvar initPromises = {};\nvar initTokens = {};\n__webpack_require__.I = (name, initScope) => {\n\tif(!initScope) initScope = [];\n\t// handling circular init calls\n\tvar initToken = initTokens[name];\n\tif(!initToken) initToken = initTokens[name] = {};\n\tif(initScope.indexOf(initToken) >= 0) return;\n\tinitScope.push(initToken);\n\t// only runs once\n\tif(initPromises[name]) return initPromises[name];\n\t// creates a new share scope if needed\n\tif(!__webpack_require__.o(__webpack_require__.S, name)) __webpack_require__.S[name] = {};\n\t// runs all init snippets from all modules reachable\n\tvar scope = __webpack_require__.S[name];\n\tvar warn = (msg) => {\n\t\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n\t};\n\tvar uniqueName = \"mito_ai\";\n\tvar register = (name, version, factory, eager) => {\n\t\tvar versions = scope[name] = scope[name] || {};\n\t\tvar activeVersion = versions[version];\n\t\tif(!activeVersion || (!activeVersion.loaded && (!eager != !activeVersion.eager ? eager : uniqueName > activeVersion.from))) versions[version] = { get: factory, from: uniqueName, eager: !!eager };\n\t};\n\tvar initExternal = (id) => {\n\t\tvar handleError = (err) => (warn(\"Initialization of sharing external failed: \" + err));\n\t\ttry {\n\t\t\tvar module = __webpack_require__(id);\n\t\t\tif(!module) return;\n\t\t\tvar initFn = (module) => (module && module.init && module.init(__webpack_require__.S[name], initScope))\n\t\t\tif(module.then) return promises.push(module.then(initFn, handleError));\n\t\t\tvar initResult = initFn(module);\n\t\t\tif(initResult && initResult.then) return promises.push(initResult['catch'](handleError));\n\t\t} catch(err) { handleError(err); }\n\t}\n\tvar promises = [];\n\tswitch(name) {\n\t\tcase \"default\": {\n\t\t\tregister(\"mito_ai\", \"0.1.39\", () => (__webpack_require__.e(\"lib_index_js\").then(() => (() => (__webpack_require__(/*! ./lib/index.js */ \"./lib/index.js\"))))));\n\t\t\tregister(\"semver\", \"7.7.2\", () => (__webpack_require__.e(\"vendors-node_modules_semver_index_js\").then(() => (() => (__webpack_require__(/*! ./node_modules/semver/index.js */ \"./node_modules/semver/index.js\"))))));\n\t\t\tregister(\"vscode-diff\", \"2.1.1\", () => (__webpack_require__.e(\"vendors-node_modules_vscode-diff_dist_index_js\").then(() => (() => (__webpack_require__(/*! ./node_modules/vscode-diff/dist/index.js */ \"./node_modules/vscode-diff/dist/index.js\"))))));\n\t\t}\n\t\tbreak;\n\t}\n\tif(!promises.length) return initPromises[name] = 1;\n\treturn initPromises[name] = Promise.all(promises).then(() => (initPromises[name] = 1));\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","var parseVersion = (str) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar p=p=>{return p.split(\".\").map((p=>{return+p==p?+p:p}))},n=/^([^-+]+)?(?:-([^+]+))?(?:\\+(.+))?$/.exec(str),r=n[1]?p(n[1]):[];return n[2]&&(r.length++,r.push.apply(r,p(n[2]))),n[3]&&(r.push([]),r.push.apply(r,p(n[3]))),r;\n}\nvar versionLt = (a, b) => {\n\t// see webpack/lib/util/semver.js for original code\n\ta=parseVersion(a),b=parseVersion(b);for(var r=0;;){if(r>=a.length)return r<b.length&&\"u\"!=(typeof b[r])[0];var e=a[r],n=(typeof e)[0];if(r>=b.length)return\"u\"==n;var t=b[r],f=(typeof t)[0];if(n!=f)return\"o\"==n&&\"n\"==f||(\"s\"==f||\"u\"==n);if(\"o\"!=n&&\"u\"!=n&&e!=t)return e<t;r++}\n}\nvar rangeToString = (range) => {\n\t// see webpack/lib/util/semver.js for original code\n\tvar r=range[0],n=\"\";if(1===range.length)return\"*\";if(r+.5){n+=0==r?\">=\":-1==r?\"<\":1==r?\"^\":2==r?\"~\":r>0?\"=\":\"!=\";for(var e=1,a=1;a<range.length;a++){e--,n+=\"u\"==(typeof(t=range[a]))[0]?\"-\":(e>0?\".\":\"\")+(e=2,t)}return n}var g=[];for(a=1;a<range.length;a++){var t=range[a];g.push(0===t?\"not(\"+o()+\")\":1===t?\"(\"+o()+\" || \"+o()+\")\":2===t?g.pop()+\" \"+g.pop():rangeToString(t))}return o();function o(){return g.pop().replace(/^\\((.+)\\)$/,\"$1\")}\n}\nvar satisfy = (range, version) => {\n\t// see webpack/lib/util/semver.js for original code\n\tif(0 in range){version=parseVersion(version);var e=range[0],r=e<0;r&&(e=-e-1);for(var n=0,i=1,a=!0;;i++,n++){var f,s,g=i<range.length?(typeof range[i])[0]:\"\";if(n>=version.length||\"o\"==(s=(typeof(f=version[n]))[0]))return!a||(\"u\"==g?i>e&&!r:\"\"==g!=r);if(\"u\"==s){if(!a||\"u\"!=g)return!1}else if(a)if(g==s)if(i<=e){if(f!=range[i])return!1}else{if(r?f>range[i]:f<range[i])return!1;f!=range[i]&&(a=!1)}else if(\"s\"!=g&&\"n\"!=g){if(r||i<=e)return!1;a=!1,i--}else{if(i<=e||s<g!=r)return!1;a=!1}else\"s\"!=g&&\"n\"!=g&&(a=!1,i--)}}var t=[],o=t.pop.bind(t);for(n=1;n<range.length;n++){var u=range[n];t.push(1==u?o()|o():2==u?o()&o():u?satisfy(u,version):!o())}return!!o();\n}\nvar exists = (scope, key) => {\n\treturn scope && __webpack_require__.o(scope, key);\n}\nvar get = (entry) => {\n\tentry.loaded = 1;\n\treturn entry.get()\n};\nvar eagerOnly = (versions) => {\n\treturn Object.keys(versions).reduce((filtered, version) => {\n\t\t\tif (versions[version].eager) {\n\t\t\t\tfiltered[version] = versions[version];\n\t\t\t}\n\t\t\treturn filtered;\n\t}, {});\n};\nvar findLatestVersion = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key];\n};\nvar findSatisfyingVersion = (scope, key, requiredVersion, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\tvar key = Object.keys(versions).reduce((a, b) => {\n\t\tif (!satisfy(requiredVersion, b)) return a;\n\t\treturn !a || versionLt(a, b) ? b : a;\n\t}, 0);\n\treturn key && versions[key]\n};\nvar findSingletonVersionKey = (scope, key, eager) => {\n\tvar versions = eager ? eagerOnly(scope[key]) : scope[key];\n\treturn Object.keys(versions).reduce((a, b) => {\n\t\treturn !a || (!versions[a].loaded && versionLt(a, b)) ? b : a;\n\t}, 0);\n};\nvar getInvalidSingletonVersionMessage = (scope, key, version, requiredVersion) => {\n\treturn \"Unsatisfied version \" + version + \" from \" + (version && scope[key][version].from) + \" of shared singleton module \" + key + \" (required \" + rangeToString(requiredVersion) + \")\"\n};\nvar getInvalidVersionMessage = (scope, scopeName, key, requiredVersion, eager) => {\n\tvar versions = scope[key];\n\treturn \"No satisfying version (\" + rangeToString(requiredVersion) + \")\" + (eager ? \" for eager consumption\" : \"\") + \" of shared module \" + key + \" found in shared scope \" + scopeName + \".\\n\" +\n\t\t\"Available versions: \" + Object.keys(versions).map((key) => {\n\t\treturn key + \" from \" + versions[key].from;\n\t}).join(\", \");\n};\nvar fail = (msg) => {\n\tthrow new Error(msg);\n}\nvar failAsNotExist = (scopeName, key) => {\n\treturn fail(\"Shared module \" + key + \" doesn't exist in shared scope \" + scopeName);\n}\nvar warn = /*#__PURE__*/ (msg) => {\n\tif (typeof console !== \"undefined\" && console.warn) console.warn(msg);\n};\nvar init = (fn) => (function(scopeName, key, eager, c, d) {\n\tvar promise = __webpack_require__.I(scopeName);\n\tif (promise && promise.then && !eager) {\n\t\treturn promise.then(fn.bind(fn, scopeName, __webpack_require__.S[scopeName], key, false, c, d));\n\t}\n\treturn fn(scopeName, __webpack_require__.S[scopeName], key, eager, c, d);\n});\n\nvar useFallback = (scopeName, key, fallback) => {\n\treturn fallback ? fallback() : failAsNotExist(scopeName, key);\n}\nvar load = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\twarn(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager))\n\treturn get(findLatestVersion(scope, key, eager));\n});\nvar loadStrictVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar satisfyingVersion = findSatisfyingVersion(scope, key, requiredVersion, eager);\n\tif (satisfyingVersion) return get(satisfyingVersion);\n\tif (fallback) return fallback();\n\tfail(getInvalidVersionMessage(scope, scopeName, key, requiredVersion, eager));\n});\nvar loadSingleton = /*#__PURE__*/ init((scopeName, scope, key, eager, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\treturn get(scope[key][version]);\n});\nvar loadSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\twarn(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar loadStrictSingletonVersion = /*#__PURE__*/ init((scopeName, scope, key, eager, requiredVersion, fallback) => {\n\tif (!exists(scope, key)) return useFallback(scopeName, key, fallback);\n\tvar version = findSingletonVersionKey(scope, key, eager);\n\tif (!satisfy(requiredVersion, version)) {\n\t\tfail(getInvalidSingletonVersionMessage(scope, key, version, requiredVersion));\n\t}\n\treturn get(scope[key][version]);\n});\nvar installedModules = {};\nvar moduleToHandlerMapping = {\n\t\"webpack/sharing/consume/default/@jupyterlab/application\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/application\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/apputils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/apputils\", false, [1,4,5,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/notebook\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/notebook\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/react\": () => (loadSingletonVersion(\"default\", \"react\", false, [1,18,2,0])),\n\t\"webpack/sharing/consume/default/@codemirror/state\": () => (loadSingletonVersion(\"default\", \"@codemirror/state\", false, [1,6,2,0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/ui-components\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@lumino/coreutils\": () => (loadSingletonVersion(\"default\", \"@lumino/coreutils\", false, [1,2,0,0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/rendermime\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/rendermime\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/cells\": () => (loadVersion(\"default\", \"@jupyterlab/cells\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/coreutils\", false, [1,6,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/services\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/services\", false, [1,7,4,5])),\n\t\"webpack/sharing/consume/default/vscode-diff/vscode-diff\": () => (loadStrictVersion(\"default\", \"vscode-diff\", false, [1,2,1,1], () => (__webpack_require__.e(\"vendors-node_modules_vscode-diff_dist_index_js\").then(() => (() => (__webpack_require__(/*! vscode-diff */ \"./node_modules/vscode-diff/dist/index.js\"))))))),\n\t\"webpack/sharing/consume/default/@codemirror/view\": () => (loadSingletonVersion(\"default\", \"@codemirror/view\", false, [1,6,9,6])),\n\t\"webpack/sharing/consume/default/react-dom\": () => (loadSingletonVersion(\"default\", \"react-dom\", false, [1,18,2,0])),\n\t\"webpack/sharing/consume/default/@lumino/signaling\": () => (loadSingletonVersion(\"default\", \"@lumino/signaling\", false, [1,2,0,0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/settingregistry\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/docmanager\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/docmanager\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@lumino/widgets\": () => (loadSingletonVersion(\"default\", \"@lumino/widgets\", false, [1,2,3,1,,\"alpha\",0])),\n\t\"webpack/sharing/consume/default/@jupyterlab/codeeditor\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/codeeditor\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@jupyterlab/codemirror\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/codemirror\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/@lumino/commands\": () => (loadSingletonVersion(\"default\", \"@lumino/commands\", false, [1,2,0,1])),\n\t\"webpack/sharing/consume/default/@jupyterlab/statusbar\": () => (loadSingletonVersion(\"default\", \"@jupyterlab/statusbar\", false, [1,4,4,5])),\n\t\"webpack/sharing/consume/default/semver/semver\": () => (loadStrictVersion(\"default\", \"semver\", false, [1,7,7,2], () => (__webpack_require__.e(\"vendors-node_modules_semver_index_js\").then(() => (() => (__webpack_require__(/*! semver */ \"./node_modules/semver/index.js\")))))))\n};\n// no consumes in initial chunks\nvar chunkMapping = {\n\t\"lib_index_js\": [\n\t\t\"webpack/sharing/consume/default/@jupyterlab/application\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/apputils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/notebook\",\n\t\t\"webpack/sharing/consume/default/react\",\n\t\t\"webpack/sharing/consume/default/@codemirror/state\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/ui-components\",\n\t\t\"webpack/sharing/consume/default/@lumino/coreutils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/rendermime\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/cells\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/coreutils\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/services\",\n\t\t\"webpack/sharing/consume/default/vscode-diff/vscode-diff\",\n\t\t\"webpack/sharing/consume/default/@codemirror/view\",\n\t\t\"webpack/sharing/consume/default/react-dom\",\n\t\t\"webpack/sharing/consume/default/@lumino/signaling\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/settingregistry\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/docmanager\",\n\t\t\"webpack/sharing/consume/default/@lumino/widgets\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/codeeditor\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/codemirror\",\n\t\t\"webpack/sharing/consume/default/@lumino/commands\",\n\t\t\"webpack/sharing/consume/default/@jupyterlab/statusbar\",\n\t\t\"webpack/sharing/consume/default/semver/semver\"\n\t]\n};\nvar startedInstallModules = {};\n__webpack_require__.f.consumes = (chunkId, promises) => {\n\tif(__webpack_require__.o(chunkMapping, chunkId)) {\n\t\tchunkMapping[chunkId].forEach((id) => {\n\t\t\tif(__webpack_require__.o(installedModules, id)) return promises.push(installedModules[id]);\n\t\t\tif(!startedInstallModules[id]) {\n\t\t\tvar onFactory = (factory) => {\n\t\t\t\tinstalledModules[id] = 0;\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tmodule.exports = factory();\n\t\t\t\t}\n\t\t\t};\n\t\t\tstartedInstallModules[id] = true;\n\t\t\tvar onError = (error) => {\n\t\t\t\tdelete installedModules[id];\n\t\t\t\t__webpack_require__.m[id] = (module) => {\n\t\t\t\t\tdelete __webpack_require__.c[id];\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tvar promise = moduleToHandlerMapping[id]();\n\t\t\t\tif(promise.then) {\n\t\t\t\t\tpromises.push(installedModules[id] = promise.then(onFactory)['catch'](onError));\n\t\t\t\t} else onFactory(promise);\n\t\t\t} catch(e) { onError(e); }\n\t\t\t}\n\t\t});\n\t}\n}","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"mito_ai\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmito_ai\"] = self[\"webpackChunkmito_ai\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\nvar __webpack_exports__ = __webpack_require__(\"webpack/container/entry/mito_ai\");\n",""],"names":[],"sourceRoot":""}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mito_ai
3
- Version: 0.1.37
3
+ Version: 0.1.39
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
@@ -23,6 +23,7 @@ Classifier: Programming Language :: Python :: 3.9
23
23
  Classifier: Programming Language :: Python :: 3.10
24
24
  Classifier: Programming Language :: Python :: 3.11
25
25
  Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
26
27
  Requires-Python: >=3.9
27
28
  Requires-Dist: analytics-python
28
29
  Requires-Dist: anthropic
@@ -34,8 +35,10 @@ Requires-Dist: pipreqs
34
35
  Requires-Dist: pydantic
35
36
  Requires-Dist: requests>=2.25.0
36
37
  Requires-Dist: sqlalchemy
38
+ Requires-Dist: streamlit
37
39
  Requires-Dist: tornado>=6.2.0
38
40
  Requires-Dist: traitlets
41
+ Requires-Dist: unidiff
39
42
  Provides-Extra: deploy
40
43
  Requires-Dist: hatch-jupyter-builder>=0.5; extra == 'deploy'
41
44
  Requires-Dist: hatch-nodejs-version>=0.3.2; extra == 'deploy'
@@ -1,19 +1,19 @@
1
- mito_ai/__init__.py,sha256=GowF1GShgH6TWZepsmNbYjEOSmWWK6A-NXDRhhF3FsE,2956
2
- mito_ai/_version.py,sha256=qIZE7xjP8F9SC8TfAr_dkF0SQkKaEz16pefwtZq1r8A,172
1
+ mito_ai/__init__.py,sha256=rqKDd_7Y6iP7oZk7G_No4uoUblcQ-fwnq6ccsucJPkE,3729
2
+ mito_ai/_version.py,sha256=uXM5D9NUQ_LWNRn7joZvseFOhoggbHwNf1GkDbp87Sw,172
3
3
  mito_ai/anthropic_client.py,sha256=p1G6ugZl5igvJ0SjhpSMOUC3KRKrIeUMXsSDU6XIBFw,10630
4
4
  mito_ai/constants.py,sha256=M8_2q3zeEQz-rQu0WzmlX9munFOZeyLkofOw9WfG9GM,2153
5
5
  mito_ai/gemini_client.py,sha256=4L-h2yYc_p8cEOCMDYM0R-vD4aktfqN47siZH5ZjGJc,9771
6
6
  mito_ai/logger.py,sha256=ZJEC415ZHTodDYKgp8ezVg3c4O513oQZV5lSs708gp8,1285
7
- mito_ai/openai_client.py,sha256=ljLs-HmHX5IElVn-5GuLTLijVPzWKCzg0uA263K57Dw,14210
7
+ mito_ai/openai_client.py,sha256=8PGuz2GiZww7qdWfQXLhXZ4gacDF_WNA12nJrd_rrqw,14208
8
8
  mito_ai/version_check.py,sha256=871m9_Qj_UzYmxuByBcs8DIoonUb0uVqGTRmJYpw6Fk,2268
9
9
  mito_ai/app_builder/__init__.py,sha256=h-glMwaRmOUINzoHh5EA4o1cgg_-wGirF8DLqDrx8S0,191
10
- mito_ai/app_builder/handlers.py,sha256=NmW61h6ArpHTJ5yu8LXFn0k17lujbWhjzdJnTpBLV7o,11366
11
- mito_ai/app_builder/models.py,sha256=-dv3p_NdnrXLel2yIzEB4ScS9M52yqOAf21Hmpqtmg4,1967
10
+ mito_ai/app_builder/handlers.py,sha256=3ruun5xRveWxGjRkx1XJJ39yRcNJYn4w5TkFvrbe3oA,11522
11
+ mito_ai/app_builder/models.py,sha256=FoXlHMeZQwSV4ViXeHHAWDd5UdScMXCZvzC3xov1xq0,1976
12
12
  mito_ai/auth/README.md,sha256=j83uIEb2avWI-zjKl_P0eZo_2vMyWNE2MAF7fMnJJMw,891
13
13
  mito_ai/auth/__init__.py,sha256=CrNlpbSKMPcw40H7keblZ61aa_x8qqSXPAqrEq-yCqk,172
14
14
  mito_ai/auth/handlers.py,sha256=vpbLBsS_CIGVK3kZ_Pht4fjvRlde-z5kWQRc-jLjHe4,3888
15
15
  mito_ai/auth/urls.py,sha256=iO4ueOlmqt6Bc66mVX2OrSdFGWPcwqhvGU9Ur5__sUM,417
16
- mito_ai/completions/handlers.py,sha256=_w8x5n24nI4IrSadWb0SjDRyXKDKLx6h2FZzEelzQD4,15908
16
+ mito_ai/completions/handlers.py,sha256=ofTpyzayi99GoxY1lYXFb-Q_EpZgzCl63t1VInEAHbY,15906
17
17
  mito_ai/completions/message_history.py,sha256=3FHtlBFe8KZTIHSj40_2i11P5_0-zavPIvkUzlFuZFQ,16837
18
18
  mito_ai/completions/models.py,sha256=lCxkNGATEwOWr_dK3fRTIIB9AE4XPnZQ4o7iHHHayGo,10008
19
19
  mito_ai/completions/providers.py,sha256=Tzx8fV4eeQ1lDeweSLjtuSrFayxfgtR_IN8YcDYJxUI,12011
@@ -29,8 +29,8 @@ mito_ai/completions/completion_handlers/utils.py,sha256=GZZ1CrLcUf0PJ-cL39TUe5nC
29
29
  mito_ai/completions/prompt_builders/__init__.py,sha256=10bPaPwGgcrId4d0uHyFr6ExhhbjO9Dog2oAfPHSMPs,112
30
30
  mito_ai/completions/prompt_builders/agent_execution_prompt.py,sha256=YQCbTX0KhcIHa7VVjVTuPxklXz3Z4LKR63IG_WTjVo4,1367
31
31
  mito_ai/completions/prompt_builders/agent_smart_debug_prompt.py,sha256=RTI7QmXVu6qSiMbjadAakgW7qCMJ86kd54gioykewRE,6315
32
- mito_ai/completions/prompt_builders/agent_system_message.py,sha256=z51T1rrzRfLz2nLVG9H3jJV6x1aNhMVpZWMBtBmyOE4,25004
33
- mito_ai/completions/prompt_builders/chat_name_prompt.py,sha256=Ign2s51W0YSjLwLFn1BK1pO1yaXgd0kQcqse3kWOFg8,556
32
+ mito_ai/completions/prompt_builders/agent_system_message.py,sha256=Et_T1aAk5T1nrGFvHO04j7opCUWEHTOCBodqHyG3wHw,24297
33
+ mito_ai/completions/prompt_builders/chat_name_prompt.py,sha256=ERwgDUAnd7VH3drjbUh70zbP3iEUct1PdJ9EZvMi3qE,532
34
34
  mito_ai/completions/prompt_builders/chat_prompt.py,sha256=v2Ril9xUxhgPHixtckMBNiOyOn7y110npQgY285pPSc,2941
35
35
  mito_ai/completions/prompt_builders/chat_system_message.py,sha256=tT4Olfv6NQ9uTQNWWyZAMEvKLXnuxEhkTwisUzfaqHY,3790
36
36
  mito_ai/completions/prompt_builders/explain_code_prompt.py,sha256=aswSXdZP-catLmLqJKv2E5VeO9CL7vexguZhtGl724c,769
@@ -57,18 +57,28 @@ mito_ai/docker/postgres/compose.yml,sha256=pp1fG2YfYbDpHuedkpcnAkRu0HJs_uibBn2Cn
57
57
  mito_ai/docker/postgres/init/setup.sql,sha256=l--Ra5FNfR-24I-HdZWpqzqrERxF1jNOIzdrpVlMRFM,356
58
58
  mito_ai/enterprise/__init__.py,sha256=10bPaPwGgcrId4d0uHyFr6ExhhbjO9Dog2oAfPHSMPs,112
59
59
  mito_ai/enterprise/utils.py,sha256=Skdg9YahsnixKfBMXLneJmzn7yTi1QbvTjBxESV2dmw,652
60
- mito_ai/log/handlers.py,sha256=qzc5x4KdOgRIGUrbaisdz5ef86NHRAKhmmXJA40d6a8,806
61
- mito_ai/log/urls.py,sha256=agTX33PpuOycuF7qNDWQ4xgNCL_OLJKzZYdoslqiWic,618
60
+ mito_ai/log/handlers.py,sha256=RWkJFJ5OJ28Fm2AYgRbywxhgDZoTqjNwW-Z6tZJvUc4,1199
61
+ mito_ai/log/urls.py,sha256=OLqAQObEDAwMVmzXZVftR2YBw5D9eCn0bDWlW_52DvI,657
62
62
  mito_ai/rules/handlers.py,sha256=dWnusYlQkKGyEEahNm9wtTYdIJq-lxVchyEvTd_Jkeg,1600
63
63
  mito_ai/rules/urls.py,sha256=HkhjOcfuKPN35crvY_CBABclOG8d18OfexcmQR-trFE,697
64
64
  mito_ai/rules/utils.py,sha256=7Hj5ZOUZERLHMR7a5_7ipbJXaiTkvXjfiRjTHpCKdxU,1664
65
65
  mito_ai/settings/handlers.py,sha256=Ym1QieLf9VooP44w4mU2z4WtGSkThVhEgmtO7ENBg4c,1348
66
66
  mito_ai/settings/urls.py,sha256=4Oyd6Qtap2vMApyUevoUp_RjoL09IBIwPL6ZayGT3wM,648
67
67
  mito_ai/settings/utils.py,sha256=ZiG-axUDFsIKK7iipZTMwunYtP7_dkThHL37mR8GGyA,1355
68
- mito_ai/streamlit_conversion/streamlit_agent_handler.py,sha256=aUsE6cvUccA8HjLlZcIaliT5OUYjEDGrYbwbCMJ4r7I,4580
69
- mito_ai/streamlit_conversion/streamlit_system_prompt.py,sha256=NmULd95wPNDkhIEDC3PFaw4-hagGJt-UW_bVi7xniNs,2163
70
- mito_ai/streamlit_conversion/streamlit_utils.py,sha256=OzrzOPF9LKvj4zF5Ftp5btYTapZnbm-9gGLo3g0BwmY,3297
71
- mito_ai/streamlit_conversion/validate_and_run_streamlit_code.py,sha256=K6y1vtRog-7akryewv5_3krR3xC843jsYYyXevkbWHQ,7012
68
+ mito_ai/streamlit_conversion/agent_utils.py,sha256=2t9OyPN9g-J3tZkPbABoZWFeux5z0d7ZRqUd36kwPCI,3849
69
+ mito_ai/streamlit_conversion/streamlit_agent_handler.py,sha256=2vWQ6FT17juZ9MfrsDvLdfMo59na-wbWbJ5GfA9WEs0,7161
70
+ mito_ai/streamlit_conversion/streamlit_system_prompt.py,sha256=tYomy09aibRIczKq4L7cUGET1alaDjWBzVZuUweqKQU,3379
71
+ mito_ai/streamlit_conversion/streamlit_utils.py,sha256=FaAVb3vqYONENpWgZ1l2vI0b6KWA3DdQNWRIx_YIkow,5031
72
+ mito_ai/streamlit_conversion/validate_streamlit_app.py,sha256=d22z4dqz7oOuuNZHNizyNI9bLr6Zc0w53fDszQMAVR4,4005
73
+ mito_ai/streamlit_conversion/prompts/prompt_constants.py,sha256=wINhZtNwD9mPyw5-djP5xA-BqtQkBZ18kAv1wj5etIo,3202
74
+ mito_ai/streamlit_conversion/prompts/prompt_utils.py,sha256=lEOsWiyI4WHKqmMozV_j8DST_Rry3vlj0Ftfza2lOcM,378
75
+ mito_ai/streamlit_conversion/prompts/streamlit_app_creation_prompt.py,sha256=fH0mru1JbNSTO6W45UTE0aZhL86mebxDhFg4VbHtmDk,1798
76
+ mito_ai/streamlit_conversion/prompts/streamlit_error_correction_prompt.py,sha256=1VDypM4h3V1WEi-eXOX_gCIHOqVx8chJvLoDK0Yl5pU,1076
77
+ mito_ai/streamlit_conversion/prompts/streamlit_finish_todo_prompt.py,sha256=tJwtV9tKFcE9R14ve9Dk3Bpcwric0esR45CnIfXUymg,2172
78
+ mito_ai/streamlit_preview/__init__.py,sha256=A2bp32Iplk8MGunc_-oLGpJONqfhd94ceS1_EqoY6u0,261
79
+ mito_ai/streamlit_preview/handlers.py,sha256=0AozuXgku0mDFupI2_qlO5q3An0ZVHQnCIotCHaDb0s,6635
80
+ mito_ai/streamlit_preview/manager.py,sha256=FtHyA7WDFxIxQiUdgGorTlBXxz3rrAm2vut9VMCCw_U,5398
81
+ mito_ai/streamlit_preview/urls.py,sha256=IbcugX1H8u30Q6U8-9Ofdjmq_rdyAiesxw36qSB5giA,790
72
82
  mito_ai/tests/__init__.py,sha256=10bPaPwGgcrId4d0uHyFr6ExhhbjO9Dog2oAfPHSMPs,112
73
83
  mito_ai/tests/conftest.py,sha256=C4iW3L50rWLeI91gim3gyyJnKKb1zGJ1GLxlXZWfLNs,1494
74
84
  mito_ai/tests/create_agent_system_message_prompt_test.py,sha256=PmNBCEz3vuy43CPRfE2JWgSVt1dfGFtn8pzBkDxBlyc,1061
@@ -112,45 +122,46 @@ mito_ai/tests/settings/conftest.py,sha256=dypIqQCssJ9sHArib7FTWQCrY2OLmkI3ZMK8Y3
112
122
  mito_ai/tests/settings/settings_test.py,sha256=dRmugyFeAfUZcvSLd9Bz2kQ96hnq0mrCvzqCErZySX4,2133
113
123
  mito_ai/tests/settings/test_settings_constants.py,sha256=BBG7TCfl2pJzLcg825pRvEVgjP3D9sWyYAwqekQ10wo,349
114
124
  mito_ai/tests/streamlit_conversion/__init__.py,sha256=10bPaPwGgcrId4d0uHyFr6ExhhbjO9Dog2oAfPHSMPs,112
115
- mito_ai/tests/streamlit_conversion/test_streamlit_agent_handler.py,sha256=jyggd7mhY1_I7xNEXNh87Q4RrrHstIA9M71NXgajXes,12463
116
- mito_ai/tests/streamlit_conversion/test_streamlit_utils.py,sha256=NJOrxKEKedi5dvab8JeKJShpW6iWnIsTaEt1_1abvVo,7327
117
- mito_ai/tests/streamlit_conversion/test_validate_and_run_streamlit_code.py,sha256=IeKlc5I7DSZImvTynVagrW9DhkugFh_oGOZqlNkQiLA,15402
125
+ mito_ai/tests/streamlit_conversion/test_streamlit_agent_handler.py,sha256=Ja1UXeOUUA5xSu8mR9W6q2WDWBnt-RPzB870Aa8ZAig,16745
126
+ mito_ai/tests/streamlit_conversion/test_streamlit_utils.py,sha256=9hJgGnv8wpVvzgjyfJiFvwULv8be-TkjEiPOeYxWlIM,7366
127
+ mito_ai/tests/streamlit_conversion/test_validate_streamlit_app.py,sha256=-85bht9rYICVqhaM-450FYJCRlXDMpKFni3M198C3oo,4085
128
+ mito_ai/tests/streamlit_preview/test_streamlit_preview_manager.py,sha256=BUlannlxqudBkkGrlaw32iFvNSsD-R4S_ZjA96quIK8,12037
118
129
  mito_ai/tests/utils/__init__.py,sha256=10bPaPwGgcrId4d0uHyFr6ExhhbjO9Dog2oAfPHSMPs,112
119
- mito_ai/tests/utils/test_anthropic_utils.py,sha256=DXdcIfn5CTPrfI99QTY3msfNY2jpVzSvyVhSN8rwh_M,5210
130
+ mito_ai/tests/utils/test_anthropic_utils.py,sha256=oBxQzXi309zvU4gHD7R7PDVbDR_iq4TXN1W6yzKc8jM,5244
120
131
  mito_ai/tests/utils/test_gemini_utils.py,sha256=DeN5392ZiuckeMw1agmHPaoa5y73TUSEgxxhx72crLQ,2866
121
132
  mito_ai/utils/__init__.py,sha256=10bPaPwGgcrId4d0uHyFr6ExhhbjO9Dog2oAfPHSMPs,112
122
- mito_ai/utils/anthropic_utils.py,sha256=ew9RC0Ofn7nzgkxPChp1VMeQ0iQCMOCKwTdpj83ftmE,6335
133
+ mito_ai/utils/anthropic_utils.py,sha256=0uDBkeVOFKrL77o-DORBmgsvd-mSo61JsI3LyMGnmqA,6375
123
134
  mito_ai/utils/create.py,sha256=w0Z0_-hmuamRGUWO4ceTaI6DR5hHLNpSWaBnjWrX7sQ,2587
124
135
  mito_ai/utils/db.py,sha256=oeNjFVg5JET1epjmUUs9uhgGzzvbCn3Na69UbVP0Ib4,2433
125
136
  mito_ai/utils/gemini_utils.py,sha256=zZlEeaQvqvndVxgNNmIQfB7OGkUd292bIlH0pvW0k4M,4643
126
137
  mito_ai/utils/message_history_utils.py,sha256=I8BaHHQX6qRSDfq1K9M8OSsU1Tux8whG6XN6688heSE,3113
127
138
  mito_ai/utils/mito_server_utils.py,sha256=pqOic5fB1-Tlwquym81YCGPhAz4CoDolYlosWooylSw,8933
128
- mito_ai/utils/open_ai_utils.py,sha256=R-FnTCMmE14msPJBUrwxLqPgja9lGDwNVIKbe2j6Kvw,6704
139
+ mito_ai/utils/open_ai_utils.py,sha256=1mCVIzzW-fIuEIEhowtvCPCrvu5nn5Hxlei64fseocI,6549
129
140
  mito_ai/utils/provider_utils.py,sha256=vVoo1lQc83Jnm0dgYf5L9AxfiWrb5HVb5Lno_vDQQyk,1671
130
141
  mito_ai/utils/schema.py,sha256=XAgw3GlAynGQDVIqWhKX_8trdlKuFVXatbUT-km_dhM,3106
131
142
  mito_ai/utils/server_limits.py,sha256=4uQld4DBSiNKhY9OsBItIAxyF8hgGDC9aBw5OLYv3e8,6334
132
- mito_ai/utils/telemetry_utils.py,sha256=RCiqJbZyaMkpFYR7YgLw8a5wy7uXfOnwrOvZLp2B8ro,12956
143
+ mito_ai/utils/telemetry_utils.py,sha256=RZZEa0tDY8vEqI1McB3HAAh8L4tTLW807LsV53-gMsY,13861
133
144
  mito_ai/utils/utils.py,sha256=Ygl84xLOh06GIoqvAW4D5ZfUO_ilSEPcpkLPL4bm3Bg,3224
134
145
  mito_ai/utils/version_utils.py,sha256=yT1OJZpH7Q1eABR2BfYNV09hJ6xXv_aFJI58ltfpnvk,2409
135
146
  mito_ai/utils/websocket_base.py,sha256=O4xjMHYUhxKN_lOKtVEGl3mW8EXkzdPWt1tUtsbiHgM,2941
136
- mito_ai-0.1.37.data/data/etc/jupyter/jupyter_server_config.d/mito_ai.json,sha256=jnrJTWHAtiNWoD0APwyPSP0v4oXBO9aAqGwzTCq7ij8,82
137
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/build_log.json,sha256=1_eTs_cpcW7rXLytx-m-Cy1QgTDtQYURURU25fLNxKE,22761
138
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/package.json,sha256=x4l2ELsBUPlV6tuvttrsqAh2y8dcIAlUpUAR_5PC7dY,7232
139
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/package.json.orig,sha256=6YLt_YFX207fcksNphnHxKThOSnedViDDQd8RbmIx9c,7090
140
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json,sha256=LIWr89PUToDeQc52dnlkE2RYL_jDCERhHACeXDNkPVk,903
141
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.831f63b48760c7119b9b.js,sha256=spKlFMuTIGM2i77uNwdZN7l0MDuOx2o67f6Ko89OI_c,920755
142
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.831f63b48760c7119b9b.js.map,sha256=VNV8IABx__MhLpS47aDMSi027qwDDUERrCZ6RmMuuk4,926203
143
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.93ecc9bc0edba61535cc.js,sha256=Ywb7IKC89JxMiK8PqqWuvjfXxbbA9k6PCnduccZyJlo,32253
144
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.93ecc9bc0edba61535cc.js.map,sha256=-qulRtAYg4JqdUbxbgGUSznGHAUXI5Kmg4xaHZ2flrY,30952
145
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/style.js,sha256=ymGkha4YxU1j3e7KeoKfqYpcsPp1u3RRuHzMaiUnOhw,150
146
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js,sha256=3WQEODsCgCQGEsrSnXaCIb-LlQYJ9k55le76mlBk5xs,33936
147
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js.map,sha256=Nc8hZfBEyXo3MHs-CN2h5l794OtFsz7ok7L-4qh2H6c,28742
148
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js,sha256=9oMNn2KgNWx12lmKHUFC2KKepDZFdEfe7E4oDOzTHGY,90862
149
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map,sha256=Jbgs3npRmzczpfHqSSUBiKbqURZbcgIWNdoccRjUSRk,93905
150
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js,sha256=5gfmIE7bAaJYJZdTp5WuyTW6dKdU545i3X4LTSmiEcM,223110
151
- mito_ai-0.1.37.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map,sha256=azV-DYUA9Yp99BcesR3Q0DzRIiD64xVRhE4lDbvK3Sg,245869
152
- mito_ai-0.1.37.dist-info/METADATA,sha256=NzIrynYEtqLgNaBqRF6y5Dbhge9wS3MzYW1hcn8ls-M,7456
153
- mito_ai-0.1.37.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
154
- mito_ai-0.1.37.dist-info/entry_points.txt,sha256=OGsjpFBUq1QsuAlA3r2PeZXRwnnIWvzfgVhUqmx4qe4,79
155
- mito_ai-0.1.37.dist-info/licenses/LICENSE,sha256=O2F2Pp4Q1SmfzgYnl8krdrXZOaEo7Chjhk7OTYuGlDw,115
156
- mito_ai-0.1.37.dist-info/RECORD,,
147
+ mito_ai-0.1.39.data/data/etc/jupyter/jupyter_server_config.d/mito_ai.json,sha256=jnrJTWHAtiNWoD0APwyPSP0v4oXBO9aAqGwzTCq7ij8,82
148
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/build_log.json,sha256=QAkz6Djy2u1GPtloY68nNaCCCyWfgieqRitrXsWOMec,22761
149
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/package.json,sha256=2V9GN0Ch_zj8QobMx0Fo6oB7HNL4g9BAuNf1ZFf5y1A,7232
150
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/package.json.orig,sha256=4e6NFc7iW-TaWkCZr9RwEpaPj5cGc3U5Ei7dVcIqtFw,7090
151
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/schemas/mito_ai/toolbar-buttons.json,sha256=M6DuZ-p6PJmecWTaPd4guG7vH3vzsz0wbyjhhc0cV0c,1040
152
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js,sha256=Lhpw095ZKWOuE4Ornmjs69qrTw3aXQy4gro_Vu-JCFg,961653
153
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js.map,sha256=JNYq0sWya3awYOpv7fcoN1FniMzzcdiLXBILHmArg2E,967352
154
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.js,sha256=WKAJ4QFKuz6DgH9gwREeLdIrZEQnrXp3zwlGD-xL5nM,32253
155
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.js.map,sha256=R87wJ3I9-BSht_5AAHKEkWcmx6L4Lz3mIYAoXQGtvDA,30952
156
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/style.js,sha256=ymGkha4YxU1j3e7KeoKfqYpcsPp1u3RRuHzMaiUnOhw,150
157
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js,sha256=3WQEODsCgCQGEsrSnXaCIb-LlQYJ9k55le76mlBk5xs,33936
158
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/style_index_js.5876024bb17dbd6a3ee6.js.map,sha256=Nc8hZfBEyXo3MHs-CN2h5l794OtFsz7ok7L-4qh2H6c,28742
159
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js,sha256=9oMNn2KgNWx12lmKHUFC2KKepDZFdEfe7E4oDOzTHGY,90862
160
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_semver_index_js.9795f79265ddb416864b.js.map,sha256=Jbgs3npRmzczpfHqSSUBiKbqURZbcgIWNdoccRjUSRk,93905
161
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js,sha256=5gfmIE7bAaJYJZdTp5WuyTW6dKdU545i3X4LTSmiEcM,223110
162
+ mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/vendors-node_modules_vscode-diff_dist_index_js.ea55f1f9346638aafbcf.js.map,sha256=azV-DYUA9Yp99BcesR3Q0DzRIiD64xVRhE4lDbvK3Sg,245869
163
+ mito_ai-0.1.39.dist-info/METADATA,sha256=U2XX6DJNVm9uvVbf1VVoTn6mxlwsC_mjQaZH8hl2tPY,7555
164
+ mito_ai-0.1.39.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
165
+ mito_ai-0.1.39.dist-info/entry_points.txt,sha256=OGsjpFBUq1QsuAlA3r2PeZXRwnnIWvzfgVhUqmx4qe4,79
166
+ mito_ai-0.1.39.dist-info/licenses/LICENSE,sha256=O2F2Pp4Q1SmfzgYnl8krdrXZOaEo7Chjhk7OTYuGlDw,115
167
+ mito_ai-0.1.39.dist-info/RECORD,,
@@ -1,207 +0,0 @@
1
- # Copyright (c) Saga Inc.
2
- # Distributed under the terms of the GNU Affero General Public License v3.0 License.
3
-
4
- import subprocess
5
- import sys
6
- import os
7
- import time
8
- import requests
9
- import tempfile
10
- import shutil
11
- import traceback
12
- import ast
13
- import importlib.util
14
- import warnings
15
- from typing import Tuple, Optional, Dict, Any
16
- from subprocess import Popen
17
-
18
- # warnings.filterwarnings("ignore", message=r".*missing ScriptRunContext.*")
19
- # warnings.filterwarnings("ignore", category=UserWarning)
20
-
21
- warnings.filterwarnings("ignore", message=".*bare mode.*")
22
-
23
-
24
- class StreamlitValidator:
25
- def __init__(self, port: int = 8501, timeout: int = 30) -> None:
26
- self.port = port
27
- self.timeout = timeout
28
- self.process: Optional[Popen[str]] = None
29
- self.temp_dir: Optional[str] = None
30
-
31
- def validate_syntax(self, app_code: str) -> Tuple[bool, str]:
32
- """Check if the Python code has valid syntax"""
33
- try:
34
- ast.parse(app_code)
35
- return True, "Syntax is valid"
36
- except SyntaxError as e:
37
- error_msg = ''.join(traceback.format_exception(type(e), e, e.__traceback__))
38
- return False, f"Syntax error: {error_msg}"
39
-
40
- def create_temp_app(self, app_code: str) -> str:
41
- """Create a temporary Streamlit app file"""
42
- self.temp_dir = tempfile.mkdtemp()
43
- if self.temp_dir is None:
44
- raise RuntimeError("Failed to create temporary directory")
45
- app_path = os.path.join(self.temp_dir, "app.py")
46
-
47
- with open(app_path, 'w') as f:
48
- f.write(app_code)
49
-
50
- return app_path
51
-
52
- def start_streamlit_app(self, app_path: str) -> Tuple[bool, str]:
53
- """Start the Streamlit app in a subprocess"""
54
- try:
55
- cmd = [
56
- sys.executable, "-m", "streamlit", "run", app_path,
57
- "--server.port", str(self.port),
58
- "--server.headless", "true",
59
- "--server.address", "localhost",
60
- "--logger.level", "error"
61
- ]
62
-
63
- self.process = subprocess.Popen(
64
- cmd,
65
- stdout=subprocess.PIPE,
66
- stderr=subprocess.PIPE,
67
- text=True
68
- )
69
-
70
- return True, "Streamlit app started"
71
- except Exception as e:
72
- return False, f"Failed to start Streamlit: {str(e)}"
73
-
74
- def wait_for_app(self) -> Tuple[bool, str]:
75
- """Wait for the Streamlit app to be ready"""
76
- start_time = time.time()
77
-
78
- exception_error = "Error"
79
- while time.time() - start_time < self.timeout:
80
- try:
81
- response = requests.get(f"http://localhost:{self.port}", timeout=5)
82
- if response.status_code == 200:
83
- return True, "App is running successfully"
84
- except requests.exceptions.RequestException as e:
85
- exception_error = str(e)
86
-
87
- time.sleep(1)
88
-
89
- return False, f"App failed to start within timeout - {exception_error}"
90
-
91
- def filter_streamlit_warnings(self, text: str) -> str:
92
- """Filter out known Streamlit warnings that can be safely ignored"""
93
- if not text:
94
- return text
95
-
96
- filtered_lines = []
97
- for line in text.split('\n'):
98
- # Skip lines containing ScriptRunContext warnings
99
- if any(phrase in line for phrase in [
100
- 'missing ScriptRunContext',
101
- 'bare mode',
102
- 'ScriptRunContext!',
103
- 'Thread \'MainThread\':'
104
- ]):
105
- continue
106
- filtered_lines.append(line)
107
-
108
- return '\n'.join(filtered_lines)
109
-
110
- def check_for_errors(self) -> Tuple[bool, str]:
111
- """Check if the Streamlit process has any errors"""
112
- if self.process:
113
- # Check if process is still running
114
- if self.process.poll() is not None:
115
- stdout, stderr = self.process.communicate()
116
- # Filter out known warnings
117
- filtered_stderr = self.filter_streamlit_warnings(stderr)
118
- if filtered_stderr.strip():
119
- return False, f"App crashed: {filtered_stderr}"
120
-
121
- return True, "App is running without errors"
122
-
123
- return False, "No process found"
124
-
125
- def cleanup(self) -> None:
126
- """Clean up the temporary files and stop the process"""
127
- if self.process:
128
- self.process.terminate()
129
- self.process.wait()
130
- self.process = None
131
-
132
- if self.temp_dir and os.path.exists(self.temp_dir):
133
- shutil.rmtree(self.temp_dir)
134
- self.temp_dir = None
135
-
136
- def validate_app(self, app_code: str) -> Dict[str, Any]:
137
- """Complete validation pipeline"""
138
- results: Dict[str, Any] = {
139
- 'syntax_valid': False,
140
- 'app_starts': False,
141
- 'app_responsive': False,
142
- 'errors': []
143
- }
144
-
145
- try:
146
- # Step 1: Check syntax
147
- syntax_valid, syntax_msg = self.validate_syntax(app_code)
148
- results['syntax_valid'] = syntax_valid
149
- if not syntax_valid:
150
- results['errors'].append(syntax_msg)
151
- return results
152
-
153
- # Step 2: Create and start app
154
- app_path = self.create_temp_app(app_code)
155
- app_started, start_msg = self.start_streamlit_app(app_path)
156
- results['app_starts'] = app_started
157
-
158
- if not app_started:
159
- results['errors'].append(start_msg)
160
- return results
161
-
162
- # Step 3: Wait for app to be ready
163
- app_ready, ready_msg = self.wait_for_app()
164
- results['app_responsive'] = app_ready
165
-
166
- if not app_ready:
167
- results['errors'].append(ready_msg)
168
-
169
- # Step 4: Check for runtime errors
170
- no_errors, error_msg = self.check_for_errors()
171
- if not no_errors:
172
- results['errors'].append(error_msg)
173
-
174
- except Exception as e:
175
- results['errors'].append(f"Validation error: {str(e)}")
176
-
177
- finally:
178
- self.cleanup()
179
-
180
- return results
181
-
182
-
183
- def streamlit_code_validator(app_code: str) -> Tuple[bool, str]:
184
- """Convenience function to validate Streamlit code"""
185
- has_validation_error: bool = False
186
- error_message: str = ""
187
-
188
-
189
- validator = StreamlitValidator()
190
- results = validator.validate_app(app_code)
191
-
192
- print("Validation Results:")
193
- print(f"✓ Syntax valid: {results['syntax_valid']}")
194
- print(f"✓ App starts: {results['app_starts']}")
195
- print(f"✓ App responsive: {results['app_responsive']}")
196
-
197
- if results['errors']:
198
- error_message = "Errors found: "
199
- print("Error detected in agent code")
200
- has_validation_error = True
201
- print("\nErrors found:")
202
- for error in results['errors']:
203
- print(f" - {error}")
204
- error_message += error + "\n"
205
- if not has_validation_error:
206
- print("\nAll validations passed!")
207
- return has_validation_error, error_message