@marimo-team/frontend 0.20.3-dev96 → 0.20.3-dev97

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 (67) hide show
  1. package/dist/assets/{CellStatus-CofFdpAe.js → CellStatus-BNvq_G7v.js} +1 -1
  2. package/dist/assets/{JsonOutput-DKjq8WkX.js → JsonOutput-COYZxr-s.js} +4 -4
  3. package/dist/assets/{MarimoErrorOutput-DDEWmSYt.js → MarimoErrorOutput-CkWg573B.js} +1 -1
  4. package/dist/assets/{RenderHTML-BKdgJWBR.js → RenderHTML-D0riQ7d5.js} +1 -1
  5. package/dist/assets/{add-cell-with-ai--93MrwWW.js → add-cell-with-ai-D7RcfIFT.js} +7 -7
  6. package/dist/assets/{add-connection-dialog-DwmwDRdR.js → add-connection-dialog-a1w-tlmr.js} +1 -1
  7. package/dist/assets/agent-panel-CFECcwTK.js +287 -0
  8. package/dist/assets/{ai-model-dropdown-DQy6lXPg.js → ai-model-dropdown-CS9BLOLl.js} +3 -3
  9. package/dist/assets/{app-config-button-C_j4LbLr.js → app-config-button-Cp9XkpLD.js} +1 -1
  10. package/dist/assets/{azure-BOn6W9-m.js → azure-D5yXrO2H.js} +1 -1
  11. package/dist/assets/{cell-editor-B9yTITVj.js → cell-editor-DRiVkblX.js} +9 -9
  12. package/dist/assets/{cell-link-CZP6Kzmf.js → cell-link-B5vG68jv.js} +1 -1
  13. package/dist/assets/{cells-CigkzIKH.js → cells-BusUaZSh.js} +39 -39
  14. package/dist/assets/{chat-display-C1J9G6Cr.js → chat-display-BrI8TsyH.js} +1 -1
  15. package/dist/assets/{chat-panel-CFDW5ZSi.js → chat-panel-BvHZJKww.js} +1 -1
  16. package/dist/assets/{column-preview-BHAQ5EN7.js → column-preview-CMuWC26D.js} +1 -1
  17. package/dist/assets/{command-C8WcXqB5.js → command-B5q5uni4.js} +1 -1
  18. package/dist/assets/{command-palette-DzEDXP8h.js → command-palette-DH_Lzfkd.js} +1 -1
  19. package/dist/assets/{common-BsEiWPTg.js → common-DQqSG88k.js} +1 -1
  20. package/dist/assets/{components-Bis36Fco.js → components-Cx6Hou1_.js} +1 -1
  21. package/dist/assets/{components-C_r2KU__.js → components-DlLxmdlj.js} +1 -1
  22. package/dist/assets/{context-aware-panel-CdVqO_AM.js → context-aware-panel-BGlzp-FM.js} +2 -2
  23. package/dist/assets/{datasource-B3MFUEL6.js → datasource-DpXRY8fO.js} +2 -2
  24. package/dist/assets/{dependency-graph-panel-D4bT9In2.js → dependency-graph-panel-RR4NgUZ9.js} +1 -1
  25. package/dist/assets/{documentation-panel-BMnKc5yI.js → documentation-panel-Cnv1jm5X.js} +1 -1
  26. package/dist/assets/{download-C35SWaj3.js → download-BUXzyjEd.js} +4 -4
  27. package/dist/assets/{edit-page-BeR5IEJ-.js → edit-page-D9uU9771.js} +7 -7
  28. package/dist/assets/{error-panel-jpJowHuz.js → error-panel-CVb1eCf6.js} +1 -1
  29. package/dist/assets/{file-explorer-panel-BHVDv16o.js → file-explorer-panel-UXRdRpc0.js} +1 -1
  30. package/dist/assets/{floating-outline-BxQvjarL.js → floating-outline-CmXM2v38.js} +1 -1
  31. package/dist/assets/{focus-Bci_MkMH.js → focus-ByrD76nS.js} +1 -1
  32. package/dist/assets/{form-DmsYuKMH.js → form-DOjZnkdK.js} +1 -1
  33. package/dist/assets/{globals-BIlQtd9Z.js → globals-B_lwS1Rg.js} +1 -1
  34. package/dist/assets/{home-page-Dw1bl_Le.js → home-page-DkSd1V6c.js} +2 -2
  35. package/dist/assets/{html-to-image-DkwDXZ7Q.js → html-to-image-DjFNZcCI.js} +1 -1
  36. package/dist/assets/{index-D0SHqLyU.js → index-CywCwPVu.js} +10 -10
  37. package/dist/assets/{kiosk-mode-BXfU4SPi.js → kiosk-mode-CTnBBAQi.js} +1 -1
  38. package/dist/assets/{layout-Cn07VnUl.js → layout-CMmACzb7.js} +3 -3
  39. package/dist/assets/{logs-panel-CNI5XQZv.js → logs-panel-H4W0OnaU.js} +1 -1
  40. package/dist/assets/{markdown-renderer-DHgbXKHX.js → markdown-renderer-B4k8WEFz.js} +1 -1
  41. package/dist/assets/{name-cell-input-BVNjrC55.js → name-cell-input-BUcQnShp.js} +1 -1
  42. package/dist/assets/{outline-panel-DDzSswIl.js → outline-panel-By3ZqBZ9.js} +1 -1
  43. package/dist/assets/{packages-panel-oV7XPDLu.js → packages-panel-Cu_ODGWE.js} +1 -1
  44. package/dist/assets/{panels-OYOPaJTw.js → panels-o_H3ZmT-.js} +1 -1
  45. package/dist/assets/{process-output-B27UYd5L.js → process-output-C6uLELXv.js} +1 -1
  46. package/dist/assets/{readonly-python-code-CyraFlMm.js → readonly-python-code-vSIWAIcL.js} +1 -1
  47. package/dist/assets/{run-page-DDaD2g7X.js → run-page-DhyDG7Rk.js} +1 -1
  48. package/dist/assets/{scratchpad-panel-Bj7X2Na5.js → scratchpad-panel-4t4-HW40.js} +1 -1
  49. package/dist/assets/{session-panel-BCymMoxC.js → session-panel-DIXH9TH9.js} +1 -1
  50. package/dist/assets/{snippets-panel-CSczB-sT.js → snippets-panel-CODg30J-.js} +1 -1
  51. package/dist/assets/{state-LFRjhpk7.js → state-BqcLH_kp.js} +1 -1
  52. package/dist/assets/{switch-Cp5eQmZx.js → switch-E6p3DgBh.js} +1 -1
  53. package/dist/assets/{tracing-DVa-Q9aK.js → tracing-Dl2nQ80-.js} +1 -1
  54. package/dist/assets/{tracing-panel-DFqVXy46.js → tracing-panel-DhGOBk1Q.js} +2 -2
  55. package/dist/assets/{types-B737EDbu.js → types-Cg2HXEUi.js} +1 -1
  56. package/dist/assets/{useAddCell-CZ1y3fpl.js → useAddCell-CsMGD6qQ.js} +1 -1
  57. package/dist/assets/{useCellActionButton-CGxzkJch.js → useCellActionButton-pIt4Gh5R.js} +1 -1
  58. package/dist/assets/{useDeleteCell-Dok0-XOi.js → useDeleteCell-DFKNGNeg.js} +1 -1
  59. package/dist/assets/{useDependencyPanelTab-CYOtvc7A.js → useDependencyPanelTab-vEb9Zdsr.js} +1 -1
  60. package/dist/assets/{useNotebookActions-C8fdJ-I2.js → useNotebookActions-B9ocYS2_.js} +1 -1
  61. package/dist/assets/{useSplitCell-CEPcLfYT.js → useSplitCell-B4bOrJRI.js} +1 -1
  62. package/dist/index.html +29 -29
  63. package/package.json +1 -1
  64. package/src/components/chat/acp/agent-panel.tsx +29 -8
  65. package/src/core/saving/file-state.ts +7 -0
  66. package/src/mount.tsx +6 -1
  67. package/dist/assets/agent-panel-C8ZeX_CD.js +0 -287
@@ -1,4 +1,4 @@
1
- import{s as Z}from"./chunk-LvLJmgfZ.js";import{d as ye,f as ve,l as Ne,u as be}from"./useEvent-WUlsM6MC.js";import{t as ke}from"./react-Bj1aDYRI.js";import{$n as we,Qr as G,T as Ie,Y as $e,Zr as _e,b as Fe,kn as Ae,li as Te,xn as Ce}from"./cells-CigkzIKH.js";import{t as E}from"./compiler-runtime-B3qBwwSJ.js";import{t as Se}from"./invariant-awXiPaF0.js";import{r as Me}from"./utils-CORJ8yYa.js";import{t as ze}from"./jsx-runtime-CP2fAiZX.js";import{r as J,t as $}from"./button-BmOH9agK.js";import{t as K}from"./cn-d_A4rA-x.js";import{t as H}from"./createLucideIcon-BvP5LBIs.js";import{r as qe}from"./x-yqLqiq5Q.js";import{a as Ee,p as Pe,r as Le,t as We}from"./dropdown-menu-CKhrfxsx.js";import{a as Qe,n as Ve}from"./state-LFRjhpk7.js";import{c as X,n as Be}from"./datasource-B3MFUEL6.js";import{a as De}from"./dist-51xFOPFs.js";import{t as ee}from"./tooltip-DOQlecCr.js";import{a as Oe,i as He,n as Ue,r as Re}from"./multi-map-kCmlVJ-5.js";import{t as te}from"./kbd-CVbqSkT8.js";import{t as A}from"./links-BKV6zi_7.js";import{r as Ye,t as Ze}from"./alert-0YTlkh9P.js";import{o as Ge,t as Je}from"./useInstallPackage-jGxNsOWc.js";import{n as b}from"./cell-link-CZP6Kzmf.js";var Ke=H("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),T=H("square-arrow-out-up-right",[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]]),re=H("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);function Xe(r){let e=null,s=r.cursor();do s.name==="ExpressionStatement"&&(e=s.node);while(s.next());return e}function et(r){let e=r.split(`
1
+ import{s as Z}from"./chunk-LvLJmgfZ.js";import{d as ye,f as ve,l as Ne,u as be}from"./useEvent-WUlsM6MC.js";import{t as ke}from"./react-Bj1aDYRI.js";import{$n as we,Qr as G,T as Ie,Y as $e,Zr as _e,b as Fe,kn as Ae,ui as Te,xn as Ce}from"./cells-BusUaZSh.js";import{t as E}from"./compiler-runtime-B3qBwwSJ.js";import{t as Se}from"./invariant-awXiPaF0.js";import{r as Me}from"./utils-CORJ8yYa.js";import{t as ze}from"./jsx-runtime-CP2fAiZX.js";import{r as J,t as $}from"./button-BmOH9agK.js";import{t as K}from"./cn-d_A4rA-x.js";import{t as H}from"./createLucideIcon-BvP5LBIs.js";import{r as qe}from"./x-yqLqiq5Q.js";import{a as Ee,p as Pe,r as Le,t as We}from"./dropdown-menu-CKhrfxsx.js";import{a as Qe,n as Ve}from"./state-BqcLH_kp.js";import{c as X,n as Be}from"./datasource-DpXRY8fO.js";import{a as De}from"./dist-51xFOPFs.js";import{t as ee}from"./tooltip-DOQlecCr.js";import{a as Oe,i as He,n as Ue,r as Re}from"./multi-map-kCmlVJ-5.js";import{t as te}from"./kbd-CVbqSkT8.js";import{t as A}from"./links-BKV6zi_7.js";import{r as Ye,t as Ze}from"./alert-0YTlkh9P.js";import{o as Ge,t as Je}from"./useInstallPackage-jGxNsOWc.js";import{n as b}from"./cell-link-B5vG68jv.js";var Ke=H("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),T=H("square-arrow-out-up-right",[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]]),re=H("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);function Xe(r){let e=null,s=r.cursor();do s.name==="ExpressionStatement"&&(e=s.node);while(s.next());return e}function et(r){let e=r.split(`
2
2
  `),s=" ",n=Xe(De.parse(r));if(!n)return["def _():",...U(e,s),`${s}return`,"","","_()"].join(`
3
3
  `);let i=r.slice(0,n.from).trim(),l=r.slice(n.from).trim(),a=i.split(`
4
4
  `),c=l.split(`
@@ -1 +1 @@
1
- import{s as v}from"./chunk-LvLJmgfZ.js";import{i as j}from"./useEvent-WUlsM6MC.js";import{t as y}from"./react-Bj1aDYRI.js";import{Qr as c,Zr as w,_n as S,at as R,m as _,ot as H,pn as M}from"./cells-CigkzIKH.js";import{t as E}from"./compiler-runtime-B3qBwwSJ.js";import{m as N}from"./useEventListener-CjXriKgk.js";import{t as T}from"./jsx-runtime-CP2fAiZX.js";import{t as C}from"./usePress-DsLftN-x.js";import{n as F}from"./useDebounce-BUC67G8E.js";import{t as I}from"./copy-icon-6RnnFDPt.js";var k=E(),m=v(y(),1),o=v(T(),1);const q=r=>{let t=(0,k.c)(16),e,n,i;t[0]===r?(e=t[1],n=t[2],i=t[3]):({href:n,children:e,...i}=r,t[0]=r,t[1]=e,t[2]=n,t[3]=i);let a=(0,m.useRef)(null),l;t[4]===n?l=t[5]:(l=()=>{let u=new URL(globalThis.location.href);u.hash=n,globalThis.history.pushState({},"",u.toString()),globalThis.dispatchEvent(new HashChangeEvent("hashchange"));let x=n.slice(1),g=document.getElementById(x);g&&g.scrollIntoView({behavior:"smooth",block:"start"})},t[4]=n,t[5]=l);let s=l,f;t[6]===s?f=t[7]:(f={onPress:()=>{s()}},t[6]=s,t[7]=f);let{pressProps:h}=C(f),d;t[8]===s?d=t[9]:(d=u=>{u.preventDefault(),s()},t[8]=s,t[9]=d);let b=d,p;return t[10]!==e||t[11]!==b||t[12]!==n||t[13]!==h||t[14]!==i?(p=(0,o.jsx)("a",{ref:a,href:n,...h,onClick:b,...i,children:e}),t[10]=e,t[11]=b,t[12]=n,t[13]=h,t[14]=i,t[15]=p):p=t[15],p};async function z(r){let t=_().inOrderIds.at(0);if(t)try{let e=await M.request({document:r,cellId:t});if(!e||e.options.length===0)return;let n=r.split(".").pop()??r,i=e.options[0],a=e.options.find(l=>l.name===n)??i;a!=null&&a.completion_info&&j.set(S,{documentation:a.completion_info})}catch(e){N.debug(`Doc lookup failed for "${r}"`,e)}}var L=E();const V=r=>{let t=(0,L.c)(8),{qualifiedName:e,children:n}=r,i;t[0]===e?i=t[1]:(i=()=>{z(e)},t[0]=e,t[1]=i);let a=F(i,100),l;t[2]===a?l=t[3]:(l=()=>a.cancel(),t[2]=a,t[3]=l);let s;return t[4]!==n||t[5]!==a||t[6]!==l?(s=(0,o.jsx)("span",{onMouseEnter:a,onMouseLeave:l,children:n}),t[4]=n,t[5]=a,t[6]=l,t[7]=s):s=t[7],s};var W=E(),A=r=>{if(r instanceof c.Element&&!/^[A-Za-z][\w-]*$/.test(r.name))return m.createElement(m.Fragment)},D=(r,t)=>{if(t instanceof c.Element&&t.name==="body"){if((0,m.isValidElement)(r)&&"props"in r){let e=r.props.children;return(0,o.jsx)(o.Fragment,{children:e})}return}},O=(r,t)=>{if(t instanceof c.Element&&t.name==="html"){if((0,m.isValidElement)(r)&&"props"in r){let e=r.props.children;return(0,o.jsx)(o.Fragment,{children:e})}return}},P=r=>{if(r instanceof c.Element&&r.attribs&&r.name==="iframe"){let t=document.createElement("iframe");return Object.entries(r.attribs).forEach(([e,n])=>{e.startsWith('"')&&e.endsWith('"')&&(e=e.slice(1,-1)),t.setAttribute(e,n)}),(0,o.jsx)("div",{dangerouslySetInnerHTML:{__html:t.outerHTML}})}},$=r=>{if(r instanceof c.Element&&r.name==="script"){let t=r.attribs.src;if(!t)return;if(!document.querySelector(`script[src="${t}"]`)){let e=document.createElement("script");e.src=t,document.head.append(e)}return(0,o.jsx)(o.Fragment,{})}},Z=(r,t)=>{if(t instanceof c.Element&&t.name==="a"){let e=t.attribs.href;if(e!=null&&e.startsWith("#")&&!e.startsWith("#code/")){let n=null;return(0,m.isValidElement)(r)&&"props"in r&&(n=r.props.children),(0,o.jsx)(q,{href:e,...t.attribs,children:n})}}},B=(r,t,e)=>{var n,i;if(t instanceof c.Element&&t.name==="div"&&((i=(n=t.attribs)==null?void 0:n.class)!=null&&i.includes("codehilite")))return(0,o.jsx)(U,{children:r},e)},Q=(r,t)=>{var e;if(t instanceof c.Element&&((e=t.attribs)!=null&&e["data-marimo-doc"])){let n=t.attribs["data-marimo-doc"];return(0,o.jsx)(V,{qualifiedName:n,children:r})}},U=r=>{let t=(0,W.c)(3),{children:e}=r,n=(0,m.useRef)(null),i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,o.jsx)("div",{className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,o.jsx)(I,{tooltip:!1,className:"p-1",value:()=>{var s;let l=(s=n.current)==null?void 0:s.firstChild;return l&&l.textContent||""}})}),t[0]=i):i=t[0];let a;return t[1]===e?a=t[2]:(a=(0,o.jsxs)("div",{className:"relative group codehilite-wrapper",ref:n,children:[e,i]}),t[1]=e,t[2]=a),a};const G=({html:r,additionalReplacements:t=[],alwaysSanitizeHtml:e=!0})=>(0,o.jsx)(J,{html:r,alwaysSanitizeHtml:e,additionalReplacements:t});var J=({html:r,additionalReplacements:t=[],alwaysSanitizeHtml:e})=>{let n=H();return K({html:(0,m.useMemo)(()=>e||n?R(r):r,[r,e,n]),additionalReplacements:t})};function K({html:r,additionalReplacements:t=[]}){let e=[A,P,$,...t],n=[B,Z,Q,D,O];return w(r,{replace:(i,a)=>{for(let l of e){let s=l(i,a);if(s)return s}return i},transform:(i,a,l)=>{for(let s of n){let f=s(i,a,l);if(f)return f}return i}})}export{G as t};
1
+ import{s as v}from"./chunk-LvLJmgfZ.js";import{i as j}from"./useEvent-WUlsM6MC.js";import{t as y}from"./react-Bj1aDYRI.js";import{Qr as c,Zr as w,_n as S,at as R,m as _,ot as H,pn as M}from"./cells-BusUaZSh.js";import{t as E}from"./compiler-runtime-B3qBwwSJ.js";import{m as N}from"./useEventListener-CjXriKgk.js";import{t as T}from"./jsx-runtime-CP2fAiZX.js";import{t as C}from"./usePress-DsLftN-x.js";import{n as F}from"./useDebounce-BUC67G8E.js";import{t as I}from"./copy-icon-6RnnFDPt.js";var k=E(),m=v(y(),1),o=v(T(),1);const q=r=>{let t=(0,k.c)(16),e,n,i;t[0]===r?(e=t[1],n=t[2],i=t[3]):({href:n,children:e,...i}=r,t[0]=r,t[1]=e,t[2]=n,t[3]=i);let a=(0,m.useRef)(null),l;t[4]===n?l=t[5]:(l=()=>{let u=new URL(globalThis.location.href);u.hash=n,globalThis.history.pushState({},"",u.toString()),globalThis.dispatchEvent(new HashChangeEvent("hashchange"));let x=n.slice(1),g=document.getElementById(x);g&&g.scrollIntoView({behavior:"smooth",block:"start"})},t[4]=n,t[5]=l);let s=l,f;t[6]===s?f=t[7]:(f={onPress:()=>{s()}},t[6]=s,t[7]=f);let{pressProps:h}=C(f),d;t[8]===s?d=t[9]:(d=u=>{u.preventDefault(),s()},t[8]=s,t[9]=d);let b=d,p;return t[10]!==e||t[11]!==b||t[12]!==n||t[13]!==h||t[14]!==i?(p=(0,o.jsx)("a",{ref:a,href:n,...h,onClick:b,...i,children:e}),t[10]=e,t[11]=b,t[12]=n,t[13]=h,t[14]=i,t[15]=p):p=t[15],p};async function z(r){let t=_().inOrderIds.at(0);if(t)try{let e=await M.request({document:r,cellId:t});if(!e||e.options.length===0)return;let n=r.split(".").pop()??r,i=e.options[0],a=e.options.find(l=>l.name===n)??i;a!=null&&a.completion_info&&j.set(S,{documentation:a.completion_info})}catch(e){N.debug(`Doc lookup failed for "${r}"`,e)}}var L=E();const V=r=>{let t=(0,L.c)(8),{qualifiedName:e,children:n}=r,i;t[0]===e?i=t[1]:(i=()=>{z(e)},t[0]=e,t[1]=i);let a=F(i,100),l;t[2]===a?l=t[3]:(l=()=>a.cancel(),t[2]=a,t[3]=l);let s;return t[4]!==n||t[5]!==a||t[6]!==l?(s=(0,o.jsx)("span",{onMouseEnter:a,onMouseLeave:l,children:n}),t[4]=n,t[5]=a,t[6]=l,t[7]=s):s=t[7],s};var W=E(),A=r=>{if(r instanceof c.Element&&!/^[A-Za-z][\w-]*$/.test(r.name))return m.createElement(m.Fragment)},D=(r,t)=>{if(t instanceof c.Element&&t.name==="body"){if((0,m.isValidElement)(r)&&"props"in r){let e=r.props.children;return(0,o.jsx)(o.Fragment,{children:e})}return}},O=(r,t)=>{if(t instanceof c.Element&&t.name==="html"){if((0,m.isValidElement)(r)&&"props"in r){let e=r.props.children;return(0,o.jsx)(o.Fragment,{children:e})}return}},P=r=>{if(r instanceof c.Element&&r.attribs&&r.name==="iframe"){let t=document.createElement("iframe");return Object.entries(r.attribs).forEach(([e,n])=>{e.startsWith('"')&&e.endsWith('"')&&(e=e.slice(1,-1)),t.setAttribute(e,n)}),(0,o.jsx)("div",{dangerouslySetInnerHTML:{__html:t.outerHTML}})}},$=r=>{if(r instanceof c.Element&&r.name==="script"){let t=r.attribs.src;if(!t)return;if(!document.querySelector(`script[src="${t}"]`)){let e=document.createElement("script");e.src=t,document.head.append(e)}return(0,o.jsx)(o.Fragment,{})}},Z=(r,t)=>{if(t instanceof c.Element&&t.name==="a"){let e=t.attribs.href;if(e!=null&&e.startsWith("#")&&!e.startsWith("#code/")){let n=null;return(0,m.isValidElement)(r)&&"props"in r&&(n=r.props.children),(0,o.jsx)(q,{href:e,...t.attribs,children:n})}}},B=(r,t,e)=>{var n,i;if(t instanceof c.Element&&t.name==="div"&&((i=(n=t.attribs)==null?void 0:n.class)!=null&&i.includes("codehilite")))return(0,o.jsx)(U,{children:r},e)},Q=(r,t)=>{var e;if(t instanceof c.Element&&((e=t.attribs)!=null&&e["data-marimo-doc"])){let n=t.attribs["data-marimo-doc"];return(0,o.jsx)(V,{qualifiedName:n,children:r})}},U=r=>{let t=(0,W.c)(3),{children:e}=r,n=(0,m.useRef)(null),i;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,o.jsx)("div",{className:"absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity",children:(0,o.jsx)(I,{tooltip:!1,className:"p-1",value:()=>{var s;let l=(s=n.current)==null?void 0:s.firstChild;return l&&l.textContent||""}})}),t[0]=i):i=t[0];let a;return t[1]===e?a=t[2]:(a=(0,o.jsxs)("div",{className:"relative group codehilite-wrapper",ref:n,children:[e,i]}),t[1]=e,t[2]=a),a};const G=({html:r,additionalReplacements:t=[],alwaysSanitizeHtml:e=!0})=>(0,o.jsx)(J,{html:r,alwaysSanitizeHtml:e,additionalReplacements:t});var J=({html:r,additionalReplacements:t=[],alwaysSanitizeHtml:e})=>{let n=H();return K({html:(0,m.useMemo)(()=>e||n?R(r):r,[r,e,n]),additionalReplacements:t})};function K({html:r,additionalReplacements:t=[]}){let e=[A,P,$,...t],n=[B,Z,Q,D,O];return w(r,{replace:(i,a)=>{for(let l of e){let s=l(i,a);if(s)return s}return i},transform:(i,a,l)=>{for(let s of n){let f=s(i,a,l);if(f)return f}return i}})}export{G as t};
@@ -1,4 +1,4 @@
1
- var vi=Object.defineProperty;var _i=(t,e,a)=>e in t?vi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var L=(t,e,a)=>_i(t,typeof e!="symbol"?e+"":e,a);import{s as Za,t as bi}from"./chunk-LvLJmgfZ.js";import{f as Kr,i as Yr,l as xi,n as Hr,o as wi,u as Gr}from"./useEvent-WUlsM6MC.js";import{t as ki}from"./react-Bj1aDYRI.js";import{Br as Ci,Hn as Ei,Lr as Ti,Mn as Ii,T as Qr,Ut as Xr,Yt as Si,_r as Ai,ar as Oi,b as Ge,f as Ri,ft as Ni,gi as ji,hi as es,hr as Mi,i as Pi,jt as Li,kn as $i,li as Di,ri as Zi,rr as Fi,si as zi,vr as ts,vt as Fa}from"./cells-CigkzIKH.js";import{B as Ce,D as Ui,E as as,H as Vi,I as Nt,J as rs,L as Q,N as ss,O as Bi,P as H,R as E,S as qi,T as ce,V as Fe,W as ns,b as aa,k as M,w as ze,x as ra}from"./zod-H_cgTO0M.js";import{t as jt}from"./compiler-runtime-B3qBwwSJ.js";import{n as is}from"./assertNever-Dw9aFN4h.js";import{t as Wi,w as Ji}from"./ai-model-dropdown-DQy6lXPg.js";import{m as ie,u as Ki}from"./useEventListener-CjXriKgk.js";import{n as Yi}from"./utils-CORJ8yYa.js";import{o as Hi}from"./config-D9X9QKiL.js";import{t as Gi}from"./jsx-runtime-CP2fAiZX.js";import{t as Qe}from"./button-BmOH9agK.js";import{t as za}from"./cn-d_A4rA-x.js";import{Ht as Qi,Jt as sa,St as na,Vt as Xi,Wt as os,Yt as ia,Zt as eo,at as ls,ct as to,lt as ds,rt as Ua,xt as ao}from"./dist-DUY6xZX8.js";import{t as ro}from"./createReducer-BcTiTw8T.js";import{h as so,n as no,o as io,r as oo}from"./dist-D89dID68.js";import{r as lo,t as uo}from"./requests-DZy_SQ_v.js";import{t as oa}from"./createLucideIcon-BvP5LBIs.js";import{t as us}from"./x-yqLqiq5Q.js";import{l as cs,n as co,p as po}from"./markdown-renderer-DHgbXKHX.js";import{a as ps,c as mo,p as ho,r as fo,t as go}from"./dropdown-menu-CKhrfxsx.js";import{t as ms}from"./file-DVwc11C3.js";import{i as yo,r as vo,t as _o}from"./html-to-image-DkwDXZ7Q.js";import{t as bo}from"./spinner-DCSoZZhh.js";import{t as xo}from"./play-D4Tdvkms.js";import{r as wo}from"./input-BPldEXfy.js";import{a as ko}from"./state-LFRjhpk7.js";import{a as Mt,i as wt,o as Pt,r as kt,s as Co,t as Eo}from"./datasource-B3MFUEL6.js";import{a as To}from"./dist-DfBASypd.js";import{t as Va}from"./use-toast-BhMe50aT.js";import{r as Io}from"./useTheme-CwdqVOYu.js";import{t as la}from"./tooltip-DOQlecCr.js";import{d as So}from"./popover-Cvl9xY6R.js";import{r as Ao}from"./errors-Bfogio62.js";import{t as Oo}from"./blob-CObhN-9g.js";import{i as Ba}from"./cell-link-CZP6Kzmf.js";import{n as qa}from"./renderShortcut-BJEd-iA7.js";import{t as Ro}from"./process-output-B27UYd5L.js";import{t as No}from"./useDeleteCell-Dok0-XOi.js";import{r as jo,t as Mo}from"./esm-BQUzYly2.js";import{n as Po}from"./icons-B9sHgc9n.js";var hs=oa("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),fs=oa("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),gs=oa("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),ys=oa("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]),vs="vercel.ai.error",Lo=Symbol.for(vs),_s,bs,Xe=class ui extends(bs=Error,_s=Lo,bs){constructor({name:e,message:a,cause:r}){super(a),this[_s]=!0,this.name=e,this.cause=r}static isInstance(e){return ui.hasMarker(e,vs)}static hasMarker(e,a){let r=Symbol.for(a);return typeof e=="object"&&!!e&&r in e&&typeof e[r]=="boolean"&&e[r]===!0}};function xs(t){return t==null?"unknown error":typeof t=="string"?t:t instanceof Error?t.message:JSON.stringify(t)}var ws="AI_InvalidArgumentError",ks=`vercel.ai.error.${ws}`,$o=Symbol.for(ks),Cs,Es,Do=class extends(Es=Xe,Cs=$o,Es){constructor({message:t,cause:e,argument:a}){super({name:ws,message:t,cause:e}),this[Cs]=!0,this.argument=a}static isInstance(t){return Xe.hasMarker(t,ks)}},Ts="AI_JSONParseError",Is=`vercel.ai.error.${Ts}`,Zo=Symbol.for(Is),Ss,As,Os=class extends(As=Xe,Ss=Zo,As){constructor({text:t,cause:e}){super({name:Ts,message:`JSON parsing failed: Text: ${t}.
1
+ var vi=Object.defineProperty;var _i=(t,e,a)=>e in t?vi(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var L=(t,e,a)=>_i(t,typeof e!="symbol"?e+"":e,a);import{s as Za,t as bi}from"./chunk-LvLJmgfZ.js";import{f as Kr,i as Yr,l as xi,n as Hr,o as wi,u as Gr}from"./useEvent-WUlsM6MC.js";import{t as ki}from"./react-Bj1aDYRI.js";import{Br as Ci,Hn as Ei,Lr as Ti,Mn as Ii,T as Qr,Ut as Xr,Yt as Si,_i as Ai,_r as Oi,ar as Ri,b as Ge,ci as Ni,f as ji,ft as Mi,gi as es,hr as Pi,i as Li,jt as $i,kn as Di,ri as Zi,rr as Fi,ui as zi,vr as ts,vt as Fa}from"./cells-BusUaZSh.js";import{B as Ce,D as Ui,E as as,H as Vi,I as Nt,J as rs,L as Q,N as ss,O as Bi,P as H,R as E,S as qi,T as ce,V as Fe,W as ns,b as aa,k as M,w as ze,x as ra}from"./zod-H_cgTO0M.js";import{t as jt}from"./compiler-runtime-B3qBwwSJ.js";import{n as is}from"./assertNever-Dw9aFN4h.js";import{t as Wi,w as Ji}from"./ai-model-dropdown-CS9BLOLl.js";import{m as ie,u as Ki}from"./useEventListener-CjXriKgk.js";import{n as Yi}from"./utils-CORJ8yYa.js";import{o as Hi}from"./config-D9X9QKiL.js";import{t as Gi}from"./jsx-runtime-CP2fAiZX.js";import{t as Qe}from"./button-BmOH9agK.js";import{t as za}from"./cn-d_A4rA-x.js";import{Ht as Qi,Jt as sa,St as na,Vt as Xi,Wt as os,Yt as ia,Zt as eo,at as ls,ct as to,lt as ds,rt as Ua,xt as ao}from"./dist-DUY6xZX8.js";import{t as ro}from"./createReducer-BcTiTw8T.js";import{h as so,n as no,o as io,r as oo}from"./dist-D89dID68.js";import{r as lo,t as uo}from"./requests-DZy_SQ_v.js";import{t as oa}from"./createLucideIcon-BvP5LBIs.js";import{t as us}from"./x-yqLqiq5Q.js";import{l as cs,n as co,p as po}from"./markdown-renderer-B4k8WEFz.js";import{a as ps,c as mo,p as ho,r as fo,t as go}from"./dropdown-menu-CKhrfxsx.js";import{t as ms}from"./file-DVwc11C3.js";import{i as yo,r as vo,t as _o}from"./html-to-image-DjFNZcCI.js";import{t as bo}from"./spinner-DCSoZZhh.js";import{t as xo}from"./play-D4Tdvkms.js";import{r as wo}from"./input-BPldEXfy.js";import{a as ko}from"./state-BqcLH_kp.js";import{a as Mt,i as wt,o as Pt,r as kt,s as Co,t as Eo}from"./datasource-DpXRY8fO.js";import{a as To}from"./dist-DfBASypd.js";import{t as Va}from"./use-toast-BhMe50aT.js";import{r as Io}from"./useTheme-CwdqVOYu.js";import{t as la}from"./tooltip-DOQlecCr.js";import{d as So}from"./popover-Cvl9xY6R.js";import{r as Ao}from"./errors-Bfogio62.js";import{t as Oo}from"./blob-CObhN-9g.js";import{i as Ba}from"./cell-link-B5vG68jv.js";import{n as qa}from"./renderShortcut-BJEd-iA7.js";import{t as Ro}from"./process-output-C6uLELXv.js";import{t as No}from"./useDeleteCell-DFKNGNeg.js";import{r as jo,t as Mo}from"./esm-BQUzYly2.js";import{n as Po}from"./icons-B9sHgc9n.js";var hs=oa("at-sign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]),fs=oa("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]),gs=oa("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),ys=oa("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]),vs="vercel.ai.error",Lo=Symbol.for(vs),_s,bs,Xe=class ui extends(bs=Error,_s=Lo,bs){constructor({name:e,message:a,cause:r}){super(a),this[_s]=!0,this.name=e,this.cause=r}static isInstance(e){return ui.hasMarker(e,vs)}static hasMarker(e,a){let r=Symbol.for(a);return typeof e=="object"&&!!e&&r in e&&typeof e[r]=="boolean"&&e[r]===!0}};function xs(t){return t==null?"unknown error":typeof t=="string"?t:t instanceof Error?t.message:JSON.stringify(t)}var ws="AI_InvalidArgumentError",ks=`vercel.ai.error.${ws}`,$o=Symbol.for(ks),Cs,Es,Do=class extends(Es=Xe,Cs=$o,Es){constructor({message:t,cause:e,argument:a}){super({name:ws,message:t,cause:e}),this[Cs]=!0,this.argument=a}static isInstance(t){return Xe.hasMarker(t,ks)}},Ts="AI_JSONParseError",Is=`vercel.ai.error.${Ts}`,Zo=Symbol.for(Is),Ss,As,Os=class extends(As=Xe,Ss=Zo,As){constructor({text:t,cause:e}){super({name:Ts,message:`JSON parsing failed: Text: ${t}.
2
2
  Error message: ${xs(e)}`,cause:e}),this[Ss]=!0,this.text=t}static isInstance(t){return Xe.hasMarker(t,Is)}},Rs="AI_TypeValidationError",Ns=`vercel.ai.error.${Rs}`,Fo=Symbol.for(Ns),js,Ms,da=class zr extends(Ms=Xe,js=Fo,Ms){constructor({value:e,cause:a}){super({name:Rs,message:`Type validation failed: Value: ${JSON.stringify(e)}.
3
3
  Error message: ${xs(a)}`,cause:a}),this[js]=!0,this.value=e}static isInstance(e){return Xe.hasMarker(e,Ns)}static wrap({value:e,cause:a}){return zr.isInstance(a)&&a.value===e?a:new zr({value:e,cause:a})}},Ps=class extends Error{constructor(t,e){super(t),this.name="ParseError",this.type=e.type,this.field=e.field,this.value=e.value,this.line=e.line}};function Wa(t){}function zo(t){if(typeof t=="function")throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:e=Wa,onError:a=Wa,onRetry:r=Wa,onComment:s}=t,n="",o=!0,i,l="",d="";function u(g){let p=o?g.replace(/^\xEF\xBB\xBF/,""):g,[h,v]=Uo(`${n}${p}`);for(let T of h)c(T);n=v,o=!1}function c(g){if(g===""){m();return}if(g.startsWith(":")){s&&s(g.slice(g.startsWith(": ")?2:1));return}let p=g.indexOf(":");if(p!==-1){let h=g.slice(0,p),v=g[p+1]===" "?2:1;f(h,g.slice(p+v),g);return}f(g,"",g)}function f(g,p,h){switch(g){case"event":d=p;break;case"data":l=`${l}${p}
4
4
  `;break;case"id":i=p.includes("\0")?void 0:p;break;case"retry":/^\d+$/.test(p)?r(parseInt(p,10)):a(new Ps(`Invalid \`retry\` value: "${p}"`,{type:"invalid-retry",value:p,line:h}));break;default:a(new Ps(`Unknown field "${g.length>20?`${g.slice(0,20)}\u2026`:g}"`,{type:"unknown-field",field:g,value:p,line:h}));break}}function m(){l.length>0&&e({id:i,event:d||void 0,data:l.endsWith(`
@@ -17,15 +17,15 @@ ${n}
17
17
 
18
18
  `;return a.outputType==="text"&&a.processedContent?i+=`Output:
19
19
  ${a.processedContent}`:a.outputType==="media"&&(i+=`Media Output: Contains ${a.output.mimetype} content`,a.imageUrl&&(i+=`
20
- Image URL: ${a.imageUrl}`)),Mt({type:this.contextType,data:o,details:i})}async getAttachments(e){let a=e[0].data.cellId,r=e[0].data.cellName;return bu(e.map(s=>s.data.cellOutput),a,r)}};async function bu(t,e,a){let r=t.filter(n=>n.shouldDownloadImage&&n.outputType==="media");if(r.length===0)return[];let s=r.flatMap(n=>{let o=document.getElementById(ji.create(e));return o?{cellId:e,cellName:a,mimetype:n.output.mimetype,element:o}:(ie.warn(`Output element not found for cell ${e}`),[])});try{return await Promise.all(s.map(async n=>({type:"file",filename:`${a}-output-screenshot`,mediaType:"image/png",url:await _o(n.element)})))}catch(n){return ie.error("Error downloading cell output images:",n),[]}}function jn(t){if(cs(t))return null;let e=t.mimetype,a=vu(e,String(t.data))?"media":"text",r=Ro(t),s,n=!1;return a==="media"&&(typeof t.data=="string"&&t.data.startsWith("data:")||typeof t.data=="string"&&t.data.startsWith("http")?s=t.data:n=!0),{processedContent:r,imageUrl:s,shouldDownloadImage:n,outputType:a,output:t}}function Mn(t,e,a){let{includeConsoleOutput:r=!1}=a||{},s=e.cellRuntime[t],n=e.cellData[t],o=e.cellIds.inOrderIds.indexOf(t),i=Li(n.name,o),l;r&&(l=s.consoleOutputs.map(c=>jn(c)).filter(c=>c!==null));let d,u=s.output;return u&&!cs(u)&&(d=jn(u)??void 0),{cellId:t,cellName:i,cellCode:n.code,cellOutput:d,consoleOutputs:l}}function xu(t){return t.type==="setup-refs"?"The setup cell cannot have references":t.type==="cycle"?"This cell is in a cycle":t.type==="multiple-defs"?`The variable '${t.name}' was defined by another cell`:t.type==="import-star"||t.type==="ancestor-stopped"||t.type==="ancestor-prevented"||t.type==="exception"||t.type==="strict-exception"?t.msg:t.type==="interruption"?"This cell was interrupted and needs to be re-run":t.type==="syntax"||t.type==="unknown"||t.type==="sql-error"?t.msg:t.type==="internal"?t.msg||"An internal error occurred":(is(t),"Unknown error")}var Pn=new Ei("error","errors"),wu=class extends Pt{constructor(e){super();L(this,"title","Errors");L(this,"mentionPrefix","@");L(this,"contextType","error");this.store=e}getItems(){let e=this.store.get(Pi);return e.length===0?[]:[{uri:this.asURI("all"),name:"Errors",type:this.contextType,data:{type:"all-errors",errors:e.map(a=>({cellId:a.cellId,cellName:a.cellName,errorData:a.output.data}))},description:"All errors in the notebook"}]}formatCompletion(e){return e.data.type==="all-errors"?{label:"@Errors",displayLabel:"Errors",detail:`${e.data.errors.length} ${Pn.pluralize(e.data.errors.length)}`,type:"error",apply:"@Errors",section:wt.ERROR,info:()=>{let a=document.createElement("div");a.classList.add("mo-cm-tooltip","docs-documentation","min-w-[200px]","flex","flex-col","gap-1","p-2");let r=document.createElement("div");r.classList.add("flex","flex-col","gap-1");let s=document.createElement("div");s.classList.add("font-bold","text-base"),s.textContent="Errors",r.append(s);let n=document.createElement("div");return n.classList.add("text-sm","text-muted-foreground"),n.textContent=`${e.data.errors.length} ${Pn.pluralize(e.data.errors.length)}`,r.append(n),a.append(r),a}}:{label:"Error",displayLabel:"Error",section:wt.ERROR}}formatContext(e){let{data:a}=e;return a.errors.map(r=>Mt({type:this.contextType,data:{name:r.cellName||`Cell ${r.cellId}`,description:r.errorData.map(s=>xu(s)).join(`
20
+ Image URL: ${a.imageUrl}`)),Mt({type:this.contextType,data:o,details:i})}async getAttachments(e){let a=e[0].data.cellId,r=e[0].data.cellName;return bu(e.map(s=>s.data.cellOutput),a,r)}};async function bu(t,e,a){let r=t.filter(n=>n.shouldDownloadImage&&n.outputType==="media");if(r.length===0)return[];let s=r.flatMap(n=>{let o=document.getElementById(Ai.create(e));return o?{cellId:e,cellName:a,mimetype:n.output.mimetype,element:o}:(ie.warn(`Output element not found for cell ${e}`),[])});try{return await Promise.all(s.map(async n=>({type:"file",filename:`${a}-output-screenshot`,mediaType:"image/png",url:await _o(n.element)})))}catch(n){return ie.error("Error downloading cell output images:",n),[]}}function jn(t){if(cs(t))return null;let e=t.mimetype,a=vu(e,String(t.data))?"media":"text",r=Ro(t),s,n=!1;return a==="media"&&(typeof t.data=="string"&&t.data.startsWith("data:")||typeof t.data=="string"&&t.data.startsWith("http")?s=t.data:n=!0),{processedContent:r,imageUrl:s,shouldDownloadImage:n,outputType:a,output:t}}function Mn(t,e,a){let{includeConsoleOutput:r=!1}=a||{},s=e.cellRuntime[t],n=e.cellData[t],o=e.cellIds.inOrderIds.indexOf(t),i=$i(n.name,o),l;r&&(l=s.consoleOutputs.map(c=>jn(c)).filter(c=>c!==null));let d,u=s.output;return u&&!cs(u)&&(d=jn(u)??void 0),{cellId:t,cellName:i,cellCode:n.code,cellOutput:d,consoleOutputs:l}}function xu(t){return t.type==="setup-refs"?"The setup cell cannot have references":t.type==="cycle"?"This cell is in a cycle":t.type==="multiple-defs"?`The variable '${t.name}' was defined by another cell`:t.type==="import-star"||t.type==="ancestor-stopped"||t.type==="ancestor-prevented"||t.type==="exception"||t.type==="strict-exception"?t.msg:t.type==="interruption"?"This cell was interrupted and needs to be re-run":t.type==="syntax"||t.type==="unknown"||t.type==="sql-error"?t.msg:t.type==="internal"?t.msg||"An internal error occurred":(is(t),"Unknown error")}var Pn=new Ei("error","errors"),wu=class extends Pt{constructor(e){super();L(this,"title","Errors");L(this,"mentionPrefix","@");L(this,"contextType","error");this.store=e}getItems(){let e=this.store.get(Li);return e.length===0?[]:[{uri:this.asURI("all"),name:"Errors",type:this.contextType,data:{type:"all-errors",errors:e.map(a=>({cellId:a.cellId,cellName:a.cellName,errorData:a.output.data}))},description:"All errors in the notebook"}]}formatCompletion(e){return e.data.type==="all-errors"?{label:"@Errors",displayLabel:"Errors",detail:`${e.data.errors.length} ${Pn.pluralize(e.data.errors.length)}`,type:"error",apply:"@Errors",section:wt.ERROR,info:()=>{let a=document.createElement("div");a.classList.add("mo-cm-tooltip","docs-documentation","min-w-[200px]","flex","flex-col","gap-1","p-2");let r=document.createElement("div");r.classList.add("flex","flex-col","gap-1");let s=document.createElement("div");s.classList.add("font-bold","text-base"),s.textContent="Errors",r.append(s);let n=document.createElement("div");return n.classList.add("text-sm","text-muted-foreground"),n.textContent=`${e.data.errors.length} ${Pn.pluralize(e.data.errors.length)}`,r.append(n),a.append(r),a}}:{label:"Error",displayLabel:"Error",section:wt.ERROR}}formatContext(e){let{data:a}=e;return a.errors.map(r=>Mt({type:this.contextType,data:{name:r.cellName||`Cell ${r.cellId}`,description:r.errorData.map(s=>xu(s)).join(`
21
21
  `)}})).join(`
22
22
 
23
23
  `)}};const Ln=Ci();var ku={maxDepth:3,maxResults:20,defaultResultsLimit:5,includeDirectories:!1},Cu=class extends Pt{constructor(e,a=ku){super();L(this,"title","Files");L(this,"mentionPrefix","#");L(this,"contextType","file");L(this,"searchFiles",async(e,a={})=>{let{maxDepth:r,maxResults:s,includeDirectories:n}={...this.config,...a};return(await this.apiRequests.sendSearchFiles({query:e,includeFiles:!0,includeDirectories:n,depth:r,limit:s})).files});this.apiRequests=e,this.config=a}createCompletionSource(){return async e=>{let a=e.matchBefore(/#[^\s#]*/);if(!a)return null;let r=a.text;if(!r.startsWith("#"))return null;let s=r.slice(1);if(s.length===0)return this.getDefaultCompletions(a);try{let n=(await this.searchFiles(s)||[]).map(o=>{let i={uri:this.asURI(o.path),name:o.name,type:this.contextType,description:o.isDirectory?"Directory":"File",data:{path:o.path,isDirectory:o.isDirectory}};return this.formatCompletion(i)});return{from:a.from,options:n}}catch(n){return ie.error("Failed to search files:",n),null}}}async getDefaultCompletions(e){try{for(let a of["py","md","csv"])try{let r=await this.searchFiles(a,{maxDepth:1,maxResults:5});if(r&&r.length>0){let s=r.map(n=>{let o={uri:this.asURI(n.path),name:n.name,type:this.contextType,description:n.isDirectory?"Directory":"File",data:{path:n.path,isDirectory:n.isDirectory}};return this.formatCompletion(o)});return{from:e.from,options:s}}}catch(r){ie.error("Failed to get default file completions:",r)}return{from:e.from,options:[]}}catch(a){return ie.error("Failed to get default file completions:",a),null}}getItems(){return[]}formatCompletion(e){let{data:a,name:r}=e,s=a.isDirectory?"\u{1F4C1}":"\u{1F4C4}";return{...this.createBasicCompletion(e),type:"file",section:wt.FILE,boost:a.isDirectory?kt.MEDIUM:kt.LOW,detail:a.path,displayLabel:`${s} ${r}`,apply:async(n,o,i,l)=>{var m;let d=(m=n.state.facet(Ln))==null?void 0:m.addAttachment;if(!d){ie.warn("No addAttachment callback provided");return}let u=await this.apiRequests.sendFileDetails({path:a.path}).catch(b=>(Va({title:"Failed to get file details",description:b.message}),null));if(!u)return;let c=u.mimeType||"text/plain",f;if(c.startsWith("text/")||c.includes("json")||c.includes("xml"))f=new Blob([u.contents||""],{type:c});else if(u.contents)try{f=Oo(co(u.contents,c))}catch{f=new Blob([u.contents],{type:c})}else f=new Blob([""],{type:c});d(new File([f],r,{type:c})),n.dispatch({changes:{from:i,to:l,insert:""}}),io(n)},info:()=>{let n=document.createElement("div");n.classList.add("flex","flex-col","gap-1","p-2");let o=document.createElement("div");o.classList.add("font-bold"),o.textContent=r,n.append(o);let i=document.createElement("div");return i.classList.add("text-xs","text-muted-foreground"),i.textContent=a.path,n.append(i),n}}}formatContext(e){let{data:a,name:r}=e;return Mt({type:this.contextType,data:{name:r,path:a.path,isDirectory:a.isDirectory},details:a.isDirectory?"Directory containing files and subdirectories":"File"})}},Eu=class extends Pt{constructor(e){super();L(this,"title","Tables");L(this,"mentionPrefix","@");L(this,"contextType","data");this.tablesMap=e}getItems(){return[...this.tablesMap.entries()].map(([e,a])=>({uri:this.asURI(e),name:e,type:this.contextType,description:a.source==="memory"?"in-memory":a.source,data:a}))}formatContext(e){let{data:a}=e,{columns:r,source:s,num_rows:n,num_columns:o,name:i,variable_name:l}=a,d=[n==null?void 0:`${n} rows`,o==null?void 0:`${o} columns`].filter(Boolean).join(", "),u="";if(d&&(u+=`Shape: ${d}
24
24
  `),l&&(u+=`Variable: ${l}
25
25
  `),r&&r.length>0){u+=`Columns:
26
26
  `;for(let c of r){let f=` ${c.name} (${c.type})`;if(c.sample_values&&c.sample_values.length>0){let m=c.sample_values.slice(0,3).map(b=>b===null?"null":String(b)).join(", ");f+=` - samples: [${m}]`}u+=`${f}
27
- `}}return Mt({type:this.contextType,data:{name:i,source:s??"unknown"},details:u.trim()})}formatCompletion(e){let a=e.data.name,r=e.data;return{label:`@${a}`,displayLabel:a,detail:r.source==="memory"?"in-memory":r.source,boost:r.source_type==="local"?kt.LOCAL_TABLE:kt.REMOTE_TABLE,type:ts(r),apply:`@${a}`,section:{name:ts(r)==="dataframe"?"Dataframe":"Table",rank:wt.TABLE.rank},info:()=>this.createTableInfoElement(a,r)}}createTableInfoElement(e,a){let r=document.createElement("div");r.classList.add("mo-cm-tooltip","docs-documentation","min-w-[200px]","flex","flex-col","gap-1","p-2");let s=document.createElement("div");s.classList.add("flex","flex-col","gap-1");let n=document.createElement("div");if(n.classList.add("font-bold","text-base"),n.textContent=e,s.append(n),a.source){let i=document.createElement("div");i.classList.add("text-xs","text-muted-foreground"),i.textContent=`Source: ${a.source}`,s.append(i)}r.append(s);let o=[a.num_rows==null?void 0:`${a.num_rows} rows`,a.num_columns==null?void 0:`${a.num_columns} columns`].filter(Boolean).join(", ");if(o){let i=document.createElement("div");i.classList.add("text-xs","bg-muted","px-2","py-1","rounded"),i.textContent=o,r.append(i)}if(a.columns&&a.columns.length>0){let i=document.createElement("div");i.classList.add("overflow-auto","max-h-60");let l=document.createElement("table");l.classList.add("w-full","text-xs","border-collapse");let d=l.insertRow();d.classList.add("bg-muted");let u=d.insertCell();u.classList.add("p-2","font-medium","text-left"),u.textContent="Column";let c=d.insertCell();c.classList.add("p-2","font-medium","text-left"),c.textContent="Type";let f=a.columns.some(b=>this.getItemMetadata(a,b)!==void 0),m;f&&(m=d.insertCell(),m.classList.add("p-2","font-medium","text-left"),m.textContent="Metadata"),a.columns.forEach((b,g)=>{let p=l.insertRow();p.classList.add(g%2==0?"bg-background":"bg-muted/30");let h=p.insertCell();h.classList.add("p-2","font-mono"),h.textContent=b.name;let v=p.insertCell();if(v.classList.add("p-2","text-muted-foreground"),v.textContent=b.type,f){let T=p.insertCell();T.classList.add("p-2");let C=this.getItemMetadata(a,b);C&&T.append(C)}}),i.append(l),r.append(i)}return r}getItemMetadata(e,a){var n,o;let r=(n=e.primary_keys)==null?void 0:n.includes(a.name),s=(o=e.indexes)==null?void 0:o.includes(a.name);if(r||s){let i=document.createElement("span");i.textContent=r?"PK":"IDX";let l=r?"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200":"bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200";return i.classList.add("text-xs","px-1.5","py-0.5","rounded-full","font-medium",...l.split(" ")),i}}},Tu=class extends Pt{constructor(e,a){super();L(this,"title","Variables");L(this,"mentionPrefix","@");L(this,"contextType","variable");this.variables=e,this.tablesMap=a}getItems(){let e=new Set(this.tablesMap.keys());return Object.entries(this.variables).flatMap(([a,r])=>e.has(a)?[]:[{uri:this.asURI(a),name:a,type:this.contextType,description:r.dataType??"",dataType:r.dataType,data:{variable:r}}])}formatCompletion(e){let{data:a}=e,{variable:r}=a;return{label:`@${r.name}`,displayLabel:r.name,detail:r.dataType??"",type:this.contextType,section:wt.VARIABLE,info:()=>Si(r)}}formatContext(e){let{data:a}=e,{variable:r}=a;return Mt({type:this.contextType,data:{name:r.name,dataType:r.dataType},details:r.value==null?void 0:JSON.stringify(r.value)})}};function pt(t){let e=t.get(Ai),a=t.get(Mi),r=t.get(Ii);return new Co().register(new Eu(a)).register(new Tu(r,a)).register(new wu(t)).register(new _u(t)).register(new Eo(e.connectionsMap,a))}function Iu(){return new Cu(uo())}const Su="@";function Au({input:t}){let e="";return t.includes("@")&&(e=Ru(t),ie.debug("Included context",e)),{includeOtherCode:Xr(""),context:{plainText:e,schema:[],variables:[]}}}async function Ou({input:t}){let e="",a=[];if(t.includes("@")){let r=pt(Yr),s=r.parseAllContextIds(t);e=r.formatContextForAI(s);try{a=await r.getAttachmentsForContext(s),ie.debug("Included attachments",a.length)}catch(n){ie.error("Error getting attachments:",n)}}return{body:{includeOtherCode:Xr(""),context:{plainText:e,schema:[],variables:[]}},attachments:a}}function Ru(t){let e=pt(Yr),a=e.parseAllContextIds(t);return e.formatContextForAI(a)}function Nu(t,e=[]){return a=>{let r=t.map(s=>a.matchBefore(s)).find(Boolean);return!r||r&&r.from===r.to&&!a.explicit?null:{from:r==null?void 0:r.from,options:[...e]}}}function $n(t){var e;if((e=t.current)!=null&&e.view){let a=t.current.view.state.selection.main.from;t.current.view.dispatch({changes:{from:a,to:a,insert:"@"},selection:{anchor:a+1,head:a+1}}),t.current.view.focus(),so(t.current.view)}}function ju(t){if(t.trim().length===0)return[];if(!t.includes("```"))return[{language:"python",code:t}];let e=[],a=0,r=t.indexOf("```",a);for(;r!==-1;){let s=t.indexOf(`
28
- `,r);if(s===-1){let d=t.slice(r+3),u=d.indexOf(" "),c=u===-1?d:d.slice(0,u),f=c==="markdown"?"markdown":c==="sql"?"sql":"python",m=u===-1?"":d.slice(u+1);m.trim()&&e.push({language:f,code:m.trim()});break}let n=t.slice(r+3,s).trim()||"";n=n==="markdown"?"markdown":n==="sql"?"sql":"python";let o=s+1,i=t.indexOf("```",o);if(i===-1){let d=t.slice(o).replace(/\n+$/,"");d.trim()&&e.push({language:n,code:d});break}let l=t.slice(o,i).replace(/\n+$/,"");l.trim()&&e.push({language:n,code:l}),a=i+3,r=t.indexOf("```",a)}return e.length===0&&e.push({language:"python",code:t}),e}var Mu=jt(),Dn=()=>new Map,{valueAtom:qt,useActions:Zn,createActions:Ip,reducer:Sp}=ro(Dn,{addStagedCell:(t,e)=>{let{cellId:a,edit:r}=e;return new Map([...t,[a,r]])},removeStagedCell:(t,e)=>{let a=new Map(t);return a.delete(e),a},clearStagedCells:()=>Dn()});function Fn(t){let e=(0,Mu.c)(27),{addStagedCell:a,removeStagedCell:r,clearStagedCells:s}=Zn(),{createNewCell:n,updateCellCode:o}=Qr(),i=No(),l=(0,A.useRef)(null),d;e[0]!==a||e[1]!==n?(d=C=>{let S=es.create();return a({cellId:S,edit:{type:"add_cell"}}),n({cellId:"__end__",code:C,before:!1,newCellId:S}),S},e[0]=a,e[1]=n,e[2]=d):d=e[2];let u=d,c;e[3]!==t||e[4]!==o?(c=C=>{let{cellId:S,code:P}=C;if(!t.get(qt).has(S)){ie.error("Staged cell not found",{cellId:S});return}let D=Ri(S);D?Fa(D,P):o({cellId:S,code:P,formattingChange:!1})},e[3]=t,e[4]=o,e[5]=c):c=e[5];let f=c,m;e[6]!==i||e[7]!==r?(m=C=>{r(C),i({cellId:C})},e[6]=i,e[7]=r,e[8]=m):m=e[8];let b=m,g;e[9]!==s||e[10]!==i||e[11]!==t?(g=()=>{let C=t.get(qt);for(let S of C.keys())i({cellId:S});s()},e[9]=s,e[10]=i,e[11]=t,e[12]=g):g=e[12];let p=g,h;e[13]!==a||e[14]!==n||e[15]!==u||e[16]!==f?(h=C=>{e:switch(C.type){case"text-start":l.current=new Pu(u,f,a,n);break e;case"text-delta":if(!l.current){ie.error("Cell creation stream not found");return}l.current.stream(C);break e;case"text-end":case"finish":if(!l.current){ie.error("Cell creation stream not found");return}l.current.stop();break e;case"abort":case"error":case"tool-input-error":case"tool-output-error":ie.error("Error",C.type,{chunk:C});break e;case"start":case"start-step":case"finish-step":case"data-reasoning-signature":break e;case"message-metadata":case"tool-input-available":case"tool-output-available":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"file":case"source-document":case"source-url":case"tool-input-start":case"tool-input-delta":ie.debug(C.type,{chunk:C});break e;default:if(Lu(C)){ie.debug("Data chunk",{chunk:C});break e}is(C)}},e[13]=a,e[14]=n,e[15]=u,e[16]=f,e[17]=h):h=e[17];let v=h,T;return e[18]!==a||e[19]!==s||e[20]!==u||e[21]!==p||e[22]!==b||e[23]!==v||e[24]!==r||e[25]!==f?(T={createStagedCell:u,updateStagedCell:f,addStagedCell:a,removeStagedCell:r,clearStagedCells:s,deleteStagedCell:b,deleteAllStagedCells:p,onStream:v},e[18]=a,e[19]=s,e[20]=u,e[21]=p,e[22]=b,e[23]=v,e[24]=r,e[25]=f,e[26]=T):T=e[26],T}var Pu=class{constructor(t,e,a,r){L(this,"createdCells",[]);L(this,"buffer","");L(this,"hasMarimoImport",!1);this.onCreateCell=t,this.onUpdateCell=e,this.addStagedCell=a,this.createNewCell=r}stream(t){let e=t.delta;this.buffer+=e;let a=ju(this.buffer);for(let[r,s]of a.entries())if(r<this.createdCells.length){this.addMarimoImport(s.language);let n=this.createdCells[r];this.createdCells[r]={...n,cell:s},this.onUpdateCell({cellId:n.cellId,code:s.code,language:s.language})}else{let n=this.onCreateCell(s.code);this.createdCells.push({cellId:n,cell:s})}}addMarimoImport(t){var a;if(this.hasMarimoImport||t==="python")return;let e=vo({autoInstantiate:!1,createNewCell:this.createNewCell,fromCellId:(a=this.createdCells[0])==null?void 0:a.cellId,before:!0});e&&this.addStagedCell({cellId:e,edit:{type:"add_cell"}}),this.hasMarimoImport=!0}stop(){this.buffer=""}};function Lu(t){return t.type.startsWith("data-")}var $u={baseDescription:"Perform editing operations on the current notebook. You should prefer to create new cells unless you need to edit existing cells. Call this tool multiple times to perform multiple edits. Separate code into logical individual cells to take advantage of the notebook's reactive execution model.",prerequisites:["If you are updating existing cells, you need the cellIds. If they are not known, call the lightweight_cell_map_tool to find out."],additionalInfo:`
27
+ `}}return Mt({type:this.contextType,data:{name:i,source:s??"unknown"},details:u.trim()})}formatCompletion(e){let a=e.data.name,r=e.data;return{label:`@${a}`,displayLabel:a,detail:r.source==="memory"?"in-memory":r.source,boost:r.source_type==="local"?kt.LOCAL_TABLE:kt.REMOTE_TABLE,type:ts(r),apply:`@${a}`,section:{name:ts(r)==="dataframe"?"Dataframe":"Table",rank:wt.TABLE.rank},info:()=>this.createTableInfoElement(a,r)}}createTableInfoElement(e,a){let r=document.createElement("div");r.classList.add("mo-cm-tooltip","docs-documentation","min-w-[200px]","flex","flex-col","gap-1","p-2");let s=document.createElement("div");s.classList.add("flex","flex-col","gap-1");let n=document.createElement("div");if(n.classList.add("font-bold","text-base"),n.textContent=e,s.append(n),a.source){let i=document.createElement("div");i.classList.add("text-xs","text-muted-foreground"),i.textContent=`Source: ${a.source}`,s.append(i)}r.append(s);let o=[a.num_rows==null?void 0:`${a.num_rows} rows`,a.num_columns==null?void 0:`${a.num_columns} columns`].filter(Boolean).join(", ");if(o){let i=document.createElement("div");i.classList.add("text-xs","bg-muted","px-2","py-1","rounded"),i.textContent=o,r.append(i)}if(a.columns&&a.columns.length>0){let i=document.createElement("div");i.classList.add("overflow-auto","max-h-60");let l=document.createElement("table");l.classList.add("w-full","text-xs","border-collapse");let d=l.insertRow();d.classList.add("bg-muted");let u=d.insertCell();u.classList.add("p-2","font-medium","text-left"),u.textContent="Column";let c=d.insertCell();c.classList.add("p-2","font-medium","text-left"),c.textContent="Type";let f=a.columns.some(b=>this.getItemMetadata(a,b)!==void 0),m;f&&(m=d.insertCell(),m.classList.add("p-2","font-medium","text-left"),m.textContent="Metadata"),a.columns.forEach((b,g)=>{let p=l.insertRow();p.classList.add(g%2==0?"bg-background":"bg-muted/30");let h=p.insertCell();h.classList.add("p-2","font-mono"),h.textContent=b.name;let v=p.insertCell();if(v.classList.add("p-2","text-muted-foreground"),v.textContent=b.type,f){let T=p.insertCell();T.classList.add("p-2");let C=this.getItemMetadata(a,b);C&&T.append(C)}}),i.append(l),r.append(i)}return r}getItemMetadata(e,a){var n,o;let r=(n=e.primary_keys)==null?void 0:n.includes(a.name),s=(o=e.indexes)==null?void 0:o.includes(a.name);if(r||s){let i=document.createElement("span");i.textContent=r?"PK":"IDX";let l=r?"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200":"bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-200";return i.classList.add("text-xs","px-1.5","py-0.5","rounded-full","font-medium",...l.split(" ")),i}}},Tu=class extends Pt{constructor(e,a){super();L(this,"title","Variables");L(this,"mentionPrefix","@");L(this,"contextType","variable");this.variables=e,this.tablesMap=a}getItems(){let e=new Set(this.tablesMap.keys());return Object.entries(this.variables).flatMap(([a,r])=>e.has(a)?[]:[{uri:this.asURI(a),name:a,type:this.contextType,description:r.dataType??"",dataType:r.dataType,data:{variable:r}}])}formatCompletion(e){let{data:a}=e,{variable:r}=a;return{label:`@${r.name}`,displayLabel:r.name,detail:r.dataType??"",type:this.contextType,section:wt.VARIABLE,info:()=>Si(r)}}formatContext(e){let{data:a}=e,{variable:r}=a;return Mt({type:this.contextType,data:{name:r.name,dataType:r.dataType},details:r.value==null?void 0:JSON.stringify(r.value)})}};function pt(t){let e=t.get(Oi),a=t.get(Pi),r=t.get(Ii);return new Co().register(new Eu(a)).register(new Tu(r,a)).register(new wu(t)).register(new _u(t)).register(new Eo(e.connectionsMap,a))}function Iu(){return new Cu(uo())}const Su="@";function Au({input:t}){let e="";return t.includes("@")&&(e=Ru(t),ie.debug("Included context",e)),{includeOtherCode:Xr(""),context:{plainText:e,schema:[],variables:[]}}}async function Ou({input:t}){let e="",a=[];if(t.includes("@")){let r=pt(Yr),s=r.parseAllContextIds(t);e=r.formatContextForAI(s);try{a=await r.getAttachmentsForContext(s),ie.debug("Included attachments",a.length)}catch(n){ie.error("Error getting attachments:",n)}}return{body:{includeOtherCode:Xr(""),context:{plainText:e,schema:[],variables:[]}},attachments:a}}function Ru(t){let e=pt(Yr),a=e.parseAllContextIds(t);return e.formatContextForAI(a)}function Nu(t,e=[]){return a=>{let r=t.map(s=>a.matchBefore(s)).find(Boolean);return!r||r&&r.from===r.to&&!a.explicit?null:{from:r==null?void 0:r.from,options:[...e]}}}function $n(t){var e;if((e=t.current)!=null&&e.view){let a=t.current.view.state.selection.main.from;t.current.view.dispatch({changes:{from:a,to:a,insert:"@"},selection:{anchor:a+1,head:a+1}}),t.current.view.focus(),so(t.current.view)}}function ju(t){if(t.trim().length===0)return[];if(!t.includes("```"))return[{language:"python",code:t}];let e=[],a=0,r=t.indexOf("```",a);for(;r!==-1;){let s=t.indexOf(`
28
+ `,r);if(s===-1){let d=t.slice(r+3),u=d.indexOf(" "),c=u===-1?d:d.slice(0,u),f=c==="markdown"?"markdown":c==="sql"?"sql":"python",m=u===-1?"":d.slice(u+1);m.trim()&&e.push({language:f,code:m.trim()});break}let n=t.slice(r+3,s).trim()||"";n=n==="markdown"?"markdown":n==="sql"?"sql":"python";let o=s+1,i=t.indexOf("```",o);if(i===-1){let d=t.slice(o).replace(/\n+$/,"");d.trim()&&e.push({language:n,code:d});break}let l=t.slice(o,i).replace(/\n+$/,"");l.trim()&&e.push({language:n,code:l}),a=i+3,r=t.indexOf("```",a)}return e.length===0&&e.push({language:"python",code:t}),e}var Mu=jt(),Dn=()=>new Map,{valueAtom:qt,useActions:Zn,createActions:Ip,reducer:Sp}=ro(Dn,{addStagedCell:(t,e)=>{let{cellId:a,edit:r}=e;return new Map([...t,[a,r]])},removeStagedCell:(t,e)=>{let a=new Map(t);return a.delete(e),a},clearStagedCells:()=>Dn()});function Fn(t){let e=(0,Mu.c)(27),{addStagedCell:a,removeStagedCell:r,clearStagedCells:s}=Zn(),{createNewCell:n,updateCellCode:o}=Qr(),i=No(),l=(0,A.useRef)(null),d;e[0]!==a||e[1]!==n?(d=C=>{let S=es.create();return a({cellId:S,edit:{type:"add_cell"}}),n({cellId:"__end__",code:C,before:!1,newCellId:S}),S},e[0]=a,e[1]=n,e[2]=d):d=e[2];let u=d,c;e[3]!==t||e[4]!==o?(c=C=>{let{cellId:S,code:P}=C;if(!t.get(qt).has(S)){ie.error("Staged cell not found",{cellId:S});return}let D=ji(S);D?Fa(D,P):o({cellId:S,code:P,formattingChange:!1})},e[3]=t,e[4]=o,e[5]=c):c=e[5];let f=c,m;e[6]!==i||e[7]!==r?(m=C=>{r(C),i({cellId:C})},e[6]=i,e[7]=r,e[8]=m):m=e[8];let b=m,g;e[9]!==s||e[10]!==i||e[11]!==t?(g=()=>{let C=t.get(qt);for(let S of C.keys())i({cellId:S});s()},e[9]=s,e[10]=i,e[11]=t,e[12]=g):g=e[12];let p=g,h;e[13]!==a||e[14]!==n||e[15]!==u||e[16]!==f?(h=C=>{e:switch(C.type){case"text-start":l.current=new Pu(u,f,a,n);break e;case"text-delta":if(!l.current){ie.error("Cell creation stream not found");return}l.current.stream(C);break e;case"text-end":case"finish":if(!l.current){ie.error("Cell creation stream not found");return}l.current.stop();break e;case"abort":case"error":case"tool-input-error":case"tool-output-error":ie.error("Error",C.type,{chunk:C});break e;case"start":case"start-step":case"finish-step":case"data-reasoning-signature":break e;case"message-metadata":case"tool-input-available":case"tool-output-available":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"file":case"source-document":case"source-url":case"tool-input-start":case"tool-input-delta":ie.debug(C.type,{chunk:C});break e;default:if(Lu(C)){ie.debug("Data chunk",{chunk:C});break e}is(C)}},e[13]=a,e[14]=n,e[15]=u,e[16]=f,e[17]=h):h=e[17];let v=h,T;return e[18]!==a||e[19]!==s||e[20]!==u||e[21]!==p||e[22]!==b||e[23]!==v||e[24]!==r||e[25]!==f?(T={createStagedCell:u,updateStagedCell:f,addStagedCell:a,removeStagedCell:r,clearStagedCells:s,deleteStagedCell:b,deleteAllStagedCells:p,onStream:v},e[18]=a,e[19]=s,e[20]=u,e[21]=p,e[22]=b,e[23]=v,e[24]=r,e[25]=f,e[26]=T):T=e[26],T}var Pu=class{constructor(t,e,a,r){L(this,"createdCells",[]);L(this,"buffer","");L(this,"hasMarimoImport",!1);this.onCreateCell=t,this.onUpdateCell=e,this.addStagedCell=a,this.createNewCell=r}stream(t){let e=t.delta;this.buffer+=e;let a=ju(this.buffer);for(let[r,s]of a.entries())if(r<this.createdCells.length){this.addMarimoImport(s.language);let n=this.createdCells[r];this.createdCells[r]={...n,cell:s},this.onUpdateCell({cellId:n.cellId,code:s.code,language:s.language})}else{let n=this.onCreateCell(s.code);this.createdCells.push({cellId:n,cell:s})}}addMarimoImport(t){var a;if(this.hasMarimoImport||t==="python")return;let e=vo({autoInstantiate:!1,createNewCell:this.createNewCell,fromCellId:(a=this.createdCells[0])==null?void 0:a.cellId,before:!0});e&&this.addStagedCell({cellId:e,edit:{type:"add_cell"}}),this.hasMarimoImport=!0}stop(){this.buffer=""}};function Lu(t){return t.type.startsWith("data-")}var $u={baseDescription:"Perform editing operations on the current notebook. You should prefer to create new cells unless you need to edit existing cells. Call this tool multiple times to perform multiple edits. Separate code into logical individual cells to take advantage of the notebook's reactive execution model.",prerequisites:["If you are updating existing cells, you need the cellIds. If they are not known, call the lightweight_cell_map_tool to find out."],additionalInfo:`
29
29
  Args:
30
30
  edit (object): The editing operation to perform with the following structure:
31
31
  - type: One of "update_cell", "add_cell", or "delete_cell"
@@ -49,7 +49,7 @@ Image URL: ${a.imageUrl}`)),Mt({type:this.contextType,data:o,details:i})}async g
49
49
  - SQL cells: use mo.sql(f"""{content}""") function to insert content. If a database engine is specified, use mo.sql(f"""{content}""", engine=engine) instead.
50
50
 
51
51
  Returns:
52
- - A result object containing standard tool metadata.`},Du=H({edit:H({type:aa(["update_cell","add_cell","delete_cell"]),code:E().optional(),position:H({type:aa(["relative","column_end","notebook_end"]).optional(),cellId:E().optional(),columnIndex:ss().optional(),before:ce().optional()})})}),Zu=class{constructor(){L(this,"name","edit_notebook_tool");L(this,"description",$u);L(this,"schema",Du);L(this,"outputSchema",Nn);L(this,"mode",["agent"]);L(this,"handler",async({edit:t},e)=>{let{addStagedCell:a,createNewCell:r,store:s}=e;switch(t.type){case"update_cell":{let{position:n,code:o}=t,i=n.cellId;if(i){if(!o)throw new xe("Code is required for update_cell","CODE_REQUIRED_FOR_UPDATE_CELL",!0,"Provide the new code to update the cell")}else throw new xe("Cell ID is required for update_cell","CELL_ID_REQUIRED_FOR_UPDATE_CELL",!0,"Provide a cell ID to update");let l=s.get(Ge);this.validateCellIdExists(i,l);let d=this.getCellEditorView(i,l);Ba(i);let u=s.get(qt).get(i);if((u==null?void 0:u.type)==="add_cell"){Fa(d,o);break}let c=d.state.doc.toString(),f=(u==null?void 0:u.previousCode)??c;if(o===f)break;a({cellId:i,edit:{type:"update_cell",previousCode:f}}),Fa(d,o);break}case"add_cell":{let{position:n,code:o}=t,i="__end__",l=!1,d=es.create(),u=s.get(Ge);switch(n.type){case"relative":{let c=n.cellId;if(!c)throw new xe("Cell ID is required for add_cell with relative position","TOOL_ERROR",!0,"Provide a cell ID to add the cell before");if(n.before===void 0)throw new xe("Before is required for add_cell with relative position","TOOL_ERROR",!0,`Provide a boolean value for before, true to add before cell ${c}, false to add after the cell`);this.validateCellIdExists(c,u),i=c,l=n.before;break}case"column_end":if(!n.columnIndex)throw new xe("Column index is required for add_cell with column_end position","TOOL_ERROR",!0,"Provide a column index to add the cell at the end of");i={type:"__end__",columnId:this.getColumnId(n.columnIndex,u)};break;case"notebook_end":break}r({cellId:i,before:l,code:o,newCellId:d}),a({cellId:d,edit:{type:"add_cell"}}),Ba(d);break}case"delete_cell":{let{position:n}=t,o=n.cellId;if(!o)throw new xe("Cell ID is required for delete_cell","CELL_ID_REQUIRED_FOR_DELETE_CELL",!0,"Provide a cell ID to delete");let i=s.get(Ge);this.validateCellIdExists(o,i),a({cellId:o,edit:{type:"delete_cell",previousCode:this.getCellEditorView(o,i).state.doc.toString()}}),Ba(o);break}}return{status:"success",next_steps:["If you need to perform more edits, call this tool again.","You should use the lint notebook tool to check for errors and lint issues. Fix them by editing the notebook.","You should use the run stale cells tool to run the cells that have been edited or newly added. This allows you to see the output of the cells and fix any errors."]}})}validateCellIdExists(t,e){if(!e.cellIds.getColumns().some(a=>a.idSet.has(t)))throw new xe("Cell not found","CELL_NOT_FOUND",!1,"Check which cells exist in the notebook")}getColumnId(t,e){let a=e.cellIds.getColumns();if(t<0||t>=a.length)throw new xe("Column index is out of range","COLUMN_INDEX_OUT_OF_RANGE",!0,"Choose a column index between 0 and the number of columns in the notebook (0-based)");return a[t].id}getCellEditorView(t,e){let a=e.cellHandles[t].current;if(!(a!=null&&a.editorView))throw new xe("Cell editor not found","CELL_EDITOR_NOT_FOUND",!1,"Internal error, ask the user to report this error");return a.editorView}},Fu=200,zu=3e4,Uu={baseDescription:"Run cells in the current notebook that are stale. Stale cells are cells that have been edited or newly added. You can run this tool after editing the notebook or when requested. The output of the ran cells will be returned alongside metadata."},zn=H({type:M("file"),url:E(),mediaType:E()}),Vu=class{constructor(t){L(this,"name","run_stale_cells_tool");L(this,"description",Uu);L(this,"schema",H({}));L(this,"outputSchema",Nn.extend({cellsToOutput:Nt(E(),H({consoleOutput:E().optional(),cellOutput:E().optional(),consoleAttachments:ze(zn).optional(),cellAttachments:ze(zn).optional()}).nullable()).optional()}));L(this,"mode",["agent"]);L(this,"handler",async(t,e)=>{let{prepareForRun:a,sendRun:r,store:s}=e,n=s.get(Ge),o=Ti(n);if(o.length===0)return{status:"success",message:"No stale cells found."};if(await Ni({cellIds:o,sendRun:r,prepareForRun:a,notebook:n}),!await this.waitForCellsToFinish(s,o,zu,this.postExecutionDelay))return{status:"success",message:"No output was returned because some cells have not finished executing"};let i=s.get(Ge),l=new Map,d="",u=!1;for(let f of o){let m=Mn(f,i,{includeConsoleOutput:!0}),b,g,p=m.cellOutput,h=m.consoleOutputs,v=h&&h.length>0;if(!p&&!v){l.set(f,null);continue}p&&(b=this.formatOutputString(p),this.outputHasErrors(p)&&(u=!0)),v&&(g=h.map(T=>this.formatOutputString(T)).join(`
52
+ - A result object containing standard tool metadata.`},Du=H({edit:H({type:aa(["update_cell","add_cell","delete_cell"]),code:E().optional(),position:H({type:aa(["relative","column_end","notebook_end"]).optional(),cellId:E().optional(),columnIndex:ss().optional(),before:ce().optional()})})}),Zu=class{constructor(){L(this,"name","edit_notebook_tool");L(this,"description",$u);L(this,"schema",Du);L(this,"outputSchema",Nn);L(this,"mode",["agent"]);L(this,"handler",async({edit:t},e)=>{let{addStagedCell:a,createNewCell:r,store:s}=e;switch(t.type){case"update_cell":{let{position:n,code:o}=t,i=n.cellId;if(i){if(!o)throw new xe("Code is required for update_cell","CODE_REQUIRED_FOR_UPDATE_CELL",!0,"Provide the new code to update the cell")}else throw new xe("Cell ID is required for update_cell","CELL_ID_REQUIRED_FOR_UPDATE_CELL",!0,"Provide a cell ID to update");let l=s.get(Ge);this.validateCellIdExists(i,l);let d=this.getCellEditorView(i,l);Ba(i);let u=s.get(qt).get(i);if((u==null?void 0:u.type)==="add_cell"){Fa(d,o);break}let c=d.state.doc.toString(),f=(u==null?void 0:u.previousCode)??c;if(o===f)break;a({cellId:i,edit:{type:"update_cell",previousCode:f}}),Fa(d,o);break}case"add_cell":{let{position:n,code:o}=t,i="__end__",l=!1,d=es.create(),u=s.get(Ge);switch(n.type){case"relative":{let c=n.cellId;if(!c)throw new xe("Cell ID is required for add_cell with relative position","TOOL_ERROR",!0,"Provide a cell ID to add the cell before");if(n.before===void 0)throw new xe("Before is required for add_cell with relative position","TOOL_ERROR",!0,`Provide a boolean value for before, true to add before cell ${c}, false to add after the cell`);this.validateCellIdExists(c,u),i=c,l=n.before;break}case"column_end":if(!n.columnIndex)throw new xe("Column index is required for add_cell with column_end position","TOOL_ERROR",!0,"Provide a column index to add the cell at the end of");i={type:"__end__",columnId:this.getColumnId(n.columnIndex,u)};break;case"notebook_end":break}r({cellId:i,before:l,code:o,newCellId:d}),a({cellId:d,edit:{type:"add_cell"}}),Ba(d);break}case"delete_cell":{let{position:n}=t,o=n.cellId;if(!o)throw new xe("Cell ID is required for delete_cell","CELL_ID_REQUIRED_FOR_DELETE_CELL",!0,"Provide a cell ID to delete");let i=s.get(Ge);this.validateCellIdExists(o,i),a({cellId:o,edit:{type:"delete_cell",previousCode:this.getCellEditorView(o,i).state.doc.toString()}}),Ba(o);break}}return{status:"success",next_steps:["If you need to perform more edits, call this tool again.","You should use the lint notebook tool to check for errors and lint issues. Fix them by editing the notebook.","You should use the run stale cells tool to run the cells that have been edited or newly added. This allows you to see the output of the cells and fix any errors."]}})}validateCellIdExists(t,e){if(!e.cellIds.getColumns().some(a=>a.idSet.has(t)))throw new xe("Cell not found","CELL_NOT_FOUND",!1,"Check which cells exist in the notebook")}getColumnId(t,e){let a=e.cellIds.getColumns();if(t<0||t>=a.length)throw new xe("Column index is out of range","COLUMN_INDEX_OUT_OF_RANGE",!0,"Choose a column index between 0 and the number of columns in the notebook (0-based)");return a[t].id}getCellEditorView(t,e){let a=e.cellHandles[t].current;if(!(a!=null&&a.editorView))throw new xe("Cell editor not found","CELL_EDITOR_NOT_FOUND",!1,"Internal error, ask the user to report this error");return a.editorView}},Fu=200,zu=3e4,Uu={baseDescription:"Run cells in the current notebook that are stale. Stale cells are cells that have been edited or newly added. You can run this tool after editing the notebook or when requested. The output of the ran cells will be returned alongside metadata."},zn=H({type:M("file"),url:E(),mediaType:E()}),Vu=class{constructor(t){L(this,"name","run_stale_cells_tool");L(this,"description",Uu);L(this,"schema",H({}));L(this,"outputSchema",Nn.extend({cellsToOutput:Nt(E(),H({consoleOutput:E().optional(),cellOutput:E().optional(),consoleAttachments:ze(zn).optional(),cellAttachments:ze(zn).optional()}).nullable()).optional()}));L(this,"mode",["agent"]);L(this,"handler",async(t,e)=>{let{prepareForRun:a,sendRun:r,store:s}=e,n=s.get(Ge),o=Ti(n);if(o.length===0)return{status:"success",message:"No stale cells found."};if(await Mi({cellIds:o,sendRun:r,prepareForRun:a,notebook:n}),!await this.waitForCellsToFinish(s,o,zu,this.postExecutionDelay))return{status:"success",message:"No output was returned because some cells have not finished executing"};let i=s.get(Ge),l=new Map,d="",u=!1;for(let f of o){let m=Mn(f,i,{includeConsoleOutput:!0}),b,g,p=m.cellOutput,h=m.consoleOutputs,v=h&&h.length>0;if(!p&&!v){l.set(f,null);continue}p&&(b=this.formatOutputString(p),this.outputHasErrors(p)&&(u=!0)),v&&(g=h.map(T=>this.formatOutputString(T)).join(`
53
53
  `),d+="Console output represents the stdout or stderr of the cell (eg. print statements).",h.some(T=>this.outputHasErrors(T))&&(u=!0)),l.set(f,{cellOutput:b,consoleOutput:g})}if(l.size===0)return{status:"success",message:"Stale cells have been run. No output was returned."};let c=["Review the output of the cells. The CellId is the key of the result object.",u?"There are errors in the cells. Please fix them by using the edit notebook tool and the given CellIds.":"You may edit the notebook further with the given CellIds."];return{status:"success",cellsToOutput:Object.fromEntries(l),message:d===""?void 0:d,next_steps:c}});this.postExecutionDelay=(t==null?void 0:t.postExecutionDelay)??Fu}outputHasErrors(t){let{output:e}=t;return e.mimetype==="application/vnd.marimo+error"||e.mimetype==="application/vnd.marimo+traceback"}formatOutputString(t){let e="",{outputType:a,processedContent:r,imageUrl:s,output:n}=t;return a==="text"?(e+=`Output:
54
54
  `,r?e+=r:typeof n.data=="string"?e+=n.data:e+=JSON.stringify(n.data)):a==="media"&&(e+=`Media Output: Contains ${n.mimetype} content`,s&&(e+=`
55
55
  Image URL: ${s}`)),e}async waitForCellsToFinish(t,e,a,r){let s=o=>e.every(i=>{let l=o.cellRuntime[i];return(l==null?void 0:l.status)!=="running"&&(l==null?void 0:l.status)!=="queued"}),n=async()=>(r>0&&await new Promise(o=>setTimeout(o,r)),!0);if(s(t.get(Ge)))return await n();try{return await Promise.race([wi(Ge,s),new Promise((o,i)=>setTimeout(()=>i(Error("timeout")),a))]),await n()}catch{return!1}}};function Bu(t){let e=t.baseDescription;return t.whenToUse&&(e+=`
@@ -71,7 +71,7 @@ Image URL: ${s}`)),e}async waitForCellsToFinish(t,e,a,r){let s=o=>e.every(i=>{le
71
71
  - `)}`),t.additionalInfo&&(e+=`
72
72
 
73
73
  ## Additional info:
74
- - ${t.additionalInfo}`),e}var Un,Wt;function qu(t,e,a,r,s){var n={};return Object.keys(r).forEach(function(o){n[o]=r[o]}),n.enumerable=!!n.enumerable,n.configurable=!!n.configurable,("value"in n||n.initializer)&&(n.writable=!0),n=a.slice().reverse().reduce(function(o,i){return i(t,e,o)||o},n),s&&n.initializer!==void 0&&(n.value=n.initializer?n.initializer.call(s):void 0,n.initializer=void 0),n.initializer===void 0?(Object.defineProperty(t,e,n),null):n}const Pr=new(Un=zi(),Wt=class{constructor(t=[]){L(this,"tools",new Map);this.tools=new Map(t.map(e=>[e.name,e]))}has(t){return this.tools.has(t)}getToolOrThrow(t){let e=this.tools.get(t);if(!e)throw Error(`Tool ${t} not found`);return e}async invoke(t,e,a){var i;let r=this.getToolOrThrow(t),s=r.handler,n=r.schema,o=r.outputSchema;try{let l=await n.safeParseAsync(e);if(l.error)throw new xe(`Tool ${t} returned invalid input: ${rs(l.error)}`,"INVALID_ARGUMENTS",!0,"Please check the arguments and try again.");let d=l.data,u=await s(d,a),c=await o.safeParseAsync(u);if(c.error){let f=rs(c.error);throw Error(`Tool ${t} returned invalid output: ${f}`)}return{tool_name:t,result:c.data,error:null}}catch(l){return l instanceof xe?{tool_name:t,result:null,error:l.toStructuredString()}:{tool_name:t,result:null,error:new xe(l instanceof Error?l.message:String(l),"TOOL_ERROR",!1,"Check the error message and try again with valid arguments.",{args:e,errorType:((i=l==null?void 0:l.constructor)==null?void 0:i.name)??typeof l}).toStructuredString()}}}getToolSchemas(t){return[...this.tools.values()].filter(e=>e.mode.includes(t)).map(e=>({name:e.name,description:Bu(e.description),parameters:ns(e.schema),source:"frontend",mode:e.mode}))}},qu(Wt.prototype,"getToolSchemas",[Un],Object.getOwnPropertyDescriptor(Wt.prototype,"getToolSchemas"),Wt.prototype),Wt)([new Zu,new Vu]);function Lr(t,e){return new Promise(a=>{let r=new FileReader;r.readAsDataURL(t),r.onload=s=>{var n;if((n=s.target)!=null&&n.result){let o=s.target.result;a(e==="base64"?o.slice(o.indexOf(",")+1):o)}}})}function Wu(t){return Promise.all(t.map(e=>Lr(e,"base64").then(a=>[e.name,a])))}var Ju=jt();const Vn=new Set(["openai","google","anthropic"]),Ku=["image/*","text/*"];var Yu=1024*1024*50;function Hu(t){return t.length>50?`${t.slice(0,50)}...`:t}async function Bn(t){return await Promise.all(t.map(async e=>({type:"file",mediaType:e.type,filename:e.name,url:await Lr(e,"dataUrl")})))}function Gu(t){if(t.length===0)return!1;let e=t.at(-1);if(!e||e.role!=="assistant"||!e.parts)return!1;let a=e.parts;return a.length===0?!1:a[a.length-1].type==="reasoning"}function Qu(t){return t.map(e=>e.type==="text"?e.text:"").join(`
74
+ - ${t.additionalInfo}`),e}var Un,Wt;function qu(t,e,a,r,s){var n={};return Object.keys(r).forEach(function(o){n[o]=r[o]}),n.enumerable=!!n.enumerable,n.configurable=!!n.configurable,("value"in n||n.initializer)&&(n.writable=!0),n=a.slice().reverse().reduce(function(o,i){return i(t,e,o)||o},n),s&&n.initializer!==void 0&&(n.value=n.initializer?n.initializer.call(s):void 0,n.initializer=void 0),n.initializer===void 0?(Object.defineProperty(t,e,n),null):n}const Pr=new(Un=Ni(),Wt=class{constructor(t=[]){L(this,"tools",new Map);this.tools=new Map(t.map(e=>[e.name,e]))}has(t){return this.tools.has(t)}getToolOrThrow(t){let e=this.tools.get(t);if(!e)throw Error(`Tool ${t} not found`);return e}async invoke(t,e,a){var i;let r=this.getToolOrThrow(t),s=r.handler,n=r.schema,o=r.outputSchema;try{let l=await n.safeParseAsync(e);if(l.error)throw new xe(`Tool ${t} returned invalid input: ${rs(l.error)}`,"INVALID_ARGUMENTS",!0,"Please check the arguments and try again.");let d=l.data,u=await s(d,a),c=await o.safeParseAsync(u);if(c.error){let f=rs(c.error);throw Error(`Tool ${t} returned invalid output: ${f}`)}return{tool_name:t,result:c.data,error:null}}catch(l){return l instanceof xe?{tool_name:t,result:null,error:l.toStructuredString()}:{tool_name:t,result:null,error:new xe(l instanceof Error?l.message:String(l),"TOOL_ERROR",!1,"Check the error message and try again with valid arguments.",{args:e,errorType:((i=l==null?void 0:l.constructor)==null?void 0:i.name)??typeof l}).toStructuredString()}}}getToolSchemas(t){return[...this.tools.values()].filter(e=>e.mode.includes(t)).map(e=>({name:e.name,description:Bu(e.description),parameters:ns(e.schema),source:"frontend",mode:e.mode}))}},qu(Wt.prototype,"getToolSchemas",[Un],Object.getOwnPropertyDescriptor(Wt.prototype,"getToolSchemas"),Wt.prototype),Wt)([new Zu,new Vu]);function Lr(t,e){return new Promise(a=>{let r=new FileReader;r.readAsDataURL(t),r.onload=s=>{var n;if((n=s.target)!=null&&n.result){let o=s.target.result;a(e==="base64"?o.slice(o.indexOf(",")+1):o)}}})}function Wu(t){return Promise.all(t.map(e=>Lr(e,"base64").then(a=>[e.name,a])))}var Ju=jt();const Vn=new Set(["openai","google","anthropic"]),Ku=["image/*","text/*"];var Yu=1024*1024*50;function Hu(t){return t.length>50?`${t.slice(0,50)}...`:t}async function Bn(t){return await Promise.all(t.map(async e=>({type:"file",mediaType:e.type,filename:e.name,url:await Lr(e,"dataUrl")})))}function Gu(t){if(t.length===0)return!1;let e=t.at(-1);if(!e||e.role!=="assistant"||!e.parts)return!1;let a=e.parts;return a.length===0?!1:a[a.length-1].type==="reasoning"}function Qu(t){return t.map(e=>e.type==="text"?e.text:"").join(`
75
75
  `)}async function qn(t){let e=await Ou({input:Qu(t.flatMap(r=>r.parts))});function a(r,s){return s?{...r,parts:[...r.parts,...e.attachments]}:r}return{...e.body,uiMessages:t.map((r,s)=>a(r,s===t.length-1))}}async function Wn({invokeAiTool:t,addToolOutput:e,toolCall:a,toolContext:r}){try{if(Pr.has(a.toolName)){let s=await Pr.invoke(a.toolName,a.input,r);e({tool:a.toolName,toolCallId:a.toolCallId,output:s.result||s.error})}else{let s=await t({toolName:a.toolName,arguments:a.input??{}});e({tool:a.toolName,toolCallId:a.toolCallId,output:s.result||s.error})}}catch(s){ie.error("Tool call failed:",s),e({tool:a.toolName,toolCallId:a.toolCallId,output:`Error: ${s instanceof Error?s.message:String(s)}`})}}function Xu(t){var i;if(t.length===0)return!1;let e=t[t.length-1],a=e.parts;if(a.length===0||e.role!=="assistant")return!1;let r=a.filter(l=>l.type.startsWith("tool-"));if(r.length===0)return!1;let s=r.every(l=>l.state==="output-available"),n=a[a.length-1],o=n.type==="text"&&((i=n.text)==null?void 0:i.trim().length)>0;return ie.warn("All tool calls completed: %s",s),s&&!o}function Jn(){let t=(0,Ju.c)(7),e;t[0]===Symbol.for("react.memo_cache_sentinel")?(e=[],t[0]=e):e=t[0];let[a,r]=(0,A.useState)(e),s;t[1]===Symbol.for("react.memo_cache_sentinel")?(s=c=>{if(c.length!==0){if(c.reduce(ec,0)>Yu){Va({title:"File size exceeded",description:"Attachments must be under 50 MB",variant:"danger"});return}r(f=>[...f,...c])}},t[1]=s):s=t[1];let n=Hr(s),o;t[2]===Symbol.for("react.memo_cache_sentinel")?(o=()=>r([]),t[2]=o):o=t[2];let i=o,l;t[3]===Symbol.for("react.memo_cache_sentinel")?(l=c=>r(f=>f.filter(m=>m!==c)),t[3]=l):l=t[3];let d=l,u;return t[4]!==n||t[5]!==a?(u={files:a,addFiles:n,clearFiles:i,removeFile:d},t[4]=n,t[5]=a,t[6]=u):u=t[6],u}function ec(t,e){return t+e.size}var Jt=jt(),k=Za(Gi(),1);const tc=t=>{var o;let e=(0,Jt.c)(6),{attachment:a}=t;if((o=a.mediaType)!=null&&o.startsWith("image/")){let i=a.filename||"Attachment",l;return e[0]!==a.url||e[1]!==i?(l=(0,k.jsx)("img",{src:a.url,alt:i,className:"max-h-[100px] max-w-[100px] object-contain mb-1.5"}),e[0]=a.url,e[1]=i,e[2]=l):l=e[2],l}let r;e[3]===Symbol.for("react.memo_cache_sentinel")?(r=(0,k.jsx)(ms,{className:"h-3 w-3 mt-0.5"}),e[3]=r):r=e[3];let s=a.filename||"Attachment",n;return e[4]===s?n=e[5]:(n=(0,k.jsxs)("div",{className:"flex flex-row gap-1 items-center text-xs",children:[r,s]}),e[4]=s,e[5]=n),n},Kn=t=>{let e=(0,Jt.c)(12),{file:a,className:r,onRemove:s}=t,[n,o]=(0,A.useState)(!1),i;e[0]===r?i=e[1]:(i=za("py-1 px-1.5 bg-muted rounded-md cursor-pointer flex flex-row gap-1 items-center text-xs",r),e[0]=r,e[1]=i);let l,d;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=()=>o(!0),d=()=>o(!1),e[2]=l,e[3]=d):(l=e[2],d=e[3]);let u;e[4]!==a||e[5]!==n||e[6]!==s?(u=n?(0,k.jsx)(us,{className:"h-3 w-3 mt-0.5",onClick:s}):ac(a),e[4]=a,e[5]=n,e[6]=s,e[7]=u):u=e[7];let c;return e[8]!==a.name||e[9]!==i||e[10]!==u?(c=(0,k.jsxs)("div",{className:i,onMouseEnter:l,onMouseLeave:d,children:[u,a.name]}),e[8]=a.name,e[9]=i,e[10]=u,e[11]=c):c=e[11],c},Yn=t=>{let e=(0,Jt.c)(12),{isLoading:a,onStop:r,onSendClick:s,isEmpty:n,showStopLabel:o}=t,i=o===void 0?!1:o,l;e[0]===i?l=e[1]:(l=i?(0,k.jsxs)("div",{className:"flex flex-row items-center gap-1 px-1.5",children:[(0,k.jsx)("span",{className:"text-xs text-error",children:"Stop"}),(0,k.jsx)(bo,{size:"small"})]}):(0,k.jsx)(fs,{className:"size-4 text-error"}),e[0]=i,e[1]=l);let d=l,u=a?"Stop":"Submit",c=a?r:s,f=a?!1:n,m;e[2]!==a||e[3]!==d?(m=a?d:(0,k.jsx)(ys,{className:"h-3.5 w-3.5"}),e[2]=a,e[3]=d,e[4]=m):m=e[4];let b;e[5]!==c||e[6]!==f||e[7]!==m?(b=(0,k.jsx)(Qe,{variant:"text",size:"sm",className:"h-6 min-w-6 p-0 hover:bg-muted/30 cursor-pointer",onClick:c,disabled:f,children:m}),e[5]=c,e[6]=f,e[7]=m,e[8]=b):b=e[8];let g;return e[9]!==u||e[10]!==b?(g=(0,k.jsx)(la,{content:u,children:b}),e[9]=u,e[10]=b,e[11]=g):g=e[11],g},Hn=t=>{let e=(0,Jt.c)(4),{handleAddContext:a,isLoading:r}=t,s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,k.jsx)(hs,{className:"h-3.5 w-3.5"}),e[0]=s):s=e[0];let n;return e[1]!==a||e[2]!==r?(n=(0,k.jsx)(la,{content:"Add context",children:(0,k.jsx)(Qe,{variant:"text",size:"icon",onClick:a,disabled:r,children:s})}),e[1]=a,e[2]=r,e[3]=n):n=e[3],n},Gn=t=>{let e=(0,Jt.c)(15),{fileInputRef:a,isLoading:r,onAddFiles:s}=t,n;e[0]===a?n=e[1]:(n=()=>{var f;return(f=a.current)==null?void 0:f.click()},e[0]=a,e[1]=n);let o;e[2]===Symbol.for("react.memo_cache_sentinel")?(o=(0,k.jsx)(gs,{className:"h-3.5 w-3.5"}),e[2]=o):o=e[2];let i;e[3]!==r||e[4]!==n?(i=(0,k.jsx)(la,{content:"Attach a file",children:(0,k.jsx)(Qe,{variant:"text",size:"icon",onClick:n,disabled:r,children:o})}),e[3]=r,e[4]=n,e[5]=i):i=e[5];let l;e[6]===s?l=e[7]:(l=f=>{f.target.files&&s([...f.target.files])},e[6]=s,e[7]=l);let d;e[8]===Symbol.for("react.memo_cache_sentinel")?(d=Ku.join(","),e[8]=d):d=e[8];let u;e[9]!==a||e[10]!==l?(u=(0,k.jsx)(wo,{ref:a,type:"file",multiple:!0,hidden:!0,onChange:l,accept:d}),e[9]=a,e[10]=l,e[11]=u):u=e[11];let c;return e[12]!==i||e[13]!==u?(c=(0,k.jsxs)(k.Fragment,{children:[i,u]}),e[12]=i,e[13]=u,e[14]=c):c=e[14],c};function ac(t){let e="h-3 w-3 mt-0.5";return t.type.startsWith("image/")?(0,k.jsx)(yo,{className:e}):t.type.startsWith("text/")?(0,k.jsx)(Fi,{className:e}):(0,k.jsx)(ms,{className:e})}function rc(t){return Qi.define({combine:e=>e[0]??t})}var Qn=rc({}),$r=sa.define(),ja=sa.define(),sc=50,Dr=ia.define({create(){return{prompts:[],navigationIndex:-1,originalText:""}},update(t,e){var r,s;let a={...t};e.docChanged&&t.navigationIndex!==-1&&(e.effects.some(n=>n.is(ja)||n.is($r))||(a.navigationIndex=-1,a.originalText=""));for(let n of e.effects)if(n.is($r)){let o=n.value.trim();o&&(a.prompts=[o,...t.prompts.filter(i=>i!==o)].slice(0,sc),(s=(r=e.state.facet(Qn)).save)==null||s.call(r,a.prompts)),a.navigationIndex=-1,a.originalText=""}else n.is(ja)&&(a.navigationIndex=n.value.index,a.originalText=n.value.originalText);return a}}),nc=t=>{let e=t.state.field(Dr),a=t.state.doc;if(e.prompts.length===0)return!1;let r,s=e.originalText;if(e.navigationIndex===-1){if(a.length>0)return!1;r=0,s=a.toString()}else if(r=Math.min(e.navigationIndex+1,e.prompts.length-1),r===e.navigationIndex)return!1;let n=e.prompts[r];return t.dispatch({changes:{from:0,to:t.state.doc.length,insert:n},effects:ja.of({index:r,originalText:s})}),!0},ic=t=>{let e=t.state.field(Dr);if(e.navigationIndex===-1)return!1;let a,r;return e.navigationIndex===0?(a=e.originalText,r=-1):(r=e.navigationIndex-1,a=e.prompts[r]??""),t.dispatch({changes:{from:0,to:t.state.doc.length,insert:a},effects:ja.of({index:r,originalText:e.originalText})}),!0};const Xn=t=>{let e=t.state.doc.toString();return e.trim()?(t.dispatch({effects:$r.of(e)}),!0):!1};function oc(t={}){let{storage:e,defaultKeymap:a=!0}=t,r=[Dr.init(()=>{var s;return{prompts:((s=e==null?void 0:e.load)==null?void 0:s.call(e))??[],navigationIndex:-1,originalText:""}}),Qn.of(e??{})];return a&&r.push(na.of([{key:"ArrowUp",run:nc},{key:"ArrowDown",run:ic}])),r}const Zr=sa.define(),We=ia.define({create(){return new Map},update(t,e){let a=!1,r=t;for(let s of e.effects)if(s.is(Zr)){a||(a=(r=new Map(t),!0));for(let[n,o]of s.value)r.set(n,o)}return r}}),lc=ia.define({create(){return{onResourceClick:void 0,onResourceMouseOver:void 0,onResourceMouseOut:void 0,onPromptSubmit:void 0}},update(t){return t}}),dc=sa.define();ia.define({create(){return new Map},update(t,e){let a=!1,r=t;for(let s of e.effects)if(s.is(dc)){a||(a=(r=new Map(t),!0));for(let[n,o]of s.value)r.set(n,o)}return r}});const uc=(t,e)=>async a=>{let r=a.matchBefore(/@(\w+)?/);if(!r||r.from===r.to&&!a.explicit)return null;let s=await t();if(s.length===0)return null;let n=Zr.of(new Map(s.map(i=>[i.uri,i])));a.view&&a.view.dispatch({effects:n});let o=s.map(i=>({label:`@${i.name}`,displayLabel:i.name,detail:i.uri,info:i.description||void 0,type:i.mimeType?"constant":"variable",boost:i.description?100:0,...e==null?void 0:e(i),apply:(l,d,u,c)=>{l.dispatch({changes:{from:u,to:c,insert:`@${i.uri} `}})}}));return{from:r.from,options:o}},cc=/@[\w-]+:\/\/(?!\/)[^\s]+/;function st(t){return t.matchAll(new RegExp(cc.source,"g"))}var pc=class extends ds{constructor(e,a){super();L(this,"resource");L(this,"view");this.resource=e,this.view=a}eq(e){return e.resource.uri===this.resource.uri}toDOM(){let e=document.createElement("span");e.className="cm-resource-widget",e.textContent=`@${this.resource.name}`;let a=this.view.state.field(lc,!1),r=a==null?void 0:a.onResourceClick,s=a==null?void 0:a.onResourceMouseOver,n=a==null?void 0:a.onResourceMouseOut;return r&&(e.style.cursor="pointer",e.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),r(this.resource)})),s&&e.addEventListener("mouseover",o=>{o.preventDefault(),o.stopPropagation(),s(this.resource)}),n&&e.addEventListener("mouseout",o=>{o.preventDefault(),o.stopPropagation(),n(this.resource)}),e}},mc=class extends ds{constructor(e,a){super();L(this,"uri");L(this,"view");this.uri=e,this.view=a}eq(e){return e.uri===this.uri}toDOM(){let e=document.createElement("span");return e.className="cm-not-found-resource-widget",e.textContent=`@${this.uri.split("://")[1]??this.uri}`,e}};function ei(t){let e=t.state.field(We),a=[];for(let{from:r,to:s}of t.visibleRanges){let n=t.state.doc.sliceString(r,s);for(let o of st(n)){let i=r+o.index,l=o[0].slice(1),d=e.get(l);d?a.push(Ua.replace({widget:new pc(d,t)}).range(i,i+o[0].length)):a.push(Ua.replace({widget:new mc(l,t)}).range(i,i+o[0].length))}}return Ua.set(a)}const hc=to.fromClass(class{constructor(t){L(this,"decorations");this.decorations=ei(t)}update(t){(t.docChanged||t.viewportChanged||t.transactions.some(e=>e.effects.some(a=>a.is(Zr))))&&(this.decorations=ei(t.view))}},{decorations:t=>t.decorations});function fc(t){let e=document.createElement("div");e.className="cm-tooltip-cursor";let a=document.createElement("div");if(a.className="cm-tooltip-cursor-title",a.textContent=`${t.name} (${t.uri})`,e.appendChild(a),t.description){let r=document.createElement("div");r.className="cm-tooltip-cursor-description",r.textContent=t.description,e.appendChild(r)}if(t.mimeType){let r=document.createElement("div");r.className="cm-tooltip-cursor-mimetype",r.textContent=t.mimeType,e.appendChild(r)}return{dom:e}}function gc(t,e,a,r=0){for(let s of st(t)){let n=r+s.index,o=n+s[0].length;if(e>=n&&e<=o){let i=s[0].slice(1),l=a.get(i);if(l)return{resource:l,start:n,end:o}}}return null}function yc(t){return ao((e,a)=>{let{from:r,text:s}=e.state.doc.lineAt(a),n=gc(s,a,e.state.field(We),r);return n?{pos:n.start,end:n.end,above:!0,create(){return(t.createTooltip??fc)(n.resource)}}:null})}function vc(t,e){let a=t.field(We),r=t.doc,s=r.lineAt(e),n=r.sliceString(s.from,s.to),o=Array.from(st(n));if(o.length===0)return null;for(let i of o){let l=s.from+i.index,d=l+i[0].length,u=i[0].slice(1);if(e===d&&a.has(u))return{from:l,to:d,uri:u}}return null}function _c(t,e){let a=t.field(We),r=t.doc,s=r.lineAt(e).to,n=r.sliceString(e,s),o=Array.from(st(n));if(o.length===0)return null;let i=o[0];if(!i||i.index!==0)return null;let l=e,d=e+i[0].length,u=i[0].slice(1);return a.has(u)?{from:l,to:d,uri:u}:null}function ti(t,e){let a=t.field(We),r=t.doc,s=r.lineAt(e),n=r.sliceString(s.from,s.to),o=Array.from(st(n));for(let i of o){let l=s.from+i.index,d=l+i[0].length,u=i[0].slice(1);if(e>l&&e<d&&a.has(u))return{from:l,to:d,uri:u}}return null}function bc(t,e){let a=t.field(We),r=t.doc,s=r.lineAt(e),n=r.sliceString(s.from,e),o=Array.from(st(n)),i=null;for(let l of o){let d=s.from+l.index,u=d+l[0].length,c=l[0].slice(1);a.has(c)&&u<=e&&(e>u?i=u:e===u&&(i=d))}return i}function xc(t,e){let a=t.field(We),r=t.doc,s=r.lineAt(e),n=r.sliceString(s.from,s.to),o=Array.from(st(n));for(let i of o){let l=s.from+i.index,d=l+i[0].length,u=i[0].slice(1);if(a.has(u)&&l>=e){if(e<l)return l;if(e===l)return d}}return null}const wc=Xi.transactionFilter.of(t=>{var r;let e=t.annotation(eo.userEvent);if(!e)return t;let a=t.startState.selection.main;if(!a.empty)return t;if(e==="input.type"||e.startsWith("input")){if(t.changes.empty)return t;let s=t.startState.field(We),n=t.startState.doc,o=!1,i=0,l=[];if(t.changes.iterChanges((d,u,c,f,m)=>{let b=m.toString(),g=d;if(/^\s+$/.test(b)){l.push({from:d,to:u,insert:b});return}let p=n.lineAt(g),h=n.sliceString(p.from,p.to),v=Array.from(st(h)),T=!1,C=!1;for(let P of v){let D=p.from+P.index,N=D+P[0].length,K=P[0].slice(1);if(s.has(K)){if(g===D){let j=g>0?n.sliceString(g-1,g):"";j!==""&&j!==" "&&j!==`
76
76
  `&&j!==" "&&(T=!0)}if(g===N){let j=g<n.length?n.sliceString(g,g+1):"";(j===""||j!==" "&&j!==`
77
77
  `&&j!==" ")&&(C=!0)}}}let S=b;T&&(S=` ${S}`,i+=1),C&&(S=` ${S}`,i+=1),S!==b&&(o=!0),l.push({from:d,to:u,insert:S})}),o)return[{changes:l,selection:t.selection?{anchor:t.selection.main.anchor+i,head:t.selection.main.head+i}:void 0,scrollIntoView:t.scrollIntoView}]}if(e==="delete.backward"||e==="delete.forward"){let s=null;return e==="delete.backward"?s=vc(t.startState,a.head):e==="delete.forward"&&(s=_c(t.startState,a.head)),s?[{changes:{from:s.from,to:s.to,insert:""},selection:{anchor:s.from},scrollIntoView:!0}]:t}if((r=t.selection)!=null&&r.main.empty&&a.empty&&!e.startsWith("input")&&e!=="input.type"){let s=a.head,n=t.selection.main.head,o=null;if(n<s){let i=ti(t.startState,s);o=i&&s>i.from?i.from:bc(t.startState,s)}else if(n>s){let i=ti(t.startState,s);o=i&&s<i.to?i.to:xc(t.startState,s)}if(o!==null&&o!==n)return[{selection:{anchor:o},scrollIntoView:!0}]}return t}),kc=ls.baseTheme({".cm-resource-widget":{background:"light-dark(rgba(86,156,214,0.08),rgba(86,156,214,0.18))",borderRadius:"4px",padding:"2px 4px",color:"light-dark(#2367a2,#7ecbff)",fontWeight:"500"},".cm-resource-widget:hover":{background:"light-dark(rgba(86,156,214,0.18),rgba(86,156,214,0.28))"},".cm-not-found-resource-widget":{background:"light-dark(rgba(151,151,151,0.08),rgba(151,151,151,0.18))",borderRadius:"4px",padding:"2px 4px",color:"light-dark(#b00020,#ff8080)",fontWeight:"500"}});var ai="_none_",Cc=[{uri:"",name:"No resources",type:ai,data:{}}],Ec={info:"Variables, dataframes, and tables will appear here.",apply:()=>{}};function Tc(t){let{language:e,store:a,onAddFiles:r}=t;return[e.data.of({autocomplete:uc(async()=>{let s=pt(a).getAllItems();return s.length===0?Cc:s},s=>{var n;return s.type===ai?Ec:((n=pt(a).getProvider(s.type))==null?void 0:n.formatCompletion(s))||{}})}),os.high(na.of([{key:"Tab",run:s=>no(s)}])),Ln.of({addAttachment:s=>r==null?void 0:r([s])}),...r?[e.data.of({autocomplete:Iu().createCompletionSource()})]:[],hc,wc,We.init(()=>{let s=pt(a).getAllItems();return new Map(s.map(n=>[n.uri,n]))}),kc,yc({createTooltip:s=>{let n=pt(a).getProvider(s.type);if(!n)return ie.warn("No provider found for resource",s),Kt(s.description||s.name);let o=n.formatCompletion(s),i=s.description||s.name;if(!(o!=null&&o.info))return Kt(i);if(typeof o.info=="string")return Kt(o.info);let l=o.info(o);return l?"dom"in l?{dom:l.dom}:"then"in l?(ie.warn("info is a promise. This is not supported",l),Kt(i)):{dom:l}:Kt(i)}})]}function Kt(t){let e=document.createElement("div");return e.innerHTML=t,{dom:e}}var Fr=jt();const ri=t=>{let{handleAcceptCompletion:e,handleDeclineCompletion:a,isLoading:r,hasCompletion:s}=t;return n=>{let o=Ki()?n.metaKey:n.ctrlKey;o&&n.key==="Enter"&&!r&&s&&e(),(n.key==="Delete"||n.key==="Backspace")&&o&&n.shiftKey&&(a(),n.preventDefault(),n.stopPropagation())}},Ic=t=>{let e=(0,Fr.c)(9),{isLoading:a,onAccept:r,onDecline:s,runCell:n}=t,o;e[0]!==a||e[1]!==r||e[2]!==n?(o=(0,k.jsx)(si,{isLoading:a,onAccept:r,size:"xs",runCell:n}),e[0]=a,e[1]=r,e[2]=n,e[3]=o):o=e[3];let i;e[4]===s?i=e[5]:(i=(0,k.jsx)(ni,{onDecline:s,size:"xs"}),e[4]=s,e[5]=i);let l;return e[6]!==o||e[7]!==i?(l=(0,k.jsxs)(k.Fragment,{children:[o,i]}),e[6]=o,e[7]=i,e[8]=l):l=e[8],l},si=t=>{let e=(0,Fr.c)(33),{isLoading:a,onAccept:r,multipleCompletions:s,size:n,buttonStyles:o,acceptShortcut:i,runCell:l,playButtonStyles:d,borderless:u}=t,c=s===void 0?!1:s,f=n===void 0?"sm":n,m=u===void 0?!1:u,b;e[0]!==r||e[1]!==l?(b=()=>{r(),l&&l()},e[0]=r,e[1]=l,e[2]=b):b=e[2];let g=b,p=c?"Accept all":"Accept";if(l){let C=`h-6 text-(--grass-11) bg-(--grass-3)/60
@@ -86,5 +86,5 @@ Image URL: ${s}`)),e}async waitForCellsToFinish(t,e,a,r){let s=o=>e.every(i=>{le
86
86
  border-(--green-6) border hover:shadow-xs rounded px-3 ${o}`,v;e[24]===i?v=e[25]:(v=i&&(0,k.jsx)(qa,{className:"ml-1 inline",shortcut:i}),e[24]=i,e[25]=v);let T;return e[26]!==a||e[27]!==r||e[28]!==f||e[29]!==h||e[30]!==v||e[31]!==p?(T=(0,k.jsxs)(Qe,{variant:"text",size:f,disabled:a,onClick:r,className:h,children:[p,v]}),e[26]=a,e[27]=r,e[28]=f,e[29]=h,e[30]=v,e[31]=p,e[32]=T):T=e[32],T},ni=t=>{let e=(0,Fr.c)(8),{onDecline:a,multipleCompletions:r,size:s,className:n,declineShortcut:o,borderless:i}=t,l=r===void 0?!1:r,d=s===void 0?"sm":s,u=`h-6 text-(--red-10) bg-(--red-3)/60 hover:bg-(--red-3)
87
87
  dark:bg-(--red-4)/80 dark:hover:bg-(--red-3) rounded px-3 font-semibold
88
88
  active:bg-(--red-5) dark:active:bg-(--red-4)
89
- border-(--red-6) border hover:shadow-xs ${(i===void 0?!1:i)&&"border-none rounded-md"} ${n}`,c=l&&" all",f;e[0]===o?f=e[1]:(f=o&&(0,k.jsx)(qa,{className:"ml-1 inline",shortcut:o}),e[0]=o,e[1]=f);let m;return e[2]!==a||e[3]!==d||e[4]!==u||e[5]!==c||e[6]!==f?(m=(0,k.jsxs)(Qe,{variant:"text",size:d,onClick:a,className:u,children:["Reject",c,f]}),e[2]=a,e[3]=d,e[4]=u,e[5]=c,e[6]=f,e[7]=m):m=e[7],m};var Sc=class extends gr{constructor(t,e){super(t),this.onChunkReceived=e}processResponseStream(t){let e=this.onChunkReceived;return super.processResponseStream(t).pipeThrough(new TransformStream({async transform(a,r){e(a),r.enqueue(a)}}))}},ii=jt(),Ac=Di("marimo:ai-language","python",$i),oi="marimo:ai-prompt-history",li=new Zi(ze(E()),()=>[]);const Oc=t=>{var Jr;let e=(0,ii.c)(95),{onClose:a}=t,r=Kr(),[s,n]=(0,A.useState)(""),{deleteAllStagedCells:o,clearStagedCells:i,onStream:l,addStagedCell:d}=Fn(r),[u,c]=xi(Ac),f=Hi(),{invokeAiTool:m,sendRun:b}=lo(),g=Gr(qt),p=(0,A.useRef)(null),h=(0,A.useRef)(null),{files:v,addFiles:T,removeFile:C}=Jn(),S=Gr(Yi),{createNewCell:P,prepareForRun:D}=Qr(),N;e[0]!==d||e[1]!==P||e[2]!==D||e[3]!==b||e[4]!==r?(N={store:r,addStagedCell:d,createNewCell:P,prepareForRun:D,sendRun:b},e[0]=d,e[1]=P,e[2]=D,e[3]=b,e[4]=r,e[5]=N):N=e[5];let K=N,j;if(e[6]!==u||e[7]!==l||e[8]!==f){let de;e[10]===u?de=e[11]:(de=async ta=>{let yi=await qn(ta.messages);return{body:{...ta,...yi,code:"",prompt:"",language:u}}},e[10]=u,e[11]=de);let Ne;e[12]===l?Ne=e[13]:(Ne=ta=>{l(ta)},e[12]=l,e[13]=Ne),j=new Sc({api:f.getAiURL("completion").toString(),headers:f.headers(),prepareSendMessagesRequest:de},Ne),e[6]=u,e[7]=l,e[8]=f,e[9]=j}else j=e[9];let{sendMessage:W,stop:X,status:te,addToolOutput:ae}=Rn({experimental_throttle:100,transport:j,onToolCall:async de=>{let{toolCall:Ne}=de;await Wn({invokeAiTool:m,addToolOutput:G,toolCall:{toolName:Ne.toolName,toolCallId:Ne.toolCallId,input:Ne.input},toolContext:K})},onError:Rc}),G=ae,Z=te==="streaming"||te==="submitted",oe=g.size>0,ee=((Jr=S==null?void 0:S.models)==null?void 0:Jr.edit_model)||"openai/gpt-4o",Le;if(e[14]!==ee){let de=Ji.parse(ee).providerId;Le=Vn.has(de),e[14]=ee,e[15]=Le}else Le=e[15];let Oe=Le,we;e[16]!==o||e[17]!==v||e[18]!==s||e[19]!==Z||e[20]!==W?(we=async()=>{var de;Z||((de=p.current)!=null&&de.view&&Xn(p.current.view),o(),W({text:s,files:v?await Bn(v):void 0}))},e[16]=o,e[17]=v,e[18]=s,e[19]=Z,e[20]=W,e[21]=we):we=e[21];let he=we,$e;e[22]===Symbol.for("react.memo_cache_sentinel")?($e=(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Po,{className:"size-4 mr-2"}),"Python"]}),e[22]=$e):$e=e[22];let mt=$e,De;e[23]===Symbol.for("react.memo_cache_sentinel")?(De=(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Oi,{className:"size-4 mr-2"}),"SQL"]}),e[23]=De):De=e[23];let Rt=De,ht=u==="python"?mt:Rt,ft;e[24]===Symbol.for("react.memo_cache_sentinel")?(ft=(0,k.jsx)(po,{className:"ml-1 h-3.5 w-3.5 text-muted-foreground/70"}),e[24]=ft):ft=e[24];let Je;e[25]===ht?Je=e[26]:(Je=(0,k.jsxs)(ho,{className:"flex items-center justify-between h-7 text-xs px-2 py-0.5 border rounded-md hover:text-accent-foreground","data-testid":"language-button",children:[ht,ft]}),e[25]=ht,e[26]=Je);let Re,nt;e[27]===Symbol.for("react.memo_cache_sentinel")?(Re=(0,k.jsx)("div",{className:"px-2 py-1 text-sm text-muted-foreground",children:"Select language"}),nt=(0,k.jsx)(mo,{}),e[27]=Re,e[28]=nt):(Re=e[27],nt=e[28]);let U;e[29]===c?U=e[30]:(U=(0,k.jsx)(ps,{onClick:()=>c("python"),children:mt}),e[29]=c,e[30]=U);let V;e[31]===c?V=e[32]:(V=(0,k.jsx)(ps,{onClick:()=>c("sql"),children:Rt}),e[31]=c,e[32]=V);let Y;e[33]!==U||e[34]!==V?(Y=(0,k.jsxs)(fo,{align:"center",children:[Re,nt,U,V]}),e[33]=U,e[34]=V,e[35]=Y):Y=e[35];let B;e[36]!==Je||e[37]!==Y?(B=(0,k.jsxs)(go,{modal:!1,children:[Je,Y]}),e[36]=Je,e[37]=Y,e[38]=B):B=e[38];let ke=B,ve;e[39]!==i||e[40]!==a?(ve=()=>{i(),a()},e[39]=i,e[40]=a,e[41]=ve):ve=e[41];let le=ve,se;e[42]===o?se=e[43]:(se=()=>{o()},e[42]=o,e[43]=se);let _e=se,it;e[44]===Symbol.for("react.memo_cache_sentinel")?(it=(0,k.jsx)(ko,{className:"size-4 text-(--blue-11) mr-2"}),e[44]=it):it=e[44];let Ze;e[45]!==o||e[46]!==a?(Ze=()=>{o(),a()},e[45]=o,e[46]=a,e[47]=Ze):Ze=e[47];let ot;e[48]===Symbol.for("react.memo_cache_sentinel")?(ot=de=>{n(de)},e[48]=ot):ot=e[48];let ne;e[49]!==le||e[50]!==_e||e[51]!==oe||e[52]!==Z?(ne=ri({handleAcceptCompletion:le,handleDeclineCompletion:_e,isLoading:Z,hasCompletion:oe}),e[49]=le,e[50]=_e,e[51]=oe,e[52]=Z,e[53]=ne):ne=e[53];let ue;e[54]!==s||e[55]!==he||e[56]!==Ze||e[57]!==ne?(ue=(0,k.jsx)(di,{inputRef:p,onClose:Ze,value:s,onChange:ot,onSubmit:he,onKeyDown:ne}),e[54]=s,e[55]=he,e[56]=Ze,e[57]=ne,e[58]=ue):ue=e[58];let Ke;e[59]===Symbol.for("react.memo_cache_sentinel")?(Ke=(0,k.jsx)(us,{className:"size-4"}),e[59]=Ke):Ke=e[59];let Ye;e[60]===a?Ye=e[61]:(Ye=(0,k.jsx)(Qe,{variant:"text",size:"sm",className:"mb-0 px-1",onClick:a,children:Ke}),e[60]=a,e[61]=Ye);let He;e[62]!==ue||e[63]!==Ye?(He=(0,k.jsxs)("div",{className:"flex items-center px-3",children:[it,ue,Ye]}),e[62]=ue,e[63]=Ye,e[64]=He):He=e[64];let La=He,Ht;e[65]===Symbol.for("react.memo_cache_sentinel")?(Ht=(0,k.jsx)(Wi,{triggerClassName:"h-7 text-xs max-w-64",iconSize:"small",forRole:"edit",showAddCustomModelDocs:!0}),e[65]=Ht):Ht=e[65];let gt;e[66]===ke?gt=e[67]:(gt=(0,k.jsxs)("div",{className:"flex items-center gap-2",children:[Ht,ke]}),e[66]=ke,e[67]=gt);let yt;e[68]!==v||e[69]!==C?(yt=v.length>0&&(0,k.jsx)("div",{className:"flex flex-row gap-1 flex-wrap pr-1",children:v==null?void 0:v.map((de,Ne)=>(0,k.jsx)(Kn,{file:de,onRemove:()=>C(de)},`${de.name}-${Ne}`))}),e[68]=v,e[69]=C,e[70]=yt):yt=e[70];let Gt;e[71]===Symbol.for("react.memo_cache_sentinel")?(Gt=()=>$n(p),e[71]=Gt):Gt=e[71];let vt;e[72]===Z?vt=e[73]:(vt=(0,k.jsx)(Hn,{handleAddContext:Gt,isLoading:Z}),e[72]=Z,e[73]=vt);let _t;e[74]!==T||e[75]!==Oe||e[76]!==Z?(_t=Oe&&(0,k.jsx)(Gn,{fileInputRef:h,isLoading:Z,onAddFiles:T}),e[74]=T,e[75]=Oe,e[76]=Z,e[77]=_t):_t=e[77];let $a=!s.trim(),bt;e[78]!==Z||e[79]!==X||e[80]!==he||e[81]!==$a?(bt=(0,k.jsx)(Yn,{isLoading:Z,onStop:X,onSendClick:he,isEmpty:$a,showStopLabel:!0}),e[78]=Z,e[79]=X,e[80]=he,e[81]=$a,e[82]=bt):bt=e[82];let xt;e[83]!==yt||e[84]!==vt||e[85]!==_t||e[86]!==bt?(xt=(0,k.jsxs)("div",{className:"flex flex-row items-center",children:[yt,vt,_t,bt]}),e[83]=yt,e[84]=vt,e[85]=_t,e[86]=bt,e[87]=xt):xt=e[87];let Qt;e[88]!==gt||e[89]!==xt?(Qt=(0,k.jsxs)("div",{className:"px-3 pt-1 flex flex-row items-center justify-between",children:[gt,xt]}),e[88]=gt,e[89]=xt,e[90]=Qt):Qt=e[90];let Da=Qt,Xt;e[91]===Symbol.for("react.memo_cache_sentinel")?(Xt=za("flex flex-col w-full py-2"),e[91]=Xt):Xt=e[91];let ea;return e[92]!==Da||e[93]!==La?(ea=(0,k.jsxs)("div",{className:Xt,children:[La,Da]}),e[92]=Da,e[93]=La,e[94]=ea):ea=e[94],ea},di=t=>{let e=(0,ii.c)(35),{value:a,placeholder:r,inputRef:s,className:n,onChange:o,onSubmit:i,onKeyDown:l,onClose:d,onAddFiles:u,additionalCompletions:c,maxHeight:f}=t,m=i,b=d,g=Kr(),{theme:p}=Io(),h;e[0]===c?h=e[1]:(h=oe=>c?Nu([c.triggerCompletionRegex],c.completions)(oe):null,e[0]=c,e[1]=h);let v=Hr(h),T,C,S,P;if(e[2]!==v||e[3]!==u||e[4]!==g){let oe=To();e[9]===Symbol.for("react.memo_cache_sentinel")?(T=oo({}),e[9]=T):T=e[9],C=oe,S=Tc({language:oe.language,store:g,onAddFiles:u}),P=oe.language.data.of({autocomplete:v}),e[2]=v,e[3]=u,e[4]=g,e[5]=T,e[6]=C,e[7]=S,e[8]=P}else T=e[5],C=e[6],S=e[7],P=e[8];let D;e[10]===Symbol.for("react.memo_cache_sentinel")?(D=oc({storage:{load:Nc,save:jc}}),e[10]=D):D=e[10];let N;e[11]===Symbol.for("react.memo_cache_sentinel")?(N=jo(),e[11]=N):N=e[11];let K;e[12]===m?K=e[13]:(K=os.highest(na.of([{preventDefault:!0,stopPropagation:!0,any:(oe,ee)=>{let Le=ee.metaKey||ee.ctrlKey||ee.shiftKey;if(ee.key==="Enter"&&!Le)return m(ee,oe.state.doc.toString()),ee.preventDefault(),ee.stopPropagation(),!0;if(ee.key==="Enter"&&ee.shiftKey){let Oe=oe.state.selection.main.from;return oe.dispatch({changes:{from:Oe,to:Oe,insert:`
89
+ border-(--red-6) border hover:shadow-xs ${(i===void 0?!1:i)&&"border-none rounded-md"} ${n}`,c=l&&" all",f;e[0]===o?f=e[1]:(f=o&&(0,k.jsx)(qa,{className:"ml-1 inline",shortcut:o}),e[0]=o,e[1]=f);let m;return e[2]!==a||e[3]!==d||e[4]!==u||e[5]!==c||e[6]!==f?(m=(0,k.jsxs)(Qe,{variant:"text",size:d,onClick:a,className:u,children:["Reject",c,f]}),e[2]=a,e[3]=d,e[4]=u,e[5]=c,e[6]=f,e[7]=m):m=e[7],m};var Sc=class extends gr{constructor(t,e){super(t),this.onChunkReceived=e}processResponseStream(t){let e=this.onChunkReceived;return super.processResponseStream(t).pipeThrough(new TransformStream({async transform(a,r){e(a),r.enqueue(a)}}))}},ii=jt(),Ac=zi("marimo:ai-language","python",Di),oi="marimo:ai-prompt-history",li=new Zi(ze(E()),()=>[]);const Oc=t=>{var Jr;let e=(0,ii.c)(95),{onClose:a}=t,r=Kr(),[s,n]=(0,A.useState)(""),{deleteAllStagedCells:o,clearStagedCells:i,onStream:l,addStagedCell:d}=Fn(r),[u,c]=xi(Ac),f=Hi(),{invokeAiTool:m,sendRun:b}=lo(),g=Gr(qt),p=(0,A.useRef)(null),h=(0,A.useRef)(null),{files:v,addFiles:T,removeFile:C}=Jn(),S=Gr(Yi),{createNewCell:P,prepareForRun:D}=Qr(),N;e[0]!==d||e[1]!==P||e[2]!==D||e[3]!==b||e[4]!==r?(N={store:r,addStagedCell:d,createNewCell:P,prepareForRun:D,sendRun:b},e[0]=d,e[1]=P,e[2]=D,e[3]=b,e[4]=r,e[5]=N):N=e[5];let K=N,j;if(e[6]!==u||e[7]!==l||e[8]!==f){let de;e[10]===u?de=e[11]:(de=async ta=>{let yi=await qn(ta.messages);return{body:{...ta,...yi,code:"",prompt:"",language:u}}},e[10]=u,e[11]=de);let Ne;e[12]===l?Ne=e[13]:(Ne=ta=>{l(ta)},e[12]=l,e[13]=Ne),j=new Sc({api:f.getAiURL("completion").toString(),headers:f.headers(),prepareSendMessagesRequest:de},Ne),e[6]=u,e[7]=l,e[8]=f,e[9]=j}else j=e[9];let{sendMessage:W,stop:X,status:te,addToolOutput:ae}=Rn({experimental_throttle:100,transport:j,onToolCall:async de=>{let{toolCall:Ne}=de;await Wn({invokeAiTool:m,addToolOutput:G,toolCall:{toolName:Ne.toolName,toolCallId:Ne.toolCallId,input:Ne.input},toolContext:K})},onError:Rc}),G=ae,Z=te==="streaming"||te==="submitted",oe=g.size>0,ee=((Jr=S==null?void 0:S.models)==null?void 0:Jr.edit_model)||"openai/gpt-4o",Le;if(e[14]!==ee){let de=Ji.parse(ee).providerId;Le=Vn.has(de),e[14]=ee,e[15]=Le}else Le=e[15];let Oe=Le,we;e[16]!==o||e[17]!==v||e[18]!==s||e[19]!==Z||e[20]!==W?(we=async()=>{var de;Z||((de=p.current)!=null&&de.view&&Xn(p.current.view),o(),W({text:s,files:v?await Bn(v):void 0}))},e[16]=o,e[17]=v,e[18]=s,e[19]=Z,e[20]=W,e[21]=we):we=e[21];let he=we,$e;e[22]===Symbol.for("react.memo_cache_sentinel")?($e=(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Po,{className:"size-4 mr-2"}),"Python"]}),e[22]=$e):$e=e[22];let mt=$e,De;e[23]===Symbol.for("react.memo_cache_sentinel")?(De=(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Ri,{className:"size-4 mr-2"}),"SQL"]}),e[23]=De):De=e[23];let Rt=De,ht=u==="python"?mt:Rt,ft;e[24]===Symbol.for("react.memo_cache_sentinel")?(ft=(0,k.jsx)(po,{className:"ml-1 h-3.5 w-3.5 text-muted-foreground/70"}),e[24]=ft):ft=e[24];let Je;e[25]===ht?Je=e[26]:(Je=(0,k.jsxs)(ho,{className:"flex items-center justify-between h-7 text-xs px-2 py-0.5 border rounded-md hover:text-accent-foreground","data-testid":"language-button",children:[ht,ft]}),e[25]=ht,e[26]=Je);let Re,nt;e[27]===Symbol.for("react.memo_cache_sentinel")?(Re=(0,k.jsx)("div",{className:"px-2 py-1 text-sm text-muted-foreground",children:"Select language"}),nt=(0,k.jsx)(mo,{}),e[27]=Re,e[28]=nt):(Re=e[27],nt=e[28]);let U;e[29]===c?U=e[30]:(U=(0,k.jsx)(ps,{onClick:()=>c("python"),children:mt}),e[29]=c,e[30]=U);let V;e[31]===c?V=e[32]:(V=(0,k.jsx)(ps,{onClick:()=>c("sql"),children:Rt}),e[31]=c,e[32]=V);let Y;e[33]!==U||e[34]!==V?(Y=(0,k.jsxs)(fo,{align:"center",children:[Re,nt,U,V]}),e[33]=U,e[34]=V,e[35]=Y):Y=e[35];let B;e[36]!==Je||e[37]!==Y?(B=(0,k.jsxs)(go,{modal:!1,children:[Je,Y]}),e[36]=Je,e[37]=Y,e[38]=B):B=e[38];let ke=B,ve;e[39]!==i||e[40]!==a?(ve=()=>{i(),a()},e[39]=i,e[40]=a,e[41]=ve):ve=e[41];let le=ve,se;e[42]===o?se=e[43]:(se=()=>{o()},e[42]=o,e[43]=se);let _e=se,it;e[44]===Symbol.for("react.memo_cache_sentinel")?(it=(0,k.jsx)(ko,{className:"size-4 text-(--blue-11) mr-2"}),e[44]=it):it=e[44];let Ze;e[45]!==o||e[46]!==a?(Ze=()=>{o(),a()},e[45]=o,e[46]=a,e[47]=Ze):Ze=e[47];let ot;e[48]===Symbol.for("react.memo_cache_sentinel")?(ot=de=>{n(de)},e[48]=ot):ot=e[48];let ne;e[49]!==le||e[50]!==_e||e[51]!==oe||e[52]!==Z?(ne=ri({handleAcceptCompletion:le,handleDeclineCompletion:_e,isLoading:Z,hasCompletion:oe}),e[49]=le,e[50]=_e,e[51]=oe,e[52]=Z,e[53]=ne):ne=e[53];let ue;e[54]!==s||e[55]!==he||e[56]!==Ze||e[57]!==ne?(ue=(0,k.jsx)(di,{inputRef:p,onClose:Ze,value:s,onChange:ot,onSubmit:he,onKeyDown:ne}),e[54]=s,e[55]=he,e[56]=Ze,e[57]=ne,e[58]=ue):ue=e[58];let Ke;e[59]===Symbol.for("react.memo_cache_sentinel")?(Ke=(0,k.jsx)(us,{className:"size-4"}),e[59]=Ke):Ke=e[59];let Ye;e[60]===a?Ye=e[61]:(Ye=(0,k.jsx)(Qe,{variant:"text",size:"sm",className:"mb-0 px-1",onClick:a,children:Ke}),e[60]=a,e[61]=Ye);let He;e[62]!==ue||e[63]!==Ye?(He=(0,k.jsxs)("div",{className:"flex items-center px-3",children:[it,ue,Ye]}),e[62]=ue,e[63]=Ye,e[64]=He):He=e[64];let La=He,Ht;e[65]===Symbol.for("react.memo_cache_sentinel")?(Ht=(0,k.jsx)(Wi,{triggerClassName:"h-7 text-xs max-w-64",iconSize:"small",forRole:"edit",showAddCustomModelDocs:!0}),e[65]=Ht):Ht=e[65];let gt;e[66]===ke?gt=e[67]:(gt=(0,k.jsxs)("div",{className:"flex items-center gap-2",children:[Ht,ke]}),e[66]=ke,e[67]=gt);let yt;e[68]!==v||e[69]!==C?(yt=v.length>0&&(0,k.jsx)("div",{className:"flex flex-row gap-1 flex-wrap pr-1",children:v==null?void 0:v.map((de,Ne)=>(0,k.jsx)(Kn,{file:de,onRemove:()=>C(de)},`${de.name}-${Ne}`))}),e[68]=v,e[69]=C,e[70]=yt):yt=e[70];let Gt;e[71]===Symbol.for("react.memo_cache_sentinel")?(Gt=()=>$n(p),e[71]=Gt):Gt=e[71];let vt;e[72]===Z?vt=e[73]:(vt=(0,k.jsx)(Hn,{handleAddContext:Gt,isLoading:Z}),e[72]=Z,e[73]=vt);let _t;e[74]!==T||e[75]!==Oe||e[76]!==Z?(_t=Oe&&(0,k.jsx)(Gn,{fileInputRef:h,isLoading:Z,onAddFiles:T}),e[74]=T,e[75]=Oe,e[76]=Z,e[77]=_t):_t=e[77];let $a=!s.trim(),bt;e[78]!==Z||e[79]!==X||e[80]!==he||e[81]!==$a?(bt=(0,k.jsx)(Yn,{isLoading:Z,onStop:X,onSendClick:he,isEmpty:$a,showStopLabel:!0}),e[78]=Z,e[79]=X,e[80]=he,e[81]=$a,e[82]=bt):bt=e[82];let xt;e[83]!==yt||e[84]!==vt||e[85]!==_t||e[86]!==bt?(xt=(0,k.jsxs)("div",{className:"flex flex-row items-center",children:[yt,vt,_t,bt]}),e[83]=yt,e[84]=vt,e[85]=_t,e[86]=bt,e[87]=xt):xt=e[87];let Qt;e[88]!==gt||e[89]!==xt?(Qt=(0,k.jsxs)("div",{className:"px-3 pt-1 flex flex-row items-center justify-between",children:[gt,xt]}),e[88]=gt,e[89]=xt,e[90]=Qt):Qt=e[90];let Da=Qt,Xt;e[91]===Symbol.for("react.memo_cache_sentinel")?(Xt=za("flex flex-col w-full py-2"),e[91]=Xt):Xt=e[91];let ea;return e[92]!==Da||e[93]!==La?(ea=(0,k.jsxs)("div",{className:Xt,children:[La,Da]}),e[92]=Da,e[93]=La,e[94]=ea):ea=e[94],ea},di=t=>{let e=(0,ii.c)(35),{value:a,placeholder:r,inputRef:s,className:n,onChange:o,onSubmit:i,onKeyDown:l,onClose:d,onAddFiles:u,additionalCompletions:c,maxHeight:f}=t,m=i,b=d,g=Kr(),{theme:p}=Io(),h;e[0]===c?h=e[1]:(h=oe=>c?Nu([c.triggerCompletionRegex],c.completions)(oe):null,e[0]=c,e[1]=h);let v=Hr(h),T,C,S,P;if(e[2]!==v||e[3]!==u||e[4]!==g){let oe=To();e[9]===Symbol.for("react.memo_cache_sentinel")?(T=oo({}),e[9]=T):T=e[9],C=oe,S=Tc({language:oe.language,store:g,onAddFiles:u}),P=oe.language.data.of({autocomplete:v}),e[2]=v,e[3]=u,e[4]=g,e[5]=T,e[6]=C,e[7]=S,e[8]=P}else T=e[5],C=e[6],S=e[7],P=e[8];let D;e[10]===Symbol.for("react.memo_cache_sentinel")?(D=oc({storage:{load:Nc,save:jc}}),e[10]=D):D=e[10];let N;e[11]===Symbol.for("react.memo_cache_sentinel")?(N=jo(),e[11]=N):N=e[11];let K;e[12]===m?K=e[13]:(K=os.highest(na.of([{preventDefault:!0,stopPropagation:!0,any:(oe,ee)=>{let Le=ee.metaKey||ee.ctrlKey||ee.shiftKey;if(ee.key==="Enter"&&!Le)return m(ee,oe.state.doc.toString()),ee.preventDefault(),ee.stopPropagation(),!0;if(ee.key==="Enter"&&ee.shiftKey){let Oe=oe.state.selection.main.from;return oe.dispatch({changes:{from:Oe,to:Oe,insert:`
90
90
  `},selection:{anchor:Oe+1,head:Oe+1}}),ee.preventDefault(),ee.stopPropagation(),!0}return!1}}])),e[12]=m,e[13]=K);let j;e[14]===b?j=e[15]:(j=na.of([{key:"Escape",preventDefault:!0,stopPropagation:!0,run:()=>(b(),!0)}]),e[14]=b,e[15]=j);let W;e[16]!==T||e[17]!==C||e[18]!==S||e[19]!==P||e[20]!==K||e[21]!==j?(W=[T,C,S,P,D,ls.lineWrapping,N,K,j],e[16]=T,e[17]=C,e[18]=S,e[19]=P,e[20]=K,e[21]=j,e[22]=W):W=e[22];let X=W,te;e[23]===n?te=e[24]:(te=za("flex-1 font-sans overflow-auto my-1",n),e[23]=n,e[24]=te);let ae=p==="dark"?"dark":"light",G=r||"Generate with AI, @ to include context",Z;return e[25]!==X||e[26]!==s||e[27]!==f||e[28]!==o||e[29]!==l||e[30]!==te||e[31]!==ae||e[32]!==G||e[33]!==a?(Z=(0,k.jsx)(Mo,{ref:s,className:te,width:"100%",maxHeight:f,value:a,basicSetup:!1,extensions:X,onChange:o,onKeyDown:l,theme:ae,placeholder:G}),e[25]=X,e[26]=s,e[27]=f,e[28]=o,e[29]=l,e[30]=te,e[31]=ae,e[32]=G,e[33]=a,e[34]=Z):Z=e[34],Z};function Rc(t){Va({title:"Generate with AI failed",description:Ao(t)})}function Nc(){return li.get(oi)}function jc(t){return li.set(oi,t)}export{pt as A,Pr as C,Su as D,Fn as E,ys as F,gs as I,fs as L,yu as M,gr as N,$n as O,Sd as P,hs as R,Wu as S,Zn as T,Wn as _,ni as a,Jn as b,Hn as c,Kn as d,Yn as f,Hu as g,Bn as h,Ic as i,Rn as j,Au as k,Gn as l,qn as m,di as n,ri as o,Vn as p,si as r,Xn as s,Oc as t,tc as u,Xu as v,qt as w,Lr as x,Gu as y};
@@ -1,4 +1,4 @@
1
- var Ge=Object.defineProperty;var Ve=(t,e,s)=>e in t?Ge(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var z=(t,e,s)=>Ve(t,typeof e!="symbol"?e+"":e,s);import{s as oe}from"./chunk-LvLJmgfZ.js";import{t as Ze}from"./react-Bj1aDYRI.js";import{Rn as g,T as Qe,Tt as ce,rr as Je}from"./cells-CigkzIKH.js";import{D as H,P as y,R as u,T as N,_ as ae,i as Ye,k as _,m as Xe}from"./zod-H_cgTO0M.js";import{t as P}from"./compiler-runtime-B3qBwwSJ.js";import{t as K}from"./assertNever-Dw9aFN4h.js";import{t as et}from"./_createAggregator-BjsxkJZj.js";import{h as tt}from"./useEventListener-CjXriKgk.js";import{t as st}from"./jsx-runtime-CP2fAiZX.js";import{t as Z}from"./button-BmOH9agK.js";import{t as W}from"./cn-d_A4rA-x.js";import{t as Q}from"./createLucideIcon-BvP5LBIs.js";import{t as rt}from"./circle-plus-DfyUnSPr.js";import{a as J,c as ie,o as nt,p as ot,r as ct,t as at}from"./dropdown-menu-CKhrfxsx.js";import{t as it}from"./database-zap-B3efE3T2.js";import{t as lt}from"./file-code-D9wtWSiR.js";import{t as dt}from"./file-DVwc11C3.js";import{t as pt}from"./github-BrsjF9dp.js";import{m as ht,o as mt,t as ut,u as a}from"./form-DmsYuKMH.js";import{i as bt}from"./html-to-image-DkwDXZ7Q.js";import{n as ft}from"./DeferredRequestRegistry-CMZsNx4R.js";import{o as gt,r as yt}from"./input-BPldEXfy.js";import{c as _t,d as xt,f as wt,h as St,l as vt,n as kt,p as jt,s as $t,t as Ct,u as At,v as Rt}from"./azure-BOn6W9-m.js";import{r as Lt}from"./useTheme-CwdqVOYu.js";import{c as Tt,i as It,n as Dt,r as Nt,s as qt,t as Ft}from"./select-DygbgNTD.js";import{a as Pt,c as Bt,l as Mt,n as Et,r as Ot,t as Ut}from"./dialog-BXzvlof-.js";import{c as le,l as zt,s as Ht,u as de}from"./popover-Cvl9xY6R.js";import{n as Kt}from"./ImperativeModal-CRNJOvqT.js";import{t as pe}from"./links-BKV6zi_7.js";import{n as Wt}from"./useAsyncData-DVm0BCFt.js";import{o as Gt}from"./focus-Bci_MkMH.js";import{t as Vt}from"./request-registry-CN4oD1xn.js";import{n as Zt,t as Qt}from"./write-secret-modal-DuxmGjDn.js";var Jt=et(function(t,e,s){t[s?0:1].push(e)},function(){return[[],[]]}),Yt=Q("file-play",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z",key:"1tzo1f"}]]),Xt=Q("file-spreadsheet",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]),Y=Q("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),X="env:";function Er(t){return t}function E(t){return typeof t=="string"?t.startsWith(X):!1}function ee(t){return`${X}${t}`}function he(t){return t.replace(X,"")}var es=P(),B=oe(Ze(),1),o=oe(st(),1),me=(0,B.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:tt.NOOP});const ts=()=>(0,B.use)(me),ss=t=>{let e=(0,es.c)(14),{children:s}=t,r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=[],e[0]=r):r=e[0];let{data:n,isPending:l,error:i,refetch:c}=Wt(as,r),d;e[1]===(n==null?void 0:n.secretKeys)?d=e[2]:(d=(n==null?void 0:n.secretKeys)||[],e[1]=n==null?void 0:n.secretKeys,e[2]=d);let h;e[3]===(n==null?void 0:n.providerNames)?h=e[4]:(h=(n==null?void 0:n.providerNames)||[],e[3]=n==null?void 0:n.providerNames,e[4]=h);let p;e[5]!==i||e[6]!==l||e[7]!==c||e[8]!==d||e[9]!==h?(p={secretKeys:d,providerNames:h,loading:l,error:i,refreshSecrets:c},e[5]=i,e[6]=l,e[7]=c,e[8]=d,e[9]=h,e[10]=p):p=e[10];let m;return e[11]!==s||e[12]!==p?(m=(0,o.jsx)(me,{value:p,children:s}),e[11]=s,e[12]=p,e[13]=m):m=e[13],m},rs={isMatch:t=>{if(t instanceof ae||t instanceof Xe){let{optionRegex:e}=a.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:r,providerNames:n,refreshSecrets:l}=ts(),{openModal:i,closeModal:c}=Kt(),{label:d,description:h,optionRegex:p=""}=a.parse(t.description||""),[m,b]=Jt(r,f=>new RegExp(p,"i").test(f));return(0,o.jsx)(At,{control:e.control,name:s,render:({field:f})=>(0,o.jsxs)(xt,{children:[(0,o.jsx)(wt,{children:d}),(0,o.jsx)(_t,{children:h}),(0,o.jsx)($t,{children:(0,o.jsxs)("div",{className:"flex gap-2",children:[t instanceof ae?(0,o.jsx)(yt,{...f,value:f.value,onChange:f.onChange,className:W("flex-1")}):(0,o.jsx)(gt,{...f,value:f.value,onChange:f.onChange,className:"flex-1"}),(0,o.jsxs)(at,{children:[(0,o.jsx)(ot,{asChild:!0,children:(0,o.jsx)(Z,{variant:"outline",size:"icon",className:W(E(f.value)&&"bg-accent"),children:(0,o.jsx)(ft,{className:"h-3 w-3"})})}),(0,o.jsxs)(ct,{align:"end",className:"max-h-60 overflow-y-auto",children:[(0,o.jsxs)(J,{onSelect:()=>{i((0,o.jsx)(Qt,{providerNames:n,onSuccess:x=>{l(),f.onChange(ee(x)),c()},onClose:c}))},children:[(0,o.jsx)(rt,{className:"mr-2 h-3.5 w-3.5"}),"Create a new secret"]}),m.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ie,{}),(0,o.jsx)(nt,{children:"Recommended"})]}),m.map(x=>(0,o.jsx)(J,{onSelect:()=>f.onChange(ee(x)),children:x},x)),b.length>0&&(0,o.jsx)(ie,{}),b.map(x=>(0,o.jsx)(J,{onSelect:()=>f.onChange(ee(x)),children:x},x))]})]})]})}),(0,o.jsx)(jt,{})]})})}};function ns(t){return t.provider!=="env"}function os(t){return t.name}function cs(t){return t.keys}async function as(){let t=await Vt.request({}),e=Zt(t.secrets).filter(ns).map(os);return{secretKeys:t.secrets.flatMap(cs).sort(),providerNames:e}}var O=P(),is=[rs];const te=t=>{let e=(0,O.c)(2),{children:s}=t,r;return e[0]===s?r=e[1]:(r=(0,o.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:s}),e[0]=s,e[1]=r),r},se=t=>{let e=(0,O.c)(9),{name:s,color:r,icon:n,onSelect:l}=t,i;e[0]===r?i=e[1]:(i={backgroundColor:r},e[0]=r,e[1]=i);let c;e[2]===s?c=e[3]:(c=(0,o.jsx)("span",{className:"text-white font-medium text-lg",children:s}),e[2]=s,e[3]=c);let d;return e[4]!==n||e[5]!==l||e[6]!==i||e[7]!==c?(d=(0,o.jsxs)("button",{type:"button",className:"py-3 flex flex-col items-center justify-center gap-1 transition-all hover:scale-105 hover:brightness-110 rounded shadow-sm-solid hover:shadow-md-solid",style:i,onClick:l,children:[n,c]}),e[4]=n,e[5]=l,e[6]=i,e[7]=c,e[8]=d):d=e[8],d},ls=t=>{let e=(0,O.c)(25),{onBack:s,isValid:r,libraries:n,preferredLibrary:l,onLibraryChange:i,displayNames:c,libraryLabel:d}=t,h=d===void 0?"Preferred library":d,p;e[0]===s?p=e[1]:(p=(0,o.jsx)(Z,{type:"button",variant:"outline",onClick:s,children:"Back"}),e[0]=s,e[1]=p);let m=!r,b;e[2]===m?b=e[3]:(b=(0,o.jsx)(Z,{type:"submit",disabled:m,children:"Add"}),e[2]=m,e[3]=b);let f;e[4]!==p||e[5]!==b?(f=(0,o.jsxs)("div",{className:"flex gap-2",children:[p,b]}),e[4]=p,e[5]=b,e[6]=f):f=e[6];let x;e[7]===Symbol.for("react.memo_cache_sentinel")?(x=(0,o.jsx)(qt,{children:(0,o.jsx)(Tt,{placeholder:"Select a library"})}),e[7]=x):x=e[7];let S;e[8]===h?S=e[9]:(S=(0,o.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[x,(0,o.jsx)("span",{className:"text-xs text-muted-foreground",children:h})]}),e[8]=h,e[9]=S);let R;if(e[10]!==c||e[11]!==n){let k;e[13]===c?k=e[14]:(k=C=>(0,o.jsx)(It,{value:C,children:c[C]??C},C),e[13]=c,e[14]=k),R=n.map(k),e[10]=c,e[11]=n,e[12]=R}else R=e[12];let j;e[15]===R?j=e[16]:(j=(0,o.jsx)(Dt,{children:(0,o.jsx)(Nt,{children:R})}),e[15]=R,e[16]=j);let v;e[17]!==i||e[18]!==l||e[19]!==S||e[20]!==j?(v=(0,o.jsx)("div",{children:(0,o.jsxs)(Ft,{value:l,onValueChange:i,children:[S,j]})}),e[17]=i,e[18]=l,e[19]=S,e[20]=j,e[21]=v):v=e[21];let L;return e[22]!==v||e[23]!==f?(L=(0,o.jsxs)("div",{className:"flex gap-2 justify-between",children:[f,v]}),e[22]=v,e[23]=f,e[24]=L):L=e[24],L};function ds(){let t=(0,O.c)(3),{createNewCell:e}=Qe(),s=Gt(),r;return t[0]!==e||t[1]!==s?(r=n=>{e({code:n,before:!1,cellId:s??"__end__",skipIfCodeExists:!0})},t[0]=e,t[1]=s,t[2]=r):r=t[2],r}const ue=t=>{let e=(0,O.c)(30),{schema:s,libraries:r,preferredLibrary:n,displayNames:l,libraryLabel:i,generateCode:c,onSubmit:d,onBack:h}=t,p;e[0]===s?p=e[1]:(p=mt(s),e[0]=s,e[1]=p);let m=p,b;e[2]===s?b=e[3]:(b=St(s),e[2]=s,e[3]=b);let f;e[4]!==m||e[5]!==b?(f={defaultValues:m,resolver:b,reValidateMode:"onChange"},e[4]=m,e[5]=b,e[6]=f):f=e[6];let x=Rt(f),[S,R]=B.useState(n),j=ds(),v;e[7]!==c||e[8]!==j||e[9]!==d||e[10]!==S?(v=We=>{j(c(We,S)),d()},e[7]=c,e[8]=j,e[9]=d,e[10]=S,e[11]=v):v=e[11];let L=v,k;e[12]!==x||e[13]!==L?(k=x.handleSubmit(L),e[12]=x,e[13]=L,e[14]=k):k=e[14];let C;e[15]===Symbol.for("react.memo_cache_sentinel")?(C=(0,o.jsx)(vt,{}),e[15]=C):C=e[15];let q;e[16]!==x||e[17]!==s?(q=(0,o.jsx)(ss,{children:(0,o.jsx)(ut,{schema:s,form:x,renderers:is,children:C})}),e[16]=x,e[17]=s,e[18]=q):q=e[18];let F;e[19]!==l||e[20]!==x.formState.isValid||e[21]!==r||e[22]!==i||e[23]!==h||e[24]!==S?(F=(0,o.jsx)(ls,{onBack:h,isValid:x.formState.isValid,libraries:r,preferredLibrary:S,onLibraryChange:R,displayNames:l,libraryLabel:i}),e[19]=l,e[20]=x.formState.isValid,e[21]=r,e[22]=i,e[23]=h,e[24]=S,e[25]=F):F=e[25];let U;return e[26]!==k||e[27]!==q||e[28]!==F?(U=(0,o.jsxs)("form",{onSubmit:k,className:"space-y-4",children:[q,F]}),e[26]=k,e[27]=q,e[28]=F,e[29]=U):U=e[29],U};function T(){return u().optional().describe(a.of({label:"Password",inputType:"password",placeholder:"password",optionRegex:".*password.*"}))}function re(t,e){let s=u();return s=e?s.nonempty():s.optional(),s=s.describe(a.of({label:t||"Token",inputType:"password",placeholder:"token",optionRegex:".*token.*"})),s}function G(){return u().optional().describe(a.of({label:"Warehouse Name",placeholder:"warehouse",optionRegex:".*warehouse.*"}))}function ne(t,e){let s=u();return s=e?s.nonempty():s.optional(),s.describe(a.of({label:t||"URI",optionRegex:".*uri.*"}))}function A(t){return u().nonempty().describe(a.of({label:t||"Host",placeholder:"localhost",optionRegex:".*host.*"}))}function $(){return u().describe(a.of({label:"Database",placeholder:"db name",optionRegex:".*database.*"}))}function ps(){return u().describe(a.of({label:"Schema",placeholder:"schema name",optionRegex:".*schema.*"}))}function I(){return u().nonempty().describe(a.of({label:"Username",placeholder:"username",optionRegex:".*username.*"}))}function D(t){let e=Ye().describe(a.of({label:"Port",inputType:"number",placeholder:t==null?void 0:t.toString()})).transform(Number).refine(s=>s>=0&&s<=65535,{message:"Port must be between 0 and 65535"});return t===void 0?e:e.default(t)}function be(){return N().default(!1).describe(a.of({label:"Read Only"}))}const fe=y({type:_("postgres"),host:A(),port:D(5432).optional(),database:$(),username:I(),password:T(),ssl:N().default(!1).describe(a.of({label:"Use SSL"}))}).describe(a.of({direction:"two-columns"})),ge=y({type:_("mysql"),host:A(),port:D(3306),database:$(),username:I(),password:T(),ssl:N().default(!1).describe(a.of({label:"Use SSL"}))}).describe(a.of({direction:"two-columns"})),ye=y({type:_("sqlite"),database:$().describe(a.of({label:"Database Path"}))}).describe(a.of({direction:"two-columns"})),_e=y({type:_("duckdb"),database:$().describe(a.of({label:"Database Path"})),read_only:be()}).describe(a.of({direction:"two-columns"})),xe=y({type:_("motherduck"),database:$().default("my_db").describe(a.of({label:"Database Name"})),token:re()}).describe(a.of({direction:"two-columns"})),we=y({type:_("snowflake"),account:u().nonempty().describe(a.of({label:"Account",optionRegex:".*snowflake.*"})),warehouse:u().optional().describe(a.of({label:"Warehouse",optionRegex:".*snowflake.*"})),database:$(),schema:u().optional().describe(a.of({label:"Schema",optionRegex:".*snowflake.*"})),username:I(),password:T(),role:u().optional().describe(a.of({label:"Role"}))}).describe(a.of({direction:"two-columns"})),Se=y({type:_("bigquery"),project:u().nonempty().describe(a.of({label:"Project ID",optionRegex:".*bigquery.*"})),dataset:u().nonempty().describe(a.of({label:"Dataset",optionRegex:".*bigquery.*"})),credentials_json:u().describe(a.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(a.of({direction:"two-columns"})),ve=y({type:_("clickhouse_connect"),host:A(),port:D(8123).optional(),username:I(),password:T(),secure:N().default(!1).describe(a.of({label:"Use HTTPs"})),proxy_path:u().optional().describe(a.of({label:"Proxy Path",placeholder:"/clickhouse"}))}).describe(a.of({direction:"two-columns"})),ke=y({type:_("timeplus"),host:A().default("localhost"),port:D(8123).optional(),username:I().default("default"),password:T().default("")}).describe(a.of({direction:"two-columns"})),je=y({type:_("chdb"),database:$().describe(a.of({label:"Database Path"})),read_only:be()}).describe(a.of({direction:"two-columns"})),$e=y({type:_("trino"),host:A(),port:D(8080),database:$(),schema:ps().optional(),username:I(),password:T(),async_support:N().default(!1).describe(a.of({label:"Async Support"}))}).describe(a.of({direction:"two-columns"})),Ce=y({type:_("iceberg"),name:u().describe(a.of({label:"Catalog Name"})),catalog:H("type",[y({type:_("REST"),warehouse:G(),uri:u().optional().describe(a.of({label:"URI",placeholder:"https://",optionRegex:".*uri.*"})),token:re()}),y({type:_("SQL"),warehouse:G(),uri:u().optional().describe(a.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:".*uri.*"}))}),y({type:_("Hive"),warehouse:G(),uri:ne()}),y({type:_("Glue"),warehouse:G(),uri:ne()}),y({type:_("DynamoDB"),"dynamodb.profile-name":u().optional().describe(a.of({label:"Profile Name"})),"dynamodb.region":u().optional().describe(a.of({label:"Region"})),"dynamodb.access-key-id":u().optional().describe(a.of({label:"Access Key ID"})),"dynamodb.secret-access-key":u().optional().describe(a.of({label:"Secret Access Key",inputType:"password"})),"dynamodb.session-token":u().optional().describe(a.of({label:"Session Token",inputType:"password"}))})]).default({type:"REST",token:void 0}).describe(a.of({special:"tabs"}))}),Ae=y({type:_("datafusion"),sessionContext:N().optional().describe(a.of({label:"Use Session Context"}))}),Re=y({type:_("pyspark"),host:A().optional(),port:D().optional()}),Le=y({type:_("redshift"),host:A(),port:D(5439),connectionType:H("type",[y({type:_("IAM credentials"),region:u().describe(a.of({label:"Region"})),aws_access_key_id:u().nonempty().describe(a.of({label:"AWS Access Key ID",inputType:"password",optionRegex:".*aws_access_key_id.*"})),aws_secret_access_key:u().nonempty().describe(a.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:".*aws_secret_access_key.*"})),aws_session_token:u().optional().describe(a.of({label:"AWS Session Token",inputType:"password",optionRegex:".*aws_session_token.*"}))}),y({type:_("DB credentials"),user:I(),password:T()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:$()}).describe(a.of({direction:"two-columns"})),Te=y({type:_("databricks"),access_token:re("Access Token",!0),server_hostname:A("Server Hostname"),http_path:ne("HTTP Path",!0),catalog:u().optional().describe(a.of({label:"Catalog"})),schema:u().optional().describe(a.of({label:"Schema"}))}).describe(a.of({direction:"two-columns"})),Ie=y({type:_("supabase"),host:A(),port:D(5432).optional(),database:$(),username:I(),password:T(),disable_client_pooling:N().default(!1).describe(a.of({label:"Disable Client-Side Pooling"}))}).describe(a.of({direction:"two-columns"})),hs=H("type",[fe,ge,ye,_e,xe,we,Se,ve,ke,je,$e,Ce,Ae,Re,Le,Te,Ie]),De={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var w=class{constructor(t,e,s){this.connection=t,this.orm=e,this.secrets=s}get imports(){let t=new Set(this.generateImports());switch(this.orm){case"sqlalchemy":t.add("import sqlalchemy");break;case"sqlmodel":t.add("import sqlmodel");break;case"duckdb":t.add("import duckdb");break;case"ibis":t.add("import ibis");break}return t}},ms=t=>`_${t}`,us=class{constructor(){z(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=ms(t),E(e)){let r=he(e),n=s?`os.environ.get("${r}", "${s}")`:`os.environ.get("${r}")`;return this.secrets[t]=n,t}if(s!=null){let r=`os.environ.get("${e}", "${s}")`;return this.secrets[t]=r,t}return typeof e=="number"||typeof e=="number"?`${e}`:typeof e=="boolean"?M(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return M(e);let r=this.print(t,e,s);return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1):`{${r}}`}printPassword(t,e,s,r){let n=s?this.printInFString.bind(this):this.print.bind(this);return E(t)?n(r||"password",t):n(r||"password",e,t)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
1
+ var Ge=Object.defineProperty;var Ve=(t,e,s)=>e in t?Ge(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var z=(t,e,s)=>Ve(t,typeof e!="symbol"?e+"":e,s);import{s as oe}from"./chunk-LvLJmgfZ.js";import{t as Ze}from"./react-Bj1aDYRI.js";import{Rn as g,T as Qe,Tt as ce,rr as Je}from"./cells-BusUaZSh.js";import{D as H,P as y,R as u,T as N,_ as ae,i as Ye,k as _,m as Xe}from"./zod-H_cgTO0M.js";import{t as P}from"./compiler-runtime-B3qBwwSJ.js";import{t as K}from"./assertNever-Dw9aFN4h.js";import{t as et}from"./_createAggregator-BjsxkJZj.js";import{h as tt}from"./useEventListener-CjXriKgk.js";import{t as st}from"./jsx-runtime-CP2fAiZX.js";import{t as Z}from"./button-BmOH9agK.js";import{t as W}from"./cn-d_A4rA-x.js";import{t as Q}from"./createLucideIcon-BvP5LBIs.js";import{t as rt}from"./circle-plus-DfyUnSPr.js";import{a as J,c as ie,o as nt,p as ot,r as ct,t as at}from"./dropdown-menu-CKhrfxsx.js";import{t as it}from"./database-zap-B3efE3T2.js";import{t as lt}from"./file-code-D9wtWSiR.js";import{t as dt}from"./file-DVwc11C3.js";import{t as pt}from"./github-BrsjF9dp.js";import{m as ht,o as mt,t as ut,u as a}from"./form-DOjZnkdK.js";import{i as bt}from"./html-to-image-DjFNZcCI.js";import{n as ft}from"./DeferredRequestRegistry-CMZsNx4R.js";import{o as gt,r as yt}from"./input-BPldEXfy.js";import{c as _t,d as xt,f as wt,h as St,l as vt,n as kt,p as jt,s as $t,t as Ct,u as At,v as Rt}from"./azure-D5yXrO2H.js";import{r as Lt}from"./useTheme-CwdqVOYu.js";import{c as Tt,i as It,n as Dt,r as Nt,s as qt,t as Ft}from"./select-DygbgNTD.js";import{a as Pt,c as Bt,l as Mt,n as Et,r as Ot,t as Ut}from"./dialog-BXzvlof-.js";import{c as le,l as zt,s as Ht,u as de}from"./popover-Cvl9xY6R.js";import{n as Kt}from"./ImperativeModal-CRNJOvqT.js";import{t as pe}from"./links-BKV6zi_7.js";import{n as Wt}from"./useAsyncData-DVm0BCFt.js";import{o as Gt}from"./focus-ByrD76nS.js";import{t as Vt}from"./request-registry-CN4oD1xn.js";import{n as Zt,t as Qt}from"./write-secret-modal-DuxmGjDn.js";var Jt=et(function(t,e,s){t[s?0:1].push(e)},function(){return[[],[]]}),Yt=Q("file-play",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z",key:"1tzo1f"}]]),Xt=Q("file-spreadsheet",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]]),Y=Q("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),X="env:";function Er(t){return t}function E(t){return typeof t=="string"?t.startsWith(X):!1}function ee(t){return`${X}${t}`}function he(t){return t.replace(X,"")}var es=P(),B=oe(Ze(),1),o=oe(st(),1),me=(0,B.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:tt.NOOP});const ts=()=>(0,B.use)(me),ss=t=>{let e=(0,es.c)(14),{children:s}=t,r;e[0]===Symbol.for("react.memo_cache_sentinel")?(r=[],e[0]=r):r=e[0];let{data:n,isPending:l,error:i,refetch:c}=Wt(as,r),d;e[1]===(n==null?void 0:n.secretKeys)?d=e[2]:(d=(n==null?void 0:n.secretKeys)||[],e[1]=n==null?void 0:n.secretKeys,e[2]=d);let h;e[3]===(n==null?void 0:n.providerNames)?h=e[4]:(h=(n==null?void 0:n.providerNames)||[],e[3]=n==null?void 0:n.providerNames,e[4]=h);let p;e[5]!==i||e[6]!==l||e[7]!==c||e[8]!==d||e[9]!==h?(p={secretKeys:d,providerNames:h,loading:l,error:i,refreshSecrets:c},e[5]=i,e[6]=l,e[7]=c,e[8]=d,e[9]=h,e[10]=p):p=e[10];let m;return e[11]!==s||e[12]!==p?(m=(0,o.jsx)(me,{value:p,children:s}),e[11]=s,e[12]=p,e[13]=m):m=e[13],m},rs={isMatch:t=>{if(t instanceof ae||t instanceof Xe){let{optionRegex:e}=a.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:r,providerNames:n,refreshSecrets:l}=ts(),{openModal:i,closeModal:c}=Kt(),{label:d,description:h,optionRegex:p=""}=a.parse(t.description||""),[m,b]=Jt(r,f=>new RegExp(p,"i").test(f));return(0,o.jsx)(At,{control:e.control,name:s,render:({field:f})=>(0,o.jsxs)(xt,{children:[(0,o.jsx)(wt,{children:d}),(0,o.jsx)(_t,{children:h}),(0,o.jsx)($t,{children:(0,o.jsxs)("div",{className:"flex gap-2",children:[t instanceof ae?(0,o.jsx)(yt,{...f,value:f.value,onChange:f.onChange,className:W("flex-1")}):(0,o.jsx)(gt,{...f,value:f.value,onChange:f.onChange,className:"flex-1"}),(0,o.jsxs)(at,{children:[(0,o.jsx)(ot,{asChild:!0,children:(0,o.jsx)(Z,{variant:"outline",size:"icon",className:W(E(f.value)&&"bg-accent"),children:(0,o.jsx)(ft,{className:"h-3 w-3"})})}),(0,o.jsxs)(ct,{align:"end",className:"max-h-60 overflow-y-auto",children:[(0,o.jsxs)(J,{onSelect:()=>{i((0,o.jsx)(Qt,{providerNames:n,onSuccess:x=>{l(),f.onChange(ee(x)),c()},onClose:c}))},children:[(0,o.jsx)(rt,{className:"mr-2 h-3.5 w-3.5"}),"Create a new secret"]}),m.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ie,{}),(0,o.jsx)(nt,{children:"Recommended"})]}),m.map(x=>(0,o.jsx)(J,{onSelect:()=>f.onChange(ee(x)),children:x},x)),b.length>0&&(0,o.jsx)(ie,{}),b.map(x=>(0,o.jsx)(J,{onSelect:()=>f.onChange(ee(x)),children:x},x))]})]})]})}),(0,o.jsx)(jt,{})]})})}};function ns(t){return t.provider!=="env"}function os(t){return t.name}function cs(t){return t.keys}async function as(){let t=await Vt.request({}),e=Zt(t.secrets).filter(ns).map(os);return{secretKeys:t.secrets.flatMap(cs).sort(),providerNames:e}}var O=P(),is=[rs];const te=t=>{let e=(0,O.c)(2),{children:s}=t,r;return e[0]===s?r=e[1]:(r=(0,o.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:s}),e[0]=s,e[1]=r),r},se=t=>{let e=(0,O.c)(9),{name:s,color:r,icon:n,onSelect:l}=t,i;e[0]===r?i=e[1]:(i={backgroundColor:r},e[0]=r,e[1]=i);let c;e[2]===s?c=e[3]:(c=(0,o.jsx)("span",{className:"text-white font-medium text-lg",children:s}),e[2]=s,e[3]=c);let d;return e[4]!==n||e[5]!==l||e[6]!==i||e[7]!==c?(d=(0,o.jsxs)("button",{type:"button",className:"py-3 flex flex-col items-center justify-center gap-1 transition-all hover:scale-105 hover:brightness-110 rounded shadow-sm-solid hover:shadow-md-solid",style:i,onClick:l,children:[n,c]}),e[4]=n,e[5]=l,e[6]=i,e[7]=c,e[8]=d):d=e[8],d},ls=t=>{let e=(0,O.c)(25),{onBack:s,isValid:r,libraries:n,preferredLibrary:l,onLibraryChange:i,displayNames:c,libraryLabel:d}=t,h=d===void 0?"Preferred library":d,p;e[0]===s?p=e[1]:(p=(0,o.jsx)(Z,{type:"button",variant:"outline",onClick:s,children:"Back"}),e[0]=s,e[1]=p);let m=!r,b;e[2]===m?b=e[3]:(b=(0,o.jsx)(Z,{type:"submit",disabled:m,children:"Add"}),e[2]=m,e[3]=b);let f;e[4]!==p||e[5]!==b?(f=(0,o.jsxs)("div",{className:"flex gap-2",children:[p,b]}),e[4]=p,e[5]=b,e[6]=f):f=e[6];let x;e[7]===Symbol.for("react.memo_cache_sentinel")?(x=(0,o.jsx)(qt,{children:(0,o.jsx)(Tt,{placeholder:"Select a library"})}),e[7]=x):x=e[7];let S;e[8]===h?S=e[9]:(S=(0,o.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[x,(0,o.jsx)("span",{className:"text-xs text-muted-foreground",children:h})]}),e[8]=h,e[9]=S);let R;if(e[10]!==c||e[11]!==n){let k;e[13]===c?k=e[14]:(k=C=>(0,o.jsx)(It,{value:C,children:c[C]??C},C),e[13]=c,e[14]=k),R=n.map(k),e[10]=c,e[11]=n,e[12]=R}else R=e[12];let j;e[15]===R?j=e[16]:(j=(0,o.jsx)(Dt,{children:(0,o.jsx)(Nt,{children:R})}),e[15]=R,e[16]=j);let v;e[17]!==i||e[18]!==l||e[19]!==S||e[20]!==j?(v=(0,o.jsx)("div",{children:(0,o.jsxs)(Ft,{value:l,onValueChange:i,children:[S,j]})}),e[17]=i,e[18]=l,e[19]=S,e[20]=j,e[21]=v):v=e[21];let L;return e[22]!==v||e[23]!==f?(L=(0,o.jsxs)("div",{className:"flex gap-2 justify-between",children:[f,v]}),e[22]=v,e[23]=f,e[24]=L):L=e[24],L};function ds(){let t=(0,O.c)(3),{createNewCell:e}=Qe(),s=Gt(),r;return t[0]!==e||t[1]!==s?(r=n=>{e({code:n,before:!1,cellId:s??"__end__",skipIfCodeExists:!0})},t[0]=e,t[1]=s,t[2]=r):r=t[2],r}const ue=t=>{let e=(0,O.c)(30),{schema:s,libraries:r,preferredLibrary:n,displayNames:l,libraryLabel:i,generateCode:c,onSubmit:d,onBack:h}=t,p;e[0]===s?p=e[1]:(p=mt(s),e[0]=s,e[1]=p);let m=p,b;e[2]===s?b=e[3]:(b=St(s),e[2]=s,e[3]=b);let f;e[4]!==m||e[5]!==b?(f={defaultValues:m,resolver:b,reValidateMode:"onChange"},e[4]=m,e[5]=b,e[6]=f):f=e[6];let x=Rt(f),[S,R]=B.useState(n),j=ds(),v;e[7]!==c||e[8]!==j||e[9]!==d||e[10]!==S?(v=We=>{j(c(We,S)),d()},e[7]=c,e[8]=j,e[9]=d,e[10]=S,e[11]=v):v=e[11];let L=v,k;e[12]!==x||e[13]!==L?(k=x.handleSubmit(L),e[12]=x,e[13]=L,e[14]=k):k=e[14];let C;e[15]===Symbol.for("react.memo_cache_sentinel")?(C=(0,o.jsx)(vt,{}),e[15]=C):C=e[15];let q;e[16]!==x||e[17]!==s?(q=(0,o.jsx)(ss,{children:(0,o.jsx)(ut,{schema:s,form:x,renderers:is,children:C})}),e[16]=x,e[17]=s,e[18]=q):q=e[18];let F;e[19]!==l||e[20]!==x.formState.isValid||e[21]!==r||e[22]!==i||e[23]!==h||e[24]!==S?(F=(0,o.jsx)(ls,{onBack:h,isValid:x.formState.isValid,libraries:r,preferredLibrary:S,onLibraryChange:R,displayNames:l,libraryLabel:i}),e[19]=l,e[20]=x.formState.isValid,e[21]=r,e[22]=i,e[23]=h,e[24]=S,e[25]=F):F=e[25];let U;return e[26]!==k||e[27]!==q||e[28]!==F?(U=(0,o.jsxs)("form",{onSubmit:k,className:"space-y-4",children:[q,F]}),e[26]=k,e[27]=q,e[28]=F,e[29]=U):U=e[29],U};function T(){return u().optional().describe(a.of({label:"Password",inputType:"password",placeholder:"password",optionRegex:".*password.*"}))}function re(t,e){let s=u();return s=e?s.nonempty():s.optional(),s=s.describe(a.of({label:t||"Token",inputType:"password",placeholder:"token",optionRegex:".*token.*"})),s}function G(){return u().optional().describe(a.of({label:"Warehouse Name",placeholder:"warehouse",optionRegex:".*warehouse.*"}))}function ne(t,e){let s=u();return s=e?s.nonempty():s.optional(),s.describe(a.of({label:t||"URI",optionRegex:".*uri.*"}))}function A(t){return u().nonempty().describe(a.of({label:t||"Host",placeholder:"localhost",optionRegex:".*host.*"}))}function $(){return u().describe(a.of({label:"Database",placeholder:"db name",optionRegex:".*database.*"}))}function ps(){return u().describe(a.of({label:"Schema",placeholder:"schema name",optionRegex:".*schema.*"}))}function I(){return u().nonempty().describe(a.of({label:"Username",placeholder:"username",optionRegex:".*username.*"}))}function D(t){let e=Ye().describe(a.of({label:"Port",inputType:"number",placeholder:t==null?void 0:t.toString()})).transform(Number).refine(s=>s>=0&&s<=65535,{message:"Port must be between 0 and 65535"});return t===void 0?e:e.default(t)}function be(){return N().default(!1).describe(a.of({label:"Read Only"}))}const fe=y({type:_("postgres"),host:A(),port:D(5432).optional(),database:$(),username:I(),password:T(),ssl:N().default(!1).describe(a.of({label:"Use SSL"}))}).describe(a.of({direction:"two-columns"})),ge=y({type:_("mysql"),host:A(),port:D(3306),database:$(),username:I(),password:T(),ssl:N().default(!1).describe(a.of({label:"Use SSL"}))}).describe(a.of({direction:"two-columns"})),ye=y({type:_("sqlite"),database:$().describe(a.of({label:"Database Path"}))}).describe(a.of({direction:"two-columns"})),_e=y({type:_("duckdb"),database:$().describe(a.of({label:"Database Path"})),read_only:be()}).describe(a.of({direction:"two-columns"})),xe=y({type:_("motherduck"),database:$().default("my_db").describe(a.of({label:"Database Name"})),token:re()}).describe(a.of({direction:"two-columns"})),we=y({type:_("snowflake"),account:u().nonempty().describe(a.of({label:"Account",optionRegex:".*snowflake.*"})),warehouse:u().optional().describe(a.of({label:"Warehouse",optionRegex:".*snowflake.*"})),database:$(),schema:u().optional().describe(a.of({label:"Schema",optionRegex:".*snowflake.*"})),username:I(),password:T(),role:u().optional().describe(a.of({label:"Role"}))}).describe(a.of({direction:"two-columns"})),Se=y({type:_("bigquery"),project:u().nonempty().describe(a.of({label:"Project ID",optionRegex:".*bigquery.*"})),dataset:u().nonempty().describe(a.of({label:"Dataset",optionRegex:".*bigquery.*"})),credentials_json:u().describe(a.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(a.of({direction:"two-columns"})),ve=y({type:_("clickhouse_connect"),host:A(),port:D(8123).optional(),username:I(),password:T(),secure:N().default(!1).describe(a.of({label:"Use HTTPs"})),proxy_path:u().optional().describe(a.of({label:"Proxy Path",placeholder:"/clickhouse"}))}).describe(a.of({direction:"two-columns"})),ke=y({type:_("timeplus"),host:A().default("localhost"),port:D(8123).optional(),username:I().default("default"),password:T().default("")}).describe(a.of({direction:"two-columns"})),je=y({type:_("chdb"),database:$().describe(a.of({label:"Database Path"})),read_only:be()}).describe(a.of({direction:"two-columns"})),$e=y({type:_("trino"),host:A(),port:D(8080),database:$(),schema:ps().optional(),username:I(),password:T(),async_support:N().default(!1).describe(a.of({label:"Async Support"}))}).describe(a.of({direction:"two-columns"})),Ce=y({type:_("iceberg"),name:u().describe(a.of({label:"Catalog Name"})),catalog:H("type",[y({type:_("REST"),warehouse:G(),uri:u().optional().describe(a.of({label:"URI",placeholder:"https://",optionRegex:".*uri.*"})),token:re()}),y({type:_("SQL"),warehouse:G(),uri:u().optional().describe(a.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:".*uri.*"}))}),y({type:_("Hive"),warehouse:G(),uri:ne()}),y({type:_("Glue"),warehouse:G(),uri:ne()}),y({type:_("DynamoDB"),"dynamodb.profile-name":u().optional().describe(a.of({label:"Profile Name"})),"dynamodb.region":u().optional().describe(a.of({label:"Region"})),"dynamodb.access-key-id":u().optional().describe(a.of({label:"Access Key ID"})),"dynamodb.secret-access-key":u().optional().describe(a.of({label:"Secret Access Key",inputType:"password"})),"dynamodb.session-token":u().optional().describe(a.of({label:"Session Token",inputType:"password"}))})]).default({type:"REST",token:void 0}).describe(a.of({special:"tabs"}))}),Ae=y({type:_("datafusion"),sessionContext:N().optional().describe(a.of({label:"Use Session Context"}))}),Re=y({type:_("pyspark"),host:A().optional(),port:D().optional()}),Le=y({type:_("redshift"),host:A(),port:D(5439),connectionType:H("type",[y({type:_("IAM credentials"),region:u().describe(a.of({label:"Region"})),aws_access_key_id:u().nonempty().describe(a.of({label:"AWS Access Key ID",inputType:"password",optionRegex:".*aws_access_key_id.*"})),aws_secret_access_key:u().nonempty().describe(a.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:".*aws_secret_access_key.*"})),aws_session_token:u().optional().describe(a.of({label:"AWS Session Token",inputType:"password",optionRegex:".*aws_session_token.*"}))}),y({type:_("DB credentials"),user:I(),password:T()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:$()}).describe(a.of({direction:"two-columns"})),Te=y({type:_("databricks"),access_token:re("Access Token",!0),server_hostname:A("Server Hostname"),http_path:ne("HTTP Path",!0),catalog:u().optional().describe(a.of({label:"Catalog"})),schema:u().optional().describe(a.of({label:"Schema"}))}).describe(a.of({direction:"two-columns"})),Ie=y({type:_("supabase"),host:A(),port:D(5432).optional(),database:$(),username:I(),password:T(),disable_client_pooling:N().default(!1).describe(a.of({label:"Disable Client-Side Pooling"}))}).describe(a.of({direction:"two-columns"})),hs=H("type",[fe,ge,ye,_e,xe,we,Se,ve,ke,je,$e,Ce,Ae,Re,Le,Te,Ie]),De={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var w=class{constructor(t,e,s){this.connection=t,this.orm=e,this.secrets=s}get imports(){let t=new Set(this.generateImports());switch(this.orm){case"sqlalchemy":t.add("import sqlalchemy");break;case"sqlmodel":t.add("import sqlmodel");break;case"duckdb":t.add("import duckdb");break;case"ibis":t.add("import ibis");break}return t}},ms=t=>`_${t}`,us=class{constructor(){z(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=ms(t),E(e)){let r=he(e),n=s?`os.environ.get("${r}", "${s}")`:`os.environ.get("${r}")`;return this.secrets[t]=n,t}if(s!=null){let r=`os.environ.get("${e}", "${s}")`;return this.secrets[t]=r,t}return typeof e=="number"||typeof e=="number"?`${e}`:typeof e=="boolean"?M(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return M(e);let r=this.print(t,e,s);return r.startsWith('"')&&r.endsWith('"')?r.slice(1,-1):`{${r}}`}printPassword(t,e,s,r){let n=s?this.printInFString.bind(this):this.print.bind(this);return E(t)?n(r||"password",t):n(r||"password",e,t)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
2
2
  `)}},bs=class extends w{generateImports(){return[]}generateConnectionCode(){let t=this.connection.ssl?", connect_args={'sslmode': 'require'}":"",e=this.secrets.printPassword(this.connection.password,"POSTGRES_PASSWORD",!0);return g(`
3
3
  DATABASE_URL = f"postgresql://${this.secrets.printInFString("username",this.connection.username)}:${e}@${this.secrets.printInFString("host",this.connection.host)}:${this.secrets.printInFString("port",this.connection.port)}/${this.secrets.printInFString("database",this.connection.database)}"
4
4
  engine = ${this.orm}.create_engine(DATABASE_URL${t})