beaker-notebook 2.1.0__tar.gz → 2.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/PKG-INFO +2 -2
  2. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/pyproject.toml +2 -2
  3. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/base.py +10 -6
  4. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/index.html +4 -4
  5. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/routes.json +20 -0
  6. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/BaseQueryCell-DKeHAMKD.js → beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/BaseQueryCell-aSI_w4t7.js +1 -1
  7. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/BeakerAdmin-BAPlvOW4.js +1 -0
  8. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/BeakerQueryCell.vue_vue_type_style_index_0_lang-BQ6E1fm9.js → beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/BeakerQueryCell.vue_vue_type_style_index_0_lang-BL-qUJgV.js +1 -1
  9. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/BeakerRawCell.vue_vue_type_style_index_0_lang-Dok20eE0.js +8 -0
  10. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/ChatInterface-kOGfPgi_.js +13 -0
  11. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/IntegrationsInterface-EUez5MrI.js +1 -0
  12. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/IntegrationsInterface-HYHrbe7y.css +1 -0
  13. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/NotebookInterface-DQyZA_1L.js +371 -0
  14. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/NotebookSvg-D2H9Z_Qt.js → beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/NotebookSvg-BbcXra8C.js +1 -1
  15. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/PlaygroundInterface-z0_4v7ph.js → beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/PlaygroundInterface-CHC1MRZx.js +1 -1
  16. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/codemirror-Dt0OdaTo.js +12 -0
  17. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/index-Bz0UaApo.css → beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/index-BDfJoh3G.css +1 -1
  18. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/index-Ci35gwNJ.js +474 -0
  19. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/jupyterlab-DIbc8_Yd.js +90 -0
  20. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/pdfjs-CBUS_CnE.js +55 -0
  21. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/primevue-CELz2oW6.js → beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/primevue--GeoWRFA.js +124 -123
  22. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/renderers-BwgSq-ym.js +124 -0
  23. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/useIntegrationUpload--qwulHnK.js +1 -0
  24. beaker_notebook-2.1.2/src/beaker_notebook/app/ui/static/vue.esm-browser.prod.js +14 -0
  25. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/kernel.py +14 -3
  26. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/integrations/skill.py +21 -6
  27. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/session/__init__.py +1 -1
  28. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/BeakerAdmin-DFgKyAbX.js +0 -531
  29. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/BeakerRawCell.vue_vue_type_style_index_0_lang-ZJ3xOXbC.js +0 -1553
  30. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/ChatInterface-By4JK3jM.js +0 -1324
  31. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/IntegrationsInterface-BNVMH4Av.css +0 -1
  32. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/IntegrationsInterface-DVxoUozR.js +0 -3364
  33. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/NotebookInterface-DWMuzKjI.js +0 -23985
  34. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/codemirror-B0WrLuO5.js +0 -12
  35. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/index-CFG81YqM.js +0 -33806
  36. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/jupyterlab-DV937ydG.js +0 -90
  37. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/pdfjs-CBUS_CnE.js +0 -17886
  38. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/renderers-D2As8DZ7.js +0 -19340
  39. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/useIntegrationUpload-gPmYwzmK.js +0 -33
  40. beaker_notebook-2.1.0/src/beaker_notebook/app/ui/static/vue.esm-browser.prod.js +0 -13
  41. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/.gitignore +0 -0
  42. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/LICENSE.txt +0 -0
  43. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/README.md +0 -0
  44. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_kernel/__init__.py +0 -0
  45. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/__init__.py +0 -0
  46. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/__init__.py +0 -0
  47. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/api/__init__.py +0 -0
  48. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/api/attachments.py +0 -0
  49. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/api/handlers.py +0 -0
  50. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/api/integrations.py +0 -0
  51. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/api/notebook.py +0 -0
  52. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/api/subkernels.py +0 -0
  53. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/dev_app.py +0 -0
  54. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/error_templates/404.html +0 -0
  55. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/error_templates/500.html +0 -0
  56. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/error_templates/_base.html.txt +0 -0
  57. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/error_templates/error.html +0 -0
  58. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/handlers.py +0 -0
  59. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/notebook_app.py +0 -0
  60. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/server_app.py +0 -0
  61. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/beaker.svg +0 -0
  62. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/favicon.ico +0 -0
  63. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/icons/mcp.png +0 -0
  64. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/icons/skill.png +0 -0
  65. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/BeakerAdmin-CmINXWMq.css +0 -0
  66. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/BeakerQueryCell-BLj_4lrK.css +0 -0
  67. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/BeakerRawCell-VyYlkexZ.css +0 -0
  68. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/ChatInterface-D5H52vSA.css +0 -0
  69. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  70. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  71. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  72. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  73. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  74. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  75. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  76. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  77. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  78. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  79. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  80. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  81. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  82. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  83. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  84. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  85. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  86. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  87. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  88. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  89. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  90. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  91. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  92. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  93. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  94. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  95. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  96. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  97. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  98. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  99. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  100. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  101. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  102. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  103. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  104. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  105. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  106. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  107. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  108. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  109. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  110. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  111. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  112. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  113. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  114. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  115. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  116. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  117. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  118. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  119. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  120. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  121. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  122. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  123. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  124. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  125. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  126. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  127. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  128. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/NotebookInterface-C2FEL7Mf.css +0 -0
  129. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/PlaygroundInterface-CnxgF0-G.css +0 -0
  130. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/_plugin-vue_export-helper-DlAUqK2U.js +0 -0
  131. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-300-CGqVYVBd.woff2 +0 -0
  132. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-300-D-Ix9km9.woff +0 -0
  133. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-700-CCBIyjkE.woff +0 -0
  134. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-700-C_mCopxe.woff2 +0 -0
  135. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-regular-Dz3ZLxjK.woff +0 -0
  136. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/lato-v17-latin-ext_latin-regular-GAITDyQJ.woff2 +0 -0
  137. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/pdf.worker-B1D2UnXD.mjs +0 -0
  138. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/primeicons-C6QP2o4f.woff2 +0 -0
  139. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/primeicons-DMOk5skT.eot +0 -0
  140. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/primeicons-Dr5RGzOO.svg +0 -0
  141. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/primeicons-MpK4pl85.ttf +0 -0
  142. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/primeicons-WjwUDZjB.woff +0 -0
  143. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/renderers-DGu3k4Ms.css +0 -0
  144. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/app/ui/static/xlsx-C3u7rb2R.js +0 -0
  145. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/builder/__init__.py +0 -0
  146. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/builder/beaker.py +0 -0
  147. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/builder/hooks.py +0 -0
  148. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/builder/templates.py +0 -0
  149. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/builder/utils.py +0 -0
  150. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/__init__.py +0 -0
  151. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/app.py +0 -0
  152. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/config.py +0 -0
  153. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/context.py +0 -0
  154. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/helpers.py +0 -0
  155. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/main.py +0 -0
  156. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/project.py +0 -0
  157. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/running.py +0 -0
  158. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/server.py +0 -0
  159. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/cli/subkernel.py +0 -0
  160. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/contexts/__init__.py +0 -0
  161. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/contexts/default/__init__.py +0 -0
  162. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/contexts/default/agent.py +0 -0
  163. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/contexts/default/context.py +0 -0
  164. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/contexts/default/default_payload.json +0 -0
  165. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/kernel.json +0 -0
  166. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/__init__.py +0 -0
  167. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/admin.py +0 -0
  168. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/agent.py +0 -0
  169. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/agent_tasks.py +0 -0
  170. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/app.py +0 -0
  171. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/autodiscovery.py +0 -0
  172. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/chat_history.py +0 -0
  173. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/__init__.py +0 -0
  174. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/analysis_agent.py +0 -0
  175. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/analysis_types.py +0 -0
  176. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/analyzer.py +0 -0
  177. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/message_types.py +0 -0
  178. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/rules/__init__.py +0 -0
  179. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/rules/base.py +0 -0
  180. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/rules/trust/__init__.py +0 -0
  181. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/rules/trust/categories.py +0 -0
  182. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/code_analysis/rules/trust/rules.py +0 -0
  183. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/config.py +0 -0
  184. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/context.py +0 -0
  185. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/context_dump.py +0 -0
  186. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/exporters/__init__.py +0 -0
  187. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/exporters/chat.py +0 -0
  188. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/exporters/streamline.py +0 -0
  189. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/extension.py +0 -0
  190. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/integrations/__init__.py +0 -0
  191. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/integrations/adhoc.py +0 -0
  192. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/integrations/base.py +0 -0
  193. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/integrations/mcp.py +0 -0
  194. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/integrations/registry.py +0 -0
  195. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/integrations/types.py +0 -0
  196. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/jupyter_kernel_proxy.py +0 -0
  197. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/kernel_state.py +0 -0
  198. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/message_types.py +0 -0
  199. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/notebook_state.py +0 -0
  200. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/reflector.py +0 -0
  201. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/secrets/__init__.py +0 -0
  202. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/secrets/policies.py +0 -0
  203. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/secrets/secret_types.py +0 -0
  204. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/secrets/validations.py +0 -0
  205. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/subkernel.py +0 -0
  206. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/templates/__init__.py +0 -0
  207. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/templates/agent_file.py +0 -0
  208. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/templates/context_file.py +0 -0
  209. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/templates/paths.py +0 -0
  210. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/templates/procedure_file.py +0 -0
  211. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/templates/readme_file.py +0 -0
  212. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/templates/subkernel_file.py +0 -0
  213. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/types.py +0 -0
  214. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/utils.py +0 -0
  215. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/lib/workflow.py +0 -0
  216. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/__init__.py +0 -0
  217. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/attachments.py +0 -0
  218. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/auth/__init__.py +0 -0
  219. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/auth/dummy.py +0 -0
  220. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/auth/notebook.py +0 -0
  221. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/context/__init__.py +0 -0
  222. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/context/discovery_service.py +0 -0
  223. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/context/handlers.py +0 -0
  224. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/context/manager.py +0 -0
  225. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/context/util.py +0 -0
  226. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/kernel/__init__.py +0 -0
  227. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/kernel/manager.py +0 -0
  228. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/kernel/mappingmanager.py +0 -0
  229. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/kernel/provisioner.py +0 -0
  230. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/kernel/spec.py +0 -0
  231. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/secrets/__init__.py +0 -0
  232. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/secrets/app_secrets.py +0 -0
  233. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/secrets/handlers.py +0 -0
  234. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/secrets/manager.py +0 -0
  235. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/storage/__init__.py +0 -0
  236. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/storage/base.py +0 -0
  237. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/services/storage/notebook.py +0 -0
  238. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/__init__.py +0 -0
  239. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/__init__.py +0 -0
  240. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/.gitkeep +0 -0
  241. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/fetch_state.jl +0 -0
  242. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/reflectors/array.jl +0 -0
  243. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/reflectors/default.jl +0 -0
  244. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/reflectors/dict.jl +0 -0
  245. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/reflectors/function.jl +0 -0
  246. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/reflectors/module.jl +0 -0
  247. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/procedures/reflectors/type.jl +0 -0
  248. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/julia/subkernel.py +0 -0
  249. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/__init__.py +0 -0
  250. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/.gitkeep +0 -0
  251. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/describe_variables.py +0 -0
  252. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/fetch_state.py +0 -0
  253. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/class.py +0 -0
  254. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/dataframe.py +0 -0
  255. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/default.py +0 -0
  256. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/function.py +0 -0
  257. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/mapping.py +0 -0
  258. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/module.py +0 -0
  259. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/ndarray.py +0 -0
  260. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/primitive.py +0 -0
  261. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/sequence.py +0 -0
  262. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/series.py +0 -0
  263. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/procedures/reflectors/string.py +0 -0
  264. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/python/subkernel.py +0 -0
  265. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/__init__.py +0 -0
  266. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/procedures/.gitkeep +0 -0
  267. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/procedures/fetch_state.r +0 -0
  268. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/procedures/reflectors/data_frame.r +0 -0
  269. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/procedures/reflectors/default.r +0 -0
  270. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/procedures/reflectors/function.r +0 -0
  271. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/procedures/reflectors/list.r +0 -0
  272. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/procedures/reflectors/vector.r +0 -0
  273. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/subkernels/rlang/subkernel.py +0 -0
  274. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/util/__init__.py +0 -0
  275. {beaker_notebook-2.1.0 → beaker_notebook-2.1.2}/src/beaker_notebook/util/refactor.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: beaker-notebook
3
- Version: 2.1.0
3
+ Version: 2.1.2
4
4
  Summary: Beaker Notebook is a general-purpose, computational notebook with embedded agentic AI designed . It provides a flexible context system that enables domain-specific customization for domains such as data science, research, and computational workflows through specialized AI agents, integrations with external data sources and APIs, and structured workflows.
5
5
  Project-URL: Documentation, https://github.com/jataware/beaker-kernel#readme
6
6
  Project-URL: Issues, https://github.com/jataware/beaker-kernel/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "beaker-notebook"
7
- version = "2.1.0"
7
+ version = "2.1.2"
8
8
  description = "Beaker Notebook is a general-purpose, computational notebook with embedded agentic AI designed . It provides a flexible context system that enables domain-specific customization for domains such as data science, research, and computational workflows through specialized AI agents, integrations with external data sources and APIs, and structured workflows."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -85,7 +85,7 @@ path = "src/beaker_notebook/builder/beaker.py"
85
85
 
86
86
 
87
87
  [tool.bumpversion]
88
- current_version="2.1.0"
88
+ current_version="2.1.2"
89
89
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)((?P<release>[ab])(?P<revision>\\d+))?"
90
90
  serialize = [
91
91
  "{major}.{minor}.{patch}{release}{revision}",
@@ -62,22 +62,27 @@ class BaseBeakerApp(ServerApp):
62
62
  )
63
63
  notebook_manager_class = traitlets.Type(
64
64
  f"beaker_notebook.services.storage.notebook.BaseNotebookManager",
65
- # default_value=f"beaker_notebook.services.storage.notebook.FileNotebookManager",
66
65
  config=True
67
66
  )
68
67
  context_manager_class = traitlets.Type(
69
68
  f"beaker_notebook.services.context.manager.BeakerContextManager",
70
69
  config=True,
71
70
  )
72
- virtual_home_root = traitlets.Unicode(
73
- help="Path pointing to where user directories should be stored. Defaults to 'root_dir' if not set.",
71
+ secrets_manager_class: "BeakerSecretsManager" = traitlets.Type(
72
+ klass="beaker_notebook.services.secrets.manager.BeakerSecretsManager",
73
+ default_value="beaker_notebook.services.secrets.manager.BeakerSecretsManager",
74
+ help="Beaker Secrets Manager class",
74
75
  config=True,
75
76
  )
76
77
  secrets_manager: "BeakerSecretsManager" = traitlets.Instance(
77
- f"beaker_notebook.services.secrets.manager.BeakerSecretsManager",
78
+ "beaker_notebook.services.secrets.manager.BeakerSecretsManager",
78
79
  help="Beaker Secrets Manager singleton instance",
79
80
  config=True,
80
81
  )
82
+ virtual_home_root = traitlets.Unicode(
83
+ help="Path pointing to where user directories should be stored. Defaults to 'root_dir' if not set.",
84
+ config=True,
85
+ )
81
86
 
82
87
  kernel_spec_include_local = traitlets.Bool(True, help="Include local kernel specs", config=True)
83
88
  kernel_spec_managers = traitlets.Dict(help="Kernel specification managers indexed by extension name", config=True)
@@ -124,8 +129,7 @@ class BaseBeakerApp(ServerApp):
124
129
 
125
130
  @traitlets.default("secrets_manager")
126
131
  def _default_secrets_manager(self):
127
- from beaker_notebook.services.secrets.manager import BeakerSecretsManager
128
- secrets_manager = BeakerSecretsManager(parent=self)
132
+ secrets_manager = self.secrets_manager_class(parent=self)
129
133
  return secrets_manager
130
134
 
131
135
  @traitlets.default("config_file_name")
@@ -4,10 +4,10 @@
4
4
  <meta charset="UTF-8">
5
5
  <link rel="icon" href="./favicon.ico">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <script type="module" crossorigin src="./static/index-CFG81YqM.js"></script>
8
- <link rel="modulepreload" crossorigin href="./static/primevue-CELz2oW6.js">
9
- <link rel="modulepreload" crossorigin href="./static/jupyterlab-DV937ydG.js">
10
- <link rel="stylesheet" crossorigin href="./static/index-Bz0UaApo.css">
7
+ <script type="module" crossorigin src="./static/index-Ci35gwNJ.js"></script>
8
+ <link rel="modulepreload" crossorigin href="./static/primevue--GeoWRFA.js">
9
+ <link rel="modulepreload" crossorigin href="./static/jupyterlab-DIbc8_Yd.js">
10
+ <link rel="stylesheet" crossorigin href="./static/index-BDfJoh3G.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="app"></div>
@@ -0,0 +1,20 @@
1
+ {
2
+ "/notebook": {
3
+ "name": "notebook",
4
+ "role": "home"
5
+ },
6
+ "/": {
7
+ "name": "notebook",
8
+ "role": "home"
9
+ },
10
+ "/chat": {
11
+ "name": "chat",
12
+ "role": "alt"
13
+ },
14
+ "/integrations": {
15
+ "name": "integrations"
16
+ },
17
+ "/admin": {
18
+ "name": "admin"
19
+ }
20
+ }
@@ -1 +1 @@
1
- import{p as y,r as s,i,n as f,f as R,ag as S}from"./primevue-CELz2oW6.js";const C=r=>{const e=y(r.cell),u=s(e.value.source===""),v=s(100),o=s(e.value.source),a=s(""),l=s(),c=i("session"),d=i("beakerSession"),x=S(),p=R(()=>[...r.cell.events]);function b(){const t=x?.root?.props?.config,m=t?t.extra?.send_notebook_state:void 0;e.value.source=o.value,u.value=!1,f(()=>{r.cell.execute(c,m).registerMessageHook(n=>(n.header?.msg_type==="stream"&&n.content?.name==="stderr"&&n.content?.text==="Request interrupted."?(e.value.last_execution={status:"abort"},e.value.events.push({type:"abort",content:"Request interrupted."}),n.cell=e.value):n.header?.msg_type==="llm_auth_failure"&&(n.cell=e.value),!0))})}function g(t){u.value||(u.value=!0),t==="start"?t=0:t==="end"&&(t=l.value?.$el?.value.length||-1),f(()=>{l.value?.$el?.focus(),l.value.$el.setSelectionRange(t,t)})}function h(){o.value===e.value.source?u.value=!1:l.value?.$el?.blur()}function _(){e.value.source="",u.value=!0,v.value=100,o.value="",a.value=""}function k(){a.value.trim()&&(r.cell.respond(a.value,c),a.value="")}return{cell:e,isEditing:u,promptEditorMinHeight:v,promptText:o,response:a,textarea:l,session:c,beakerSession:d,events:p,execute:b,enter:g,exit:h,clear:_,respond:k}};export{C as u};
1
+ import{p as y,r as s,i,n as f,f as R,ag as S}from"./primevue--GeoWRFA.js";const C=r=>{const e=y(r.cell),u=s(e.value.source===""),v=s(100),o=s(e.value.source),a=s(""),l=s(),c=i("session"),d=i("beakerSession"),x=S(),p=R(()=>[...r.cell.events]);function b(){const t=x?.root?.props?.config,m=t?t.extra?.send_notebook_state:void 0;e.value.source=o.value,u.value=!1,f(()=>{r.cell.execute(c,m).registerMessageHook(n=>(n.header?.msg_type==="stream"&&n.content?.name==="stderr"&&n.content?.text==="Request interrupted."?(e.value.last_execution={status:"abort"},e.value.events.push({type:"abort",content:"Request interrupted."}),n.cell=e.value):n.header?.msg_type==="llm_auth_failure"&&(n.cell=e.value),!0))})}function g(t){u.value||(u.value=!0),t==="start"?t=0:t==="end"&&(t=l.value?.$el?.value.length||-1),f(()=>{l.value?.$el?.focus(),l.value.$el.setSelectionRange(t,t)})}function h(){o.value===e.value.source?u.value=!1:l.value?.$el?.blur()}function _(){e.value.source="",u.value=!0,v.value=100,o.value="",a.value=""}function k(){a.value.trim()&&(r.cell.respond(a.value,c),a.value="")}return{cell:e,isEditing:u,promptEditorMinHeight:v,promptText:o,response:a,textarea:l,session:c,beakerSession:d,events:p,execute:b,enter:g,exit:h,clear:_,respond:k}};export{C as u};
@@ -0,0 +1 @@
1
+ import{l as w}from"./jupyterlab-DIbc8_Yd.js";import{q as P,aV as F,aZ as A,a7 as N,J as R,L as b,U as s,u as t,M as l,O as d,_ as i,Q as g,r as u,f as $,y,b2 as z,V as U,ay as a,ax as p,a1 as h,N as C,ad as q,b1 as K}from"./primevue--GeoWRFA.js";import{f as M}from"./index-Ci35gwNJ.js";const O={id:"admin"},G={style:{"margin-right":"3rem",display:"flex","justify-content":"right","justify-items":"center"}},H={style:{"margin-top":"auto","margin-bottom":"auto","font-weight":"bolder","font-size":"larger"}},J={class:"stats"},Q={class:"stats-tables"},Z={class:"header"},W={style:{"font-size":"large"}},X={class:"context-config"},le=P({__name:"BeakerAdmin",props:["config"],setup(Y){const j=F(),B=A(),_=w.PageConfig.getBaseUrl(),r=u({}),S=u(),T=u("never"),m=u("---"),v=u([]),x=u([]),L=$(()=>r.value.sessions?.map(e=>({session_id:e.path,raw_id:e.id,kernel:e.kernel,subkernel:e.subkernel,last_active:e.kernel.last_activity,idle:((Date.now()-Date.parse(e.kernel.last_activity))/6e4).toFixed(2),connected:e.kernel.connections>0,process_info:e.process_info,context:e.kernel.context?.name,context_config:e.kernel.context?.config}))),k=$(()=>x.value.map(o=>o.session_id)),c=async()=>{const o=w.URLExt.join(_,"/stats"),e=await M(o);r.value=await e.json(),T.value=new Date().toUTCString()},V=async o=>{for(const e of o){const n=w.URLExt.join(_,"/api/sessions/",e),f=await M(n,{method:"DELETE",headers:{Authorization:`token ${r.value.token}`}});if(!f.ok){const I=await f.text();B.add({severity:"error",summary:"Error removing session",detail:`${f.status} ${f.statusText} - ${I}`,life:3e3})}}await c()},E=()=>{v.value.length===0||m.value==="---"||m.value==="destroy"&&D(v.value)},D=o=>{j.require({message:`Are you sure you want to proceed? This will destroy session(s): ${o.map(e=>e.session_id).join(", ")}`,header:"Confirmation",icon:"pi pi-exclamation-triangle",rejectClass:"p-button-secondary p-button-outlined",rejectLabel:"Cancel",acceptLabel:"Confirm",accept:async()=>{await V(o.map(e=>e.raw_id))},reject:()=>{}})};return N(()=>{c(),S.value=window.setInterval(c,6e4)}),R(()=>{clearInterval(S.value)}),(o,e)=>(y(),b(g,null,[s(t(z)),l("div",O,[l("div",null,[e[4]||(e[4]=l("h1",{style:{"text-align":"center"}},"Beaker admin",-1)),l("div",G,[l("span",H,"Last updated: "+d(T.value),1),s(t(U),{icon:"pi pi-refresh",style:{"margin-left":"1rem"},raised:"",onClick:e[0]||(e[0]=n=>c())})])]),l("div",J,[e[9]||(e[9]=l("h2",null,"Stats",-1)),l("div",Q,[s(t(p),{value:[r.value.file_handles]},{header:i(()=>[...e[5]||(e[5]=[l("div",{class:"header"},[l("span",{class:"header-title"},"File Handles")],-1)])]),default:i(()=>[s(t(a),{field:"open",header:"Open"}),s(t(a),{field:"total",header:"Total"}),s(t(a),{field:"usage",header:"Usage"})]),_:1},8,["value"]),s(t(p),{value:[r.value.load]},{header:i(()=>[...e[6]||(e[6]=[l("div",{class:"header"},[l("span",{class:"header-title"},"Load")],-1)])]),default:i(()=>[s(t(a),{field:"1_min",header:"1 Min"}),s(t(a),{field:"5_min",header:"5 Min"}),s(t(a),{field:"15_min",header:"15 Min"})]),_:1},8,["value"]),s(t(p),{value:[r.value.memory]},{header:i(()=>[...e[7]||(e[7]=[l("div",{class:"header"},[l("span",{class:"header-title"},"Memory")],-1)])]),default:i(()=>[s(t(a),{field:"total",header:"Total"}),s(t(a),{field:"used",header:"Used"}),s(t(a),{field:"free",header:"Free"}),s(t(a),{field:"usage",header:"Usage"})]),_:1},8,["value"]),s(t(p),{value:[r.value.disk]},{header:i(()=>[...e[8]||(e[8]=[l("div",{class:"header"},[l("span",{class:"header-title"},"Disk")],-1)])]),default:i(()=>[s(t(a),{field:"total",header:"Total"}),s(t(a),{field:"used",header:"Used"}),s(t(a),{field:"free",header:"Free"}),s(t(a),{field:"usage",header:"Usage"})]),_:1},8,["value"])])]),l("div",null,[e[22]||(e[22]=l("h2",null,"Sessions",-1)),s(t(p),{value:L.value,selection:v.value,"onUpdate:selection":e[2]||(e[2]=n=>v.value=n),"expanded-rows":x.value,"onUpdate:expandedRows":e[3]||(e[3]=n=>x.value=n),"striped-rows":!0,removableSort:""},{header:i(()=>[l("div",Z,[e[11]||(e[11]=l("span",{class:"header-title"},"Sessions",-1)),e[12]||(e[12]=l("span",{style:{flex:"100"}},null,-1)),l("span",W,"Session count: "+d(r.value.sessions?.length||0),1),e[13]||(e[13]=l("span",{style:{padding:"0 1rem"}}," | ",-1)),s(t(q),{options:["---","destroy"],modelValue:m.value,"onUpdate:modelValue":e[1]||(e[1]=n=>m.value=n)},null,8,["modelValue"]),s(t(U),{severity:"success",raised:"",onClick:E},{default:i(()=>[...e[10]||(e[10]=[h("Go",-1)])]),_:1})])]),expansion:i(({data:n})=>[l("div",null,[e[21]||(e[21]=l("h4",null,[h("Process details "),l("span",{style:{"font-size":"smaller","margin-left":"3rem"}},"(Note: CPU and Memory usage may be reflected mulitple times due to parent/child relational reporting)")],-1)),s(t(p),{value:n.process_info,"striped-rows":!0,removableSort:""},{default:i(()=>[s(t(a),{field:"pid",header:"PID",sortable:""}),s(t(a),{field:"ppid",header:"Parent PID",sortable:""}),s(t(a),{field:"cpu_pct",header:"CPU Usage %",sortable:""}),s(t(a),{field:"cputime",header:"Cumulative CPU Time",sortable:""}),s(t(a),{field:"mem_pct",header:"Mem Usage (%)",sortable:""}),s(t(a),{field:"mem_bytes",header:"Mem Usage (bytes)",sortable:""}),s(t(a),{field:"threads",header:"Thread count",sortable:""}),s(t(a),{field:"open_files",header:"File handles",sortable:""}),s(t(a),{field:"cmd",header:"Full command",sortable:""})]),_:1},8,["value"])])]),default:i(()=>[s(t(a),{class:"selection-column","selection-mode":"multiple"}),s(t(a),{class:"expansion-column",expander:""}),s(t(a),{field:"kernel.id",header:"Beaker Kernel",sortable:""},{body:i(({data:n})=>[l("div",null,d(n.session_id),1),k.value.includes(n.session_id)?(y(),b(g,{key:0},[e[15]||(e[15]=l("br",null,null,-1)),l("div",null,[e[14]||(e[14]=l("span",{style:{"font-weight":"bold"}},"Kernel ID:",-1)),h(" "+d(n.kernel.id),1)])],64)):C("",!0)]),_:1}),s(t(a),{header:"Subkernel",field:"subkernel.id",sortable:""},{body:i(({data:n})=>[l("div",null,d(n.subkernel.id),1),k.value.includes(n.session_id)?(y(),b(g,{key:0},[e[17]||(e[17]=l("br",null,null,-1)),l("div",null,[e[16]||(e[16]=l("span",{style:{"font-weight":"bold"}},"Type:",-1)),h(" "+d(n.subkernel.name),1)])],64)):C("",!0)]),_:1}),s(t(a),{header:"Current Context",field:"context",sortable:""},{body:i(({data:n})=>[l("div",null,d(n.context),1),k.value.includes(n.session_id)?(y(),b(g,{key:0},[e[18]||(e[18]=l("br",null,null,-1)),e[19]||(e[19]=l("span",{style:{"font-weight":"bold"}},"Config:",-1)),e[20]||(e[20]=l("br",null,null,-1)),l("div",X,d(n.context_config),1)],64)):C("",!0)]),_:1}),s(t(a),{field:"last_active",header:"Last Active",sortable:""}),s(t(a),{field:"idle",header:"Idle Duration (min)",sortable:""}),s(t(a),{field:"connected",header:"User connected",sortable:""}),s(t(a),{header:"Destroy"},{body:i(({data:n})=>[s(t(U),{style:{height:"2rem",width:"2rem","text-align":"center"},icon:"pi pi-times",severity:"danger",raised:"",onClick:f=>D([{session_id:n.session_id,raw_id:n.raw_id}])},null,8,["onClick"])]),_:1})]),_:1},8,["value","selection","expanded-rows"])])]),s(t(K),{position:"bottom-right"})],64))}});export{le as default};
@@ -1 +1 @@
1
- import{q as E,i as B,b6 as f,a7 as R,J as S,K as D,y as o,L as l,M as t,u,Q as N,R as A,S as v,a1 as L,O as c,N as y,W as O,z as V,_ as z,aE as M,ag as U,r as m,f as j}from"./primevue-CELz2oW6.js";import{u as F}from"./BaseQueryCell-DKeHAMKD.js";const I={class:"query-cell-grid"},J={class:"query-content"},K={class:"query-prompt"},T={key:0,class:"query-attachments"},W=["title"],G={key:0},H={key:1,class:"pi pi-exclamation-triangle attachment-warning"},P={class:"query-text"},X={class:"state-info"},te=E({__name:"BeakerQueryCell",props:["index","cell"],setup(g,{expose:q}){const h=g,{cell:e,events:b,execute:x,exit:k,clear:C}=F(h),d=B("beakerSession"),w=U(),_=m(!1),Q=m(null);f(()=>{e.value.metadata&&(e.value.metadata.auto_collapse_code_cells=_.value)}),f(()=>{const i=e.value.status,r=e?.value?.metadata?.query_status,a=b.value,s=e.value.last_execution;if(i==="busy"&&r==="pending")e.value.metadata.query_status="in-progress";else if(i==="failed")e.value.metadata.query_status="failed";else if(i==="idle"&&a.length>=0&&r==="in-progress"){if(s?.status==="abort"){e.value.metadata.query_status="aborted";return}if(a.some(p=>p.type==="abort")){e.value.metadata.query_status="aborted";return}a.some(p=>p.type==="response")&&a.length>0&&(e.value.metadata.query_status="success")}});const n=j(()=>{const i=e.value.metadata?.query_status,r=e.value.status,a=["busy","awaiting_input"].includes(r);return{success:{severity:"success",icon:"pi pi-check bolded",tooltip:"Query completed successfully"},failed:{severity:"danger",icon:"pi pi-times",tooltip:"Query failed with error"},aborted:{severity:"warn",icon:"pi pi-minus",tooltip:"Query was aborted"},"in-progress":{severity:a?"info":"danger",icon:a?"pi pi-spin pi-spinner busy-icon":"pi pi-times",tooltip:a?"Query is active":"Query failed with error"},pending:{severity:"secondary",icon:"pi pi-clock",tooltip:"Query is waiting to start"}}[i]||{severity:"secondary",icon:null,tooltip:"Query status unknown"}});return q({execute:(...i)=>{["success","failed","in-progress"].includes(e.value.metadata?.query_status)||x.call(this,i)},enter:()=>{},exit:k,clear:C,cell:e}),R(()=>{d?.cellRegistry&&(d.cellRegistry[e.value.id]=w.vnode),e.value.metadata?.query_status||e.value.metadata&&(e.value.metadata.query_status="pending"),e.value.metadata?.auto_collapse_code_cells!==void 0&&(_.value=e.value.metadata.auto_collapse_code_cells)}),S(()=>{delete d.cellRegistry[e.value.id]}),(i,r)=>{const a=D("tooltip");return o(),l("div",{class:"next-query-cell",ref_key:"queryCellRef",ref:Q},[t("div",I,[t("div",J,[t("div",K,[r[0]||(r[0]=t("div",{class:"query-label"},[t("span",{class:"pi pi-user query-icon"}),t("span",{class:"query-label-user"},"User")],-1)),u(e).session_attachments?.length?(o(),l("div",T,[(o(!0),l(N,null,A(u(e).session_attachments,s=>(o(),l("span",{key:s.id,class:"query-attachment",title:s.archive_error||s.name},[t("i",{class:v(s.kind==="archive"?"pi pi-box":"pi pi-paperclip")},null,2),L(" "+c(s.name)+" ",1),s.kind==="archive"&&s.archive_status==="extracted"?(o(),l("small",G,c(s.file_count)+" "+c(s.file_count===1?"file":"files"),1)):y("",!0),s.archive_status==="failed"?(o(),l("i",H)):y("",!0)],8,W))),128))])):y("",!0),t("div",P,c(u(e).source),1)])]),t("div",X,[t("div",null,[O((o(),V(u(M),{class:v(["execution-badge",{secondary:n.value.severity==="secondary"}]),severity:n.value.severity,value:" "},{default:z(()=>[t("i",{class:v(n.value.icon)},null,2)]),_:1},8,["class","severity"])),[[a,n.value.tooltip,void 0,{top:!0}]])])])])],512)}}});export{te as _};
1
+ import{q as E,i as B,b6 as f,a7 as R,J as S,K as D,y as o,L as l,M as t,u,Q as N,R as A,S as v,a1 as L,O as c,N as y,W as O,z as V,_ as z,aE as M,r as m,f as U,ag as j}from"./primevue--GeoWRFA.js";import{u as F}from"./BaseQueryCell-aSI_w4t7.js";const I={class:"query-cell-grid"},J={class:"query-content"},K={class:"query-prompt"},T={key:0,class:"query-attachments"},W=["title"],G={key:0},H={key:1,class:"pi pi-exclamation-triangle attachment-warning"},P={class:"query-text"},X={class:"state-info"},te=E({__name:"BeakerQueryCell",props:["index","cell"],setup(g,{expose:q}){const h=g,{cell:e,events:b,execute:x,exit:k,clear:C}=F(h),d=B("beakerSession"),w=j(),_=m(!1),Q=m(null);f(()=>{e.value.metadata&&(e.value.metadata.auto_collapse_code_cells=_.value)}),f(()=>{const i=e.value.status,r=e?.value?.metadata?.query_status,a=b.value,s=e.value.last_execution;if(i==="busy"&&r==="pending")e.value.metadata.query_status="in-progress";else if(i==="failed")e.value.metadata.query_status="failed";else if(i==="idle"&&a.length>=0&&r==="in-progress"){if(s?.status==="abort"){e.value.metadata.query_status="aborted";return}if(a.some(p=>p.type==="abort")){e.value.metadata.query_status="aborted";return}a.some(p=>p.type==="response")&&a.length>0&&(e.value.metadata.query_status="success")}});const n=U(()=>{const i=e.value.metadata?.query_status,r=e.value.status,a=["busy","awaiting_input"].includes(r);return{success:{severity:"success",icon:"pi pi-check bolded",tooltip:"Query completed successfully"},failed:{severity:"danger",icon:"pi pi-times",tooltip:"Query failed with error"},aborted:{severity:"warn",icon:"pi pi-minus",tooltip:"Query was aborted"},"in-progress":{severity:a?"info":"danger",icon:a?"pi pi-spin pi-spinner busy-icon":"pi pi-times",tooltip:a?"Query is active":"Query failed with error"},pending:{severity:"secondary",icon:"pi pi-clock",tooltip:"Query is waiting to start"}}[i]||{severity:"secondary",icon:null,tooltip:"Query status unknown"}});return q({execute:(...i)=>{["success","failed","in-progress"].includes(e.value.metadata?.query_status)||x.call(this,i)},enter:()=>{},exit:k,clear:C,cell:e}),R(()=>{d?.cellRegistry&&(d.cellRegistry[e.value.id]=w.vnode),e.value.metadata?.query_status||e.value.metadata&&(e.value.metadata.query_status="pending"),e.value.metadata?.auto_collapse_code_cells!==void 0&&(_.value=e.value.metadata.auto_collapse_code_cells)}),S(()=>{delete d.cellRegistry[e.value.id]}),(i,r)=>{const a=D("tooltip");return o(),l("div",{class:"next-query-cell",ref_key:"queryCellRef",ref:Q},[t("div",I,[t("div",J,[t("div",K,[r[0]||(r[0]=t("div",{class:"query-label"},[t("span",{class:"pi pi-user query-icon"}),t("span",{class:"query-label-user"},"User")],-1)),u(e).session_attachments?.length?(o(),l("div",T,[(o(!0),l(N,null,A(u(e).session_attachments,s=>(o(),l("span",{key:s.id,class:"query-attachment",title:s.archive_error||s.name},[t("i",{class:v(s.kind==="archive"?"pi pi-box":"pi pi-paperclip")},null,2),L(" "+c(s.name)+" ",1),s.kind==="archive"&&s.archive_status==="extracted"?(o(),l("small",G,c(s.file_count)+" "+c(s.file_count===1?"file":"files"),1)):y("",!0),s.archive_status==="failed"?(o(),l("i",H)):y("",!0)],8,W))),128))])):y("",!0),t("div",P,c(u(e).source),1)])]),t("div",X,[t("div",null,[O((o(),V(u(M),{class:v(["execution-badge",{secondary:n.value.severity==="secondary"}]),severity:n.value.severity,value:" "},{default:z(()=>[t("i",{class:v(n.value.icon)},null,2)]),_:1},8,["class","severity"])),[[a,n.value.tooltip,void 0,{top:!0}]])])])])],512)}}});export{te as _};
@@ -0,0 +1,8 @@
1
+ import{av as be,y as n,z as R,S as L,k as ne,j as ee,u as g,aw as he,r as C,q as j,i as S,w as ve,K as J,L as p,U as b,_ as w,W as N,a1 as B,O as $,M as l,af as ke,f as k,N as T,Q as K,R as q,ax as we,ay as re,ae as xe,az as $e,aA as Ce,ac as F,aB as He,aC as Me,V as W,ar as fe,as as ye,aD as Pe,a7 as te,J as se,at as Se,aE as Ae,ag as oe,a2 as Te,a0 as ie,ad as Re,a8 as Ee,n as Le}from"./primevue--GeoWRFA.js";import{v as V,B as Be,x as ae,y as le,h as Ne,b as je}from"./renderers-BwgSq-ym.js";import{g as ge}from"./jupyterlab-DIbc8_Yd.js";import{m as ce}from"./index-Ci35gwNJ.js";const Jt={__name:"ContainedTextArea",props:{maxHeight:{type:[Number,String],default:"12rem"}},emits:["submit"],setup(v,{emit:i}){be(e=>({fd6f281e:u.maxHeight}));const u=v,r=i,t=e=>{s.value=e.target.offsetHeight>=180},s=C(!1);return(e,o)=>(n(),R(g(he),{onKeyup:t,onKeydown:[o[0]||(o[0]=ne(ee(a=>r("submit"),["exact","prevent"]),["enter"])),o[1]||(o[1]=ne(ee(a=>a.target.blur(),["prevent"]),["escape"]))],autoResize:"",rows:"1",class:L([{"scroll-input":s.value},"resizeable-textarea"])},null,8,["class"]))}},ze={class:"info-panel-container"},Ue={style:{cursor:"help","border-bottom":"1px dotted var(--p-text-color-secondary)"}},Xt=j({__name:"InfoPanel",setup(v){const i=S("beakerSession"),u=k(()=>{const s=i?.activeContext,e=i?.session.kernelInfo;return{...s,kernelInfo:e}}),r=k(()=>{const s=u.value;if(!s)return[];const e=[{key:"0",label:"Kernel",icon:"pi pi-fw pi-cog",expanded:!0,children:[{key:"0-1",label:`${s?.info?.subkernel} (${s?.info?.language})`}]}];if(s?.info?.workflow_info&&Object.keys(s?.info?.workflow_info?.workflows??[]).length>0){const{workflows:o,state:a}=s.info.workflow_info;e.push({key:"5",label:"Workflows",icon:"pi pi-fw pi-list-check",expanded:!0,children:Object.keys(o).map(d=>({key:`5-${d}`,label:`${o[d].title}${a?.workflow_id===d?" (Active)":""}`}))})}return e.push({key:"3",label:"Tools",icon:"pi pi-fw pi-wrench",expanded:!0,children:Object.keys(s?.info?.agent?.tools||{}).map((o,a)=>({key:`3-${a}`,label:o.replace("PyPackageAgent.",""),data:s.info.agent.tools[o],type:"tool"}))}),e}),t=C({});return ve(r,s=>{t.value=Object.fromEntries(s.filter(e=>e.expanded).map(e=>[e.key,!0]))},{immediate:!0}),(s,e)=>{const o=J("tooltip");return n(),p("div",ze,[b(g(ke),{value:r.value,loading:!r.value,expandedKeys:t.value,"onUpdate:expandedKeys":e[1]||(e[1]=a=>t.value=a),pt:{root:{class:"context-tree"},nodeContent:{style:{padding:"0"}}}},{loadingicon:w(()=>[...e[2]||(e[2]=[l("div",{class:"loading-area"}," No Context Loaded. ",-1)])]),action:w(a=>[N((n(),p("div",{onMousedown:e[0]||(e[0]=d=>{d.detail>1&&d.preventDefault()}),style:{cursor:"pointer","border-bottom":"1px dotted var(--p-text-color-secondary)"}},[B($(a.node.label),1)],32)),[[o,{value:`${a.node.data}`,pt:{text:{style:{width:"20rem"}},root:{style:{marginLeft:"1rem"}}}}]])]),tool:w(a=>[N((n(),p("span",Ue,[B($(a.node.label),1)])),[[o,{value:`${a.node.data}`,pt:{text:{style:{width:"20rem"}},root:{style:{marginLeft:"1rem"}}}}]])]),_:1},8,["value","loading","expandedKeys"])])}}}),Oe={class:"chat-history-message"},Ie={class:"chat-history-message-title"},De={style:{"font-weight":"500"}},Fe={key:0,class:"chat-history-message-tool-use pi pi-hammer"},Ve={class:"chat-history-message-title-token-count"},Ke={key:0,class:"message-text monospace"},qe={key:1,class:"toolcall-info"},We={class:"tool-call-title"},Qe={class:"monospace"},Ye=j({__name:"ChatHistoryMessage",props:["record","idx","tool-call-message"],setup(v){const i=v,u=C(!0),r=k(()=>i.record?.message),t=s=>s&&s.replace(/(?<edge>[-_]|\b)(?<letter>.)/g,(e,o,a,d,m,h)=>a.toUpperCase());return(s,e)=>{const o=J("tooltip");return n(),p("div",Oe,[b(g(He),{class:"chat-history-message-panel",toggleable:!0,style:F({collapsed:u.value}),onToggle:e[2]||(e[2]=a=>u.value=!u.value),pt:{contentContainer:({state:a})=>(a.d_collapsed=!1,u.value?"collapsed":void 0)}},{header:w(()=>[l("div",{class:"chat-history-message-header-container",onClick:e[0]||(e[0]=a=>u.value=!u.value)},[l("div",Ie,[l("span",De,$(t(r.value?.type))+"Message ",1),r.value?.type.toLowerCase()==="ai"&&r.value?.tool_calls?N((n(),p("span",Fe,null,512)),[[o,`Tool${r.value.tool_calls.length>1?"s":""} called: `+r.value.tool_calls.map(a=>`'${a.name}'`).join(", ")]]):T("",!0)]),l("span",Ve,$(((v.record?.token_count??0)/1e3).toFixed(2))+"k tokens ",1)])]),togglericon:w(()=>[(n(),R(xe(u.value?g($e):g(Ce))))]),default:w(()=>[l("div",null,[r.value.text.trim()?(n(),p("div",Ke,$(r.value?.text.trim()),1)):T("",!0),r.value?.type==="ai"&&r.value?.tool_calls?.length>0?(n(),p("div",qe,[(n(!0),p(K,null,q(r.value?.tool_calls,a=>(n(),p("div",{key:a.id},[l("div",We,[e[3]||(e[3]=B(" Tool:   ",-1)),l("span",Qe,$(a.name),1)]),e[4]||(e[4]=l("div",null," Arguments: ",-1)),b(g(we),{showGridlines:"",stripedRows:"",class:"chat-history-datatable",value:Object.entries(a?.args).map(([d,m])=>({key:d,value:m}))},{default:w(()=>[b(g(re),{field:"key"}),b(g(re),{field:"value"})]),_:1},8,["value"])]))),128))])):T("",!0)]),u.value?(n(),p("div",{key:0,class:"expand",onClick:e[1]||(e[1]=a=>u.value=!1)},"Click to expand")):T("",!0)]),_:1},8,["style","pt"])])}}}),Ge={class:"chat-history-panel"},Je={class:"chat-history-model"},Xe={class:"model-info"},Ze={class:"model-specs",style:{display:"grid","grid-template-columns":"max-content auto","column-gap":"1rem","row-gap":"0.5rem"}},et={key:0,class:"model-spec-label"},tt={key:1},st={class:"context-window-usage"},ot={class:"progress-bar-container"},at={class:"progress-bar"},lt={style:{width:"100%",position:"absolute",top:"1%","text-align":"center"}},nt={class:"progress-bar-map"},rt={class:"progress-bar-map-row overhead"},it={class:"progress-bar-map-row summary"},ct={class:"progress-bar-map-row message"},dt={class:"progress-bar-map-row total"},ut={key:0,class:"add-message-section"},pt={class:"add-message-input"},mt={class:"add-message-actions"},vt={class:"chat-history-records"},Zt=j({__name:"ChatHistoryPanel",props:{chatHistory:{}},setup(v){const i=v,u=k(()=>[i.chatHistory?.systemMessageRecord,i.chatHistory?.systemPreambleRecord,i.chatHistory?.userPreambleRecord,...i.chatHistory?.records??[]].filter(Boolean)),r=C(!1),t=C(""),s=S("beakerSession"),e=S("show_toast"),o=async()=>{(await s.session.executeAction("set_user_preamble",{message_text:""}).done)?.content?.status==="ok"?(t.value="",e({title:"Upload complete",detail:"Preamble message cleared",severity:"success",life:4e3})):e({title:"Upload complete",detail:"Error clearing preamble message.",severity:"error",life:4e3})},a=async()=>{t.value.trim()&&s?.session&&((await s.session.executeAction("set_user_preamble",{message_text:t.value.trim()}).done)?.content?.status==="ok"?(t.value="",e({title:"Upload complete",detail:"Preamble message set.",severity:"success",life:4e3})):e({title:"Upload complete",detail:"Error setting preamble message.",severity:"error",life:4e3}))},d=k(()=>{const f=i.chatHistory?.model?.context_window,c=i.chatHistory?.token_estimate;if(f&&c){const M=c/f;return Math.round(M*1e3)/10}else return null}),m=k(()=>i.chatHistory?.model?.context_window),h=f=>{const c=m.value;return!c||f===void 0||f===null?0:Math.round(f/c*1e3)/10},y=k(()=>h(i.chatHistory?.overhead_token_count)),x=k(()=>h(i.chatHistory?.message_token_count)),P=k(()=>h(i.chatHistory?.summary_token_count)),D=k({get(){return h(i.chatHistory?.summarization_threshold)},set(f){console.log(f)}}),O=k(()=>(i.chatHistory?.overhead_token_count??0)+(i.chatHistory?.message_token_count??0)+(i.chatHistory?.summary_token_count??0)),Y=k(()=>{const f=O.value,c=U(A(f)),M=U(A(m.value));return`${(d.value??0).toLocaleString()}% (~ ${c} / ${M})`}),H=f=>i.chatHistory?.records?.map(c=>c.message).find(c=>c.type==="ai"&&c.tool_calls?.map(M=>M.id).includes(f)),z=f=>{if(f?.message?.tool_call_id)return H(f.message.tool_call_id)},A=f=>f==null||Number.isNaN(f)?0:Math.round(f/500)*.5,U=f=>{(f==null||Number.isNaN(f))&&(f=0);let c="k",M=f.toLocaleString();return f>=1e3&&(c="M",M=(f/1e3).toFixed(2)),`${M.toLocaleString()}${c}`};return(f,c)=>{const M=J("tooltip");return n(),p("div",Ge,[l("div",Je,[l("div",Xe,[c[3]||(c[3]=l("h4",null,"Current model",-1)),l("div",Ze,[c[1]||(c[1]=l("div",{class:"model-spec-label"},"Model Provider:",-1)),l("div",null,$(i.chatHistory?.model?.provider),1),c[2]||(c[2]=l("div",{class:"model-spec-label"},"Model Name:",-1)),l("div",null,$(i.chatHistory?.model?.model_name),1),i.chatHistory?.model?.context_window?(n(),p("div",et,"Context window:")):T("",!0),i.chatHistory?.model?.context_window?(n(),p("div",tt,$(i.chatHistory?.model?.context_window.toLocaleString())+" tokens",1)):T("",!0)])])]),l("div",st,[c[12]||(c[12]=l("h4",null,"Context window usage",-1)),l("div",ot,[l("div",at,[l("span",{class:"progress-bar-usage overhead",style:F({width:`${y.value}%`})},null,4),l("span",{class:"progress-bar-usage summary",style:F({width:`${P.value}%`})},null,4),l("span",{class:"progress-bar-usage message",style:F({width:`${x.value}%`})},null,4)]),l("div",{style:F([{width:"2px",height:"100%","background-color":"var(--p-orange-600)",position:"absolute",top:"0"},{left:`${D.value}%`}])},null,4),l("div",{style:F([{width:"2px",height:"100%","background-color":"var(--p-red-600)",position:"absolute",top:"0"},{left:"85%"}])}),l("div",lt,$(Y.value),1)]),l("div",nt,[N((n(),p("div",rt,[c[4]||(c[4]=l("span",{class:"progress-bar-map-circle overhead"},null,-1)),c[5]||(c[5]=B(" Estimated token overhead: ",-1)),l("span",null,$(U(A(v.chatHistory?.overhead_token_count))),1)])),[[M,"Tokens used in tool definitions, subkernel state, etc. (estimated)"]]),N((n(),p("div",it,[c[6]||(c[6]=l("span",{class:"progress-bar-map-circle summary"},null,-1)),c[7]||(c[7]=B(" Estimated summarized token usage: ",-1)),l("span",null,$(U(A(v.chatHistory?.summary_token_count))),1)])),[[M,"Token used by summaries. (estimated)"]]),N((n(),p("div",ct,[c[8]||(c[8]=l("span",{class:"progress-bar-map-circle message"},null,-1)),c[9]||(c[9]=B(" Estimated message token usage: ",-1)),l("span",null,$(U(A(v.chatHistory?.message_token_count))),1)])),[[M,"Tokens used by all unsummarized messages. (estimated)"]]),N((n(),p("div",dt,[c[10]||(c[10]=l("span",{class:"progress-bar-map-circle total"},null,-1)),c[11]||(c[11]=B(" Estimated total token usage: ",-1)),l("span",null,$(U(A(O.value))),1)])),[[M,"Total tokens of current conversational history, favoring summaries. (estimated)"]])])]),c[15]||(c[15]=l("h4",null,"Messages",-1)),r.value?(n(),p("div",ut,[l("div",pt,[N(l("textarea",{"onUpdate:modelValue":c[0]||(c[0]=I=>t.value=I),placeholder:"Add a preamble message to chat history...",rows:"3",class:"message-textarea"},null,512),[[Me,t.value]])]),l("div",mt,[b(g(W),{onClick:o,severity:"danger"},{default:w(()=>[...c[13]||(c[13]=[B(" Clear Message ",-1)])]),_:1}),b(g(W),{onClick:a,disabled:!t.value.trim(),class:"save-message-btn",severity:"success"},{default:w(()=>[...c[14]||(c[14]=[B(" Save Message ",-1)])]),_:1},8,["disabled"])])])):T("",!0),l("div",vt,[(n(!0),p(K,null,q(u.value,(I,_)=>(n(),R(Ye,{key:I.uuid||`preamble-${_}`,record:I,idx:_,"tool-call-message":z(I)},null,8,["record","idx","tool-call-message"]))),128))])])}}}),ft={key:1},es=j({__name:"PreviewPanel",props:{previewData:{}},setup(v){const i=v;return(u,r)=>i.previewData?(n(),R(g(fe),{key:0,multiple:"",activeIndex:[...Array(i.previewData.length).keys()],class:"preview-accordion"},{default:w(()=>[(n(!0),p(K,null,q(i.previewData,(t,s)=>(n(),R(g(ye),{key:s,header:s.toString(),class:"preview-accordion-tab"},{default:w(()=>[(n(!0),p(K,null,q(t,(e,o)=>(n(),R(g(Pe),{class:"preview-container",key:o,legend:o.toString(),toggleable:!0},{default:w(()=>[b(V,{class:"contextpreview-mime-bundle code-cell-output preview-container-table-wrapper",collapse:!0,mimeBundle:e},null,8,["mimeBundle"])]),_:2},1032,["legend"]))),128))]),_:2},1032,["header"]))),128))]),_:1},8,["activeIndex"])):(n(),p("div",ft,"No preview yet"))}});var X,de;function yt(){if(de)return X;de=1,X=s;var v=/(?:(?:\u001b\[)|\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\u001b[A-M]/,i={reset:["fff","000"],black:"000",red:"ff0000",green:"209805",yellow:"e8bf03",blue:"0000ff",magenta:"ff00ff",cyan:"00ffee",lightgrey:"f0f0f0",darkgrey:"888"},u={30:"black",31:"red",32:"green",33:"yellow",34:"blue",35:"magenta",36:"cyan",37:"lightgrey"},r={1:"font-weight:bold",2:"opacity:0.5",3:"<i>",4:"<u>",8:"display:none",9:"<del>"},t={23:"</i>",24:"</u>",29:"</del>"};[0,21,22,27,28,39,49].forEach(function(o){t[o]="</span>"});function s(o){if(!v.test(o))return o;var a=[],d=o.replace(/\033\[(\d+)m/g,function(h,y){var x=r[y];if(x)return~a.indexOf(y)?(a.pop(),"</span>"):(a.push(y),x[0]==="<"?x:'<span style="'+x+';">');var P=t[y];return P?(a.pop(),P):""}),m=a.length;return m>0&&(d+=Array(m+1).join("</span>")),d}s.setColors=function(o){if(typeof o!="object")throw new Error("`colors` parameter must be an Object.");var a={};for(var d in i){var m=o.hasOwnProperty(d)?o[d]:null;if(!m){a[d]=i[d];continue}if(d==="reset"){if(typeof m=="string"&&(m=[m]),!Array.isArray(m)||m.length===0||m.some(function(y){return typeof y!="string"}))throw new Error("The value of `"+d+"` property must be an Array and each item could only be a hex string, e.g.: FF0000");var h=i[d];m[0]||(m[0]=h[0]),(m.length===1||!m[1])&&(m=[m[0]],m.push(h[1])),m=m.slice(0,2)}else if(typeof m!="string")throw new Error("The value of `"+d+"` property must be a hex string, e.g.: FF0000");a[d]=m}e(a)},s.reset=function(){e(i)},s.tags={},Object.defineProperty?(Object.defineProperty(s.tags,"open",{get:function(){return r}}),Object.defineProperty(s.tags,"close",{get:function(){return t}})):(s.tags.open=r,s.tags.close=t);function e(o){r[0]="font-weight:normal;opacity:1;color:#"+o.reset[0]+";background:#"+o.reset[1],r[7]="color:#"+o.reset[1]+";background:#"+o.reset[0],r[90]="color:#"+o.darkgrey;for(var a in u){var d=u[a],m=o[d]||"000";r[a]="color:#"+m,a=parseInt(a),r[(a+10).toString()]="background:#"+m}}return s.reset(),X}var gt=yt();const ue=ge(gt);/*!
2
+ * escape-html
3
+ * Copyright(c) 2012-2013 TJ Holowaychuk
4
+ * Copyright(c) 2015 Andreas Lubbe
5
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
6
+ * MIT Licensed
7
+ */var Z,pe;function _t(){if(pe)return Z;pe=1;var v=/["'&<>]/;Z=i;function i(u){var r=""+u,t=v.exec(r);if(!t)return r;var s,e="",o=0,a=0;for(o=t.index;o<r.length;o++){switch(r.charCodeAt(o)){case 34:s="&quot;";break;case 38:s="&amp;";break;case 39:s="&#39;";break;case 60:s="&lt;";break;case 62:s="&gt;";break;default:continue}a!==o&&(e+=r.substring(a,o)),a=o+1,e+=s}return a!==o?e+r.substring(a,o):e}return Z}var bt=_t();const me=ge(bt),ht={key:0},kt={class:"code-cell-output-box-dropdown"},wt=["innerHTML"],xt={key:3},$t={key:1},Ct=["onClickCapture"],Ht=["innerHTML"],Mt={key:3},Pt=j({__name:"BeakerCodeCellOutput",props:["outputs","busy","dropdownLayout"],setup(v){const i=v,u=t=>{const s=C(t?.metadata||(t.metadata={}));s.value.collapsed=!s.value.collapsed},r=t=>{const s=Array.isArray(t.traceback)?t.traceback?.join(`
8
+ `):t.traceback?.toString();return{"application/vnd.jupyter.error":t,"application/vnd.jupyter.stderr":s||`${t.ename}: ${t.evalue}`}};return(t,s)=>(n(),p("div",{class:L(["code-cell-output",{"code-cell-output-dropdown":i.dropdownLayout}])},[v.dropdownLayout?(n(),p("div",ht,[l("div",kt,[b(g(fe),null,{default:w(()=>[b(g(ye),{class:"code-cell-output-dropdown-tab",pt:{header:{class:["code-cell-output-dropdown-header"]},headerAction:{class:["code-cell-output-dropdown-headeraction"]},content:{class:["code-cell-output-dropdown-content"]},headerIcon:{class:["code-cell-output-dropdown-icon"]}}},{header:w(()=>[...s[0]||(s[0]=[l("span",{class:"flex align-items-center gap-2 w-full",style:{"font-weight":"normal"}},[l("span",null,"Outputs")],-1)])]),default:w(()=>[(n(!0),p(K,null,q(i.outputs,e=>(n(),p("div",{class:"code-cell-dropdown-content",key:`${e}-dropdown`},[e.output_type=="stream"?(n(),p("div",{key:0,class:L(e.output_type),innerHTML:g(ue)(g(me)(e.text))},null,10,wt)):["display_data","execute_result"].includes(e.output_type)?(n(),R(V,{key:1,"mime-bundle":e.data,class:"mime-bundle",collapse:"true"},null,8,["mime-bundle"])):e.output_type=="error"?(n(),p("div",{key:2,class:L(e.output_type)},[b(V,{"mime-bundle":r(e),collapse:"true"},null,8,["mime-bundle"])],2)):(n(),p("div",xt,$(e),1))]))),128))]),_:1})]),_:1})])])):(n(),p("div",$t,[(n(!0),p(K,null,q(i.outputs,e=>(n(),p("div",{class:L(["code-cell-output-box",{"collapsed-output":e.metadata?.collapsed}]),key:e},[l("div",{class:"output-collapse-box",onClickCapture:ee(o=>u(e),["stop","prevent"])},null,40,Ct),e.output_type=="stream"?(n(),p("div",{key:0,class:L(e.output_type),innerHTML:g(ue)(g(me)(e.text))},null,10,Ht)):["display_data","execute_result"].includes(e.output_type)?(n(),R(V,{key:1,"mime-bundle":e.data,class:"mime-bundle",collapse:"true"},null,8,["mime-bundle"])):e.output_type=="error"?(n(),p("div",{key:2,class:L(e.output_type)},[b(V,{"mime-bundle":r(e),collapse:"true"},null,8,["mime-bundle"])],2)):(n(),p("div",Mt,$(e),1))],2))),128))]))],2))}}),St=j({__name:"AnnotationButton",props:{action:{type:Function,async default(){console.log("no action defined")}}},setup(v){const i=v,u=C(!1),r=async()=>{u.value=!0;try{await i.action()}finally{u.value=!1}};return(t,s)=>(n(),R(g(W),{onClick:r,size:"small",disabled:u.value,loading:u.value},{icon:w(()=>[...s[0]||(s[0]=[l("span",{class:"pi pi-search pi-exclamation-triangle"},null,-1)])]),_:1},8,["disabled","loading"]))}}),At={class:"code-cell"},Tt={class:"code-cell-grid"},Rt={class:"code-output"},Et={class:"state-info"},Lt={key:0,class:"pi pi-spin pi-spinner busy-icon"};var Bt=(v=>(v.Success="ok",v.Modified="modified",v.Error="error",v.Pending="pending",v.None="none",v))(Bt||{});const Nt={modelClass:Be,icon:"pi pi-code"},ts=j({...Nt,__name:"BeakerCodeCell",props:["cell","hideOutput","codeStyles"],emits:["blur"],setup(v,{expose:i,emit:u}){const r=v,t=C(r.cell),{theme:s}=S("theme"),e=S("session"),o=C(),a=S("beakerSession"),d=S("notebook"),m=oe(),h=C([]),y=k(()=>typeof t.value?.last_execution?.checkpoint_index<"u"),x=()=>t.value.rollback(e),P=k(()=>t.value?.busy),D=async()=>{const _={notebook_id:d.id,cells:[{cell_id:t.value.id,content:t.value.source}]};await e.executeAction("lint_code",_).done},O=k(()=>{const _="secondary";return{ok:"success",modified:"warning",error:"danger",pending:_,none:_}[t.value?.last_execution?.status]||_}),Y=_=>{d&&d.selectCell(t.value),_.stopPropagation()};function H(){t.value.reset_execution_state()}const z=k(()=>a.activeContext?.language?.slug||void 0),A=_=>{const E=r.cell.execute(e);return r.cell.last_execution.status="pending",f(),E},U=_=>{o.value?.focus(),_==="start"?_=0:_==="end"&&(_=o.value?.view?.state?.doc?.length),_!==void 0&&o.value?.view?.dispatch({selection:{anchor:_,head:_}})},f=()=>{o.value?.blur();const _=m.vnode.el;le(_)?.focus()};i({execute:A,enter:U,exit:f,clear:()=>{t.value.source="",t.value.outputs.splice(0,t.value.outputs.length)},cell:t,editor:o,lintAnnotations:h}),te(()=>{a.cellRegistry[t.value.id]=m.vnode}),se(()=>{delete a.cellRegistry[t.value.id]});const M=k(()=>t.value.metadata?.source_cell_id&&t.value.metadata?.beaker_cell_type==="code"),I=k(()=>M.value&&(t.value.execution_count===null||t.value.execution_count===void 0));return ve(()=>{if(!I.value)return null;const _=t.value.metadata?.source_cell_id,E=t.value.metadata?.parent_query_cell;if(_&&E){const Q=a.session.notebook.cells.find(G=>G.id===E);if(Q&&Q.children)return Q.children.find(_e=>_e.id===_)?.execution_count}return null},_=>{_!=null&&(t.value.execution_count=_)}),(_,E)=>{const Q=J("tooltip");return n(),p("div",At,[l("div",Tt,[l("div",{class:L(["code-data",{"dark-mode":g(s).mode==="dark",[v.codeStyles]:r.codeStyles}])},[b(ae,{"display-mode":"dark",language:z.value,modelValue:t.value.source,"onUpdate:modelValue":E[0]||(E[0]=G=>t.value.source=G),ref_key:"codeEditorRef",ref:o,placeholder:"Your code...",disabled:P.value,onChange:H,onClick:Y,annotations:h.value,"annotation-provider":"linter"},null,8,["language","modelValue","disabled","annotations"])],2),l("div",Rt,[N(b(Pt,{outputs:t.value.outputs,busy:P.value,"dropdown-layout":!1},null,8,["outputs","busy"]),[[Se,!v.hideOutput&&t.value.outputs.length]])]),l("div",Et,[l("div",null,[b(g(Ae),{class:L(["execution-count-badge",{secondary:O.value==="secondary"}]),severity:O.value,value:t.value.execution_count||" "},null,8,["class","severity","value"])]),P.value?(n(),p("i",Lt)):T("",!0),N(b(St,{action:D,text:""},null,512),[[Q,{value:"Analyze this code.",showDelay:300},void 0,{bottom:!0}]]),y.value?(n(),R(g(W),{key:1,class:"rollback-button",severity:O.value,icon:"pi pi-undo",size:"small",onClick:x},null,8,["severity"])):T("",!0)])])])}}}),jt={class:"media-focus"},zt={class:"media-mime-bundle"},ss=j({__name:"MediaPanel",setup(v){const i=S("session"),u=C(0),r=["image/png","text/html"],t=k(()=>{const e=[],o=i.notebook.cells,a=d=>{const m=[];if(d.cell_type==="query"&&!d.metadata?.is_flattened)for(const h of d?.children??[])m.push(...a(h));else if(d.cell_type==="code")for(const h of d?.outputs??[]){const y=h?.data??{};r.forEach(x=>{y[x]&&m.push(h)})}return m};for(const d of o)e.push(...a(d));return e}),s=k(()=>t?.value?.[u?.value]?.data);return(e,o)=>(n(),p("div",jt,[b(g(Ee),{class:"media-toolbar"},{start:w(()=>[b(g(W),{icon:"pi pi-arrow-left",class:"media-toolbar-button",onClick:o[0]||(o[0]=()=>{u.value-=Math.min(u.value,1)})}),b(g(W),{icon:"pi pi-arrow-right",class:"media-toolbar-button",onClick:o[1]||(o[1]=()=>{u.value+=u.value>=t.value.length-1?0:1})})]),end:w(()=>[b(g(Te),null,{default:w(()=>[b(g(ie),{class:"media-dropdown-icon"},{default:w(()=>[...o[3]||(o[3]=[l("i",{class:"pi pi-chart-bar"},null,-1)])]),_:1}),b(g(Re),{modelValue:u.value,"onUpdate:modelValue":o[2]||(o[2]=a=>u.value=a),options:Array.from(t.value.map((a,d)=>({label:d+1,value:d}))),"option-label":"label","option-value":"value"},null,8,["modelValue","options"]),b(g(ie),null,{default:w(()=>[B("/ "+$(t.value.length??0),1)]),_:1})]),_:1})]),_:1}),l("div",zt,[s.value!==void 0?(n(),R(V,{key:0,"mime-bundle":s.value,class:"code-cell-output"},null,8,["mime-bundle"])):T("",!0)])]))}}),Ut=["innerHTML"],Ot={key:1},It={class:"markdown-edit-cell-grid"},Dt={modelClass:Ne,icon:"pi pi-pencil"},os=j({...Dt,__name:"BeakerMarkdownCell",props:["cell"],setup(v,{expose:i}){const u=v,r=oe(),t=S("beakerSession"),s=C(u.cell),{theme:e}=S("theme"),o=C(!1),a=C(null),d=C(null),m=S("notebook"),h=C(s.value.source),y=k(()=>ce.parse(u.cell?.source||"")),x=H=>{m.selectCell(s.value),H.stopPropagation()},P=()=>{o.value=!1,s.value.source=h.value},D=H=>{o.value||(o.value=!0),Le(()=>{d.value?.focus(),H==="start"?H=0:H==="end"&&(H=d.value?.view?.state?.doc?.length),H!==void 0&&d.value?.view?.dispatch({selection:{anchor:H,head:H}})})};return i({execute:P,enter:D,exit:()=>{if(h.value===s.value.source)o.value=!1;else{d.value?.blur();const H=r.vnode.el;le(H)?.focus()}},clear:()=>{s.value.source=""},model:s,editor:d}),te(()=>{ce.setOptions({}),t.cellRegistry[s.value.id]=r.vnode}),se(()=>{delete t.cellRegistry[s.value.id]}),(H,z)=>(n(),p("div",{class:"markdown-cell",onDblclick:z[1]||(z[1]=A=>D())},[o.value?(n(),p("div",Ot,[l("div",It,[l("div",{class:L(["markdown-edit-data",{"dark-mode":g(e).mode==="dark"}]),ref:a.value},[b(ae,{modelValue:h.value,"onUpdate:modelValue":z[0]||(z[0]=A=>h.value=A),placeholder:"Your markdown...",ref_key:"codeEditorRef",ref:d,autofocus:!1,language:"markdown","display-mode":"dark",onClick:x},null,8,["modelValue"])],2)])])):(n(),p("div",{key:0,innerHTML:y.value},null,8,Ut))],32))}}),Ft={class:"raw-cell"},Vt={class:"raw-cell-header"},Kt={key:0},qt={modelClass:je,icon:"pi pi-question-circle"},as=j({...qt,__name:"BeakerRawCell",props:["cell"],setup(v,{expose:i}){const u=v,r=oe(),t=C(u.cell),s=C(null),e=S("beakerSession");let o;(y=>{y.Success="success",y.Modified="modified",y.Error="error",y.Pending="pending"})(o||(o={}));const a=y=>{m()},d=y=>{s.value?.focus(),y==="start"?y=0:y==="end"&&(y=s.value?.view?.state?.doc?.length),y!==void 0&&s.value?.view?.dispatch({selection:{anchor:y,head:y}})},m=()=>{s.value.blur();const y=r.vnode.el;le(y)?.focus()};return i({execute:a,enter:d,exit:m,clear:()=>{t.value.source=""},model:t,editor:s}),te(()=>{e.cellRegistry[t.value.id]=r.vnode}),se(()=>{delete e.cellRegistry[t.value.id]}),(y,x)=>(n(),p("div",Ft,[l("div",Vt,[x[1]||(x[1]=l("span",{class:"raw-cell-title"},"Raw cell",-1)),u.cell.cell_type!=="raw"?(n(),p("span",Kt," - (Unrenderable cell type '"+$(u.cell.cell_type)+"')",1)):T("",!0)]),b(ae,{"display-mode":"dark",language:"julia",modelValue:t.value.source,"onUpdate:modelValue":x[0]||(x[0]=P=>t.value.source=P),ref_key:"codeEditorRef",ref:s,placeholder:"Raw cell content...",autofocus:!1},null,8,["modelValue"])]))}});export{Bt as C,Jt as _,St as a,es as b,ss as c,Xt as d,Zt as e,as as f,os as g,ts as h,Pt as i};
@@ -0,0 +1,13 @@
1
+ import{q as D,i as P,y as s,z as B,u as t,aq as ke,_ as d,U as n,k as j,j as F,V as L,a2 as he,r as S,n as we,L as a,M as p,Y as le,Q as J,R as ee,ae as be,f as b,a7 as me,K as W,a1 as G,N as T,ar as ie,as as ce,W as O,S as U,O as K,w as ae,J as Ce,at as ye,ac as ue,a as pe,a0 as xe,$ as $e,t as de,ag as qe,au as Se,x as Te}from"./primevue--GeoWRFA.js";import{c as Ie,i as Me,L as Re,j as Ee,w as Qe,_ as Pe,m as ve,n as A,o as Ne,p as Ae,q as Be,r as Ve,s as ze,t as Le}from"./renderers-BwgSq-ym.js";import{_ as fe,i as Oe,h as ge,f as He,g as Fe,b as De,c as Ue,d as je,e as Ke}from"./BeakerRawCell.vue_vue_type_style_index_0_lang-Dok20eE0.js";import{N as Je}from"./NotebookSvg-BbcXra8C.js";import{m as oe}from"./index-Ci35gwNJ.js";import{u as We}from"./BaseQueryCell-aSI_w4t7.js";import{_ as Ge}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{s as Ye}from"./jupyterlab-DIbc8_Yd.js";import"./pdfjs-CBUS_CnE.js";import"./codemirror-Dt0OdaTo.js";import"./xlsx-C3u7rb2R.js";const Xe=D({__name:"AgentQuery",props:["placeholder"],emits:["select-cell","run-cell"],setup(m,{emit:C}){const w=P("beakerSession"),l=S(""),c=m,o=P("session"),v=P("show_toast"),x=I=>{const r=o.notebook;if(!l.value.trim()){v?.({title:"Empty query",detail:"Please enter a question or instruction before submitting.",severity:"warn",life:4e3});return}if(r.cells.length===1){const _=r.cells[0];_.cell_type==="code"&&_.source===""&&_.execution_count===null&&_.outputs.length===0&&r.removeCell(0)}const h=o.addQueryCell(l.value);l.value="",we(()=>{w.findNotebookCellById(h.id).execute()})};return(I,r)=>(s(),B(t(ke),{class:"agent-input-card"},{content:d(()=>[n(t(he),null,{default:d(()=>[n(fe,{class:"agent-query-textarea",onKeydown:[j(F(x,["exact","prevent"]),["enter"]),r[0]||(r[0]=j(F(h=>h.target.blur(),["prevent","stop"]),["escape"]))],modelValue:l.value,"onUpdate:modelValue":r[1]||(r[1]=h=>l.value=h),placeholder:c.placeholder??"How can the agent help?"},null,8,["onKeydown","modelValue","placeholder"]),n(t(L),{icon:"pi pi-send",outlined:"",onClick:x})]),_:1})]),_:1}))}}),Ze={class:"panel-cell-container"},et={class:"flex-background"},tt={class:"chat-help-text-display query-answer-chat-override"},nt=D({__name:"ChatPanel",props:["cellMap"],setup(m){const C=P("session"),w=m,l=b(()=>C.notebook.cells.filter(c=>!c.metadata?.parent_query_cell));return(c,o)=>(s(),a("div",Ze,[p("div",et,[le(c.$slots,"notebook-background")]),p("span",tt,[le(c.$slots,"help-text")]),(s(!0),a(J,null,ee(l.value,(v,x)=>(s(),B(be(w.cellMap[v.cell_type]),{cell:v,key:v.id||x,class:"beaker-chat-cell"},null,8,["cell"]))),128))]))}}),st={class:"llm-query-event"},ot={key:0},lt={key:1},at=["innerHTML"],rt={key:3},it={key:4},ct=["innerHTML"],ut={key:5,style:{position:"relative"}},pt={key:6},dt={key:7},vt={key:0,class:"pre"},ht={key:1,class:"pre"},mt={key:0,class:"pre"},re=D({__name:"BeakerQueryCellEvent",props:["event","parentQueryCell","codeStyles","shouldHideAnsweredQuestions"],setup(m,{expose:C}){const w=P("beakerSession"),l=P("notebook"),c=S(),o=m;me(()=>{oe.setOptions({})});const v=()=>{l&&l.selectCell(o.event?.content.cell_id)},x=b(()=>w.session.notebook.cells.indexOf(o.parentQueryCell.value)),I=b(()=>l?x.value.toString()===l.selectedCellId:!1),r=b(()=>o.parentQueryCell?.children?.map((y=>y?.outputs?.every(q=>{if(q?.data!==void 0){const k=Object.keys(q?.data);return q?.output_type==="execute_result"&&k.length===1&&k[0]==="text/plain"}else return!0}))).every(y=>y)?[]:o.parentQueryCell?.children?.entries()),h=b(()=>{const f=[];return o.parentQueryCell?.children?.entries()?.forEach(([y,q])=>{q?.outputs?.forEach(k=>{const Q=["image/png","text/html"];["execute_result","display_data"].includes(k?.output_type)&&Q.map(z=>Object.keys(k?.data??[]).includes(z)).some(z=>z)&&f.push(y)})}),f}),_=f=>{const y=w.session.notebook;for(const q of y.cells){const k=q.children?.find(Q=>Q.id===f);if(typeof k<"u")return k}},N=f=>["response","user_answer","user_question"].includes(f.type),$=f=>!(f.type==="response"&&f.content==="None"),R=f=>f.type==="user_question"&&f.waitForUserInput,V=b(()=>N(o.event)?oe.parse(o.event.content,{async:!1}).trim():"");function E(){}return C({execute:E}),(f,y)=>{const q=W("keybindings");return s(),a("div",st,[R(m.event)?(s(),a("div",ot,[...y[0]||(y[0]=[p("span",{class:"waiting-text"},[p("i",{class:"pi pi-spin pi-spinner",style:{"font-size":"1rem"}}),G(" Waiting for user input in conversation. ")],-1)])])):m.event.type==="user_question"&&o.shouldHideAnsweredQuestions?(s(),a("div",lt)):N(m.event)&&$(m.event)?(s(),a("div",{key:2,innerHTML:V.value,class:"md-inline"},null,8,at)):T("",!0),o.event?.type==="response"&&r.value!==0?(s(),a("div",rt,[n(t(ie),{multiple:!0,"active-index":h.value},{default:d(()=>[(s(!0),a(J,null,ee(r.value,([k,Q])=>(s(),B(t(ce),{key:k,pt:{header:{class:["agent-response-header"]},headerAction:{class:["agent-response-headeraction"]},content:{class:["agent-response-content"]},headerIcon:{class:["agent-response-icon"]}}},{header:d(()=>[...y[1]||(y[1]=[p("span",{class:"flex align-items-center gap-2 w-full"},[p("span",null,"Outputs")],-1)])]),default:d(()=>[n(Oe,{outputs:Q?.outputs},null,8,["outputs"])]),_:2},1024))),128))]),_:1},8,["active-index"])])):o.event?.type==="thought"?(s(),a("div",it,[p("div",{innerHTML:t(oe).parse(o.event.content.thought)},null,8,ct)])):o.event?.type==="code_cell"?(s(),a("div",ut,[O(n(ge,{onClick:v,cell:_(o?.event.content.cell_id),"drag-enabled":!1,"code-styles":o.codeStyles,class:U({selected:I.value,"query-event-code-cell":!0}),"hide-output":!1,ref_key:"codeCellRef",ref:c},null,8,["cell","code-styles","class"]),[[q,{"keydown.enter.ctrl.prevent.capture.in-editor":k=>{c.value.execute()},"keydown.enter.shift.prevent.capture.in-editor":k=>{c.value.execute()}}]]),le(f.$slots,"code-cell-controls")])):o.event?.type==="error"&&o.event.content.ename==="CancelledError"?(s(),a("span",pt,[...y[2]||(y[2]=[p("h4",{class:"p-error"},"Request cancelled.",-1)])])):o.event?.type==="error"?(s(),a("span",dt,[p("div",null,[o?.event.content.ename?(s(),a("pre",vt," "+K(o?.event.content.ename)+`
2
+ `,1)):T("",!0),o?.event.content.evalue?(s(),a("pre",ht," "+K(o?.event.content.evalue)+`
3
+ `,1)):T("",!0),n(t(ie),null,{default:d(()=>[n(t(ce),{pt:{header:{class:["agent-response-header"]},headerAction:{class:["agent-response-headeraction"]},content:{class:["agent-response-content","agent-response-content-error"]},headerIcon:{class:["agent-response-icon"]}}},{header:d(()=>[...y[3]||(y[3]=[p("span",{class:"flex align-items-center gap-2 w-full"},[p("span",{class:"font-bold white-space-nowrap"},"Traceback:")],-1)])]),default:d(()=>[o?.event.content.traceback?(s(),a("pre",mt," "+K(o?.event.content.traceback?.join(`
4
+ `))+`
5
+ `,1)):T("",!0)]),_:1})]),_:1})])])):T("",!0)])}}}),yt=["error","response"],Z=m=>m?.length>0?yt.includes(m[m.length-1].type):!1,ft={class:"llm-query-cell"},gt={class:"llm-prompt-container llm-prompt-container-chat"},_t={class:"prompt-input-container"},kt={class:"prompt-controls"},wt=["data-cell-id"],bt={key:0,class:"event-container"},Ct={class:"events"},xt={class:"white-space-nowrap",style:{display:"flex","align-items":"center","font-weight":"400","font-family":"'Courier New', Courier, monospace","font-size":"0.8rem",color:"var(--p-text-color-secondary)"}},$t={style:{display:"flex","flex-direction":"column"}},qt={class:"white-space-nowrap",style:{display:"flex","align-items":"center","font-weight":"400","font-family":"'Courier New', Courier, monospace","font-size":"0.8rem",color:"var(--p-text-color-secondary)"}},St={key:1,class:"query-answer-chat-override"},Tt={key:1,class:"input-request-chat-override"},It={class:"input-request-wrapper input-request-wrapper-chat"},Mt={modelClass:Ie,icon:"pi pi-sparkles"},Rt=D({...Mt,__name:"ChatQueryCell",props:["index","cell"],setup(m,{expose:C}){const w=m,{cell:l,isEditing:c,promptEditorMinHeight:o,promptText:v,response:x,textarea:I,events:r,execute:h,enter:_,exit:N,clear:$,respond:R}=We(w);let V;(u=>{u[u.NotExecuted=0]="NotExecuted",u[u.Running=1]="Running",u[u.Done=2]="Done"})(V||(V={}));const E=P("activeQueryCell"),f=P("beakerSession"),y=qe(),q=b(()=>{const u="Thinking";if(r.value.length<1)return u;const i=r.value[r.value.length-1];if(i.type==="thought")return i.content.thought;{let M=2,e=r.value[r.value.length-M];if(e===void 0)return u;for(;e.type!=="thought"&&r.value.length>=M;)M+=1,e=r.value[r.value.length-M];if(e.type==="thought"){if(e.content.thought==="Thinking..."&&i.type==="response")return"Thinking...";const g={user_question:"(awaiting user input)",user_answer:"(answer received, thinking)",code_cell:"(code is now running)"};return g[i.type]?`${e.content.thought} ${g[i.type]}`:e.content.thought}else return u}}),k=(u,i=!1)=>{const M=de(l.value);if(i){E.value=M;return}de(E.value)?.id===M?.id?E.value=null:E.value=M},Q=b(()=>{const u=r.value.length;return w.cell.status==="busy"?1:u===0?0:Z(r.value)?2:1});ae(Q,(u,i)=>{u===1&&i!==1&&k(null,!0)});const H=b(()=>w.cell?.events?.filter(u=>["user_question","user_answer"].includes(u.type)).map(u=>{var i;return u.type==="user_question"?i="query-answer-chat query-answer-chat-override":i="llm-prompt-container llm-prompt-container-chat llm-prompt-text llm-prompt-text-chat",[u,i]})),z=u=>u.status==="busy",te=u=>{c.value||(o.value=u.target.clientHeight,c.value=!0)},ne=b(()=>H.value.some(([u])=>u.type==="user_answer")),se=(u,i)=>u.type!=="user_answer"?!1:!H.value.slice(i+1).some(([e])=>e.type==="user_answer");return C({execute:h,enter:_,exit:N,clear:$,cell:l,editor:I}),me(()=>{f.cellRegistry[l.value.id]=y.vnode}),Ce(()=>{delete f.cellRegistry[l.value.id]}),(u,i)=>{const M=W("focustrap");return s(),a("div",ft,[p("div",{class:"query query-chat",onDblclick:te},[p("div",gt,[O(p("div",_t,[n(fe,{ref_key:"textarea",ref:I,class:"prompt-input",modelValue:t(v),"onUpdate:modelValue":i[0]||(i[0]=e=>pe(v)?v.value=e:null),style:ue({minHeight:`${t(o)}px`})},null,8,["modelValue","style"]),p("div",kt,[n(t(L),{label:"Submit",onClick:t(h)},null,8,["onClick"]),n(t(L),{label:"Cancel",onClick:i[1]||(i[1]=e=>{v.value=t(l).source,c.value=!1})})])],512),[[ye,t(c)]]),p("div",{style:ue({visibility:t(c)?"hidden":"visible",height:t(c)?"0px":"auto",padding:t(c)?"0px":"0.5rem"}),class:"llm-prompt-text llm-prompt-text-chat","data-cell-id":t(l).id},K(t(l).source),13,wt)])],32),t(r).length>0||t(Z)(t(r))||z(t(l))?(s(),a("div",bt,[p("div",Ct,[ne.value?T("",!0):(s(),a("div",{key:0,class:U(["expand-thoughts-button",{expanded:t(E)===t(l)}]),onClick:k},[p("div",xt,[p("i",{class:U(["pi pi-sparkles",{"animate-sparkles":Q.value===1}]),style:{color:"var(--p-yellow-500)","font-size":"1.25rem","margin-right":"0.6rem"}},null,2),G(" "+K(q.value),1)]),n(t(L),{icon:t(E)===t(l)?"pi pi-times":"pi pi-search",text:"",rounded:"",style:{"background-color":"var(--p-surface-c)",color:"var(--p-text-color-secondary)",width:"2rem",height:"2rem",padding:"0"}},null,8,["icon"])],2)),(s(!0),a(J,null,ee(H.value,([e,g],Y)=>(s(),a(J,{key:e.id},[p("div",$t,[n(re,{event:e,"parent-query-cell":t(l),class:U(g)},null,8,["event","parent-query-cell","class"])]),se(e,Y)?(s(),a("div",{key:0,class:U(["expand-thoughts-button",{expanded:t(E)===t(l)}]),onClick:k},[p("div",qt,[p("i",{class:U(["pi pi-sparkles",{"animate-sparkles":Q.value===1}]),style:{color:"var(--p-yellow-500)","font-size":"1.25rem","margin-right":"0.6rem"}},null,2),G(" "+K(q.value),1)]),n(t(L),{icon:t(E)===t(l)?"pi pi-times":"pi pi-search",text:"",rounded:"",style:{"background-color":"var(--p-surface-c)",color:"var(--p-text-color-secondary)",width:"2rem",height:"2rem",padding:"0"}},null,8,["icon"])],2)):T("",!0)],64))),128)),t(Z)(t(r))?(s(),a("div",St,[n(re,{event:t(l)?.events[t(l)?.events.length-1],"parent-query-cell":t(l)},null,8,["event","parent-query-cell"])])):T("",!0)])])):T("",!0),t(l).status==="awaiting_input"?O((s(),a("div",Tt,[p("div",It,[n(t(he),null,{default:d(()=>[n(t(xe),null,{default:d(()=>[...i[6]||(i[6]=[p("i",{class:"pi pi-exclamation-triangle"},null,-1)])]),_:1}),n(t($e),{placeholder:"Reply to the agent",onKeydown:[j(F(t(R),["exact","prevent"]),["enter"]),i[2]||(i[2]=j(F(e=>e.target.blur(),["prevent","stop"]),["escape"])),i[3]||(i[3]=j(F(()=>{},["ctrl","stop"]),["enter"])),i[4]||(i[4]=j(F(()=>{},["shift","stop"]),["enter"]))],autoFocus:"",modelValue:t(x),"onUpdate:modelValue":i[5]||(i[5]=e=>pe(x)?x.value=e:null)},null,8,["onKeydown","modelValue"]),n(t(L),{icon:"pi pi-send",onClick:t(R)},null,8,["onClick"])]),_:1})])])),[[M]]):T("",!0)])}}}),Et=D({__name:"ChatQueryCellEvent",props:["event","parentQueryCell"],setup(m){const C=S(!1),w=m,l=c=>{c.stopPropagation(),C.value=!C.value};return(c,o)=>(s(),B(re,{event:w.event,"parent-query-cell":w.parentQueryCell,"code-styles":C.value?"":"code-cell-collapsed","should-hide-answered-questions":!0},{"code-cell-controls":d(()=>[n(t(L),{icon:C.value?"pi pi-window-maximize":"pi pi-window-minimize",size:"small",class:"code-cell-toggle-button",onClick:F(l,["stop"]),title:C.value?"Expand code cell":"Shrink code cell"},null,8,["icon","title"])]),_:1},8,["event","parent-query-cell","code-styles"]))}}),Qt={class:"thoughts-pane"},Pt={key:0},Nt={key:0},At={key:1},Bt={key:1,class:"thoughts-pane-content"},Vt={class:"pane-actions"},zt={class:"events-scroll-container"},Lt={key:0,class:"no-thoughts-message"},Ot={key:0,class:"progress-area"},Ht=D({__name:"AgentActivityPane",props:{isChatEmpty:{type:Boolean}},emits:["scrollToMessage"],setup(m,{emit:C}){const w=C,l=m,c=P("activeQueryCell"),o=b(()=>!Z(c.value?.events||[])),v=b(()=>c.value?c.value?.events||[]:null),x=()=>{w("scrollToMessage")},I=b(()=>v.value?v.value.filter(h=>!["user_answer","response"].includes(h.type)).map((h,_,N)=>{const $=_===N.length-1;return h.type==="user_question"&&$&&o.value?{...h,waitForUserInput:!0}:h}):[]),r=b(()=>{if(!v.value||o.value)return!1;const h=v.value.length===1&&v.value[0].type==="response";return c.value?.status==="idle"&&h});return(h,_)=>{const N=W("tooltip"),$=W("autoscroll");return s(),a("div",Qt,[t(c)?(s(),a("div",Bt,[p("div",Vt,[O(n(t(L),{icon:"pi pi-arrow-circle-right",text:"",onClick:x},null,512),[[N,"Scroll to related user message.",void 0,{bottom:!0}]])]),O((s(),a("div",zt,[r.value?(s(),a("div",Lt,[..._[1]||(_[1]=[p("em",null,"No agent activity from this query.",-1)])])):(s(!0),a(J,{key:1},ee(I.value,(R,V)=>(s(),B(Et,{key:`${V}-${t(c).id}`,event:R,"parent-query-cell":t(c)},null,8,["event","parent-query-cell"]))),128))])),[[$]]),o.value?(s(),a("div",Ot,[n(t(Se),{mode:"indeterminate"})])):T("",!0)])):(s(),a("div",Pt,[l.isChatEmpty?(s(),a("span",Nt," Start a conversation to view Beaker's activity as you interact with it. ")):(s(),a("em",At,[..._[0]||(_[0]=[G("Select ",-1),p("i",{class:"pi pi-search magnifier-reference"},null,-1),G(" agent activity from the conversation to view details.",-1)])]))]))])}}}),Ft=Ge(Ht,[["__scopeId","data-v-b0e75c22"]]),Dt={class:"chat-layout"},Ut={class:"chat-container"},jt=["innerHTML"],Kt={key:0,class:"spacer right"},ln=D({__name:"ChatInterface",props:["config","connectionSettings","sessionName","sessionId","defaultKernel","renderers"],setup(m){const C=S(),w=S(!1),{theme:l,toggleDarkMode:c}=P("theme"),o=P("beakerAppConfig");o.setPage("chat");const v=S(),x=S(),I=S([]),r=S(null),h=S(),_=S(),N=S(!1),$=b(()=>C?.value?.beakerSession),R=S({});ae($,async()=>{R.value=await Le(H)});const V=b(()=>($.value?.session?.notebook?.cells??[]).length===0),E=b(()=>{const e=$.value?.session?.notebook?.cells??[];if(e.length==0)return!1;const g=e[e.length-1];return g?.cell_type==="query"&&g?.status==="awaiting_input"}),f=()=>{r.value=null},y=()=>{const e=document.querySelector(`[data-cell-id="${r.value?.id}"]`);e&&e.scrollIntoView({behavior:"smooth"})};ae(r,e=>{if(!v.value)return;const g=!!v.value.getSelectedPanelInfo();e?v.value.selectPanel("agent-actions"):g&&v.value.hidePanel()});const q=b(()=>{const e=[{type:"button",command:()=>{window.confirm("This will reset your entire session, clearing the notebook and removing any updates to the environment. Proceed?")&&$.value.session.reset()},icon:"refresh",label:"Reset Session"}];if(!o?.config?.pages||Object.hasOwn(o.config.pages,"notebook")){const g="/"+(o?.config?.pages?.notebook?.default?"":"notebook")+window.location.search;e.push({type:"link",href:g,component:Je,componentStyle:{fill:"currentColor",stroke:"currentColor",height:"1rem",width:"1rem"},label:"Navigate to notebook view"})}return e.push({type:"button",icon:l.mode==="dark"?"sun":"moon",command:c,label:`Switch to ${l.mode==="dark"?"light":"dark"} mode.`},{type:"link",href:"https://jataware.github.io/beaker-kernel",label:"Beaker Documentation",icon:"book",rel:"noopener",target:"_blank"},{type:"link",href:"https://github.com/jataware/beaker-kernel",label:"Check us out on Github",icon:"github",rel:"noopener",target:"_blank"}),e}),k=e=>{$.value?.session.loadNotebook(e)},Q=new URLSearchParams(window.location.search),H=Q.has("session")?Q.get("session"):"chat_dev_session",z=m,te=[...Ye.map(e=>new Ee(e)).map(Qe),Me,Re],ne={code:ge,markdown:Fe,query:Rt,raw:He},se=S("connecting"),u=e=>{e.header.msg_type==="preview"?x.value=e.content:e.header.msg_type==="debug_event"?I.value.push({type:e.content.event,body:e.content.body,timestamp:e.header.date}):(e.header.msg_type==="set_chat_history"||e.header.msg_type==="add_chat_record")&&(h.value=$.value?.session?.chatHistory?.snapshot())},i=e=>{se.value=e=="idle"?"connected":e},M=async()=>{await $.value.session.sendBeakerMessage("reset_request",{})};return Te("activeQueryCell",r),(e,g)=>{const Y=W("autoscroll");return s(),B(Pe,{title:e.$tmpl._("short_title","Beaker Chat"),ref_key:"beakerInterfaceRef",ref:C,"header-nav":q.value,connectionSettings:z.config,sessionId:t(H),defaultKernel:"beaker_kernel",renderers:te,onSessionStatusChanged:i,onIopubMsg:u,onOpenFile:k,"style-overrides":["chat"],pageClass:"chat-interface"},{"left-panel":d(()=>[n(ve,{position:"left",highlight:"line",expanded:!1,initialWidth:"25vi",maximized:w.value},{default:d(()=>[n(A,{label:"Context Info",icon:"pi pi-home"},{default:d(()=>[n(je)]),_:1}),n(A,{id:"files",label:"Files",icon:"pi pi-folder","no-overflow":"",lazy:!0},{default:d(()=>[n(Be,{ref:"filePanelRef",onOpenFile:k,onPreviewFile:g[0]||(g[0]=(X,_e)=>{_.value={url:X,mimetype:_e},N.value=!0,v.value.selectPanel("file-contents")})},null,512)]),_:1}),n(A,{icon:"pi pi-comments",label:"Chat History"},{default:d(()=>[n(t(Ke),{"chat-history":h.value},null,8,["chat-history"])]),_:1}),Object.keys(R.value).length>0?(s(),B(A,{key:0,id:"integrations",label:"Integrations",icon:"pi pi-database"},{default:d(()=>[n(Ve,{modelValue:R.value,"onUpdate:modelValue":g[1]||(g[1]=X=>R.value=X)},null,8,["modelValue"])]),_:1})):T("",!0),z.config.config_type!=="server"?(s(),B(A,{key:1,id:"config",label:`${e.$tmpl._("short_title","Beaker")} Config`,icon:"pi pi-cog",lazy:!0,position:"bottom"},{default:d(()=>[n(ze,{ref:"configPanelRef",onRestartSession:M},null,512)]),_:1},8,["label"])):T("",!0)]),_:1},8,["maximized"])]),"right-panel":d(()=>[n(ve,{ref_key:"rightSideMenuRef",ref:v,position:"right",highlight:"line",expanded:!0,"initial-width":"35vw",onPanelHide:f},{default:d(()=>[n(A,{label:"Agent Activity",id:"agent-actions",icon:"pi pi-lightbulb",position:"top",selected:!0},{default:d(()=>[n(Ft,{onScrollToMessage:y,"is-chat-empty":V.value},null,8,["is-chat-empty"])]),_:1}),n(A,{label:"Preview",icon:"pi pi-eye","no-overflow":""},{default:d(()=>[n(De,{previewData:x.value},null,8,["previewData"])]),_:1}),n(A,{id:"file-contents",label:"File Contents",icon:"pi pi-file beaker-zoom","no-overflow":""},{default:d(()=>[n(Ne,{url:_.value?.url,mimetype:_.value?.mimetype},null,8,["url","mimetype"])]),_:1}),n(A,{id:"media",label:"Graphs and Images",icon:"pi pi-chart-bar","no-overflow":""},{default:d(()=>[n(Ue)]),_:1}),n(A,{id:"kernel-logs",label:"Logs",icon:"pi pi-list",position:"bottom"},{default:d(()=>[O(n(Ae,{entries:I.value,onClearLogs:g[2]||(g[2]=X=>I.value.splice(0,I.value.length))},null,8,["entries"]),[[Y]])]),_:1})]),_:1},512)]),default:d(()=>[p("div",Dt,[p("div",Ut,[O((s(),B(nt,{"cell-map":ne},{"help-text":d(()=>[p("div",{innerHTML:e.$tmpl._("chat_welcome_html",`
6
+ <p>Hi! I'm your Beaker Agent and I can help you do programming and software engineering tasks.</p>
7
+ <p>Feel free to ask me about whatever the context specializes in..</p>
8
+ <p>
9
+ On top of answering questions, I can actually run code in a python environment, and evaluate the results.
10
+ This lets me do some pretty awesome things like: web scraping, or plotting and exploring data.
11
+ Just shoot me a message when you're ready to get started.
12
+ </p>
13
+ `)},null,8,jt)]),"notebook-background":d(()=>[...g[3]||(g[3]=[p("div",{class:"welcome-placeholder"},null,-1)])]),_:1})),[[Y]]),O(n(Xe,{class:"agent-query-container agent-query-container-chat",placeholder:e.$tmpl._("agent_query_prompt","Message to the agent")},null,8,["placeholder"]),[[ye,!E.value]])]),w.value?T("",!0):(s(),a("div",Kt))])]),_:1},8,["title","header-nav","connectionSettings","sessionId"])}}});export{ln as default};
@@ -0,0 +1 @@
1
+ import{z as re,A as Ye,x as Ge,C as Pe,D as Sl,E as Vl,i as Ll,L as Tl,M as Ml,T as Ul,j as Pl,w as Fl,_ as Ol,m as ll,n as Ie,o as El,p as jl,q as Al,r as Dl,s as Nl,F as zl,G as Bl,H as Hl,K as Kl,N as ql,O as Wl,P as Jl,Q as Xl,R as Yl,U as tl,t as Gl}from"./renderers-BwgSq-ym.js";import{N as Zl}from"./NotebookSvg-BbcXra8C.js";import{q as he,w as de,n as je,Z as ul,J as Ql,y as t,L as o,M as e,S as Ke,z as K,u as p,V as ee,N as _,r as M,Q as J,_ as F,R as ae,O as U,aD as G,aF as Se,U as m,$ as le,aG as be,f as b,i as Me,K as Fe,a1 as se,ad as Ae,W as ke,aH as et,aq as qe,j as lt,ac as dl,a5 as De,aI as tt,a0 as st,a2 as at,aJ as nt,aK as ot,ab as it,ae as sl}from"./primevue--GeoWRFA.js";import{r as $e,u as rt}from"./index-Ci35gwNJ.js";import{u as ut}from"./useIntegrationUpload--qwulHnK.js";import{s as dt}from"./jupyterlab-DIbc8_Yd.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./pdfjs-CBUS_CnE.js";import"./codemirror-Dt0OdaTo.js";import"./xlsx-C3u7rb2R.js";const ct={class:"clamped-markdown"},vt=["innerHTML"],cl=he({__name:"ClampedMarkdown",props:{html:{}},emits:["link-click"],setup(l,{emit:a}){const i=l,n=a,s=M(),c=M(!1),g=M(!1),$=()=>{if(c.value)return;const L=s.value;g.value=!!L&&L.scrollHeight>L.clientHeight+1};de(()=>i.html,async()=>{c.value=!1,await je(),$()},{immediate:!0});let C;return ul(()=>{C=new ResizeObserver($),s.value&&C.observe(s.value)}),Ql(()=>{C?.disconnect()}),(L,V)=>(t(),o("div",ct,[e("div",{ref_key:"contentEl",ref:s,class:Ke(["skill-description clamped-markdown-content",{clamped:!c.value,faded:!c.value&&g.value}]),innerHTML:l.html,onClick:V[0]||(V[0]=r=>n("link-click",r)),onLoadCapture:$},null,42,vt),g.value?(t(),K(p(ee),{key:0,class:"clamped-markdown-toggle",label:c.value?"Show less":"Show more",icon:c.value?"pi pi-chevron-up":"pi pi-chevron-down",severity:"secondary",text:"",size:"small",onClick:V[1]||(V[1]=r=>c.value=!c.value)},null,8,["label","icon"])):_("",!0)]))}}),pt={class:"skill-resource-link-list"},mt=["onClick"],ft={class:"skill-resource-link-path"},gt={class:"skill-resource-link-list"},kt=["onClick"],yt={class:"skill-resource-link-info"},ht={class:"skill-resource-link-path"},_t={class:"skill-resource-link-title"},vl=he({__name:"SkillResourceLinks",props:{fileResources:{},exampleResources:{}},emits:["open-resource"],setup(l,{emit:a}){const i=a;return(n,s)=>(t(),o(J,null,[l.fileResources.length>0?(t(),K(p(G),{key:0,legend:"Available Resources"},{default:F(()=>[s[2]||(s[2]=e("p",null," These resources are available to the agent and will be loaded on demand when the skill is active. ",-1)),e("div",pt,[(t(!0),o(J,null,ae(l.fileResources,c=>(t(),o("div",{class:"skill-resource-link",key:c.resource_id,onClick:g=>i("open-resource",c.resource_id)},[s[0]||(s[0]=e("i",{class:"pi pi-file"},null,-1)),e("span",ft,U(c.relative_path),1),s[1]||(s[1]=e("i",{class:"pi pi-chevron-right skill-resource-link-arrow"},null,-1))],8,mt))),128))])]),_:1})):_("",!0),l.exampleResources.length>0?(t(),K(p(G),{key:1,legend:"Code Examples"},{default:F(()=>[s[5]||(s[5]=e("p",null," Code examples demonstrating usage patterns for this skill. ",-1)),e("div",gt,[(t(!0),o(J,null,ae(l.exampleResources,c=>(t(),o("div",{class:"skill-resource-link",key:c.resource_id,onClick:g=>i("open-resource",c.resource_id)},[s[3]||(s[3]=e("i",{class:"pi pi-code"},null,-1)),e("div",yt,[e("span",ht,U(c.filename),1),e("span",_t,U(c.title),1)]),s[4]||(s[4]=e("i",{class:"pi pi-chevron-right skill-resource-link-arrow"},null,-1))],8,kt))),128))])]),_:1})):_("",!0)],64))}}),wt={class:"skill-integration-viewer"},bt={class:"skill-viewer-content"},$t=["innerHTML"],Ct={class:"skill-metadata-grid"},Rt={key:0,class:"skill-metadata-row"},It={class:"skill-metadata-value"},xt={key:1,class:"skill-metadata-row"},St={class:"skill-metadata-value"},Vt={key:2,class:"skill-metadata-row"},Lt={class:"skill-metadata-value",style:{"font-family":"monospace"}},Tt={class:"skill-metadata-label"},Mt={class:"skill-metadata-value"},Ut={key:0,class:"skill-no-metadata"},Pt=he({__name:"SkillIntegrationViewer",props:be({fetchResources:{type:Function}},{modelValue:{},modelModifiers:{}}),emits:be(["open-resource"],["update:modelValue"]),setup(l,{emit:a}){const i=a,n=Se(l,"modelValue"),s=b(()=>n.value.integrations[n.value.selected]),c=b(()=>$e(s.value?.description)),g=b(()=>{const f=Object.values(re(s.value?.resources,"skill_instructions"))[0];return $e(f?.content)}),$=f=>{const d=Ye(f,s.value);d&&i("open-resource",d.resource_id)},C=b(()=>{const f=re(s.value?.resources,"skill_metadata");return Object.values(f)[0]}),L=b(()=>C.value?!!(C.value.license||C.value.compatibility||C.value.allowed_tools||Object.keys(C.value.skill_metadata??{}).length>0):!1),V=b(()=>{const f=re(s.value?.resources,"skill_file");return Object.values(f)}),r=b(()=>{const f=re(s.value?.resources,"skill_example");return Object.values(f)});return(f,d)=>(t(),o("div",wt,[e("div",bt,[m(p(G),{legend:"Name"},{default:F(()=>[m(p(le),{"model-value":s.value?.name,disabled:""},null,8,["model-value"])]),_:1}),m(p(G),{legend:"Description"},{default:F(()=>[e("div",{class:"skill-description",innerHTML:c.value},null,8,$t)]),_:1}),C.value?(t(),K(p(G),{key:0,legend:"Metadata"},{default:F(()=>[e("div",Ct,[C.value.license?(t(),o("div",Rt,[d[1]||(d[1]=e("span",{class:"skill-metadata-label"},"License",-1)),e("span",It,U(C.value.license),1)])):_("",!0),C.value.compatibility?(t(),o("div",xt,[d[2]||(d[2]=e("span",{class:"skill-metadata-label"},"Compatibility",-1)),e("span",St,U(C.value.compatibility),1)])):_("",!0),C.value.allowed_tools?(t(),o("div",Vt,[d[3]||(d[3]=e("span",{class:"skill-metadata-label"},"Allowed Tools",-1)),e("span",Lt,U(C.value.allowed_tools),1)])):_("",!0),(t(!0),o(J,null,ae(C.value.skill_metadata??{},(T,w)=>(t(),o("div",{key:w,class:"skill-metadata-row"},[e("span",Tt,U(w),1),e("span",Mt,U(T),1)]))),128))]),L.value?_("",!0):(t(),o("div",Ut,[...d[4]||(d[4]=[e("i",null,"No metadata available for this skill.",-1)])]))]),_:1})):_("",!0),g.value?(t(),K(p(G),{key:1,legend:"Instructions (SKILL.md)"},{default:F(()=>[m(cl,{html:g.value,onLinkClick:$},null,8,["html"])]),_:1})):_("",!0),m(vl,{"file-resources":V.value,"example-resources":r.value,onOpenResource:d[0]||(d[0]=T=>i("open-resource",T))},null,8,["file-resources","example-resources"])])]))}}),Ft={class:"skill-integration-editor"},Ot={class:"skill-editor-content"},Et={key:0,class:"skill-import-note"},jt={class:"skill-form-row"},At={key:0,class:"skill-form-row"},Dt={class:"skill-url-row"},Nt={key:0},zt={class:"skill-form-grid"},Bt={class:"skill-form-row"},Ht={class:"skill-form-row"},Kt={class:"skill-form-row"},qt={key:0},Wt={class:"skill-form-row"},Jt={class:"skill-kv-editor"},Xt={class:"skill-instructions-header"},Yt={key:0,class:"skill-editor-height"},Gt={key:2,class:"skill-readonly-note"},Zt={class:"skill-editor-actions"},al=he({__name:"SkillIntegrationEditor",props:be({sessionId:{},fetchResources:{type:Function},deleteResource:{type:Function},modifyResource:{type:Function},modifyIntegration:{type:Function},deleteIntegration:{type:Function}},{modelValue:{},modelModifiers:{}}),emits:be(["open-resource"],["update:modelValue"]),setup(l,{emit:a}){const i=Me("show_toast"),n=l,s=Se(l,"modelValue"),c=a,g=b(()=>s.value.integrations[s.value.selected]),$=b(()=>s.value.selected==="new"),C=b(()=>T.value==="local"&&!Pe(g.value)),L=b(()=>!$.value&&!Pe(g.value)),V=b(()=>C.value||T.value==="remote"&&$.value),r=b(()=>(g.value?.pendingResources??[]).length),f=b(()=>(g.value?.pendingSkipped??[]).length),d=[{label:"Local (on disk)",value:"local"},{label:"Remote (URL)",value:"remote"}],T=M("local"),w=M(""),D=M(""),q=M(""),X=M(""),j=M(""),k=M(""),N=M([]),Q=M([]),oe=M(!1),te=M(!1),E=b(()=>Object.values(re(g.value?.resources,"skill_metadata"))[0]),u=b(()=>Object.values(re(g.value?.resources,"skill_instructions"))[0]),O=()=>{const A=g.value;if(!A)return;T.value=A.source_type??"local",w.value=A.url??"",D.value=A.name??"",q.value=A.description??"",X.value=u.value?.content??"";const y=E.value;j.value=y?.license??"",k.value=y?.compatibility??"",N.value=(y?.allowed_tools??"").split(",").map(h=>h.trim()).filter(h=>h!==""),Q.value=Object.entries(y?.skill_metadata??{}).map(([h,v])=>({key:h,value:v==null?"":String(v)}))},x=()=>{s.value.unsavedChanges=!0},W=A=>{T.value=A,oe.value=!1,x()},R=async()=>{if(w.value.trim()){te.value=!0;try{const A=await Sl(n.sessionId,{provider:g.value.provider,url:w.value}),y=g.value;y.name=A.name,y.description=A.description,y.resources=A.resources??{},O(),w.value=A.url||w.value,oe.value=!0}catch(A){console.error("Failed to fetch remote skill:",A),i({title:"Fetch failed",detail:`Could not load a skill from that URL. ${A?.message??""}`.trim(),severity:"error",life:5e3})}finally{te.value=!1}}},ve=b(()=>$e(X.value)),Y=M(!0),fe=A=>{const y=Ye(A,g.value);y&&c("open-resource",y.resource_id)},ye=b(()=>Object.values(re(g.value?.resources,"skill_file"))),ne=b(()=>Object.values(re(g.value?.resources,"skill_example")));de(()=>s.value.selected,()=>{oe.value=!1,O(),Y.value=X.value!=="",$.value||(s.value.unsavedChanges=!1)},{immediate:!0}),de(()=>g.value?.resources,()=>{if(!s.value.unsavedChanges){const A=X.value==="";O(),A&&X.value!==""&&(Y.value=!0)}}),de(s,({unsavedChanges:A})=>{onbeforeunload=A?()=>!0:void 0},{deep:!0});const Ce=async()=>{const A=g.value;if(!A)return;const y=$.value,h=y?A.pendingResources??[]:[],v={...A,source_type:T.value,url:w.value};if(delete v.resources,delete v.pendingResources,delete v.pendingSkipped,T.value==="remote"){if(!w.value.trim()){i({title:"URL required",detail:"Enter the URL of the remote skill.",severity:"warn",life:4e3});return}}else{if(!D.value.trim()){i({title:"Name required",detail:"Enter a name for the skill.",severity:"warn",life:4e3});return}v.name=D.value,v.description=q.value,v.instructions=X.value,v.license=j.value,v.compatibility=k.value,v.allowed_tools=N.value.join(", "),v.skill_metadata=Object.fromEntries(Q.value.filter(P=>P.key.trim()!=="").map(P=>[P.key,P.value]))}await n.modifyIntegration(v,y?void 0:s.value.selected);let B=0;for(const P of h)try{await n.modifyResource(P)}catch(ie){B+=1,console.error("Failed to add uploaded resource",P,ie)}i({title:B?"Saved with errors":"Saved!",detail:h.length?`Saved with ${h.length-B} of ${h.length} resource(s) imported${B?`; ${B} failed (see console).`:"."}`:"The skill has been saved and will be available to the agent.",severity:B?"warn":"success",life:4e3}),y&&delete s.value.integrations.new,s.value.unsavedChanges=!1},_e=async()=>{const A=g.value;if(!A||$.value)return;const y=T.value==="local"?" and its files from disk":" from your skills list";confirm(`Delete skill "${A.name}"? This permanently removes it${y}.`)&&(await n.deleteIntegration(s.value.selected),s.value.unsavedChanges=!1,i({title:"Deleted",detail:`Removed "${A.name}".`,severity:"success",life:4e3}))};return(A,y)=>{const h=Fe("tooltip");return t(),o("div",Ft,[e("div",Ot,[$.value&&r.value?(t(),o("div",Et,[y[10]||(y[10]=e("i",{class:"pi pi-inbox"},null,-1)),e("span",null,[se(U(r.value)+" resource file"+U(r.value===1?"":"s")+" will be imported when you save.",1),f.value?(t(),o(J,{key:0},[se(U(f.value)+" non-text file"+U(f.value===1?"":"s")+" skipped.",1)],64)):_("",!0)])])):_("",!0),m(p(G),{legend:"Source"},{default:F(()=>[y[14]||(y[14]=e("p",null,[se(" A "),e("code",null,"local"),se(" skill lives on disk and is fully editable here. A "),e("code",null,"remote"),se(" skill is fetched from a URL; only its location is editable and the fetched content is read-only. ")],-1)),e("div",jt,[y[11]||(y[11]=e("label",null,"Type",-1)),m(p(Ae),{"model-value":T.value,"onUpdate:modelValue":W,options:d,"option-label":"label","option-value":"value",disabled:!$.value},null,8,["model-value","disabled"])]),T.value==="remote"?(t(),o("div",At,[y[12]||(y[12]=e("label",null,"URL",-1)),e("div",Dt,[m(p(le),{"model-value":w.value,"onUpdate:modelValue":y[0]||(y[0]=v=>{w.value=v??"",oe.value=!1,x()}),disabled:!$.value,placeholder:"https://example.com/my-skill/ (containing SKILL.md)",style:{"font-family":"monospace",flex:"1 1 auto"}},null,8,["model-value","disabled"]),$.value?ke((t(),K(p(ee),{key:0,label:"Fetch",icon:"pi pi-download",loading:te.value,disabled:!w.value.trim(),onClick:R},null,8,["loading","disabled"])),[[h,"Fetch the skill from this URL to preview it before saving",void 0,{bottom:!0}]]):_("",!0)]),y[13]||(y[13]=e("small",null,[se("URL of the skill directory or its "),e("code",null,"SKILL.md"),se(". Fetch to preview before saving.")],-1))])):_("",!0)]),_:1}),T.value==="local"||!$.value||oe.value?(t(),o(J,{key:1},[m(p(G),{legend:"Name"},{default:F(()=>[m(p(le),{"model-value":D.value,"onUpdate:modelValue":y[1]||(y[1]=v=>{D.value=v??"",x()}),disabled:!C.value,placeholder:"Skill name"},null,8,["model-value","disabled"]),!$.value&&C.value?(t(),o("small",Nt,"The folder name (slug) is fixed after creation; renaming updates only the display name.")):_("",!0)]),_:1}),m(p(G),{legend:"Description"},{default:F(()=>[y[15]||(y[15]=e("p",null,"A short summary the agent uses to decide when this skill is relevant.",-1)),m(p(le),{"model-value":q.value,"onUpdate:modelValue":y[2]||(y[2]=v=>{q.value=v??"",x()}),disabled:!C.value,placeholder:"One-line description"},null,8,["model-value","disabled"])]),_:1}),m(p(G),{legend:"Metadata"},{default:F(()=>[e("div",zt,[e("div",Bt,[y[16]||(y[16]=e("label",null,"License",-1)),m(p(le),{"model-value":j.value,"onUpdate:modelValue":y[3]||(y[3]=v=>{j.value=v??"",x()}),disabled:!C.value,placeholder:"e.g. MIT"},null,8,["model-value","disabled"])]),e("div",Ht,[y[17]||(y[17]=e("label",null,"Compatibility",-1)),m(p(le),{"model-value":k.value,"onUpdate:modelValue":y[4]||(y[4]=v=>{k.value=v??"",x()}),disabled:!C.value,placeholder:"e.g. python>=3.11"},null,8,["model-value","disabled"])]),e("div",Kt,[y[18]||(y[18]=e("label",null,"Allowed tools",-1)),m(p(et),{modelValue:N.value,"onUpdate:modelValue":[y[5]||(y[5]=v=>N.value=v),x],disabled:!C.value,separator:",","add-on-blur":!0,placeholder:"Type a tool and press Enter",class:"skill-tools-chips"},null,8,["modelValue","disabled"]),C.value?(t(),o("small",qt,"Press Enter (or comma) after each tool.")):_("",!0)]),e("div",Wt,[y[19]||(y[19]=e("label",null,"Custom metadata",-1)),e("div",Jt,[(t(!0),o(J,null,ae(Q.value,(v,B)=>(t(),o("div",{class:"skill-kv-item",key:B},[m(p(le),{modelValue:v.key,"onUpdate:modelValue":[P=>v.key=P,x],disabled:!C.value,placeholder:"key",style:{"font-family":"monospace"}},null,8,["modelValue","onUpdate:modelValue","disabled"]),m(p(le),{modelValue:v.value,"onUpdate:modelValue":[P=>v.value=P,x],disabled:!C.value,placeholder:"value"},null,8,["modelValue","onUpdate:modelValue","disabled"]),C.value?ke((t(),K(p(ee),{key:0,icon:"pi pi-trash",severity:"danger",text:"",onClick:()=>{Q.value.splice(B,1),x()}},null,8,["onClick"])),[[h,"Remove"]]):_("",!0)]))),128)),C.value?(t(),K(p(ee),{key:0,class:"skill-add-button",icon:"pi pi-plus",label:"Add metadata",text:"",onClick:y[6]||(y[6]=()=>{Q.value.push({key:"",value:""}),x()})})):_("",!0)])])])]),_:1}),m(p(G),{legend:"Instructions (SKILL.md)"},{default:F(()=>[e("div",Xt,[y[20]||(y[20]=e("p",null,"The skill's full instructions, disclosed to the agent when it loads the skill.",-1)),C.value?(t(),K(p(ee),{key:0,icon:Y.value?"pi pi-pencil":"pi pi-eye",label:Y.value?"Edit":"Preview",severity:"secondary",text:"",size:"small",onClick:y[7]||(y[7]=v=>Y.value=!Y.value)},null,8,["icon","label"])):_("",!0)]),C.value&&!Y.value?(t(),o("div",Yt,[m(Ge,{language:"markdown","autocomplete-enabled":!1,"model-value":X.value,"onUpdate:modelValue":y[8]||(y[8]=v=>{X.value=v??"",x()})},null,8,["model-value"])])):(t(),K(cl,{key:1,html:ve.value,onLinkClick:fe},null,8,["html"]))]),_:1}),m(vl,{"file-resources":ye.value,"example-resources":ne.value,onOpenResource:y[9]||(y[9]=v=>c("open-resource",v))},null,8,["file-resources","example-resources"])],64)):_("",!0),!C.value&&T.value==="remote"&&!$.value?(t(),o("p",Gt,[...y[21]||(y[21]=[e("i",{class:"pi pi-info-circle"},null,-1),e("span",null,"This is a remote skill; its content is fetched from the URL above and is read-only.",-1)])])):_("",!0)]),e("div",Zt,[L.value?(t(),K(p(ee),{key:0,onClick:_e,icon:"pi pi-trash",label:"Delete",severity:"danger",outlined:""})):_("",!0),V.value?(t(),K(p(ee),{key:1,onClick:Ce,icon:"pi pi-save",label:"Save Changes",severity:"success",disabled:!s.value.unsavedChanges},null,8,["disabled"])):_("",!0)])])}}}),Qt={class:"skill-resource-panel"},es={class:"skill-resource-header"},ls={key:0,class:"skill-resource-add-buttons"},ts={key:0,class:"skill-resource-hint"},ss={key:1,class:"skill-resource-hint"},as={key:2,class:"skill-resource-pending"},ns={class:"skill-resource-pending-title"},os={class:"skill-resource-card-title"},is={class:"skill-resource-card-label"},rs={class:"skill-resource-list"},us=["onMouseenter"],ds={class:"skill-resource-card-title"},cs={class:"skill-resource-card-label"},vs={key:0,class:"skill-resource-empty"},ps={class:"skill-resource-focused-header"},ms={class:"skill-resource-focused-title"},fs={key:0,class:"skill-resource-focused-form"},gs={key:0,class:"skill-resource-path-fields"},ks={key:1,class:"skill-resource-path-fields"},ys={class:"skill-resource-focused-content"},hs={key:0,class:"skill-resource-loading"},_s={key:1,class:"skill-resource-error"},ws=["innerHTML"],bs={key:1,class:"skill-resource-focused-actions"},$s=he({__name:"SkillResourcePanel",props:be({sessionId:{},disabled:{type:Boolean},deleteResource:{type:Function},modifyResource:{type:Function}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l,{expose:a}){const i=l,n=Se(l,"modelValue"),s=["references","scripts","assets"],c=M({view:"list"}),g=M(void 0),$=M(!1),C=M("references"),L=M(""),V=M(""),r=b(()=>n.value.integrations[n.value.selected]),f=b(()=>Pe(r.value)),d=b(()=>r.value?.source_type==="local"&&!f.value&&!i.disabled),T=b(()=>{const h=r.value?.resources??{};return Object.values(h).filter(v=>v.resource_type==="skill_file"||v.resource_type==="skill_example")}),w=b(()=>r.value?.pendingResources??[]),D=h=>h.resource_type==="skill_example"?`examples/${h.filename}`:h.relative_path,q=h=>h.resource_type==="skill_file"?h.relative_path:h.resource_type==="skill_example"?`examples/${h.filename}`:h.resource_id,X=h=>h.resource_type==="skill_example"?"pi pi-code":"pi pi-file",j=h=>h.endsWith(".py")?"python":h.endsWith(".js")||h.endsWith(".ts")?"javascript":h.endsWith(".sh")||h.endsWith(".bash")?"shell":h.endsWith(".json")?"json":h.endsWith(".yaml")||h.endsWith(".yml")?"yaml":"markdown",k=b(()=>{if(c.value.view==="focused")return r.value?.resources?.[c.value.resourceId]}),N=b(()=>c.value.view==="new"?c.value.resourceType==="skill_file"?"New file":"New example":k.value?q(k.value):""),Q=b(()=>c.value.view==="new"?c.value.resourceType==="skill_file"?j(L.value):"markdown":k.value?j(q(k.value)):"markdown"),oe=b(()=>$e(V.value)),te=M(!0),E=h=>/\.(md|markdown)$/i.test(h),u=b(()=>c.value.view==="focused"&&k.value!==void 0&&E(q(k.value))),O=b(()=>u.value&&te.value),x=M(!1),W=b(()=>c.value.view==="new"?L.value.trim()!=="":!$.value&&!x.value),R=b(()=>{if(c.value.view==="new")return L.value.trim()!==""||V.value!=="";if(c.value.view==="focused"&&d.value&&!$.value&&!x.value){const h=k.value?.content??"";return V.value!==h}return!1}),ve=()=>!R.value||confirm("Discard unsaved changes?"),Y=()=>{c.value={view:"list"},L.value="",V.value="",C.value="references"},fe=()=>{ve()&&Y()},ye=h=>{L.value="",V.value="",C.value="references",c.value={view:"new",resourceType:h}},ne=async h=>{if(!ve())return;c.value={view:"focused",resourceId:h.resource_id},te.value=!0,x.value=!1,$.value=!1;const v=h.content;if(v!=null){V.value=v;return}V.value="",$.value=!0;const B=()=>c.value.view==="focused"&&c.value.resourceId===h.resource_id;try{const ie=(await Vl(i.sessionId,n.value.selected,h.resource_type,h.resource_id)).content??"";h.content=ie,B()&&(V.value=ie)}catch(P){console.error("Failed to load resource content:",P),B()&&(x.value=!0)}finally{B()&&($.value=!1)}},Ce=async()=>{if(c.value.view==="new"){const h=L.value.trim();if(!h)return;const v=c.value.resourceType==="skill_file"?{resource_type:"skill_file",relative_path:`${C.value}/${h}`,name:h,content:V.value}:{resource_type:"skill_example",filename:h,content:V.value};await i.modifyResource(v)}else c.value.view==="focused"&&k.value&&await i.modifyResource({...k.value,content:V.value},k.value.resource_id);Y()},_e=async h=>{confirm(`Delete ${q(h)}?`)&&(await i.deleteResource(h.resource_id),delete r.value.resources[h.resource_id])},A=h=>{const v=N.value,B=v.includes("/")?v.slice(0,v.lastIndexOf("/")):"",P=Ye(h,r.value,B);P&&ne(P)};return a({focusResource:h=>{const v=r.value?.resources?.[h];v&&ne(v)}}),(h,v)=>{const B=Fe("tooltip");return t(),o("div",Qt,[c.value.view==="list"?(t(),o(J,{key:0},[e("div",es,[e("i",null,U(T.value.length)+" resource"+U(T.value.length===1?"":"s"),1),d.value?(t(),o("div",ls,[ke(m(p(ee),{icon:"pi pi-plus",label:"File",size:"small",text:"",onClick:v[0]||(v[0]=P=>ye("skill_file"))},null,512),[[B,"Add a reference/script/asset file",void 0,{bottom:!0}]]),ke(m(p(ee),{icon:"pi pi-plus",label:"Example",size:"small",text:"",onClick:v[1]||(v[1]=P=>ye("skill_example"))},null,512),[[B,"Add a code example",void 0,{bottom:!0}]])])):_("",!0)]),l.disabled&&!f.value?(t(),o("p",ts,[...v[8]||(v[8]=[e("i",{class:"pi pi-info-circle"},null,-1),e("span",null,"Save the skill before adding resources.",-1)])])):!d.value&&!l.disabled?(t(),o("p",ss,[...v[9]||(v[9]=[e("i",{class:"pi pi-info-circle"},null,-1),e("span",null,"This skill's resources are read-only.",-1)])])):_("",!0),w.value.length?(t(),o("div",as,[e("i",ns,U(w.value.length)+" file"+U(w.value.length===1?"":"s")+" to import on save: ",1),(t(!0),o(J,null,ae(w.value,(P,ie)=>(t(),o("div",{class:"skill-resource-card",key:`pending-${ie}`},[m(p(qe),null,{title:F(()=>[e("div",os,[e("i",{class:Ke(P.resource_type==="skill_example"?"pi pi-code":"pi pi-file")},null,2),e("span",is,U(D(P)),1),v[10]||(v[10]=e("span",{class:"skill-resource-pending-badge"},"pending",-1))])]),_:2},1024)]))),128))])):_("",!0),e("div",rs,[(t(!0),o(J,null,ae(T.value,P=>(t(),o("div",{class:"skill-resource-card",key:P.resource_id,onMouseenter:ie=>g.value=P.resource_id,onMouseleave:v[2]||(v[2]=ie=>g.value=void 0)},[m(p(qe),{onClick:ie=>ne(P),pt:{root:{style:"transition: background-color 150ms linear;"+(g.value===P.resource_id?"background-color: var(--p-surface-100); cursor: pointer;":"")}}},{title:F(()=>[e("div",ds,[e("i",{class:Ke(X(P))},null,2),e("span",cs,U(q(P)),1),d.value?ke((t(),K(p(ee),{key:0,icon:"pi pi-trash",severity:"danger",text:"",size:"small",onClick:lt(ie=>_e(P),["stop"])},null,8,["onClick"])),[[B,"Delete",void 0,{left:!0}]]):(t(),o("i",{key:1,class:"pi pi-chevron-right skill-resource-arrow",style:dl(g.value===P.resource_id?"opacity: 1;":"opacity: 0;")},null,4))])]),_:2},1032,["onClick","pt"])],40,us))),128)),T.value.length===0&&w.value.length===0?(t(),o("div",vs,[...v[11]||(v[11]=[e("i",null,"No resource files yet.",-1)])])):_("",!0)])],64)):(t(),o(J,{key:1},[e("div",ps,[m(p(ee),{severity:"secondary",icon:"pi pi-arrow-left",label:"Back",size:"small",onClick:fe,style:{width:"fit-content"}}),e("span",ms,U(N.value),1),u.value?(t(),K(p(ee),{key:0,icon:te.value?d.value?"pi pi-pencil":"pi pi-code":"pi pi-eye",label:te.value?d.value?"Edit":"Raw":"Preview",severity:"secondary",text:"",size:"small",style:{"margin-left":"auto"},onClick:v[3]||(v[3]=P=>te.value=!te.value)},null,8,["icon","label"])):_("",!0)]),c.value.view==="new"?(t(),o("div",fs,[c.value.resourceType==="skill_file"?(t(),o("div",gs,[m(p(Ae),{modelValue:C.value,"onUpdate:modelValue":v[4]||(v[4]=P=>C.value=P),options:s,placeholder:"Directory"},null,8,["modelValue"]),m(p(le),{modelValue:L.value,"onUpdate:modelValue":v[5]||(v[5]=P=>L.value=P),placeholder:"filename.md",style:{"font-family":"monospace",flex:"1 1 auto"}},null,8,["modelValue"])])):(t(),o("div",ks,[v[12]||(v[12]=e("span",{class:"skill-resource-fixed-prefix"},"examples/",-1)),m(p(le),{modelValue:L.value,"onUpdate:modelValue":v[6]||(v[6]=P=>L.value=P),placeholder:"example.md",style:{"font-family":"monospace",flex:"1 1 auto"}},null,8,["modelValue"])]))])):_("",!0),e("div",ys,[$.value?(t(),o("div",hs,[m(p(De),{style:{width:"2rem",height:"2rem"}}),v[13]||(v[13]=se(" Loading resource... ",-1))])):x.value?(t(),o("div",_s,[...v[14]||(v[14]=[e("i",{class:"pi pi-exclamation-triangle"},null,-1),e("i",null,"Failed to load resource content.",-1)])])):O.value?(t(),o("div",{key:2,class:"skill-description skill-resource-rendered",innerHTML:oe.value,onClick:A},null,8,ws)):(t(),K(Ge,{key:3,language:Q.value,"autocomplete-enabled":!1,"model-value":V.value,disabled:!d.value,"onUpdate:modelValue":v[7]||(v[7]=P=>{V.value=P??""})},null,8,["language","model-value","disabled"]))]),d.value?(t(),o("div",bs,[m(p(ee),{icon:"pi pi-save",label:"Save",severity:"success",size:"small",disabled:!W.value,onClick:Ce},null,8,["disabled"])])):_("",!0)],64))])}}}),Cs={class:"mcp-integration-viewer"},Rs={class:"mcp-viewer-content"},Is={class:"mcp-metadata-grid"},xs={key:0,class:"mcp-metadata-row"},Ss={class:"mcp-metadata-value",style:{"font-family":"monospace"}},Vs={key:1,class:"mcp-metadata-row"},Ls={class:"mcp-metadata-value"},Ts={key:2,class:"mcp-metadata-row"},Ms={class:"mcp-metadata-value"},Us={key:3,class:"mcp-metadata-row"},Ps={class:"mcp-metadata-value",style:{"font-family":"monospace"}},Fs={key:4,class:"mcp-metadata-row"},Os={class:"mcp-metadata-value"},Es=["href"],js={class:"mcp-metadata-grid"},As={key:0,class:"mcp-metadata-row"},Ds={class:"mcp-metadata-value mcp-command"},Ns={key:1,class:"mcp-metadata-row"},zs={class:"mcp-metadata-value",style:{"font-family":"monospace"}},Bs={key:2,class:"mcp-metadata-row"},Hs={class:"mcp-metadata-value mcp-key-list"},Ks={key:3,class:"mcp-metadata-row"},qs={class:"mcp-metadata-value mcp-key-list"},Ws={key:0,class:"mcp-secret-note"},Js=["innerHTML"],Xs=["innerHTML"],Ys={key:1,class:"mcp-blank-note"},Gs={key:3,class:"mcp-catalog-status mcp-catalog-loading"},Zs={key:4,class:"mcp-catalog-status mcp-catalog-warning"},Qs={key:5,class:"mcp-catalog-hint"},ea={class:"mcp-resource-list"},la={class:"mcp-resource-info"},ta={class:"mcp-resource-name"},sa={key:0,class:"mcp-resource-desc"},aa={class:"mcp-resource-list"},na={class:"mcp-resource-info"},oa={class:"mcp-resource-name"},ia={key:0,class:"mcp-resource-desc"},ra={key:8,class:"mcp-catalog-status mcp-catalog-empty"},nl=he({__name:"MCPIntegrationViewer",props:be({fetchResources:{type:Function}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=l,i=Se(l,"modelValue"),n=b(()=>i.value.integrations[i.value.selected]),s=M(!1),c=M(!1),g=async()=>{if(n.value){c.value=!1,s.value=!0;try{await a.fetchResources()}catch(j){console.error("Failed to load MCP catalog:",j),c.value=!0}finally{s.value=!1}}};de(()=>i.value.selected,()=>g(),{immediate:!0});const $=b(()=>n.value?.server_config),C=b(()=>$e(n.value?.description)),L=b(()=>{const j=n.value?.instructions;return $e(j)}),V=b(()=>!!(n.value?.server_title||n.value?.server_version||r.value||n.value?.url||n.value?.server_config)),r=b(()=>{const j=$.value;if(j){if(j.transport)return j.transport;if(j.command)return"stdio";if(j.url)return"http"}}),f=b(()=>{const j=$.value;return j?.command?[j.command,...j.args??[]].join(" "):""}),d=b(()=>Object.keys($.value?.env??{})),T=b(()=>Object.keys($.value?.headers??{})),w=b(()=>Object.values(re(n.value?.resources,"mcp_tool"))),D=b(()=>Object.values(re(n.value?.resources,"mcp_resource"))),q=b(()=>Object.values(re(n.value?.resources,"mcp_prompt"))),X=b(()=>w.value.length===0&&D.value.length===0&&q.value.length===0);return(j,k)=>(t(),o("div",Cs,[e("div",Rs,[m(p(G),{legend:"Name"},{default:F(()=>[m(p(le),{"model-value":n.value?.name,disabled:""},null,8,["model-value"])]),_:1}),V.value?(t(),K(p(G),{key:0,legend:"Server"},{default:F(()=>[e("div",Is,[n.value?.slug?(t(),o("div",xs,[k[0]||(k[0]=e("span",{class:"mcp-metadata-label"},"Key",-1)),e("span",Ss,U(n.value.slug),1)])):_("",!0),n.value?.server_title?(t(),o("div",Vs,[k[1]||(k[1]=e("span",{class:"mcp-metadata-label"},"Reported title",-1)),e("span",Ls,U(n.value.server_title),1)])):_("",!0),n.value?.server_version?(t(),o("div",Ts,[k[2]||(k[2]=e("span",{class:"mcp-metadata-label"},"Version",-1)),e("span",Ms,U(n.value.server_version),1)])):_("",!0),r.value?(t(),o("div",Us,[k[3]||(k[3]=e("span",{class:"mcp-metadata-label"},"Transport",-1)),e("span",Ps,U(r.value),1)])):_("",!0),n.value?.url?(t(),o("div",Fs,[k[4]||(k[4]=e("span",{class:"mcp-metadata-label"},"Website",-1)),e("span",Os,[e("a",{href:n.value.url,target:"_blank",rel:"noopener"},U(n.value.url),9,Es)])])):_("",!0)])]),_:1})):_("",!0),$.value?(t(),K(p(G),{key:1,legend:"Connection"},{default:F(()=>[e("div",js,[$.value.command?(t(),o("div",As,[k[5]||(k[5]=e("span",{class:"mcp-metadata-label"},"Command",-1)),e("span",Ds,U(f.value),1)])):_("",!0),$.value.url?(t(),o("div",Ns,[k[6]||(k[6]=e("span",{class:"mcp-metadata-label"},"URL",-1)),e("span",zs,U($.value.url),1)])):_("",!0),d.value.length>0?(t(),o("div",Bs,[k[7]||(k[7]=e("span",{class:"mcp-metadata-label"},"Environment",-1)),e("span",Hs,[(t(!0),o(J,null,ae(d.value,N=>(t(),o("code",{key:N},U(N),1))),128))])])):_("",!0),T.value.length>0?(t(),o("div",Ks,[k[8]||(k[8]=e("span",{class:"mcp-metadata-label"},"Headers",-1)),e("span",qs,[(t(!0),o(J,null,ae(T.value,N=>(t(),o("code",{key:N},U(N),1))),128))])])):_("",!0)]),d.value.length>0||T.value.length>0?(t(),o("p",Ws,[...k[9]||(k[9]=[e("i",null,"Values are hidden; only the configured keys are shown.",-1)])])):_("",!0)]),_:1})):_("",!0),C.value?(t(),K(p(G),{key:2,legend:"Description"},{default:F(()=>[e("div",{class:"mcp-description",innerHTML:C.value},null,8,Js)]),_:1})):_("",!0),m(p(G),{legend:"Instructions"},{default:F(()=>[k[11]||(k[11]=e("p",null," Usage instructions reported by the server during connection. ",-1)),L.value?(t(),o("div",{key:0,class:"mcp-description",innerHTML:L.value},null,8,Xs)):(t(),o("p",Ys,[...k[10]||(k[10]=[e("i",null,"This server does not provide any instructions.",-1)])]))]),_:1}),s.value?(t(),o("div",Gs,[m(p(De),{style:{width:"1.5rem",height:"1.5rem"}}),k[12]||(k[12]=e("span",null,"Loading this server's catalog…",-1))])):c.value?(t(),o("div",Zs,[...k[13]||(k[13]=[e("i",{class:"pi pi-exclamation-triangle"},null,-1),e("span",null,"Unable to load this server's catalog. The server may be unavailable or misconfigured.",-1)])])):_("",!0),!s.value&&!c.value&&w.value.length>0?(t(),o("p",Qs,[k[16]||(k[16]=e("i",{class:"pi pi-wrench"},null,-1)),e("span",null,[se(" This server advertises "+U(w.value.length)+" "+U(w.value.length===1?"tool":"tools")+"; see the ",1),k[14]||(k[14]=e("b",null,"Tools",-1)),k[15]||(k[15]=se(" panel for details. ",-1))])])):_("",!0),!s.value&&!c.value&&D.value.length>0?(t(),K(p(G),{key:6,legend:`Resources (${D.value.length})`},{default:F(()=>[k[18]||(k[18]=e("p",null," Readable resources advertised by this server, addressed by URI and fetched on demand. ",-1)),e("div",ea,[(t(!0),o(J,null,ae(D.value,N=>(t(),o("div",{class:"mcp-resource-item",key:N.resource_id},[k[17]||(k[17]=e("i",{class:"pi pi-file"},null,-1)),e("div",la,[e("span",ta,U(N.name||N.uri),1),N.uri&&N.name?(t(),o("span",sa,U(N.uri),1)):_("",!0)])]))),128))])]),_:1},8,["legend"])):_("",!0),!s.value&&!c.value&&q.value.length>0?(t(),K(p(G),{key:7,legend:`Prompts (${q.value.length})`},{default:F(()=>[k[20]||(k[20]=e("p",null," Prompt templates advertised by this server. ",-1)),e("div",aa,[(t(!0),o(J,null,ae(q.value,N=>(t(),o("div",{class:"mcp-resource-item",key:N.resource_id},[k[19]||(k[19]=e("i",{class:"pi pi-comment"},null,-1)),e("div",na,[e("span",oa,U(N.prompt_name),1),N.description?(t(),o("span",ia,U(N.description),1)):_("",!0)])]))),128))])]),_:1},8,["legend"])):_("",!0),!s.value&&!c.value&&X.value?(t(),o("div",ra,[...k[21]||(k[21]=[e("i",{class:"pi pi-info-circle"},null,-1),e("span",null,"This server advertises no tools, resources, or prompts.",-1)])])):_("",!0)])]))}}),ua={class:"mcp-integration-editor"},da={class:"mcp-editor-content"},ca={class:"mcp-metadata-grid"},va={key:0,class:"mcp-metadata-row"},pa={class:"mcp-metadata-value",style:{"font-family":"monospace"}},ma={key:1,class:"mcp-metadata-row"},fa={class:"mcp-metadata-value"},ga={key:2,class:"mcp-metadata-row"},ka={class:"mcp-metadata-value"},ya={key:3,class:"mcp-metadata-row"},ha={class:"mcp-metadata-value"},_a=["href"],wa={class:"mcp-form-grid"},ba={class:"mcp-form-row"},$a={class:"mcp-form-row"},Ca={class:"mcp-form-row"},Ra={class:"mcp-list-editor"},Ia={class:"mcp-form-row"},xa={class:"mcp-list-editor"},Sa={class:"mcp-form-row"},Va={class:"mcp-form-row"},La={class:"mcp-list-editor"},Ta={class:"mcp-form-row mcp-form-row-inline"},Ma={class:"constrained-editor-height"},Ua=["innerHTML"],Pa={key:1,class:"mcp-blank-note"},Fa={key:0,class:"mcp-catalog-status mcp-catalog-loading"},Oa={key:1,class:"mcp-catalog-status mcp-catalog-warning"},Ea={key:2,class:"mcp-catalog-hint"},ja={class:"mcp-resource-list"},Aa={class:"mcp-resource-info"},Da={class:"mcp-resource-name"},Na={key:0,class:"mcp-resource-desc"},za={class:"mcp-resource-list"},Ba={class:"mcp-resource-info"},Ha={class:"mcp-resource-name"},Ka={key:0,class:"mcp-resource-desc"},qa={key:5,class:"mcp-catalog-status mcp-catalog-empty"},Wa={class:"mcp-editor-actions"},Ja={key:0},Xa=he({__name:"MCPIntegrationEditor",props:be({fetchResources:{type:Function},deleteResource:{type:Function},modifyResource:{type:Function},modifyIntegration:{type:Function}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=Me("show_toast"),i=l,n=Se(l,"modelValue"),s=b(()=>n.value.integrations[n.value.selected]),c=b(()=>n.value.selected==="new"),g=b(()=>(s.value&&!s.value.server_config&&(s.value.server_config={name:s.value.slug}),s.value?.server_config??{name:""})),$=[{label:"stdio (local process)",value:"stdio"},{label:"http",value:"http"},{label:"sse",value:"sse"}],C=b(()=>{const E=g.value;return E?.transport?E.transport:E?.command?"stdio":E?.url?"http":"stdio"}),L=M([]),V=M([]),r=M([]),f=()=>{const E=s.value?.server_config??{};L.value=[...E.args??[]],V.value=Object.entries(E.env??{}).map(([u,O])=>({key:u,value:String(O)})),r.value=Object.entries(E.headers??{}).map(([u,O])=>({key:u,value:String(O)}))},d=()=>{n.value.unsavedChanges=!0},T=M(!1),w=M(!1),D=async()=>{if(!(!s.value||c.value)){w.value=!1,T.value=!0;try{await i.fetchResources()}catch(E){console.error("Failed to load MCP catalog:",E),w.value=!0}finally{T.value=!1}}};de(()=>n.value.selected,()=>{c.value||(n.value.unsavedChanges=!1),f(),D()},{immediate:!0}),de(n,({unsavedChanges:E})=>{onbeforeunload=E?()=>!0:void 0});const q=M();de(()=>s.value?.description,E=>{q.value&&(q.value.model=E)});const X=b(()=>{const E=s.value?.instructions;return $e(E)}),j=b(()=>!!(s.value?.server_title||s.value?.server_version||s.value?.slug||s.value?.url)),k=b(()=>Object.values(re(s.value?.resources,"mcp_tool"))),N=b(()=>Object.values(re(s.value?.resources,"mcp_resource"))),Q=b(()=>Object.values(re(s.value?.resources,"mcp_prompt"))),oe=b(()=>k.value.length===0&&N.value.length===0&&Q.value.length===0),te=async()=>{const E=s.value;if(E===void 0)return;const u={...E.server_config??{name:E.slug}};u.args=[...L.value],u.env=Object.fromEntries(V.value.filter(O=>O.key!=="").map(O=>[O.key,O.value])),u.headers=Object.fromEntries(r.value.filter(O=>O.key!=="").map(O=>[O.key,O.value])),u.transport=C.value,u.title=E.name,u.description=E.description,u.name||(u.name=E.slug||E.name),E.server_config=u,await i.modifyIntegration(E,c.value?void 0:n.value.selected),a({title:"Saved!",detail:"The session will now reconnect and load the new definition.",severity:"success",life:4e3}),c.value&&delete n.value.integrations.new,n.value.unsavedChanges=!1};return(E,u)=>{const O=Fe("tooltip");return t(),o("div",ua,[e("div",da,[m(p(G),{legend:"Display Name"},{default:F(()=>[u[11]||(u[11]=e("p",null," The display name shown for this MCP server throughout the UI and used by the agent to refer to it. Overrides the server's own reported title. ",-1)),m(p(le),{"model-value":s.value?.name,"onUpdate:modelValue":u[0]||(u[0]=x=>{s.value.name=x,d()}),placeholder:"Display name"},null,8,["model-value"]),c.value?(t(),o(J,{key:0},[u[10]||(u[10]=e("p",{style:{"margin-top":"1rem"}}," A unique key identifying this server in the config file. Lower-case, no spaces. ",-1)),m(p(le),{"model-value":g.value.name,"onUpdate:modelValue":u[1]||(u[1]=x=>{g.value.name=x,d()}),placeholder:"server-key",style:{"font-family":"monospace"}},null,8,["model-value"])],64)):_("",!0)]),_:1}),j.value&&!c.value?(t(),K(p(G),{key:0,legend:"Server"},{default:F(()=>[e("div",ca,[s.value?.slug?(t(),o("div",va,[u[12]||(u[12]=e("span",{class:"mcp-metadata-label"},"Key",-1)),e("span",pa,U(s.value.slug),1)])):_("",!0),s.value?.server_title?(t(),o("div",ma,[u[13]||(u[13]=e("span",{class:"mcp-metadata-label"},"Reported title",-1)),e("span",fa,U(s.value.server_title),1)])):_("",!0),s.value?.server_version?(t(),o("div",ga,[u[14]||(u[14]=e("span",{class:"mcp-metadata-label"},"Version",-1)),e("span",ka,U(s.value.server_version),1)])):_("",!0),s.value?.url?(t(),o("div",ya,[u[15]||(u[15]=e("span",{class:"mcp-metadata-label"},"Website",-1)),e("span",ha,[e("a",{href:s.value.url,target:"_blank",rel:"noopener"},U(s.value.url),9,_a)])])):_("",!0)])]),_:1})):_("",!0),m(p(G),{legend:"Connection"},{default:F(()=>[u[23]||(u[23]=e("p",null,[se(" How Beaker connects to this server. A "),e("code",null,"stdio"),se(" server runs as a local process; an "),e("code",null,"http"),se(" or "),e("code",null,"sse"),se(" server is reached over the network. ")],-1)),e("div",wa,[e("div",ba,[u[16]||(u[16]=e("label",null,"Transport",-1)),m(p(Ae),{"model-value":C.value,"onUpdate:modelValue":u[2]||(u[2]=x=>{g.value.transport=x,d()}),options:$,"option-label":"label","option-value":"value",placeholder:"Select transport..."},null,8,["model-value"])]),C.value==="stdio"?(t(),o(J,{key:0},[e("div",$a,[u[17]||(u[17]=e("label",null,"Command",-1)),m(p(le),{"model-value":g.value.command,"onUpdate:modelValue":u[3]||(u[3]=x=>{g.value.command=x,d()}),placeholder:"e.g. npx",style:{"font-family":"monospace"}},null,8,["model-value"])]),e("div",Ca,[u[18]||(u[18]=e("label",null,"Arguments",-1)),e("div",Ra,[(t(!0),o(J,null,ae(L.value,(x,W)=>(t(),o("div",{class:"mcp-list-item",key:W},[m(p(le),{modelValue:L.value[W],"onUpdate:modelValue":[R=>L.value[W]=R,d],placeholder:"argument",style:{"font-family":"monospace"}},null,8,["modelValue","onUpdate:modelValue"]),ke(m(p(ee),{icon:"pi pi-trash",severity:"danger",text:"",onClick:()=>{L.value.splice(W,1),d()}},null,8,["onClick"]),[[O,"Remove argument"]])]))),128)),m(p(ee),{class:"mcp-add-button",icon:"pi pi-plus",label:"Add argument",text:"",onClick:u[4]||(u[4]=()=>{L.value.push(""),d()})})])]),e("div",Ia,[u[19]||(u[19]=e("label",null,"Environment",-1)),e("div",xa,[(t(!0),o(J,null,ae(V.value,(x,W)=>(t(),o("div",{class:"mcp-kv-item",key:W},[m(p(le),{modelValue:x.key,"onUpdate:modelValue":[R=>x.key=R,d],placeholder:"KEY",style:{"font-family":"monospace"}},null,8,["modelValue","onUpdate:modelValue"]),m(p(le),{modelValue:x.value,"onUpdate:modelValue":[R=>x.value=R,d],placeholder:"value"},null,8,["modelValue","onUpdate:modelValue"]),ke(m(p(ee),{icon:"pi pi-trash",severity:"danger",text:"",onClick:()=>{V.value.splice(W,1),d()}},null,8,["onClick"]),[[O,"Remove variable"]])]))),128)),m(p(ee),{class:"mcp-add-button",icon:"pi pi-plus",label:"Add variable",text:"",onClick:u[5]||(u[5]=()=>{V.value.push({key:"",value:""}),d()})})])])],64)):(t(),o(J,{key:1},[e("div",Sa,[u[20]||(u[20]=e("label",null,"URL",-1)),m(p(le),{"model-value":g.value.url,"onUpdate:modelValue":u[6]||(u[6]=x=>{g.value.url=x,d()}),placeholder:"https://example.com/mcp",style:{"font-family":"monospace"}},null,8,["model-value"])]),e("div",Va,[u[21]||(u[21]=e("label",null,"Headers",-1)),e("div",La,[(t(!0),o(J,null,ae(r.value,(x,W)=>(t(),o("div",{class:"mcp-kv-item",key:W},[m(p(le),{modelValue:x.key,"onUpdate:modelValue":[R=>x.key=R,d],placeholder:"Header-Name",style:{"font-family":"monospace"}},null,8,["modelValue","onUpdate:modelValue"]),m(p(le),{modelValue:x.value,"onUpdate:modelValue":[R=>x.value=R,d],placeholder:"value"},null,8,["modelValue","onUpdate:modelValue"]),ke(m(p(ee),{icon:"pi pi-trash",severity:"danger",text:"",onClick:()=>{r.value.splice(W,1),d()}},null,8,["onClick"]),[[O,"Remove header"]])]))),128)),m(p(ee),{class:"mcp-add-button",icon:"pi pi-plus",label:"Add header",text:"",onClick:u[7]||(u[7]=()=>{r.value.push({key:"",value:""}),d()})})])])],64)),e("div",Ta,[m(p(tt),{"model-value":g.value.disabled,"onUpdate:modelValue":u[8]||(u[8]=x=>{g.value.disabled=x,d()}),binary:!0,"input-id":"mcp-disabled"},null,8,["model-value"]),u[22]||(u[22]=e("label",{for:"mcp-disabled"},"Disabled (do not load this server)",-1))])]),u[24]||(u[24]=e("p",{class:"mcp-secret-note"},[e("i",null,"Environment and header values are stored in the config file in plain text.")],-1))]),_:1}),m(p(G),{legend:"Description"},{default:F(()=>[u[25]||(u[25]=e("p",null," A brief summary of this server's purpose. Used by the agent to decide when this server is relevant. ",-1)),e("div",Ma,[m(Ge,{language:"markdown","autocomplete-enabled":!1,modelValue:s.value.description,"onUpdate:modelValue":u[9]||(u[9]=x=>s.value.description=x),onChange:d,ref_key:"descriptionEditor",ref:q},null,8,["modelValue"])])]),_:1}),m(p(G),{legend:"Instructions"},{default:F(()=>[u[27]||(u[27]=e("p",null," Usage instructions reported by the server during connection. These are provided by the server and cannot be edited here. ",-1)),X.value?(t(),o("div",{key:0,class:"mcp-description",innerHTML:X.value},null,8,Ua)):(t(),o("p",Pa,[...u[26]||(u[26]=[e("i",null,"This server does not provide any instructions.",-1)])]))]),_:1}),c.value?_("",!0):(t(),o(J,{key:1},[T.value?(t(),o("div",Fa,[m(p(De),{style:{width:"1.5rem",height:"1.5rem"}}),u[28]||(u[28]=e("span",null,"Loading this server's catalog…",-1))])):w.value?(t(),o("div",Oa,[...u[29]||(u[29]=[e("i",{class:"pi pi-exclamation-triangle"},null,-1),e("span",null,"Unable to load this server's catalog. The server may be unavailable or misconfigured.",-1)])])):_("",!0),!T.value&&!w.value&&k.value.length>0?(t(),o("p",Ea,[u[32]||(u[32]=e("i",{class:"pi pi-wrench"},null,-1)),e("span",null,[se(" This server advertises "+U(k.value.length)+" "+U(k.value.length===1?"tool":"tools")+"; see the ",1),u[30]||(u[30]=e("b",null,"Tools",-1)),u[31]||(u[31]=se(" panel for details. ",-1))])])):_("",!0),!T.value&&!w.value&&N.value.length>0?(t(),K(p(G),{key:3,legend:`Resources (${N.value.length})`},{default:F(()=>[u[34]||(u[34]=e("p",null," Readable resources advertised by this server, addressed by URI and fetched on demand. ",-1)),e("div",ja,[(t(!0),o(J,null,ae(N.value,x=>(t(),o("div",{class:"mcp-resource-item",key:x.resource_id},[u[33]||(u[33]=e("i",{class:"pi pi-file"},null,-1)),e("div",Aa,[e("span",Da,U(x.name||x.uri),1),x.uri&&x.name?(t(),o("span",Na,U(x.uri),1)):_("",!0)])]))),128))])]),_:1},8,["legend"])):_("",!0),!T.value&&!w.value&&Q.value.length>0?(t(),K(p(G),{key:4,legend:`Prompts (${Q.value.length})`},{default:F(()=>[u[36]||(u[36]=e("p",null," Prompt templates advertised by this server. ",-1)),e("div",za,[(t(!0),o(J,null,ae(Q.value,x=>(t(),o("div",{class:"mcp-resource-item",key:x.resource_id},[u[35]||(u[35]=e("i",{class:"pi pi-comment"},null,-1)),e("div",Ba,[e("span",Ha,U(x.prompt_name),1),x.description?(t(),o("span",Ka,U(x.description),1)):_("",!0)])]))),128))])]),_:1},8,["legend"])):_("",!0),!T.value&&!w.value&&oe.value?(t(),o("div",qa,[...u[37]||(u[37]=[e("i",{class:"pi pi-info-circle"},null,-1),e("span",null,"This server advertises no tools, resources, or prompts.",-1)])])):_("",!0)],64))]),e("div",Wa,[n.value.unsavedChanges?(t(),o("div",Ja,[m(p(ee),{onClick:te,icon:"pi pi-save",label:"Save Changes",severity:"success"})])):_("",!0)])])}}}),Ya={class:"mcp-tools-panel"},Ga={key:0,class:"mcp-tools-placeholder"},Za={key:0,class:"mcp-tools-header"},Qa={class:"mcp-tools-count"},en={key:1,class:"mcp-tools-list"},ln=["onMouseenter"],tn={class:"mcp-tool-card-title"},sn={class:"mcp-tool-card-title-text"},an={class:"mcp-tool-card-desc"},nn={key:0,class:"mcp-tools-placeholder"},on={key:2,class:"mcp-tool-focused"},rn={class:"mcp-tool-focused-header"},un={class:"mcp-tool-focused-title"},dn={class:"mcp-tool-focused-content"},cn={key:0},vn=["innerHTML"],pn={key:1},mn={key:0,class:"mcp-tool-blank-note"},fn={key:1,class:"mcp-tool-arg-list"},gn={class:"mcp-tool-arg-signature"},kn={class:"mcp-tool-arg-name"},yn={class:"mcp-tool-arg-type"},hn={key:0,class:"mcp-tool-arg-desc"},_n=he({inheritAttrs:!1,__name:"MCPToolsPanel",props:be({disabled:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(l){const a=Se(l,"modelValue"),i=M({view:"list"}),n=M(void 0),s=M(void 0),c=b(()=>Object.values(re(a.value?.integrations?.[a.value?.selected]?.resources,"mcp_tool"))),g=b(()=>{if(!n.value)return c.value;const f=n.value.toLowerCase();return c.value.filter(d=>d.tool_name.toLowerCase().includes(f)||(d.description??"").toLowerCase().includes(f))}),$=f=>{if(f?.type!==void 0)return Array.isArray(f.type)?f.type.join("|"):String(f.type);for(const d of["anyOf","oneOf"])if(Array.isArray(f?.[d]))return f[d].map(T=>$(typeof T=="object"&&T!==null?T:{})).join("|");return f?.enum!==void 0?"enum":"any"},C=f=>{const d=f.input_schema??{},T=d.properties??{},w=new Set(d.required??[]);return Object.entries(T).map(([D,q])=>{const X=typeof q=="object"&&q!==null?q:{};return{name:D,type:$(X),required:w.has(D),description:X.description?String(X.description):void 0}})},L=b(()=>i.value.view==="focused"?C(i.value.tool):[]),V=b(()=>{if(i.value.view!=="focused")return"";const f=i.value.tool.description;return $e(f)}),r=f=>{i.value={view:"focused",tool:f}};return(f,d)=>{const T=Fe("tooltip");return t(),o("div",Ya,[l.disabled?(t(),o("div",Ga,[...d[4]||(d[4]=[e("i",null,"Save this server to view the tools it advertises.",-1)])])):(t(),o(J,{key:1},[i.value.view==="list"?(t(),o("div",Za,[m(p(at),null,{default:F(()=>[m(p(st),null,{default:F(()=>[...d[5]||(d[5]=[e("i",{class:"pi pi-search"},null,-1)])]),_:1}),m(p(le),{placeholder:"Search Tools...",modelValue:n.value,"onUpdate:modelValue":d[0]||(d[0]=w=>n.value=w)},null,8,["modelValue"]),n.value?ke((t(),K(p(ee),{key:0,icon:"pi pi-times",severity:"danger",onClick:d[1]||(d[1]=w=>n.value=void 0)},null,512)),[[T,"Clear Search",void 0,{left:!0}]]):_("",!0)]),_:1}),e("div",Qa,[e("i",null,U(c.value.length)+" "+U(c.value.length===1?"tool":"tools")+" advertised:",1)])])):_("",!0),i.value.view==="list"?(t(),o("div",en,[(t(!0),o(J,null,ae(g.value,w=>(t(),o("div",{class:"mcp-tool-card",key:w.resource_id,onMouseleave:d[2]||(d[2]=D=>s.value=void 0),onMouseenter:D=>s.value=w.resource_id},[m(p(qe),{onClick:D=>r(w),pt:{root:{style:"transition: background-color 150ms linear;"+(s.value===w.resource_id?"background-color: var(--p-surface-100); cursor: pointer;":"")}}},nt({title:F(()=>[e("div",tn,[d[6]||(d[6]=e("i",{class:"pi pi-wrench"},null,-1)),e("span",sn,U(w.tool_name),1),e("i",{class:"pi pi-chevron-right mcp-tool-arrow",style:dl(s.value===w.resource_id?"opacity: 1;":"opacity: 0;")},null,4)])]),_:2},[w.description?{name:"content",fn:F(()=>[e("div",an,U(w.description),1)]),key:"0"}:void 0]),1032,["onClick","pt"])],40,ln))),128)),c.value.length===0?(t(),o("div",nn,[...d[7]||(d[7]=[e("i",{class:"pi pi-info-circle"},null,-1),e("span",null,"This server advertises no tools.",-1)])])):_("",!0)])):i.value.view==="focused"?(t(),o("div",on,[e("div",rn,[m(p(ee),{severity:"secondary",icon:"pi pi-arrow-left",onClick:d[3]||(d[3]=w=>i.value={view:"list"}),label:"Back",style:{width:"fit-content"}}),e("span",un,U(i.value.tool.tool_name),1)]),e("div",dn,[V.value?(t(),o("section",cn,[d[8]||(d[8]=e("h4",{class:"mcp-tool-section-label"},"Description",-1)),e("div",{class:"mcp-tool-description",innerHTML:V.value},null,8,vn)])):(t(),o("section",pn,[...d[9]||(d[9]=[e("div",{class:"mcp-tool-blank-note"},[e("i",null,"This tool has no description.")],-1)])])),e("section",null,[d[11]||(d[11]=e("h4",{class:"mcp-tool-section-label"},"Arguments",-1)),L.value.length===0?(t(),o("div",mn,[...d[10]||(d[10]=[e("i",null,"This tool takes no arguments.",-1)])])):(t(),o("div",fn,[(t(!0),o(J,null,ae(L.value,w=>(t(),o("div",{class:"mcp-tool-arg",key:w.name},[e("div",gn,[e("span",kn,U(w.name),1),e("span",yn,U(w.type),1),w.required?(t(),K(p(ot),{key:0,value:"required",severity:"warn",class:"mcp-tool-arg-required"})):_("",!0)]),w.description?(t(),o("div",hn,U(w.description),1)):_("",!0)]))),128))]))])])])):_("",!0)],64))])}}});var ce=Uint8Array,xe=Uint16Array,wn=Int32Array,pl=new ce([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ml=new ce([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),bn=new ce([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),fl=function(l,a){for(var i=new xe(31),n=0;n<31;++n)i[n]=a+=1<<l[n-1];for(var s=new wn(i[30]),n=1;n<30;++n)for(var c=i[n];c<i[n+1];++c)s[c]=c-i[n]<<5|n;return{b:i,r:s}},gl=fl(pl,2),kl=gl.b,$n=gl.r;kl[28]=258,$n[258]=28;var Cn=fl(ml,0),Rn=Cn.b,We=new xe(32768);for(var Z=0;Z<32768;++Z){var we=(Z&43690)>>1|(Z&21845)<<1;we=(we&52428)>>2|(we&13107)<<2,we=(we&61680)>>4|(we&3855)<<4,We[Z]=((we&65280)>>8|(we&255)<<8)>>1}var Ue=(function(l,a,i){for(var n=l.length,s=0,c=new xe(a);s<n;++s)l[s]&&++c[l[s]-1];var g=new xe(a);for(s=1;s<a;++s)g[s]=g[s-1]+c[s-1]<<1;var $;if(i){$=new xe(1<<a);var C=15-a;for(s=0;s<n;++s)if(l[s])for(var L=s<<4|l[s],V=a-l[s],r=g[l[s]-1]++<<V,f=r|(1<<V)-1;r<=f;++r)$[We[r]>>C]=L}else for($=new xe(n),s=0;s<n;++s)l[s]&&($[s]=We[g[l[s]-1]++]>>15-l[s]);return $}),Oe=new ce(288);for(var Z=0;Z<144;++Z)Oe[Z]=8;for(var Z=144;Z<256;++Z)Oe[Z]=9;for(var Z=256;Z<280;++Z)Oe[Z]=7;for(var Z=280;Z<288;++Z)Oe[Z]=8;var yl=new ce(32);for(var Z=0;Z<32;++Z)yl[Z]=5;var In=Ue(Oe,9,1),xn=Ue(yl,5,1),ze=function(l){for(var a=l[0],i=1;i<l.length;++i)l[i]>a&&(a=l[i]);return a},me=function(l,a,i){var n=a/8|0;return(l[n]|l[n+1]<<8)>>(a&7)&i},Be=function(l,a){var i=a/8|0;return(l[i]|l[i+1]<<8|l[i+2]<<16)>>(a&7)},Sn=function(l){return(l+7)/8|0},Ze=function(l,a,i){return(a==null||a<0)&&(a=0),(i==null||i>l.length)&&(i=l.length),new ce(l.subarray(a,i))},Vn=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],ue=function(l,a,i){var n=new Error(a||Vn[l]);if(n.code=l,Error.captureStackTrace&&Error.captureStackTrace(n,ue),!i)throw n;return n},Ln=function(l,a,i,n){var s=l.length,c=n?n.length:0;if(!s||a.f&&!a.l)return i||new ce(0);var g=!i,$=g||a.i!=2,C=a.i;g&&(i=new ce(s*3));var L=function(Le){var Ee=i.length;if(Le>Ee){var Te=new ce(Math.max(Ee*2,Le));Te.set(i),i=Te}},V=a.f||0,r=a.p||0,f=a.b||0,d=a.l,T=a.d,w=a.m,D=a.n,q=s*8;do{if(!d){V=me(l,r,1);var X=me(l,r+1,3);if(r+=3,X)if(X==1)d=In,T=xn,w=9,D=5;else if(X==2){var Q=me(l,r,31)+257,oe=me(l,r+10,15)+4,te=Q+me(l,r+5,31)+1;r+=14;for(var E=new ce(te),u=new ce(19),O=0;O<oe;++O)u[bn[O]]=me(l,r+O*3,7);r+=oe*3;for(var x=ze(u),W=(1<<x)-1,R=Ue(u,x,1),O=0;O<te;){var ve=R[me(l,r,W)];r+=ve&15;var j=ve>>4;if(j<16)E[O++]=j;else{var Y=0,fe=0;for(j==16?(fe=3+me(l,r,3),r+=2,Y=E[O-1]):j==17?(fe=3+me(l,r,7),r+=3):j==18&&(fe=11+me(l,r,127),r+=7);fe--;)E[O++]=Y}}var ye=E.subarray(0,Q),ne=E.subarray(Q);w=ze(ye),D=ze(ne),d=Ue(ye,w,1),T=Ue(ne,D,1)}else ue(1);else{var j=Sn(r)+4,k=l[j-4]|l[j-3]<<8,N=j+k;if(N>s){C&&ue(0);break}$&&L(f+k),i.set(l.subarray(j,N),f),a.b=f+=k,a.p=r=N*8,a.f=V;continue}if(r>q){C&&ue(0);break}}$&&L(f+131072);for(var Ce=(1<<w)-1,_e=(1<<D)-1,A=r;;A=r){var Y=d[Be(l,r)&Ce],y=Y>>4;if(r+=Y&15,r>q){C&&ue(0);break}if(Y||ue(2),y<256)i[f++]=y;else if(y==256){A=r,d=null;break}else{var h=y-254;if(y>264){var O=y-257,v=pl[O];h=me(l,r,(1<<v)-1)+kl[O],r+=v}var B=T[Be(l,r)&_e],P=B>>4;B||ue(3),r+=B&15;var ne=Rn[P];if(P>3){var v=ml[P];ne+=Be(l,r)&(1<<v)-1,r+=v}if(r>q){C&&ue(0);break}$&&L(f+131072);var ie=f+h;if(f<ne){var Ve=c-ne,Ne=Math.min(ne,ie);for(Ve+f<0&&ue(3);f<Ne;++f)i[f]=n[Ve+f]}for(;f<ie;++f)i[f]=i[f-ne]}}a.l=d,a.p=A,a.b=f,a.f=V,d&&(V=1,a.m=w,a.d=T,a.n=D)}while(!V);return f!=i.length&&g?Ze(i,0,f):i.subarray(0,f)},Tn=new ce(0),ge=function(l,a){return l[a]|l[a+1]<<8},pe=function(l,a){return(l[a]|l[a+1]<<8|l[a+2]<<16|l[a+3]<<24)>>>0},He=function(l,a){return pe(l,a)+pe(l,a+4)*4294967296};function Mn(l,a){return Ln(l,{i:2},a&&a.out,a&&a.dictionary)}var Je=typeof TextDecoder<"u"&&new TextDecoder,Un=0;try{Je.decode(Tn,{stream:!0}),Un=1}catch{}var Pn=function(l){for(var a="",i=0;;){var n=l[i++],s=(n>127)+(n>223)+(n>239);if(i+s>l.length)return{s:a,r:Ze(l,i-1)};s?s==3?(n=((n&15)<<18|(l[i++]&63)<<12|(l[i++]&63)<<6|l[i++]&63)-65536,a+=String.fromCharCode(55296|n>>10,56320|n&1023)):s&1?a+=String.fromCharCode((n&31)<<6|l[i++]&63):a+=String.fromCharCode((n&15)<<12|(l[i++]&63)<<6|l[i++]&63):a+=String.fromCharCode(n)}};function Xe(l,a){if(a){for(var i="",n=0;n<l.length;n+=16384)i+=String.fromCharCode.apply(null,l.subarray(n,n+16384));return i}else{if(Je)return Je.decode(l);var s=Pn(l),c=s.s,i=s.r;return i.length&&ue(8),c}}var Fn=function(l,a){return a+30+ge(l,a+26)+ge(l,a+28)},On=function(l,a,i){var n=ge(l,a+28),s=ge(l,a+30),c=Xe(l.subarray(a+46,a+46+n),!(ge(l,a+8)&2048)),g=a+46+n,$=En(l,g,s,i,pe(l,a+20),pe(l,a+24),pe(l,a+42)),C=$[0],L=$[1],V=$[2];return[ge(l,a+10),C,L,c,g+s+ge(l,a+32),V]},En=function(l,a,i,n,s,c,g){var $=s==4294967295,C=c==4294967295,L=g==4294967295,V=a+i,r=$+C+L;if(n&&r){for(;a+4<V;a+=4+ge(l,a+2))if(ge(l,a)==1)return[$?He(l,a+4+8*C):s,C?He(l,a+4):c,L?He(l,a+4+8*(C+$)):g,1];n<2&&ue(13)}return[s,c,g,0]};function jn(l,a){for(var i={},n=l.length-22;pe(l,n)!=101010256;--n)(!n||l.length-n>65558)&&ue(13);var s=ge(l,n+8);if(!s)return{};var c=pe(l,n+16),g=pe(l,n-20)==117853008;if(g){var $=pe(l,n-12);g=pe(l,$)==101075792,g&&(s=pe(l,$+32),c=pe(l,$+48))}for(var C=0;C<s;++C){var L=On(l,c,g),V=L[0],r=L[1],f=L[2],d=L[3],T=L[4],w=L[5],D=Fn(l,w);c=T,V?V==8?i[d]=Mn(l.subarray(D,D+r),{out:new ce(f)}):ue(14,"unknown compression type "+V):i[d]=Ze(l,D,D+r)}return i}const ol=50*1024*1024,il=2e3,An=100*1024*1024,hl=l=>l.flatMap(a=>[`${a}s`,a]),Dn=hl(["reference","script","asset"]),Nn=hl(["example"]),zn=l=>l.name.toLowerCase().endsWith(".zip")||l.type==="application/zip"||l.type==="application/x-zip-compressed",rl=l=>{if(l.subarray(0,8192).includes(0))return!1;try{return new TextDecoder("utf-8",{fatal:!0}).decode(l),!0}catch{return!1}};async function Bn(l){if(l.size>ol)throw new Error(`File is too large (${Math.round(l.size/1024/1024)} MB); the limit is ${ol/1024/1024} MB.`);const a=new Uint8Array(await l.arrayBuffer());if(!zn(l))return{skillMd:new TextDecoder("utf-8").decode(a),resources:[],skipped:[]};let i;try{i=jn(a)}catch(r){throw new Error(`Could not read the ZIP archive: ${r?.message??"unknown error"}`)}const n=Object.keys(i).filter(r=>!r.endsWith("/"));if(n.length>il)throw new Error(`Archive has ${n.length} files; the limit is ${il}.`);let s=0;for(const r of n)if(s+=i[r].length,s>An)throw new Error("Archive contents are too large to import in the browser.");const c=n.filter(r=>{const f=r.split("/");return f.length===1&&f[0]==="SKILL.md"||f.length===2&&f[1]==="SKILL.md"});if(c.length===0)throw new Error("No SKILL.md found at the archive root or one directory deep.");if(c.length>1)throw new Error("The archive contains more than one SKILL.md; it must contain exactly one.");const g=c[0],$=g.includes("/")?g.slice(0,g.lastIndexOf("/")+1):"",C=new TextDecoder("utf-8").decode(i[g]),L=[],V=[];for(const r of n){if(r===g||$&&!r.startsWith($))continue;const f=$?r.slice($.length):r,d=f.split("/"),T=d[0];if(Nn.includes(T)){if(d.length!==2)continue;const w=i[r];if(!rl(w)){V.push(f);continue}L.push({resource_type:"skill_example",filename:d[1],content:Xe(w)})}else if(Dn.includes(T)){const w=i[r];if(!rl(w)){V.push(f);continue}L.push({resource_type:"skill_file",relative_path:f,name:d[d.length-1],content:Xe(w)})}}return{skillMd:C,resources:L,skipped:V}}const Hn={class:"integration-container"},Kn={class:"integration-main"},qn={key:0,class:"integration-loading"},Wn={key:1,class:"integration-page-content"},Jn={class:"integration-content-header"},Xn={key:0,class:"no-selection-placeholder",style:{flex:"1"}},Yn={key:1,class:"integration-center"},Gn={key:1,class:"no-selection-placeholder",style:{padding:"1rem"}},uo=he({__name:"IntegrationsInterface",props:["config","connectionSettings","sessionName","sessionId","defaultKernel","renderers"],setup(l){const a=M(),i=M(),n=M(),s=M(),c=M(),g=M(),$=M(),C=I=>{g.value?.selectPanel("examples"),je(()=>$.value?.focusResource?.(I))},L=M(!1),V=new URLSearchParams(window.location.search),r=V.has("session")?V.get("session"):"notebook_dev_session",f=V.has("selected")?V.get("selected"):void 0,d=l,T=[...dt.map(I=>new Pl(I)).map(Fl),Ll,Tl,Ml,Ul],w=M("connecting"),D=M([]),q=M([]),X=M(null),j=M(!1),{theme:k,toggleDarkMode:N}=Me("theme"),Q=Me("beakerAppConfig"),oe=Me("show_toast");Q.setPage("integrations");const te=M(),E=M(),u=M(!1),O=M();ul(()=>{u.value||(je(()=>c.value.selectPanel("integrations")),je(()=>g.value.selectPanel("examples")),document.querySelector("div.sidemenu.right").style.width="36vi",document.querySelector("div.sidemenu.left").style.width="25vi",u.value=!0)});const x=b(()=>i?.value?.beakerSession),W={"agent-skill":{readOnly:!1,centerComponent:al,rightPanelComponent:$s,rightPanelLabel:"Resources",rightPanelIcon:"pi pi-folder-open"},mcp:{readOnly:!1,centerComponent:nl,rightPanelComponent:_n,rightPanelLabel:"Tools",rightPanelIcon:"pi pi-wrench"},default:{readOnly:!1,centerComponent:null,rightPanelComponent:null,rightPanelLabel:"Resources",rightPanelIcon:"pi pi-folder-check"}},R=M({selected:f,integrations:{},unsavedChanges:!1,finishedInitialLoad:!1}),ve=b(()=>R.value.integrations?.[R.value?.selected]),Y=b(()=>{if(ve.value)return tl(ve.value)}),fe=b(()=>Y.value==="mcp"?Pe(ve.value)?nl:Xa:Y.value==="agent-skill"?Pe(ve.value)?Pt:al:W[Y.value]?.centerComponent||W.default?.centerComponent),ye=b(()=>W[Y.value]?.rightPanelComponent||W.default?.rightPanelComponent),ne=b(()=>W[Y.value]?.rightPanelLabel||W.default?.rightPanelLabel),Ce=b(()=>W[Y.value]?.rightPanelIcon||W.default?.rightPanelIcon),_e=b(()=>W[Y.value]?.readOnly||W.default?.readOnly),A=I=>Object.values(I).toSorted((S,z)=>(S?.name??"").localeCompare(z?.name??"")),y=b(()=>A(R.value.integrations??{})),h=()=>R.value.unsavedChanges?confirm("You currently have unsaved changes that would be lost with this change. Are you sure?"):!0,v=(I,S)=>Object.values(R.value?.integrations??{}).find(z=>tl(z)===I)?.provider??S,B=(I="skill")=>{let S;I==="mcp"?S={name:"New MCP Server",source:"",description:"",provider:v("mcp","mcp:mcp"),datatype:"mcp",slug:"new_mcp_server",uuid:"new",url:"",server_config:{name:"new_mcp_server",transport:"stdio",command:"",args:[],env:{},headers:{},disabled:!1}}:S={name:"New Skill",source:"",description:"A short description the agent uses to decide when this skill is relevant.",provider:v("agent-skill","agent-skill:agent-skill"),datatype:"skill",slug:"new_skill",uuid:"new",url:"",source_type:"local",resources:{}},R.value.integrations.new=S,R.value.selected="new",R.value.unsavedChanges=!0},P=async I=>{if(!h())return;const S=v("agent-skill","agent-skill:agent-skill");try{const z=await Bn(I),H=await zl(r,{provider:S,content:z.skillMd});R.value.integrations.new={...H,uuid:"new",provider:S,datatype:"skill",source_type:"local",url:"",pendingResources:z.resources,pendingSkipped:z.skipped},R.value.selected="new",R.value.unsavedChanges=!0;const Re=z.skipped.length?` ${z.skipped.length} non-text file(s) skipped.`:"";oe?.({title:"Skill loaded",detail:`Loaded "${H.name}" with ${z.resources.length} resource(s).${Re} Review and Save to import.`,severity:"success",life:5e3})}catch(z){oe?.({title:"Upload failed",detail:z?.message??"Could not read the uploaded skill.",severity:"error",life:6e3})}},ie=b(()=>[{label:"Skill",icon:"pi pi-book",command:()=>{h()&&B("skill")}},{label:"MCP Server",icon:"pi pi-server",command:()=>{h()&&B("mcp")}}]),Ve=(I,S)=>{const z=H=>{I()?H():setTimeout(()=>z(H),S)};return new Promise(z)},{takePendingUpload:Ne}=ut(),Le=rt();de(()=>Le.query?.selected,I=>{if(I==="upload"){const S=Ne(),z=()=>{S?P(S):B("skill")};R.value.finishedInitialLoad?z():Ve(()=>R.value.finishedInitialLoad,100).then(z)}else if(I==="new"){const S=Le.query?.type??"skill";R.value.finishedInitialLoad?B(S):Ve(()=>R.value.finishedInitialLoad,100).then(()=>B(S))}else R.value.selected=I??R.value.selected},{immediate:!0}),de(()=>R.value.selected,(I,S)=>{S==="new"&&I!=="new"&&R.value.integrations?.new&&(delete R.value.integrations.new,R.value.unsavedChanges=!1)});const Ee=async()=>{const I=R.value.integrations?.[R.value?.selected];if(I!==void 0){if(R.value?.selected==="new"){(I?.resources===void 0||I?.resources===null)&&(I.resources={});return}I.resources=Object.fromEntries((await Bl(r,R.value.selected))?.map(S=>[S.resource_id,S])??[])}},Te=async()=>{const I=await Gl(r),S=R.value.integrations?.new;R.value.integrations=S?{...I,new:S}:I,R.value.finishedInitialLoad=!0};de([()=>x?.value?.activeContext,()=>x?.value?.session.kernelInfo],async()=>await Te());const _l=async(I,S)=>{let z;if(S?(await Hl(r,S,I),z=S):(z=(await Kl(r,I))?.uuid,z&&(R.value.selected=z)),!z)return;const H=await ql(r,z),Re=R.value.integrations[z]?.resources;H.resources===void 0&&Re!==void 0&&(H.resources=Re),R.value.integrations[z]=H},Qe=async(I,S)=>{const z=R.value.integrations?.[R.value?.selected];if(S)z.resources[S]=await Wl(r,R.value.selected,S,I);else{const H=await Jl(r,R.value.selected,I);z.resources[H.resource_id]=H}},el=async I=>{await Xl(r,R.value.selected,I)},wl=async I=>{await Yl(r,I),delete R.value.integrations[I],R.value.selected===I&&(R.value.selected=void 0),R.value.unsavedChanges=!1};de(x,async()=>Te());const bl=b(()=>{const I=[];if(!Q?.config?.pages||Object.hasOwn(Q.config.pages,"notebook")){const S="/"+(Q?.config?.pages?.notebook?.default?"":"notebook")+window.location.search;I.push({type:"link",href:S,label:"Navigate to notebook view",component:Zl,componentStyle:{fill:"currentColor",stroke:"currentColor",height:"1rem",width:"1rem"}})}if(!Q?.config?.pages||Object.hasOwn(Q.config.pages,"chat")){const S="/"+(Q?.config?.pages?.chat?.default?"":"chat")+window.location.search;I.push({type:"link",href:S,icon:"comment",label:"Navigate to chat view"})}return I.push({type:"button",icon:k.mode==="dark"?"sun":"moon",command:N,label:`Switch to ${k.mode==="dark"?"light":"dark"} mode.`},{type:"link",href:"https://jataware.github.io/beaker-kernel",label:"Beaker Documentation",icon:"book",rel:"noopener",target:"_blank"},{type:"link",href:"https://github.com/jataware/beaker-kernel",label:"Check us out on Github",icon:"github",rel:"noopener",target:"_blank"}),I});de(()=>a?.value?.notebook.cells,I=>{I?.length===0&&a.value.insertCellBefore()},{deep:!0});const $l=I=>{I.header.msg_type==="preview"?te.value=I.content:I.header.msg_type==="kernel_state_info"?E.value=I.content:I.header.msg_type==="debug_event"&&D.value.push({type:I.content.event,body:I.content.body,timestamp:I.header.date})},Cl=(I,S)=>{q.value.push({type:S,body:I,timestamp:I.header.date})},Rl=I=>{console.log("Unhandled message recieved",I)},Il=I=>{w.value=I=="idle"?"connected":I},xl=async()=>{await x.value.session.sendBeakerMessage("reset_request",{})};return(I,S)=>{const z=Fe("autoscroll");return t(),K(Ol,{title:I.$tmpl._("short_title","Beaker Notebook"),"title-extra":X.value,"header-nav":bl.value,ref_key:"beakerInterfaceRef",ref:i,connectionSettings:d.config,defaultKernel:"beaker_kernel",sessionId:p(r),renderers:T,savefile:X.value,onIopubMsg:$l,onUnhandledMsg:Rl,onAnyMsg:Cl,onSessionStatusChanged:Il},{"left-panel":F(()=>[m(ll,{ref_key:"sideMenuRef",ref:c,position:"left",highlight:"line",expanded:!0,initialWidth:"25vi",maximized:j.value},{default:F(()=>[m(Ie,{id:"files",label:"Files",icon:"pi pi-folder","no-overflow":"",lazy:!0},{default:F(()=>[m(Al,{ref_key:"filePanelRef",ref:n,onPreviewFile:S[4]||(S[4]=(H,Re)=>{O.value={url:H,mimetype:Re},L.value=!0,g.value.selectPanel("file-contents")})},null,512)]),_:1}),m(Ie,{id:"integrations",label:"Integrations",icon:"pi pi-database"},{default:F(()=>[m(Dl,{modelValue:R.value.integrations,"onUpdate:modelValue":S[5]||(S[5]=H=>R.value.integrations=H),"read-only":_e.value,onUpload:P},null,8,["modelValue","read-only"])]),_:1}),d.config.config_type!=="server"?(t(),K(Ie,{key:0,id:"config",label:`${I.$tmpl._("short_title","Beaker")} Config`,icon:"pi pi-cog",lazy:!0,position:"bottom"},{default:F(()=>[m(Nl,{ref_key:"configPanelRef",ref:s,onRestartSession:xl},null,512)]),_:1},8,["label"])):_("",!0)]),_:1},8,["maximized"])]),"right-panel":F(()=>[m(ll,{ref_key:"rightSideMenuRef",ref:g,position:"right",highlight:"line",expanded:!0,initialWidth:"36vi",maximized:j.value},{default:F(()=>[m(Ie,{id:"file-contents",label:"File Contents",icon:"pi pi-file beaker-zoom","no-overflow":""},{default:F(()=>[m(El,{url:O.value?.url,mimetype:O.value?.mimetype},null,8,["url","mimetype"])]),_:1}),m(Ie,{id:"examples",label:ne.value,icon:Ce.value,"no-overflow":""},{default:F(()=>[R.value.selected?(t(),K(sl(ye.value),{key:0,ref_key:"rightPanelRef",ref:$,modelValue:R.value,"onUpdate:modelValue":S[6]||(S[6]=H=>R.value=H),disabled:!R.value.selected||R.value.selected==="new",deleteResource:el,modifyResource:Qe,sessionId:p(r)},null,8,["modelValue","disabled","sessionId"])):(t(),o("div",Gn,[...S[10]||(S[10]=[e("i",null,"Select an integration to view its resources.",-1)])]))]),_:1},8,["label","icon"]),m(Ie,{id:"kernel-logs",label:"Logs",icon:"pi pi-list",position:"bottom"},{default:F(()=>[ke(m(jl,{entries:D.value,onClearLogs:S[7]||(S[7]=H=>D.value.splice(0,D.value.length))},null,8,["entries"]),[[z]])]),_:1})]),_:1},8,["maximized"])]),default:F(()=>[e("div",Hn,[e("div",Kn,[x.value?.status==="connecting"?(t(),o("div",qn,[m(p(De)),S[8]||(S[8]=se(" Loading integrations... ",-1))])):(t(),o("div",Wn,[e("div",Jn,[m(p(Ae),{options:y.value.map(H=>({label:H.name,value:H.uuid})),"option-label":H=>H?.label??"Select integration...","option-value":"value",placeholder:"Select an integration...",onClick:S[0]||(S[0]=H=>{h()?R.value.unsavedChanges=!1:H.preventDefault}),modelValue:R.value.selected,"onUpdate:modelValue":S[1]||(S[1]=H=>R.value.selected=H)},null,8,["options","option-label","modelValue"]),_e.value?_("",!0):(t(),K(p(it),{key:0,label:"New Integration",model:ie.value,onClick:S[2]||(S[2]=()=>{h()&&B("skill")})},null,8,["model"]))]),R.value.selected?(t(),o("div",Yn,[(t(),K(sl(fe.value),{modelValue:R.value,"onUpdate:modelValue":S[3]||(S[3]=H=>R.value=H),sessionId:p(r),deleteResource:el,modifyResource:Qe,modifyIntegration:_l,deleteIntegration:wl,fetchResources:Ee,onOpenResource:C},null,40,["modelValue","sessionId"]))])):(t(),o("div",Xn,[...S[9]||(S[9]=[e("i",{class:"pi pi-info-circle",style:{"font-size":"1.5rem"}},null,-1),e("p",null,"Select an integration to view or edit, or create a new one to get started.",-1)])]))]))])])]),_:1},8,["title","title-extra","header-nav","connectionSettings","sessionId","savefile"])}}});export{uo as default};
@@ -0,0 +1 @@
1
+ .clamped-markdown{display:flex;flex-direction:column;min-width:0;max-width:100%}.clamped-markdown-content.clamped{max-height:18rem;overflow:hidden}.clamped-markdown-content.faded{mask-image:linear-gradient(to bottom,black 65%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 65%,transparent 100%)}.clamped-markdown-toggle{align-self:center}.skill-resource-link-list{display:flex;flex-direction:column;gap:.25rem}.skill-resource-link{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:4px;font-size:.9rem;cursor:pointer}.skill-resource-link:hover{background-color:var(--p-surface-100)}.skill-resource-link .skill-resource-link-arrow{margin-left:auto;opacity:0;transition:opacity .15s linear}.skill-resource-link:hover .skill-resource-link-arrow{opacity:1}.skill-resource-link-path{font-family:monospace}.skill-resource-link-info{display:flex;flex-direction:column;gap:.15rem}.skill-resource-link-title{font-size:.85rem;color:var(--p-text-muted-color)}.skill-integration-viewer{display:flex;flex-direction:column;height:100%}.skill-integration-viewer .skill-viewer-content{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column}.skill-metadata-grid{display:flex;flex-direction:column;gap:.5rem}.skill-metadata-row{display:flex;flex-direction:row;gap:1rem;align-items:baseline}.skill-metadata-row .skill-metadata-label{font-weight:600;min-width:8rem;flex-shrink:0}.skill-metadata-row .skill-metadata-value{flex:1}.skill-no-metadata{color:var(--p-text-muted-color)}.skill-integration-editor{display:flex;flex-direction:column;height:100%}.skill-integration-editor .skill-editor-content{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column}.skill-editor-actions{flex:1 0;margin:.2rem;display:flex;justify-content:flex-end;gap:.5rem}.skill-editor-actions>*{flex-shrink:0}.skill-form-grid{display:flex;flex-direction:column;gap:.75rem}.skill-form-row{display:flex;flex-direction:column;gap:.25rem}.skill-form-row>label{font-weight:600}.skill-form-row>small{color:var(--p-text-muted-color)}.skill-kv-editor{display:flex;flex-direction:column;gap:.35rem}.skill-kv-item{display:flex;flex-direction:row;gap:.35rem;align-items:center}.skill-kv-item>.p-inputtext:first-of-type{flex:1 1 30%}.skill-kv-item>.p-inputtext:nth-of-type(2){flex:2 1 60%}.skill-add-button{width:fit-content}.skill-url-row{display:flex;flex-direction:row;gap:.35rem;align-items:center}.skill-tools-chips{width:100%}.skill-editor-height{height:20rem;display:flex;flex-direction:column}.skill-instructions-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.skill-instructions-header p{margin:0 0 .8rem}.skill-instructions-header button{flex-shrink:0}.skill-readonly-note{display:flex;align-items:center;gap:.5rem;color:var(--p-text-muted-color)}.skill-import-note{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;margin-bottom:1rem;border-radius:4px;background:var(--p-surface-100);color:var(--p-text-color)}.skill-import-note>i{color:var(--p-primary-color)}.skill-resource-panel{display:flex;flex-direction:column;gap:.75rem;padding-right:.5rem;height:100%}.skill-resource-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.skill-resource-add-buttons{display:flex;gap:.25rem}.skill-resource-hint{display:flex;align-items:center;gap:.5rem;color:var(--p-text-muted-color);margin:0}.skill-resource-list{display:flex;flex-direction:column;overflow:auto;padding:.2rem}.skill-resource-list div.p-card .p-card-content{padding:0}.skill-resource-list div.p-card-body{padding:.6rem}.skill-resource-list div.p-card .p-card-title{margin-bottom:0}.skill-resource-list .skill-resource-card>div{margin-bottom:.5rem}.skill-resource-card-title{display:flex;flex-direction:row;align-items:center;gap:.5rem}.skill-resource-card-title .skill-resource-card-label{flex:1 1;font-size:.9rem;font-weight:500;font-family:monospace;word-break:break-all}.skill-resource-arrow{transition:opacity .15s linear}.skill-resource-empty{padding:1rem .2rem;color:var(--p-text-muted-color)}.skill-resource-pending{display:flex;flex-direction:column;padding:.2rem}.skill-resource-pending .skill-resource-pending-title{color:var(--p-text-muted-color);margin-bottom:.25rem}.skill-resource-pending .skill-resource-card>div{margin-bottom:.5rem}.skill-resource-pending div.p-card .p-card-content{padding:0}.skill-resource-pending div.p-card-body{padding:.6rem}.skill-resource-pending div.p-card .p-card-title{margin-bottom:0}.skill-resource-pending-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .4rem;border-radius:3px;background:var(--p-surface-200);color:var(--p-text-muted-color);flex-shrink:0}.skill-resource-focused-header{display:flex;flex-direction:row;align-items:center;gap:.75rem}.skill-resource-focused-header .skill-resource-focused-title{font-weight:600;font-family:monospace;font-size:.9rem;word-break:break-all}.skill-resource-path-fields{display:flex;flex-direction:row;align-items:center;gap:.35rem}.skill-resource-path-fields .skill-resource-fixed-prefix{font-family:monospace;color:var(--p-text-muted-color)}.skill-resource-focused-content{flex:1 1;overflow:auto;min-height:16rem;display:flex;flex-direction:column}.skill-resource-focused-actions{display:flex;justify-content:flex-end}.skill-resource-rendered{padding:.25rem .5rem;overflow-wrap:break-word;min-width:0;max-width:100%}.skill-resource-rendered pre{max-width:100%;overflow-x:auto}.skill-resource-error{display:flex;align-items:center;gap:.5rem;padding:1rem .25rem;color:var(--p-text-muted-color)}.skill-resource-loading{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;color:var(--p-text-muted-color)}.mcp-integration-viewer{display:flex;flex-direction:column;height:100%}.mcp-integration-viewer .mcp-viewer-content{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column}.mcp-command{font-family:monospace}.mcp-key-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:.35rem}.mcp-key-list code{background-color:var(--p-surface-100);padding:.1rem .35rem;border-radius:4px}.mcp-integration-editor{display:flex;flex-direction:column;height:100%}.mcp-integration-editor .mcp-editor-content{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column}.mcp-editor-actions{flex:1 0;margin:.2rem;display:flex;justify-content:flex-end}.mcp-editor-actions>div{flex-shrink:0}.mcp-form-grid{display:flex;flex-direction:column;gap:.75rem}.mcp-form-row{display:flex;flex-direction:column;gap:.25rem}.mcp-form-row>label{font-weight:600}.mcp-form-row-inline{flex-direction:row;align-items:center;gap:.5rem}.mcp-form-row-inline>label{font-weight:400}.mcp-list-editor{display:flex;flex-direction:column;gap:.35rem}.mcp-list-item{display:flex;flex-direction:row;gap:.35rem;align-items:center}.mcp-list-item>.p-inputtext{flex:1 1 auto}.mcp-kv-item{display:flex;flex-direction:row;gap:.35rem;align-items:center}.mcp-kv-item>.p-inputtext:first-of-type{flex:1 1 30%}.mcp-kv-item>.p-inputtext:nth-of-type(2){flex:2 1 60%}.mcp-add-button{width:fit-content}.mcp-description h1{font-size:1.25rem;margin-bottom:1rem}.mcp-description h2{font-size:1.2rem;margin-bottom:.8rem}.mcp-description h3{font-size:1.15rem;margin-bottom:.8rem}.mcp-description p,.mcp-description ul,.mcp-description li{margin-bottom:.8rem;margin-top:0rem}.mcp-description>*:first-child{margin-top:0rem}.mcp-blank-note{color:var(--p-text-muted-color)}.mcp-metadata-grid{display:flex;flex-direction:column;gap:.5rem}.mcp-metadata-row{display:flex;flex-direction:row;gap:1rem;align-items:baseline}.mcp-metadata-row .mcp-metadata-label{font-weight:600;min-width:8rem;flex-shrink:0}.mcp-metadata-row .mcp-metadata-value{flex:1;min-width:0;word-break:break-word}.mcp-secret-note{color:var(--p-text-muted-color);margin-bottom:0}.mcp-resource-list{display:flex;flex-direction:column;gap:.25rem}.mcp-resource-item{display:flex;align-items:baseline;gap:.5rem;padding:.35rem .5rem;border-radius:4px;font-size:.9rem}.mcp-resource-item:hover{background-color:var(--p-surface-100)}.mcp-resource-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.mcp-resource-name{font-family:monospace}.mcp-resource-desc{font-size:.85rem;color:var(--p-text-muted-color)}.mcp-catalog-hint{display:flex;align-items:center;gap:.5rem;color:var(--p-text-muted-color);margin:0 0 1rem}.mcp-catalog-status{display:flex;align-items:center;gap:.5rem;padding:1rem}.mcp-catalog-loading,.mcp-catalog-empty{color:var(--p-text-muted-color)}.mcp-catalog-warning{color:var(--p-orange-600, #c05621)}.mcp-catalog-warning i{font-size:1.1rem}.mcp-tools-panel{display:flex;flex-direction:column;gap:.75rem;padding-right:.5rem;height:100%}.mcp-tools-header{display:flex;flex-direction:column;gap:.75rem}.mcp-tools-count{display:flex;flex-direction:column;padding:.25rem 0;width:100%}.mcp-tools-list{display:flex;flex-direction:column;overflow:auto;padding:.2rem;gap:.5rem}.mcp-tools-list div.p-card .p-card-content{padding:0}.mcp-tools-list div.p-card-body{padding:.75rem}.mcp-tools-list div.p-card .p-card-title{margin-bottom:0}.mcp-tool-card-title{display:flex;flex-direction:row;align-items:center;gap:.5rem}.mcp-tool-card-title .mcp-tool-card-title-text{flex:1 1;font-size:.95rem;font-weight:500;font-family:monospace}.mcp-tool-arrow{transition:opacity .15s linear}.mcp-tool-card-desc{margin-top:.4rem;font-size:.85rem;color:var(--p-text-muted-color);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mcp-tool-focused{display:flex;flex-direction:column;gap:.75rem;height:100%}.mcp-tool-focused-header{display:flex;flex-direction:row;align-items:center;gap:.75rem}.mcp-tool-focused-header .mcp-tool-focused-title{font-weight:600;font-family:monospace;font-size:.95rem}.mcp-tool-focused-content{flex:1 1;overflow:auto;display:flex;flex-direction:column;gap:1.25rem}.mcp-tool-section-label{margin:0 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--p-text-muted-color)}.mcp-tool-description h1{font-size:1.2rem;margin-bottom:.8rem}.mcp-tool-description h2{font-size:1.15rem;margin-bottom:.8rem}.mcp-tool-description h3{font-size:1.1rem;margin-bottom:.8rem}.mcp-tool-description p,.mcp-tool-description ul,.mcp-tool-description li{margin-bottom:.6rem;margin-top:0}.mcp-tool-description code{background-color:var(--p-surface-100);padding:.1rem .35rem;border-radius:4px}.mcp-tool-description>*:first-child{margin-top:0}.mcp-tool-arg-list{display:flex;flex-direction:column;gap:.75rem}.mcp-tool-arg{display:flex;flex-direction:column;gap:.2rem;padding:.5rem .6rem;border:1px solid var(--p-surface-border);border-radius:6px}.mcp-tool-arg-signature{display:flex;flex-direction:row;align-items:center;gap:.5rem;flex-wrap:wrap}.mcp-tool-arg-signature .mcp-tool-arg-name{font-family:monospace;font-weight:600}.mcp-tool-arg-signature .mcp-tool-arg-type{font-family:monospace;font-size:.85rem;color:var(--p-primary-color)}.mcp-tool-arg-signature .mcp-tool-arg-required{font-size:.7rem}.mcp-tool-arg-desc{font-size:.85rem;color:var(--p-text-muted-color)}.mcp-tools-placeholder{display:flex;align-items:center;gap:.5rem;padding:1rem;color:var(--p-text-muted-color)}.mcp-tool-blank-note{color:var(--p-text-muted-color)}.integration-container{display:flex;height:100%;max-width:100%}.integration-main{display:flex;flex-direction:column;height:100%;flex:2 0 calc(50vw - 2px);border:2px solid var(--p-surface-border);border-radius:0;border-top:0;max-width:100%;padding-top:1rem;overflow:hidden}.integration-main .p-fieldset input,.integration-main .p-fieldset textarea{max-width:100%;width:100%}.integration-main .p-fieldset{max-width:100%;min-width:0}.integration-main .p-fieldset .p-fieldset-legend{max-width:100%;background:none;padding:.5rem}.integration-main .p-fieldset .p-fieldset-legend .p-dropdown{margin-right:.5rem}.integration-main .p-fieldset{margin-bottom:1rem}.integration-main .p-fieldset .p-fieldset-content{max-width:100%;padding:.5rem;display:flex;flex-direction:column}.integration-main .p-fieldset .p-fieldset-content div.p-toolbar{max-width:100%;padding:.5rem;margin-bottom:.5rem}.integration-main .p-fieldset .p-fieldset-content div.p-toolbar .p-toolbar-group-start button{margin-right:.5rem}.integration-main .p-fieldset .p-fieldset-content>.p-inputtextarea.p-inputtext{height:10rem}.integration-main .p-fieldset .p-fieldset-content>p{margin-top:0rem}.integration-page-content{display:flex;flex-direction:column;height:100%;min-height:0;padding:0 .4rem}.integration-center{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.integration-center>*{flex:1 1 auto;min-height:0}.integration-content-header{display:flex;flex-direction:row;gap:.5rem;width:100%;max-width:100%;flex-shrink:0;margin-bottom:.5rem}.integration-content-header>div.p-select{flex:1 1 auto;width:100px}.integration-content-header>div.p-select span.p-select-label{flex-shrink:2;display:block;min-width:0}.integration-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem}.no-selection-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1rem;color:var(--p-text-muted-color);text-align:center}.spacer.left{flex:1 1000 25vw}.spacer.right{flex:1 1 36vw}.title-extra{vertical-align:baseline;display:inline-block;height:100%;font-family:Ubuntu Mono,Courier New,Courier,monospace}