@marimo-team/frontend 0.25.3-dev95 → 0.25.3-dev96

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 (100) hide show
  1. package/dist/assets/{CellStatus-CplYFNTy.js → CellStatus-Dc8AR1al.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-CdGuz4a_.js → ErrorBoundary-DBQW23V4.js} +2 -2
  3. package/dist/assets/{JsonOutput-Csbov8Fx.js → JsonOutput-nLzWQ-0V.js} +1 -1
  4. package/dist/assets/{MarimoErrorOutput-czclLlOn.js → MarimoErrorOutput-DAFgeK_G.js} +1 -1
  5. package/dist/assets/{RenderHTML-CNDedpS4.js → RenderHTML-DwolbpuI.js} +1 -1
  6. package/dist/assets/{RunButton-CRfdOxVd.js → RunButton-BN3_mnoU.js} +1 -1
  7. package/dist/assets/{add-cell-with-ai-BAIX7r0P.js → add-cell-with-ai-CRbG5cTT.js} +2 -2
  8. package/dist/assets/{add-connection-dialog-DrDuM-tI.js → add-connection-dialog-CzCmVM_b.js} +1 -1
  9. package/dist/assets/{agent-panel-CoXq_rlA.js → agent-panel-zpTxANfi.js} +1 -1
  10. package/dist/assets/{ai-model-dropdown-COvWn46z.js → ai-model-dropdown-DL56ImUU.js} +2 -2
  11. package/dist/assets/{app-config-button-CtxoYG4F.js → app-config-button-BRBtaFi_.js} +1 -1
  12. package/dist/assets/{blob-DCjrjZKW.js → blob-CuL-H1JC.js} +1 -1
  13. package/dist/assets/{cache-panel-CbWZcBu0.js → cache-panel-BV-c7ed0.js} +1 -1
  14. package/dist/assets/{cell-editor-BnL0Sorl.js → cell-editor-C6QIY1Q-.js} +2 -2
  15. package/dist/assets/{cell-link-BFbgKiRH.js → cell-link-C9tkvy6x.js} +1 -1
  16. package/dist/assets/{cells-yOs72eZm.js → cells-B23_t5uX.js} +1 -1
  17. package/dist/assets/{chat-display-DwRM41t_.js → chat-display-DSezZ1qo.js} +1 -1
  18. package/dist/assets/{chat-panel-DeTEdjxF.js → chat-panel-CocbwA2Q.js} +2 -2
  19. package/dist/assets/{chat-ui-D6XucD07.js → chat-ui-DXvDBccG.js} +2 -2
  20. package/dist/assets/column-preview-BUQ_YMaE.js +1 -0
  21. package/dist/assets/{command-palette-CA6yfNLb.js → command-palette-HbIlNTLD.js} +1 -1
  22. package/dist/assets/{common-B-ZYnO1x.js → common-XXWicvmo.js} +1 -1
  23. package/dist/assets/{components-vu2jLG08.js → components-D1a5GeNf.js} +1 -1
  24. package/dist/assets/{datasource-BakEOWsf.js → datasource-Qo_t5PqI.js} +1 -1
  25. package/dist/assets/{dependency-graph-panel-DCGB3_id.js → dependency-graph-panel-DHrm4LUL.js} +2 -2
  26. package/dist/assets/{documentation-panel-CpGZ2Dfn.js → documentation-panel-BoNI3vXT.js} +1 -1
  27. package/dist/assets/{download-CV1k4XQ4.js → download-Cm3InGht.js} +1 -1
  28. package/dist/assets/{edit-page-By7n2M84.js → edit-page-BVkC2MyU.js} +6 -6
  29. package/dist/assets/{error-entries-JgrZYMbe.js → error-entries-DEkB-8EY.js} +1 -1
  30. package/dist/assets/{error-panel-DS7HWph-.js → error-panel-D7GInT--.js} +1 -1
  31. package/dist/assets/feedback-button-Cz9BdS49.js +1 -0
  32. package/dist/assets/{feedback-button-eYsTCK-g.js → feedback-button-sC38i-D1.js} +1 -1
  33. package/dist/assets/{file-explorer-panel-BTLwwwD4.js → file-explorer-panel-2XFMubVM.js} +1 -1
  34. package/dist/assets/{file-name-input-BaR4h2Ud.js → file-name-input-DPs3KKM-.js} +1 -1
  35. package/dist/assets/{floating-outline-Drd73Quo.js → floating-outline-C7MSAu6q.js} +1 -1
  36. package/dist/assets/{gallery-page-DXUD11Rm.js → gallery-page-B3fJlerH.js} +1 -1
  37. package/dist/assets/{glide-data-editor-DqBBoQBl.js → glide-data-editor-DrhzXms_.js} +1 -1
  38. package/dist/assets/{home-page-pgFFsmga.js → home-page-CajAhF9Q.js} +1 -1
  39. package/dist/assets/{hooks-D25kP4Sr.js → hooks-DteA-neM.js} +1 -1
  40. package/dist/assets/{index-DNG4qQ-E.js → index-YQHSwyF3.js} +6 -6
  41. package/dist/assets/{layout-DLHIGZTK.js → layout-DEFRD3k3.js} +3 -3
  42. package/dist/assets/{logs-panel-D5AAD2s9.js → logs-panel-BpM3pLdf.js} +1 -1
  43. package/dist/assets/{markdown-renderer--CwVm4kJ.js → markdown-renderer-C5aIPuRT.js} +1 -1
  44. package/dist/assets/{name-cell-input-BFKZaNI5.js → name-cell-input-Dd8oSXnd.js} +1 -1
  45. package/dist/assets/{outline-panel-qcwRnl0R.js → outline-panel-kFr3Fo2d.js} +1 -1
  46. package/dist/assets/{packages-panel-DnSryNcz.js → packages-panel-Ce_wBuIJ.js} +1 -1
  47. package/dist/assets/{panel-accordion-state-BwJpDMVt.js → panel-accordion-state-BO2rN4A5.js} +1 -1
  48. package/dist/assets/{panels-Aqzwb3UR.js → panels-Cy18qaTN.js} +1 -1
  49. package/dist/assets/{process-output-DuUfHYSr.js → process-output-CDhnnF3f.js} +1 -1
  50. package/dist/assets/{readonly-code-display-BY-9I_Yk.js → readonly-code-display-ChOK6mhE.js} +1 -1
  51. package/dist/assets/{readonly-python-code-DSyr-yE2.js → readonly-python-code-CVwB1OHZ.js} +1 -1
  52. package/dist/assets/{reveal-component-C_Lb7Mom.js → reveal-component-DE-4w0ik.js} +1 -1
  53. package/dist/assets/{run-page-ZTw-kCU-.js → run-page-C6qwGqj6.js} +1 -1
  54. package/dist/assets/{runtime-details-state-B7gpnuXx.js → runtime-details-state-BRSVs8um.js} +1 -1
  55. package/dist/assets/{scratchpad-panel-D2IHkKoG.js → scratchpad-panel--SxH2dnk.js} +1 -1
  56. package/dist/assets/session-panel-B0CkZ3wl.js +1 -0
  57. package/dist/assets/{snippets-panel-BNadUJLU.js → snippets-panel-CN-U1niV.js} +1 -1
  58. package/dist/assets/{state-BaYudep3.js → state-BRL89qqy.js} +1 -1
  59. package/dist/assets/{state-_1LTGJQM.js → state-BoRCcWOg.js} +1 -1
  60. package/dist/assets/{tracing-DbTgS4u9.js → tracing-CqxmObxN.js} +1 -1
  61. package/dist/assets/{tracing-panel-CjlrpXPy.js → tracing-panel-Bn8xJSPi.js} +2 -2
  62. package/dist/assets/{tree-actions-C_KYlaSv.js → tree-actions-DoPCJTpj.js} +1 -1
  63. package/dist/assets/{useAddCell-C0J8quGE.js → useAddCell-DKb7o70l.js} +1 -1
  64. package/dist/assets/{useCellActionButton-CbkOj6BE.js → useCellActionButton-CSNFulkR.js} +1 -1
  65. package/dist/assets/{useDeleteCell-DHkF5wgS.js → useDeleteCell-BPQ6Xcbj.js} +1 -1
  66. package/dist/assets/{useDependencyPanelTab--yXJW6X5.js → useDependencyPanelTab-4SMlwjEg.js} +1 -1
  67. package/dist/assets/{useNotebookActions-dJQalORg.js → useNotebookActions-B4kq9-P4.js} +1 -1
  68. package/dist/assets/{useRunCells-C_IwVJR_.js → useRunCells-BV6nl_Ok.js} +1 -1
  69. package/dist/assets/{useSplitCell-Ci4MEUj8.js → useSplitCell-Ca364Rrx.js} +1 -1
  70. package/dist/index.html +20 -20
  71. package/package.json +1 -1
  72. package/src/components/app-config/ai-config.tsx +1 -0
  73. package/src/components/chat/chat-components.tsx +2 -0
  74. package/src/components/chat/chat-panel.tsx +6 -1
  75. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  76. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  77. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  78. package/src/components/datasources/__tests__/column-preview.test.tsx +63 -2
  79. package/src/components/datasources/column-preview.tsx +8 -2
  80. package/src/components/datasources/datasources.tsx +12 -14
  81. package/src/components/debugger/debugger-code.tsx +5 -0
  82. package/src/components/dependency-graph/panels.tsx +2 -1
  83. package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
  84. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  85. package/src/components/editor/cell/DeleteButton.tsx +1 -0
  86. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  87. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +58 -1
  88. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
  89. package/src/components/editor/notebook-banner.tsx +1 -0
  90. package/src/components/editor/package-alert.tsx +2 -0
  91. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  92. package/src/components/mcp/mcp-status-indicator.tsx +1 -1
  93. package/src/components/slides/slide-form.tsx +1 -0
  94. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  95. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  96. package/src/plugins/impl/chat/chat-ui.tsx +1 -0
  97. package/src/stories/button.stories.tsx +1 -0
  98. package/dist/assets/column-preview-DXM8SqGY.js +0 -1
  99. package/dist/assets/feedback-button-Dgs_HOOC.js +0 -1
  100. package/dist/assets/session-panel-cOSO3WCX.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./compiler-runtime-BrajqUja.js";import{_ as r}from"./useEventListener-CjDeLqFC.js";import{m as i,u as a}from"./config-CD1IuZFJ.js";import{n as o,t as s}from"./cn-ldLVeaqm.js";import{t as c}from"./jsx-runtime-B74pBk57.js";import{o as l}from"./switch-DYjBfpNJ.js";import{t as u}from"./tooltip-CkGm8X7m.js";import{r as d}from"./button-D8gVKwe-.js";import{t as f}from"./createLucideIcon-DfJ2oMlA.js";import{i as p}from"./useDeleteCell-DHkF5wgS.js";import{Et as m,Ft as h,Kt as g,Pt as _,St as v,Ut as y,V as b,wt as x,zt as S}from"./input-DmHMEZGh.js";import{t as C}from"./square-BPmgQFnh.js";import{r as w}from"./requests-BIFR-h4M.js";import{t as T}from"./I18nProvider-Cg2I_s1_.js";import{a as E}from"./renderShortcut-rUwGqKgC.js";import{t as D}from"./useDelayElapsed-BlsDT4TV.js";var O=f(`hard-drive-download`,[[`path`,{d:`M12 2v8`,key:`1q4o3n`}],[`path`,{d:`m16 6-4 4-4-4`,key:`6wukr`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M10 18h.01`,key:`h775k`}]]),k=e(t(),1);function A(e,t){let{"aria-label":n,"aria-labelledby":r,orientation:i=`horizontal`}=e,[a,o]=(0,k.useState)(!1);g(()=>{o(!!(t.current&&t.current.parentElement?.closest(`[role="toolbar"]`)))});let{direction:s}=T(),c=s===`rtl`&&i===`horizontal`,u=l(t),d=e=>{if(v(e.currentTarget,m(e))){if(i===`horizontal`&&e.key===`ArrowRight`||i===`vertical`&&e.key===`ArrowDown`)c?u.focusPrevious():u.focusNext();else if(i===`horizontal`&&e.key===`ArrowLeft`||i===`vertical`&&e.key===`ArrowUp`)c?u.focusNext():u.focusPrevious();else if(e.key===`Tab`){f.current=x(),e.shiftKey?u.focusFirst():u.focusLast();return}else return;e.stopPropagation(),e.preventDefault()}},f=(0,k.useRef)(null),p=e=>{!v(e.currentTarget,e.relatedTarget)&&!f.current&&(f.current=m(e))},h=e=>{f.current&&!v(e.currentTarget,e.relatedTarget)&&v(t.current,m(e))&&(f.current?.focus(),f.current=null)};return{toolbarProps:{...b(e,{labelable:!0}),role:a?`group`:`toolbar`,"aria-orientation":i,"aria-label":n,"aria-labelledby":n==null?r:void 0,onKeyDownCapture:a?void 0:d,onFocusCapture:a?void 0:h,onBlurCapture:a?void 0:p}}}var j=(0,k.createContext)({}),M=(0,k.forwardRef)(function(e,t){[e,t]=_(e,t,j);let{toolbarProps:n}=A(e,t),r=h({...e,values:{orientation:e.orientation||`horizontal`},defaultClassName:`react-aria-Toolbar`}),i=b(e,{global:!0});return delete i.id,k.createElement(S.div,{...y(i,r,n),ref:t,slot:e.slot||void 0,"data-orientation":e.orientation||`horizontal`},r.children)}),N=n(),P=c(),F=200;function I(e){let t=D(e?F:0);return e&&t}var L=o(`rounded-full shadow-xs-solid border p-[5px] transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 [&>svg]:size-3 active:shadow-none bg-background`,{variants:{variant:{default:`hover:bg-accent hover:text-accent-foreground`,stale:`bg-(--yellow-3) hover:bg-(--yellow-4) text-(--yellow-11)`,green:`hover:bg-(--grass-2) hover:text-(--grass-11) hover:border-[var(--grass-7)],`,disabled:`opacity-50 cursor-not-allowed`,danger:`hover:bg-(--red-3) hover:text-(--red-11)`}},defaultVariants:{variant:`default`}}),R=e=>{let t=(0,N.c)(22),n,r,i,a,o,c,l,f,p;if(t[0]!==e){let{children:u,tooltip:m,disabled:h,variant:g,..._}=e;n=u,p=m;let v=h!==void 0&&h;r=`button`,i=v,a=_,o=e=>{!d.hasModifier(e)&&(e.key===`Enter`||e.key===` `)&&e.stopPropagation(),_.onKeyDown?.(e)},c=e=>{v||_.onClick?.(e)},l=d.preventFocus,f=s(L({variant:g}),_.className),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=c,t[7]=l,t[8]=f,t[9]=p}else n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],c=t[6],l=t[7],f=t[8],p=t[9];let m;t[10]!==n||t[11]!==r||t[12]!==i||t[13]!==a||t[14]!==o||t[15]!==c||t[16]!==l||t[17]!==f?(m=(0,P.jsx)(`button`,{type:r,disabled:i,...a,onKeyDown:o,onClick:c,onMouseDown:l,className:f,children:n}),t[10]=n,t[11]=r,t[12]=i,t[13]=a,t[14]=o,t[15]=c,t[16]=l,t[17]=f,t[18]=m):m=t[18];let h=m;if(p){let e;return t[19]!==h||t[20]!==p?(e=(0,P.jsx)(u,{content:p,side:`top`,delayDuration:200,usePortal:!1,children:h}),t[19]=h,t[20]=p,t[21]=e):e=t[21],e}return h},z=e=>{let t=(0,N.c)(5),{children:n,className:r}=e,i;t[0]===r?i=t[1]:(i=s(`flex items-center gap-1 bg-background m-[2px] rounded-full`,r),t[0]=r,t[1]=i);let a;return t[2]!==n||t[3]!==i?(a=(0,P.jsx)(M,{className:i,children:n}),t[2]=n,t[3]=i,t[4]=a):a=t[4],a},B=e=>{let t=(0,N.c)(9),{connectionState:n,status:a}=e,{sendInterrupt:o}=w(),s=I(a===`running`),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=E(`global.interrupt`),t[0]=c):c=t[0];let l;t[1]!==n||t[2]!==s?(l=i(n)||!s,t[1]=n,t[2]=s,t[3]=l):l=t[3];let u=s?o:r.NOOP,d=s?`stale`:`disabled`,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,P.jsx)(C,{strokeWidth:1.5}),t[4]=f):f=t[4];let p;return t[5]!==l||t[6]!==u||t[7]!==d?(p=(0,P.jsx)(R,{tooltip:c,disabled:l,onClick:u,variant:d,"data-testid":`run-button`,children:f}),t[5]=l,t[6]=u,t[7]=d,t[8]=p):p=t[8],p};function V({connectionState:e,needsRun:t,loading:n,inactive:r}){return i(e)?`disabled`:t&&!n?`stale`:n||r?`disabled`:`green`}var H=e=>{let t=(0,N.c)(27),{onClick:n,connectionState:r,needsRun:o,status:s,config:c,edited:l}=e,u=s===`disabled-transitively`,d=s===`running`||s===`queued`,f,m;t[0]!==u||t[1]!==c.disabled||t[2]!==r||t[3]!==l||t[4]!==d||t[5]!==o?(f=i(r)||d||!c.disabled&&u&&!l,m=V({connectionState:r,needsRun:o,loading:d,inactive:f}),t[0]=u,t[1]=c.disabled,t[2]=r,t[3]=l,t[4]=d,t[5]=o,t[6]=f,t[7]=m):(f=t[6],m=t[7]);let h=m;if(c.disabled){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(O,{}),t[8]=e):e=t[8];let r;return t[9]!==f||t[10]!==n||t[11]!==h?(r=(0,P.jsx)(R,{tooltip:`Add code to notebook`,disabled:f,onClick:n,variant:h,"data-testid":`run-button`,children:e}),t[9]=f,t[10]=n,t[11]=h,t[12]=r):r=t[12],r}if(!c.disabled&&u&&!l){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(p,{strokeWidth:1.2}),t[13]=e):e=t[13];let r;return t[14]!==f||t[15]!==n||t[16]!==h?(r=(0,P.jsx)(R,{disabled:f,tooltip:`This cell can't be run because it has a disabled ancestor`,onClick:n,variant:h,"data-testid":`run-button`,children:e}),t[14]=f,t[15]=n,t[16]=h,t[17]=r):r=t[17],r}let g;if(i(r)){let e;t[18]===r?e=t[19]:(e=a(r),t[18]=r,t[19]=e),g=e}else if(s===`queued`)g=`This cell is already queued to run`;else if(s===`running`)g=`This cell is already running.`;else{let e;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(e=E(`cell.run`),t[20]=e):e=t[20],g=e}let _;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,P.jsx)(p,{strokeWidth:1.2}),t[21]=_):_=t[21];let v;return t[22]!==f||t[23]!==n||t[24]!==g||t[25]!==h?(v=(0,P.jsx)(R,{tooltip:g,disabled:f,onClick:n,variant:h,"data-testid":`run-button`,children:_}),t[22]=f,t[23]=n,t[24]=g,t[25]=h,t[26]=v):v=t[26],v};export{I as a,R as i,B as n,z as r,H as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./compiler-runtime-BrajqUja.js";import{_ as r}from"./useEventListener-CjDeLqFC.js";import{m as i,u as a}from"./config-CD1IuZFJ.js";import{n as o,t as s}from"./cn-ldLVeaqm.js";import{t as c}from"./jsx-runtime-B74pBk57.js";import{o as l}from"./switch-DYjBfpNJ.js";import{t as u}from"./tooltip-CkGm8X7m.js";import{r as d}from"./button-D8gVKwe-.js";import{t as f}from"./createLucideIcon-DfJ2oMlA.js";import{i as p}from"./useDeleteCell-BPQ6Xcbj.js";import{Et as m,Ft as h,Kt as g,Pt as _,St as v,Ut as y,V as b,wt as x,zt as S}from"./input-DmHMEZGh.js";import{t as C}from"./square-BPmgQFnh.js";import{r as w}from"./requests-BIFR-h4M.js";import{t as T}from"./I18nProvider-Cg2I_s1_.js";import{a as E}from"./renderShortcut-rUwGqKgC.js";import{t as D}from"./useDelayElapsed-BlsDT4TV.js";var O=f(`hard-drive-download`,[[`path`,{d:`M12 2v8`,key:`1q4o3n`}],[`path`,{d:`m16 6-4 4-4-4`,key:`6wukr`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M10 18h.01`,key:`h775k`}]]),k=e(t(),1);function A(e,t){let{"aria-label":n,"aria-labelledby":r,orientation:i=`horizontal`}=e,[a,o]=(0,k.useState)(!1);g(()=>{o(!!(t.current&&t.current.parentElement?.closest(`[role="toolbar"]`)))});let{direction:s}=T(),c=s===`rtl`&&i===`horizontal`,u=l(t),d=e=>{if(v(e.currentTarget,m(e))){if(i===`horizontal`&&e.key===`ArrowRight`||i===`vertical`&&e.key===`ArrowDown`)c?u.focusPrevious():u.focusNext();else if(i===`horizontal`&&e.key===`ArrowLeft`||i===`vertical`&&e.key===`ArrowUp`)c?u.focusNext():u.focusPrevious();else if(e.key===`Tab`){f.current=x(),e.shiftKey?u.focusFirst():u.focusLast();return}else return;e.stopPropagation(),e.preventDefault()}},f=(0,k.useRef)(null),p=e=>{!v(e.currentTarget,e.relatedTarget)&&!f.current&&(f.current=m(e))},h=e=>{f.current&&!v(e.currentTarget,e.relatedTarget)&&v(t.current,m(e))&&(f.current?.focus(),f.current=null)};return{toolbarProps:{...b(e,{labelable:!0}),role:a?`group`:`toolbar`,"aria-orientation":i,"aria-label":n,"aria-labelledby":n==null?r:void 0,onKeyDownCapture:a?void 0:d,onFocusCapture:a?void 0:h,onBlurCapture:a?void 0:p}}}var j=(0,k.createContext)({}),M=(0,k.forwardRef)(function(e,t){[e,t]=_(e,t,j);let{toolbarProps:n}=A(e,t),r=h({...e,values:{orientation:e.orientation||`horizontal`},defaultClassName:`react-aria-Toolbar`}),i=b(e,{global:!0});return delete i.id,k.createElement(S.div,{...y(i,r,n),ref:t,slot:e.slot||void 0,"data-orientation":e.orientation||`horizontal`},r.children)}),N=n(),P=c(),F=200;function I(e){let t=D(e?F:0);return e&&t}var L=o(`rounded-full shadow-xs-solid border p-[5px] transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 [&>svg]:size-3 active:shadow-none bg-background`,{variants:{variant:{default:`hover:bg-accent hover:text-accent-foreground`,stale:`bg-(--yellow-3) hover:bg-(--yellow-4) text-(--yellow-11)`,green:`hover:bg-(--grass-2) hover:text-(--grass-11) hover:border-[var(--grass-7)],`,disabled:`opacity-50 cursor-not-allowed`,danger:`hover:bg-(--red-3) hover:text-(--red-11)`}},defaultVariants:{variant:`default`}}),R=e=>{let t=(0,N.c)(22),n,r,i,a,o,c,l,f,p;if(t[0]!==e){let{children:u,tooltip:m,disabled:h,variant:g,..._}=e;n=u,p=m;let v=h!==void 0&&h;r=`button`,i=v,a=_,o=e=>{!d.hasModifier(e)&&(e.key===`Enter`||e.key===` `)&&e.stopPropagation(),_.onKeyDown?.(e)},c=e=>{v||_.onClick?.(e)},l=d.preventFocus,f=s(L({variant:g}),_.className),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=c,t[7]=l,t[8]=f,t[9]=p}else n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],c=t[6],l=t[7],f=t[8],p=t[9];let m;t[10]!==n||t[11]!==r||t[12]!==i||t[13]!==a||t[14]!==o||t[15]!==c||t[16]!==l||t[17]!==f?(m=(0,P.jsx)(`button`,{type:r,disabled:i,...a,onKeyDown:o,onClick:c,onMouseDown:l,className:f,children:n}),t[10]=n,t[11]=r,t[12]=i,t[13]=a,t[14]=o,t[15]=c,t[16]=l,t[17]=f,t[18]=m):m=t[18];let h=m;if(p){let e;return t[19]!==h||t[20]!==p?(e=(0,P.jsx)(u,{content:p,side:`top`,delayDuration:200,usePortal:!1,children:h}),t[19]=h,t[20]=p,t[21]=e):e=t[21],e}return h},z=e=>{let t=(0,N.c)(5),{children:n,className:r}=e,i;t[0]===r?i=t[1]:(i=s(`flex items-center gap-1 bg-background m-[2px] rounded-full`,r),t[0]=r,t[1]=i);let a;return t[2]!==n||t[3]!==i?(a=(0,P.jsx)(M,{className:i,children:n}),t[2]=n,t[3]=i,t[4]=a):a=t[4],a},B=e=>{let t=(0,N.c)(9),{connectionState:n,status:a}=e,{sendInterrupt:o}=w(),s=I(a===`running`),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=E(`global.interrupt`),t[0]=c):c=t[0];let l;t[1]!==n||t[2]!==s?(l=i(n)||!s,t[1]=n,t[2]=s,t[3]=l):l=t[3];let u=s?o:r.NOOP,d=s?`stale`:`disabled`,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,P.jsx)(C,{strokeWidth:1.5}),t[4]=f):f=t[4];let p;return t[5]!==l||t[6]!==u||t[7]!==d?(p=(0,P.jsx)(R,{tooltip:c,disabled:l,onClick:u,variant:d,"data-testid":`run-button`,children:f}),t[5]=l,t[6]=u,t[7]=d,t[8]=p):p=t[8],p};function V({connectionState:e,needsRun:t,loading:n,inactive:r}){return i(e)?`disabled`:t&&!n?`stale`:n||r?`disabled`:`green`}var H=e=>{let t=(0,N.c)(27),{onClick:n,connectionState:r,needsRun:o,status:s,config:c,edited:l}=e,u=s===`disabled-transitively`,d=s===`running`||s===`queued`,f,m;t[0]!==u||t[1]!==c.disabled||t[2]!==r||t[3]!==l||t[4]!==d||t[5]!==o?(f=i(r)||d||!c.disabled&&u&&!l,m=V({connectionState:r,needsRun:o,loading:d,inactive:f}),t[0]=u,t[1]=c.disabled,t[2]=r,t[3]=l,t[4]=d,t[5]=o,t[6]=f,t[7]=m):(f=t[6],m=t[7]);let h=m;if(c.disabled){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(O,{}),t[8]=e):e=t[8];let r;return t[9]!==f||t[10]!==n||t[11]!==h?(r=(0,P.jsx)(R,{tooltip:`Add code to notebook`,disabled:f,onClick:n,variant:h,"data-testid":`run-button`,children:e}),t[9]=f,t[10]=n,t[11]=h,t[12]=r):r=t[12],r}if(!c.disabled&&u&&!l){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(p,{strokeWidth:1.2}),t[13]=e):e=t[13];let r;return t[14]!==f||t[15]!==n||t[16]!==h?(r=(0,P.jsx)(R,{disabled:f,tooltip:`This cell can't be run because it has a disabled ancestor`,onClick:n,variant:h,"data-testid":`run-button`,children:e}),t[14]=f,t[15]=n,t[16]=h,t[17]=r):r=t[17],r}let g;if(i(r)){let e;t[18]===r?e=t[19]:(e=a(r),t[18]=r,t[19]=e),g=e}else if(s===`queued`)g=`This cell is already queued to run`;else if(s===`running`)g=`This cell is already running.`;else{let e;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(e=E(`cell.run`),t[20]=e):e=t[20],g=e}let _;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,P.jsx)(p,{strokeWidth:1.2}),t[21]=_):_=t[21];let v;return t[22]!==f||t[23]!==n||t[24]!==g||t[25]!==h?(v=(0,P.jsx)(R,{tooltip:g,disabled:f,onClick:n,variant:h,"data-testid":`run-button`,children:_}),t[22]=f,t[23]=n,t[24]=g,t[25]=h,t[26]=v):v=t[26],v};export{I as a,R as i,B as n,z as r,H as t};
@@ -1,4 +1,4 @@
1
- import{a as e,t}from"./rolldown-runtime-B0Z9INg1.js";import{a as n,c as r,d as i,f as a,l as o,r as s,t as c}from"./useEvent-BDjgaBtz.js";import{t as l}from"./react-DVplv7_D.js";import{Bt as u,D as d,Fa as f,Fi as p,In as m,Pi as h,Qr as g,Ti as _,Va as v,Z as y,Zn as b,_a as x,b as S,bo as C,da as ee,f as te,ft as ne,ir as w,ja as T,ji as E,qa as re,ti as ie,yo as ae}from"./cells-yOs72eZm.js";import{B as oe,C as se,D as ce,F as le,H as ue,I as D,M as de,N as O,O as fe,R as pe,S as me,T as he,b as ge,j as _e,k as ve,q as ye,v as be,w as xe,y as Se,z as Ce}from"./schemas-ChRqMOTL.js";import{t as we}from"./compiler-runtime-BrajqUja.js";import{t as Te}from"./config-DpY86_Yq.js";import{f as Ee,g as k}from"./useEventListener-CjDeLqFC.js";import{o as De}from"./session-CMLIzZKw.js";import{A as Oe,O as ke,o as Ae}from"./config-CD1IuZFJ.js";import{t as je}from"./cn-ldLVeaqm.js";import{t as Me}from"./jsx-runtime-B74pBk57.js";import{a as Ne,c as Pe,p as Fe,r as Ie,t as Le}from"./dropdown-menu-DS6umAnH.js";import{t as Re}from"./tooltip-CkGm8X7m.js";import{t as ze}from"./button-D8gVKwe-.js";import{t as Be}from"./createLucideIcon-DfJ2oMlA.js";import{i as Ve,r as He}from"./paths-bkIFVj8h.js";import{r as Ue,t as We}from"./fileToBase64-BgBraYAr.js";import{M as Ge,m as Ke,t as qe}from"./ai-model-dropdown-COvWn46z.js";import{r as Je}from"./useNumberFormatter-D7O_26UI.js";import{f as Ye,n as Xe}from"./markdown-renderer--CwVm4kJ.js";import{t as Ze}from"./file-BPBVl9pl.js";import{t as Qe}from"./image-wZvTj8WY.js";import{t as $e}from"./spinner-DyNE-o8o.js";import{i as et,t as tt}from"./useDeleteCell-DHkF5wgS.js";import{r as nt}from"./input-DmHMEZGh.js";import{a as rt,c as it,i as at,n as ot,o as st,s as ct,t as lt}from"./datasource-BakEOWsf.js";import{t as ut}from"./use-toast-Wu434mLr.js";import{$t as dt,Et as ft,Gt as pt,Jt as mt,Kt as ht,Qt as gt,Tt as _t,at as vt,dt as yt,st as bt,tn as xt,ut as St}from"./dist-Cny7_yZb.js";import{t as Ct}from"./createReducer-CaI_Oa0v.js";import{h as wt,n as Tt,o as Et,r as Dt}from"./dist-qhAY4L2r.js";import{t as Ot}from"./requests-BIFR-h4M.js";import{a as kt}from"./dist-LSsCJjA3.js";import{t as At}from"./uuid-k9DpjH68.js";import{r as jt}from"./useTheme-BAA27lh7.js";import{n as Mt}from"./useRunCells-C_IwVJR_.js";import{n as Nt}from"./blob-DCjrjZKW.js";import{a as Pt}from"./errors-CNsgAw6m.js";import{i as Ft,r as It,t as Lt}from"./error-entries-JgrZYMbe.js";import{i as Rt}from"./cell-link-BFbgKiRH.js";import{t as zt}from"./html-to-image-D_0rd3_B.js";import{n as Bt}from"./renderShortcut-rUwGqKgC.js";import{n as Vt}from"./icons-CiZ_8zS-.js";import{r as Ht,t as Ut}from"./esm-CI_o7NhW.js";import{t as Wt}from"./process-output-DuUfHYSr.js";var Gt=Be(`circle-stop`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`,key:`1ssd4o`}]]),Kt=Be(`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`}]]),qt=Be(`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`}]]),A=we(),Jt=`vercel.ai.error`,Yt=Symbol.for(Jt),Xt,Zt,j=class e extends (Zt=Error,Xt=Yt,Zt){constructor({name:e,message:t,cause:n}){super(t),this[Xt]=!0,this.name=e,this.cause=n}static isInstance(t){return e.hasMarker(t,Jt)}static hasMarker(e,t){let n=Symbol.for(t);return typeof e==`object`&&!!e&&n in e&&typeof e[n]==`boolean`&&e[n]===!0}},Qt=`AI_APICallError`,$t=`vercel.ai.error.${Qt}`,en=Symbol.for($t),tn,nn,rn=class extends (nn=j,tn=en,nn){constructor({message:e,url:t,requestBodyValues:n,statusCode:r,responseHeaders:i,responseBody:a,cause:o,isRetryable:s=r!=null&&(r===408||r===409||r===429||r>=500),data:c}){super({name:Qt,message:e,cause:o}),this[tn]=!0,this.url=t,this.requestBodyValues=n,this.statusCode=r,this.responseHeaders=i,this.responseBody=a,this.isRetryable=s,this.data=c}static isInstance(e){return j.hasMarker(e,$t)}},an=`AI_EmptyResponseBodyError`,on=`vercel.ai.error.${an}`,sn=Symbol.for(on),cn,ln,un=class extends (ln=j,cn=sn,ln){constructor({message:e=`Empty response body`}={}){super({name:an,message:e}),this[cn]=!0}static isInstance(e){return j.hasMarker(e,on)}};function dn(e){return e==null?`unknown error`:typeof e==`string`?e:e instanceof Error?e.toString():JSON.stringify(e)}var fn=`AI_InvalidArgumentError`,pn=`vercel.ai.error.${fn}`,mn=Symbol.for(pn),hn,gn,_n=class extends (gn=j,hn=mn,gn){constructor({message:e,cause:t,argument:n}){super({name:fn,message:e,cause:t}),this[hn]=!0,this.argument=n}static isInstance(e){return j.hasMarker(e,pn)}},vn=`AI_JSONParseError`,yn=`vercel.ai.error.${vn}`,bn=Symbol.for(yn),xn,Sn,Cn=class extends (Sn=j,xn=bn,Sn){constructor({text:e,cause:t}){super({name:vn,message:`JSON parsing failed: Text: ${e}.
1
+ import{a as e,t}from"./rolldown-runtime-B0Z9INg1.js";import{a as n,c as r,d as i,f as a,l as o,r as s,t as c}from"./useEvent-BDjgaBtz.js";import{t as l}from"./react-DVplv7_D.js";import{Bt as u,D as d,Fa as f,Fi as p,In as m,Pi as h,Qr as g,Ti as _,Va as v,Z as y,Zn as b,_a as x,b as S,bo as C,da as ee,f as te,ft as ne,ir as w,ja as T,ji as E,qa as re,ti as ie,yo as ae}from"./cells-B23_t5uX.js";import{B as oe,C as se,D as ce,F as le,H as ue,I as D,M as de,N as O,O as fe,R as pe,S as me,T as he,b as ge,j as _e,k as ve,q as ye,v as be,w as xe,y as Se,z as Ce}from"./schemas-ChRqMOTL.js";import{t as we}from"./compiler-runtime-BrajqUja.js";import{t as Te}from"./config-DpY86_Yq.js";import{f as Ee,g as k}from"./useEventListener-CjDeLqFC.js";import{o as De}from"./session-CMLIzZKw.js";import{A as Oe,O as ke,o as Ae}from"./config-CD1IuZFJ.js";import{t as je}from"./cn-ldLVeaqm.js";import{t as Me}from"./jsx-runtime-B74pBk57.js";import{a as Ne,c as Pe,p as Fe,r as Ie,t as Le}from"./dropdown-menu-DS6umAnH.js";import{t as Re}from"./tooltip-CkGm8X7m.js";import{t as ze}from"./button-D8gVKwe-.js";import{t as Be}from"./createLucideIcon-DfJ2oMlA.js";import{i as Ve,r as He}from"./paths-bkIFVj8h.js";import{r as Ue,t as We}from"./fileToBase64-BgBraYAr.js";import{M as Ge,m as Ke,t as qe}from"./ai-model-dropdown-DL56ImUU.js";import{r as Je}from"./useNumberFormatter-D7O_26UI.js";import{f as Ye,n as Xe}from"./markdown-renderer-C5aIPuRT.js";import{t as Ze}from"./file-BPBVl9pl.js";import{t as Qe}from"./image-wZvTj8WY.js";import{t as $e}from"./spinner-DyNE-o8o.js";import{i as et,t as tt}from"./useDeleteCell-BPQ6Xcbj.js";import{r as nt}from"./input-DmHMEZGh.js";import{a as rt,c as it,i as at,n as ot,o as st,s as ct,t as lt}from"./datasource-Qo_t5PqI.js";import{t as ut}from"./use-toast-Wu434mLr.js";import{$t as dt,Et as ft,Gt as pt,Jt as mt,Kt as ht,Qt as gt,Tt as _t,at as vt,dt as yt,st as bt,tn as xt,ut as St}from"./dist-Cny7_yZb.js";import{t as Ct}from"./createReducer-CaI_Oa0v.js";import{h as wt,n as Tt,o as Et,r as Dt}from"./dist-qhAY4L2r.js";import{t as Ot}from"./requests-BIFR-h4M.js";import{a as kt}from"./dist-LSsCJjA3.js";import{t as At}from"./uuid-k9DpjH68.js";import{r as jt}from"./useTheme-BAA27lh7.js";import{n as Mt}from"./useRunCells-BV6nl_Ok.js";import{n as Nt}from"./blob-CuL-H1JC.js";import{a as Pt}from"./errors-CNsgAw6m.js";import{i as Ft,r as It,t as Lt}from"./error-entries-DEkB-8EY.js";import{i as Rt}from"./cell-link-C9tkvy6x.js";import{t as zt}from"./html-to-image-D_0rd3_B.js";import{n as Bt}from"./renderShortcut-rUwGqKgC.js";import{n as Vt}from"./icons-CiZ_8zS-.js";import{r as Ht,t as Ut}from"./esm-CI_o7NhW.js";import{t as Wt}from"./process-output-CDhnnF3f.js";var Gt=Be(`circle-stop`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`rect`,{x:`9`,y:`9`,width:`6`,height:`6`,rx:`1`,key:`1ssd4o`}]]),Kt=Be(`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`}]]),qt=Be(`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`}]]),A=we(),Jt=`vercel.ai.error`,Yt=Symbol.for(Jt),Xt,Zt,j=class e extends (Zt=Error,Xt=Yt,Zt){constructor({name:e,message:t,cause:n}){super(t),this[Xt]=!0,this.name=e,this.cause=n}static isInstance(t){return e.hasMarker(t,Jt)}static hasMarker(e,t){let n=Symbol.for(t);return typeof e==`object`&&!!e&&n in e&&typeof e[n]==`boolean`&&e[n]===!0}},Qt=`AI_APICallError`,$t=`vercel.ai.error.${Qt}`,en=Symbol.for($t),tn,nn,rn=class extends (nn=j,tn=en,nn){constructor({message:e,url:t,requestBodyValues:n,statusCode:r,responseHeaders:i,responseBody:a,cause:o,isRetryable:s=r!=null&&(r===408||r===409||r===429||r>=500),data:c}){super({name:Qt,message:e,cause:o}),this[tn]=!0,this.url=t,this.requestBodyValues=n,this.statusCode=r,this.responseHeaders=i,this.responseBody=a,this.isRetryable=s,this.data=c}static isInstance(e){return j.hasMarker(e,$t)}},an=`AI_EmptyResponseBodyError`,on=`vercel.ai.error.${an}`,sn=Symbol.for(on),cn,ln,un=class extends (ln=j,cn=sn,ln){constructor({message:e=`Empty response body`}={}){super({name:an,message:e}),this[cn]=!0}static isInstance(e){return j.hasMarker(e,on)}};function dn(e){return e==null?`unknown error`:typeof e==`string`?e:e instanceof Error?e.toString():JSON.stringify(e)}var fn=`AI_InvalidArgumentError`,pn=`vercel.ai.error.${fn}`,mn=Symbol.for(pn),hn,gn,_n=class extends (gn=j,hn=mn,gn){constructor({message:e,cause:t,argument:n}){super({name:fn,message:e,cause:t}),this[hn]=!0,this.argument=n}static isInstance(e){return j.hasMarker(e,pn)}},vn=`AI_JSONParseError`,yn=`vercel.ai.error.${vn}`,bn=Symbol.for(yn),xn,Sn,Cn=class extends (Sn=j,xn=bn,Sn){constructor({text:e,cause:t}){super({name:vn,message:`JSON parsing failed: Text: ${e}.
2
2
  Error message: ${dn(t)}`,cause:t}),this[xn]=!0,this.text=e}static isInstance(e){return j.hasMarker(e,yn)}},wn=`AI_TypeValidationError`,Tn=`vercel.ai.error.${wn}`,En=Symbol.for(Tn),Dn,On,M=class e extends (On=j,Dn=En,On){constructor({value:e,cause:t,context:n}){let r=`Type validation failed`;if(n?.field&&(r+=` for ${n.field}`),n?.entityName||n?.entityId){r+=` (`;let e=[];n.entityName&&e.push(n.entityName),n.entityId&&e.push(`id: "${n.entityId}"`),r+=e.join(`, `),r+=`)`}super({name:wn,message:`${r}: Value: ${JSON.stringify(e)}.
3
3
  Error message: ${dn(t)}`,cause:t}),this[Dn]=!0,this.value=e,this.context=n}static isInstance(e){return j.hasMarker(e,Tn)}static wrap({value:t,cause:n,context:r}){return e.isInstance(n)&&n.value===t&&n.context?.field===r?.field&&n.context?.entityName===r?.entityName&&n.context?.entityId===r?.entityId?n:new e({value:t,cause:n,context:r})}},kn=`AI_UnsupportedFunctionalityError`,An=`vercel.ai.error.${kn}`,jn=Symbol.for(An),Mn,Nn,Pn=class extends (Nn=j,Mn=jn,Nn){constructor({functionality:e,message:t=`'${e}' functionality not supported.`}){super({name:kn,message:t}),this[Mn]=!0,this.functionality=e}static isInstance(e){return j.hasMarker(e,An)}},Fn=class extends Error{constructor(e,t){super(e),this.name=`ParseError`,this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}},In=10,Ln=13,Rn=32;function zn(e){}function Bn(e){if(typeof e==`function`)throw TypeError("`config` must be an object, got a function instead. Did you mean `createParser({onEvent: fn})`?");let{onEvent:t=zn,onError:n=zn,onRetry:r=zn,onComment:i,maxBufferSize:a}=e,o=[],s=0,c=!0,l,u=``,d=0,f,p=!1;function m(e){if(p)throw Error("Cannot feed parser: it was terminated after exceeding the configured max buffer size. Call `reset()` to resume parsing.");if(c&&(c=!1,e.charCodeAt(0)===239&&e.charCodeAt(1)===187&&e.charCodeAt(2)===191&&(e=e.slice(3))),o.length===0){let t=g(e);t!==``&&(o.push(t),s=t.length),h();return}if(e.indexOf(`
4
4
  `)===-1&&e.indexOf(`\r`)===-1){o.push(e),s+=e.length,h();return}o.push(e);let t=o.join(``);o.length=0,s=0;let n=g(t);n!==``&&(o.push(n),s=n.length),h()}function h(){a!==void 0&&(s+u.length<=a||(p=!0,o.length=0,s=0,l=void 0,u=``,d=0,f=void 0,n(new Fn(`Buffered data exceeded max buffer size of ${a} characters`,{type:`max-buffer-size-exceeded`}))))}function g(e){let n=0;if(e.indexOf(`\r`)===-1){let r=e.indexOf(`
@@ -55,7 +55,7 @@ ${t}`,d++;break;case`id`:l=t.includes(`\0`)?void 0:t;break;case`retry`:/^\d+$/.t
55
55
 
56
56
  `)}},ls=x(),us={maxDepth:3,maxResults:20,defaultResultsLimit:5,includeDirectories:!1},ds=class extends ct{title=`Files`;mentionPrefix=`#`;contextType=`file`;apiRequests;config;constructor(e,t=us){super(),this.apiRequests=e,this.config=t}createCompletionSource(){return async e=>{let t=e.matchBefore(/#[^\s#]*/);if(!t)return null;let n=t.text;if(!n.startsWith(`#`))return null;let r=n.slice(1);if(r.length===0)return this.getDefaultCompletions(t);try{let e=(await this.searchFiles(r)||[]).map(e=>{let t={uri:this.asURI(e.path),name:e.name,type:this.contextType,description:e.isDirectory?`Directory`:`File`,data:{path:e.path,isDirectory:e.isDirectory}};return this.formatCompletion(t)});return{from:t.from,options:e}}catch(e){return k.error(`Failed to search files:`,e),null}}}searchFiles=async(e,t={})=>{let{maxDepth:n,maxResults:r,includeDirectories:i}={...this.config,...t};return(await this.apiRequests.sendSearchFiles({query:e,includeFiles:!0,includeDirectories:i,depth:n,limit:r})).files};async getDefaultCompletions(e){try{for(let t of[`py`,`md`,`csv`])try{let n=await this.searchFiles(t,{maxDepth:1,maxResults:5});if(n&&n.length>0){let t=n.map(e=>{let t={uri:this.asURI(e.path),name:e.name,type:this.contextType,description:e.isDirectory?`Directory`:`File`,data:{path:e.path,isDirectory:e.isDirectory}};return this.formatCompletion(t)});return{from:e.from,options:t}}}catch(e){k.error(`Failed to get default file completions:`,e)}return{from:e.from,options:[]}}catch(e){return k.error(`Failed to get default file completions:`,e),null}}getItems(){return[]}formatCompletion(e){let{data:t,name:n}=e,r=t.isDirectory?`📁`:`📄`;return{...this.createBasicCompletion(e),type:`file`,section:rt.FILE,boost:t.isDirectory?at.MEDIUM:at.LOW,detail:t.path,displayLabel:`${r} ${n}`,apply:async(e,r,i,a)=>{let o=e.state.facet(ls)?.addAttachment;if(!o){k.warn(`No addAttachment callback provided`);return}let s=await this.apiRequests.sendFileDetails({path:t.path}).catch(e=>(ut({title:`Failed to get file details`,description:e.message}),null));if(!s)return;let c=s.mimeType||`text/plain`,l=Nt({contents:s.contents??``,mimeType:c,isBase64:s.isBase64??!1});o(new File([l],n,{type:c})),e.dispatch({changes:{from:i,to:a,insert:``}}),Et(e)},info:()=>{let e=document.createElement(`div`);e.classList.add(`flex`,`flex-col`,`gap-1`,`p-2`);let r=document.createElement(`div`);r.classList.add(`font-bold`),r.textContent=n,e.append(r);let i=document.createElement(`div`);return i.classList.add(`text-xs`,`text-muted-foreground`),i.textContent=t.path,e.append(i),e}}}formatContext(e){let{data:t,name:n}=e;return st({type:this.contextType,data:{name:n,path:t.path,isDirectory:t.isDirectory},details:t.isDirectory?`Directory containing files and subdirectories`:`File`})}},fs=class extends ct{title=`Tables`;mentionPrefix=`@`;contextType=`data`;tablesMap;constructor(e){super(),this.tablesMap=e}getItems(){return[...this.tablesMap.entries()].map(([e,t])=>({uri:this.asURI(e),name:e,type:this.contextType,description:t.source===`memory`?`in-memory`:t.source,data:t}))}formatContext(e){let{data:t}=e,{columns:n,source:r,num_rows:i,num_columns:a,name:o,variable_name:s}=t,c=[i==null?void 0:`${i} rows`,a==null?void 0:`${a} columns`].filter(Boolean).join(`, `),l=``;if(c&&(l+=`Shape: ${c}\n`),s&&(l+=`Variable: ${s}\n`),n&&n.length>0){l+=`Columns:
57
57
  `;for(let e of n){let t=` ${e.name} (${e.type})`;if(e.sample_values&&e.sample_values.length>0){let n=e.sample_values.slice(0,3).map(e=>e===null?`null`:String(e)).join(`, `);t+=` - samples: [${n}]`}l+=`${t}\n`}}return st({type:this.contextType,data:{name:o,source:r??`unknown`},details:l.trim()})}formatCompletion(e){let t=e.data.name,n=e.data;return{label:`@${t}`,displayLabel:t,detail:n.source===`memory`?`in-memory`:n.source,boost:n.source_type===`local`?at.LOCAL_TABLE:at.REMOTE_TABLE,type:p(n),apply:`@${t}`,section:{name:p(n)===`dataframe`?`Dataframe`:`Table`,rank:rt.TABLE.rank},info:()=>this.createTableInfoElement(t,n)}}createTableInfoElement(e,t){let n=document.createElement(`div`);n.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 i=document.createElement(`div`);if(i.classList.add(`font-bold`,`text-base`),i.textContent=e,r.append(i),t.source){let e=document.createElement(`div`);e.classList.add(`text-xs`,`text-muted-foreground`),e.textContent=`Source: ${t.source}`,r.append(e)}n.append(r);let a=[t.num_rows==null?void 0:`${t.num_rows} rows`,t.num_columns==null?void 0:`${t.num_columns} columns`].filter(Boolean).join(`, `);if(a){let e=document.createElement(`div`);e.classList.add(`text-xs`,`bg-muted`,`px-2`,`py-1`,`rounded`),e.textContent=a,n.append(e)}if(t.columns&&t.columns.length>0){let e=document.createElement(`div`);e.classList.add(`overflow-auto`,`max-h-60`);let r=document.createElement(`table`);r.classList.add(`w-full`,`text-xs`,`border-collapse`);let i=r.insertRow();i.classList.add(`bg-muted`);let a=i.insertCell();a.classList.add(`p-2`,`font-medium`,`text-left`),a.textContent=`Column`;let o=i.insertCell();o.classList.add(`p-2`,`font-medium`,`text-left`),o.textContent=`Type`;let s=t.columns.some(e=>this.getItemMetadata(t,e)!==void 0),c;s&&(c=i.insertCell(),c.classList.add(`p-2`,`font-medium`,`text-left`),c.textContent=`Metadata`),t.columns.forEach((e,n)=>{let i=r.insertRow();i.classList.add(n%2==0?`bg-background`:`bg-muted/30`);let a=i.insertCell();a.classList.add(`p-2`,`font-mono`),a.textContent=e.name;let o=i.insertCell();if(o.classList.add(`p-2`,`text-muted-foreground`),o.textContent=e.type,s){let n=i.insertCell();n.classList.add(`p-2`);let r=this.getItemMetadata(t,e);r&&n.append(r)}}),e.append(r),n.append(e)}return n}getItemMetadata(e,t){let n=e.primary_keys?.includes(t.name),r=e.indexes?.includes(t.name);if(n||r){let e=document.createElement(`span`);e.textContent=n?`PK`:`IDX`;let t=n?`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 e.classList.add(`text-xs`,`px-1.5`,`py-0.5`,`rounded-full`,`font-medium`,...t.split(` `)),e}}},ps=class extends ct{title=`Variables`;mentionPrefix=`@`;contextType=`variable`;variables;tablesMap;constructor(e,t){super(),this.variables=e,this.tablesMap=t}getItems(){let e=new Set(this.tablesMap.keys());return Object.entries(this.variables).flatMap(([t,n])=>e.has(t)?[]:[{uri:this.asURI(t),name:t,type:this.contextType,description:n.dataType??``,dataType:n.dataType,data:{variable:n}}])}formatCompletion(e){let{data:t}=e,{variable:n}=t;return{label:`@${n.name}`,displayLabel:n.name,detail:n.dataType??``,type:this.contextType,section:rt.VARIABLE,info:()=>w(n)}}formatContext(e){let{data:t}=e,{variable:n}=t;return st({type:this.contextType,data:{name:n.name,dataType:n.dataType},details:n.value==null?void 0:JSON.stringify(n.value)})}};function ms(e){let t=e.get(h),n=e.get(E),r=e.get(ie);return new it().register(new fs(n)).register(new ps(r,n)).register(new cs(e)).register(new Ho(e)).register(new lt(t.connectionsMap,n))}function hs(){return new ds(Ot())}function gs({input:e}){let t=``;return e.includes(`@`)&&(t=ws(e),k.debug(`Included context`,t)),{includeOtherCode:b(``),context:{plainText:t,schema:[],variables:[]}}}var _s=`data-marimo-context`,vs={marimo:{source:`context`}};function ys(e){return e.type===`file`&&e.providerMetadata?.marimo?.source===vs.marimo.source}function bs(e){return{...e,providerMetadata:{...e.providerMetadata,marimo:{...e.providerMetadata?.marimo,...vs.marimo}}}}async function xs(e){if(!e.includes(`@`))return{plainText:``,contextIds:[],attachments:[]};let t=ms(s),n=t.parseAllContextIds(e);if(n.length===0)return{plainText:``,contextIds:[],attachments:[]};let r=t.formatContextForAI(n),i=[];try{i=(await t.getAttachmentsForContext(n)).map(bs)}catch(e){k.error(`Error getting attachments:`,e)}return{plainText:r,contextIds:n,attachments:i}}async function Ss(e){let{plainText:t,contextIds:n,attachments:r}=await xs(e),i=null;return t.trim()&&(i={type:_s,data:{plainText:t,contextIds:n.map(String)}}),{contextPart:i,attachments:r}}async function Cs({input:e}){let{plainText:t,attachments:n}=await xs(e);return{body:{includeOtherCode:b(``),context:{plainText:t,schema:[],variables:[]}},attachments:n}}function ws(e){let t=ms(s),n=t.parseAllContextIds(e);return t.formatContextForAI(n)}function Ts(e,t=[]){return n=>{let r=e.map(e=>n.matchBefore(e)).find(Boolean);return!r||r&&r.from===r.to&&!n.explicit?null:{from:r?.from,options:[...t]}}}function Es(e){if(e.current?.view){let t=e.current.view.state.selection.main.from;e.current.view.dispatch({changes:{from:t,to:t,insert:`@`},selection:{anchor:t+1,head:t+1}}),e.current.view.focus(),wt(e.current.view)}}var Ds=new Set([`openai`,`google`,`anthropic`]),Os=[`image/*`,`text/*`],ks=52428800;function As(e){return e.length>50?`${e.slice(0,50)}...`:e}async function js(e){return await Promise.all(e.map(async e=>({type:`file`,mediaType:e.type,filename:e.name,url:await We(e,`dataUrl`)})))}function Ms(e){if(e.length===0)return!1;let t=e.at(-1);if(!t||t.role!==`assistant`||!t.parts)return!1;let n=t.parts;return n.length!==0&&n[n.length-1].type===`reasoning`}function Ns(e){return e.map(e=>e.type===`text`?e.text:``).join(`
58
- `)}async function Ps(e){let t=await Cs({input:Ns(e.flatMap(e=>e.parts))});function n(e,n){return n?{...e,parts:[...e.parts,...t.attachments]}:e}return{...t.body,uiMessages:e.map((t,r)=>n(t,r===e.length-1))}}async function Fs({invokeAiTool:e,addToolOutput:t,toolCall:n,toolContext:r}){try{if(ns.has(n.toolName)){let e=await ns.invoke({toolName:n.toolName,rawArgs:n.input,toolContext:r});t({tool:n.toolName,toolCallId:n.toolCallId,output:e.result||e.error})}else{let r=await e({toolName:n.toolName,arguments:n.input??{}});t({tool:n.toolName,toolCallId:n.toolCallId,output:r.result||r.error})}}catch(e){k.error(`Tool call failed:`,e),t({tool:n.toolName,toolCallId:n.toolCallId,output:`Error: ${e instanceof Error?e.message:String(e)}`})}}function Is(e){let t=e.at(-1);if(!t||t.role!==`assistant`)return!1;let n=t.parts.at(-1);return!n||!H(n)?!1:Ga({messages:e})||Wa({messages:e})||n.state===`output-denied`&&!n.providerExecuted}function Ls(e){let t=e.at(-1);return!t||t.role!==`assistant`?!1:t.parts.some(e=>H(e)&&Rs(e.state))}function Rs(e){switch(e){case`approval-requested`:case`input-streaming`:case`input-available`:return!0;case`approval-responded`:case`output-available`:case`output-error`:case`output-denied`:return!1;default:return e}}function zs(){let e=(0,A.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,W.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=e=>{if(e.length!==0){if(e.reduce(Bs,0)>ks){ut({title:`File size exceeded`,description:`Attachments must be under 50 MB`,variant:`danger`});return}r(t=>[...t,...e])}},e[1]=i):i=e[1];let a=c(i),o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>r([]),e[2]=o):o=e[2];let s=o,l;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>r(t=>t.filter(t=>t!==e)),e[3]=l):l=e[3];let u=l,d;return e[4]!==a||e[5]!==n?(d={files:n,addFiles:a,clearFiles:s,removeFile:u},e[4]=a,e[5]=n,e[6]=d):d=e[6],d}function Bs(e,t){return e+t.size}function Vs(e){return e.isError?!1:e.isAbort?!0:!e.hasPendingToolCalls&&!e.hasUnresolvedToolCalls}function Hs(){let e=(0,A.c)(10),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,W.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],e[1]=i):i=e[1];let a=(0,W.useRef)(i),o=(0,W.useRef)(!1),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=e=>{let t=[...a.current,{id:At(),parts:e}];a.current=t,o.current=!0,r(t)},e[2]=s):s=e[2];let l=c(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=e=>{let t=a.current;if(t.length===0)return;let[n,...i]=t;a.current=i,o.current=i.length>0,r(i),e(n.parts)},e[3]=u):u=e[3];let d=c(u),f;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{a.current=[],o.current=!1,r([])},e[4]=f):f=e[4];let p=c(f),m;return e[5]!==p||e[6]!==l||e[7]!==d||e[8]!==n?(m={messages:n,enqueue:l,flushNext:d,clear:p,hasQueuedRef:o},e[5]=p,e[6]=l,e[7]=d,e[8]=n,e[9]=m):m=e[9],m}var Us=e=>{let t=(0,A.c)(6),{attachment:n}=e;if(n.mediaType?.startsWith(`image/`)){let e=n.filename||`Attachment`,r;return t[0]!==n.url||t[1]!==e?(r=(0,G.jsx)(`img`,{src:n.url,alt:e,className:`max-h-[100px] max-w-[100px] object-contain mb-1.5`}),t[0]=n.url,t[1]=e,t[2]=r):r=t[2],r}let r;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,G.jsx)(Ze,{className:`h-3 w-3 mt-0.5`}),t[3]=r):r=t[3];let i=n.filename||`Attachment`,a;return t[4]===i?a=t[5]:(a=(0,G.jsxs)(`div`,{className:`flex flex-row gap-1 items-center text-xs`,children:[r,i]}),t[4]=i,t[5]=a),a},Ws=e=>{let t=(0,A.c)(12),{file:n,className:r,onRemove:i}=e,[a,o]=(0,W.useState)(!1),s;t[0]===r?s=t[1]:(s=je(`py-1 px-1.5 bg-muted rounded-md cursor-pointer flex flex-row gap-1 items-center text-xs`,r),t[0]=r,t[1]=s);let c,l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>o(!0),l=()=>o(!1),t[2]=c,t[3]=l):(c=t[2],l=t[3]);let u;t[4]!==n||t[5]!==a||t[6]!==i?(u=a?(0,G.jsx)(Je,{className:`h-3 w-3 mt-0.5`,onClick:i}):Js(n),t[4]=n,t[5]=a,t[6]=i,t[7]=u):u=t[7];let d;return t[8]!==n.name||t[9]!==s||t[10]!==u?(d=(0,G.jsxs)(`div`,{className:s,onMouseEnter:c,onMouseLeave:l,children:[u,n.name]}),t[8]=n.name,t[9]=s,t[10]=u,t[11]=d):d=t[11],d},Gs=e=>{let t=(0,A.c)(12),{isLoading:n,onStop:r,onSendClick:i,isEmpty:a,showStopLabel:o}=e,s=o!==void 0&&o,c;t[0]===s?c=t[1]:(c=s?(0,G.jsxs)(`div`,{className:`flex flex-row items-center gap-1 px-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-error`,children:`Stop`}),(0,G.jsx)($e,{size:`small`})]}):(0,G.jsx)(Gt,{className:`size-4 text-error`}),t[0]=s,t[1]=c);let l=c,u=n?`Stop`:`Submit`,d=n?r:i,f=!n&&a,p;t[2]!==n||t[3]!==l?(p=n?l:(0,G.jsx)(qt,{className:`h-3.5 w-3.5`}),t[2]=n,t[3]=l,t[4]=p):p=t[4];let m;t[5]!==d||t[6]!==f||t[7]!==p?(m=(0,G.jsx)(ze,{variant:`text`,size:`sm`,className:`h-6 min-w-6 p-0 hover:bg-muted/30 cursor-pointer`,onClick:d,disabled:f,children:p}),t[5]=d,t[6]=f,t[7]=p,t[8]=m):m=t[8];let h;return t[9]!==u||t[10]!==m?(h=(0,G.jsx)(Re,{content:u,children:m}),t[9]=u,t[10]=m,t[11]=h):h=t[11],h},Ks=e=>{let t=(0,A.c)(4),{handleAddContext:n,isLoading:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,G.jsx)(Ue,{className:`h-3.5 w-3.5`}),t[0]=i):i=t[0];let a;return t[1]!==n||t[2]!==r?(a=(0,G.jsx)(Re,{content:`Add context`,children:(0,G.jsx)(ze,{variant:`text`,size:`icon`,onClick:n,disabled:r,children:i})}),t[1]=n,t[2]=r,t[3]=a):a=t[3],a},qs=e=>{let t=(0,A.c)(15),{fileInputRef:n,isLoading:r,onAddFiles:i}=e,a;t[0]===n?a=t[1]:(a=()=>n.current?.click(),t[0]=n,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,G.jsx)(Kt,{className:`h-3.5 w-3.5`}),t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==a?(s=(0,G.jsx)(Re,{content:`Attach a file`,children:(0,G.jsx)(ze,{variant:`text`,size:`icon`,onClick:a,disabled:r,children:o})}),t[3]=r,t[4]=a,t[5]=s):s=t[5];let c;t[6]===i?c=t[7]:(c=e=>{e.target.files&&i([...e.target.files])},t[6]=i,t[7]=c);let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=Os.join(`,`),t[8]=l):l=t[8];let u;t[9]!==n||t[10]!==c?(u=(0,G.jsx)(nt,{ref:n,type:`file`,multiple:!0,hidden:!0,onChange:c,accept:l}),t[9]=n,t[10]=c,t[11]=u):u=t[11];let d;return t[12]!==s||t[13]!==u?(d=(0,G.jsxs)(G.Fragment,{children:[s,u]}),t[12]=s,t[13]=u,t[14]=d):d=t[14],d};function Js(e){let t=`h-3 w-3 mt-0.5`;return e.type.startsWith(`image/`)?(0,G.jsx)(Qe,{className:t}):e.type.startsWith(`text/`)?(0,G.jsx)(He,{className:t}):(0,G.jsx)(Ze,{className:t})}var Ys=e=>{let t=(0,A.c)(15),{icon:n,title:r,subtitle:i,href:a}=e,o;t[0]===r?o=t[1]:(o=(0,G.jsx)(`span`,{className:`truncate font-medium`,children:r}),t[0]=r,t[1]=o);let s;t[2]===i?s=t[3]:(s=i&&(0,G.jsxs)(`span`,{className:`truncate opacity-70`,children:[`(`,i,`)`]}),t[2]=i,t[3]=s);let c;t[4]!==n||t[5]!==o||t[6]!==s?(c=(0,G.jsxs)(G.Fragment,{children:[n,o,s]}),t[4]=n,t[5]=o,t[6]=s,t[7]=c):c=t[7];let l=c;if(a&&De(a)){let e=i??r,n;return t[8]!==l||t[9]!==a||t[10]!==e?(n=(0,G.jsx)(`a`,{href:a,target:`_blank`,rel:`noopener noreferrer`,title:e,className:`inline-flex max-w-full items-center gap-1.5 rounded-md border bg-muted/50 px-2 py-1 my-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,children:l}),t[8]=l,t[9]=a,t[10]=e,t[11]=n):n=t[11],n}let u=i??r,d;return t[12]!==l||t[13]!==u?(d=(0,G.jsx)(`div`,{className:`inline-flex max-w-full items-center gap-1.5 rounded-md border bg-muted/50 px-2 py-1 my-1 text-xs text-muted-foreground`,title:u,children:l}),t[12]=l,t[13]=u,t[14]=d):d=t[14],d},Xs=gt.define(),Q=dt.define({create(){return new Map},update(e,t){let n=!1,r=e;for(let i of t.effects)if(i.is(Xs)){n||=(r=new Map(e),!0);for(let[e,t]of i.value)r.set(e,t)}return r}}),Zs=dt.define({create(){return{onResourceClick:void 0,onResourceMouseOver:void 0,onResourceMouseOut:void 0,onPromptSubmit:void 0}},update(e){return e}}),Qs=gt.define();dt.define({create(){return new Map},update(e,t){let n=!1,r=e;for(let i of t.effects)if(i.is(Qs)){n||=(r=new Map(e),!0);for(let[e,t]of i.value)r.set(e,t)}return r}});var $s=(e,t)=>async n=>{let r=n.matchBefore(/@(\w+)?/);if(!r||r.from===r.to&&!n.explicit)return null;let i=await e();if(i.length===0)return null;let a=Xs.of(new Map(i.map(e=>[e.uri,e])));n.view&&n.view.dispatch({effects:a});let o=i.map(e=>({label:`@${e.name}`,displayLabel:e.name,detail:e.uri,info:e.description||void 0,type:e.mimeType?`constant`:`variable`,boost:e.description?100:0,...t?.(e),apply:(t,n,r,i)=>{t.dispatch({changes:{from:r,to:i,insert:`@${e.uri} `}})}}));return{from:r.from,options:o}},ec=/@[\w-]+:\/\/(?!\/)[^\s]+/;function $(e){return e.matchAll(new RegExp(ec.source,`g`))}var tc=class extends yt{resource;view;constructor(e,t){super(),this.resource=e,this.view=t}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 t=this.view.state.field(Zs,!1),n=t?.onResourceClick,r=t?.onResourceMouseOver,i=t?.onResourceMouseOut;return n&&(e.style.cursor=`pointer`,e.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),n(this.resource)})),r&&e.addEventListener(`mouseover`,e=>{e.preventDefault(),e.stopPropagation(),r(this.resource)}),i&&e.addEventListener(`mouseout`,e=>{e.preventDefault(),e.stopPropagation(),i(this.resource)}),e}},nc=class extends yt{uri;view;constructor(e,t){super(),this.uri=e,this.view=t}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 rc(e){let t=e.state.field(Q),n=[];for(let{from:r,to:i}of e.visibleRanges){let a=e.state.doc.sliceString(r,i);for(let i of $(a)){let a=r+i.index,o=i[0].slice(1),s=t.get(o);s?n.push(vt.replace({widget:new tc(s,e)}).range(a,a+i[0].length)):n.push(vt.replace({widget:new nc(o,e)}).range(a,a+i[0].length))}}return vt.set(n)}var ic=St.fromClass(class{decorations;constructor(e){this.decorations=rc(e)}update(e){(e.docChanged||e.viewportChanged||e.transactions.some(e=>e.effects.some(e=>e.is(Xs))))&&(this.decorations=rc(e.view))}},{decorations:e=>e.decorations});function ac(e){let t=document.createElement(`div`);t.className=`cm-tooltip-cursor`;let n=document.createElement(`div`);if(n.className=`cm-tooltip-cursor-title`,n.textContent=`${e.name} (${e.uri})`,t.appendChild(n),e.description){let n=document.createElement(`div`);n.className=`cm-tooltip-cursor-description`,n.textContent=e.description,t.appendChild(n)}if(e.mimeType){let n=document.createElement(`div`);n.className=`cm-tooltip-cursor-mimetype`,n.textContent=e.mimeType,t.appendChild(n)}return{dom:t}}function oc(e,t,n,r=0){for(let i of $(e)){let e=r+i.index,a=e+i[0].length;if(t>=e&&t<=a){let t=i[0].slice(1),r=n.get(t);if(r)return{resource:r,start:e,end:a}}}return null}function sc(e){return _t((t,n)=>{let{from:r,text:i}=t.state.doc.lineAt(n),a=oc(i,n,t.state.field(Q),r);return a?{pos:a.start,end:a.end,above:!0,create(){return(e.createTooltip??ac)(a.resource)}}:null})}function cc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,i.to),o=Array.from($(a));if(o.length===0)return null;for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);if(t===a&&n.has(o))return{from:r,to:a,uri:o}}return null}function lc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t).to,a=r.sliceString(t,i),o=Array.from($(a));if(o.length===0)return null;let s=o[0];if(!s||s.index!==0)return null;let c=t,l=t+s[0].length,u=s[0].slice(1);return n.has(u)?{from:c,to:l,uri:u}:null}function uc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,i.to),o=Array.from($(a));for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);if(t>r&&t<a&&n.has(o))return{from:r,to:a,uri:o}}return null}function dc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,t),o=Array.from($(a)),s=null;for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);n.has(o)&&a<=t&&(t>a?s=a:t===a&&(s=r))}return s}function fc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,i.to),o=Array.from($(a));for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);if(n.has(o)&&r>=t){if(t<r)return r;if(t===r)return a}}return null}var pc=pt.transactionFilter.of(e=>{let t=e.annotation(xt.userEvent);if(!t)return e;let n=e.startState.selection.main;if(!n.empty)return e;if(t===`input.type`||t.startsWith(`input`)){if(e.changes.empty)return e;let t=e.startState.field(Q),n=e.startState.doc,r=!1,i=0,a=[];if(e.changes.iterChanges((e,o,s,c,l)=>{let u=l.toString(),d=e;if(/^\s+$/.test(u)){a.push({from:e,to:o,insert:u});return}let f=n.lineAt(d),p=n.sliceString(f.from,f.to),m=Array.from($(p)),h=!1,g=!1;for(let e of m){let r=f.from+e.index,i=r+e[0].length,a=e[0].slice(1);if(t.has(a)){if(d===r){let e=d>0?n.sliceString(d-1,d):``;e!==``&&e!==` `&&e!==`
58
+ `)}async function Ps(e){let t=await Cs({input:Ns(e.flatMap(e=>e.parts))});function n(e,n){return n?{...e,parts:[...e.parts,...t.attachments]}:e}return{...t.body,uiMessages:e.map((t,r)=>n(t,r===e.length-1))}}async function Fs({invokeAiTool:e,addToolOutput:t,toolCall:n,toolContext:r}){try{if(ns.has(n.toolName)){let e=await ns.invoke({toolName:n.toolName,rawArgs:n.input,toolContext:r});t({tool:n.toolName,toolCallId:n.toolCallId,output:e.result||e.error})}else{let r=await e({toolName:n.toolName,arguments:n.input??{}});t({tool:n.toolName,toolCallId:n.toolCallId,output:r.result||r.error})}}catch(e){k.error(`Tool call failed:`,e),t({tool:n.toolName,toolCallId:n.toolCallId,output:`Error: ${e instanceof Error?e.message:String(e)}`})}}function Is(e){let t=e.at(-1);if(!t||t.role!==`assistant`)return!1;let n=t.parts.at(-1);return!n||!H(n)?!1:Ga({messages:e})||Wa({messages:e})||n.state===`output-denied`&&!n.providerExecuted}function Ls(e){let t=e.at(-1);return!t||t.role!==`assistant`?!1:t.parts.some(e=>H(e)&&Rs(e.state))}function Rs(e){switch(e){case`approval-requested`:case`input-streaming`:case`input-available`:return!0;case`approval-responded`:case`output-available`:case`output-error`:case`output-denied`:return!1;default:return e}}function zs(){let e=(0,A.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,W.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=e=>{if(e.length!==0){if(e.reduce(Bs,0)>ks){ut({title:`File size exceeded`,description:`Attachments must be under 50 MB`,variant:`danger`});return}r(t=>[...t,...e])}},e[1]=i):i=e[1];let a=c(i),o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>r([]),e[2]=o):o=e[2];let s=o,l;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>r(t=>t.filter(t=>t!==e)),e[3]=l):l=e[3];let u=l,d;return e[4]!==a||e[5]!==n?(d={files:n,addFiles:a,clearFiles:s,removeFile:u},e[4]=a,e[5]=n,e[6]=d):d=e[6],d}function Bs(e,t){return e+t.size}function Vs(e){return e.isError?!1:e.isAbort?!0:!e.hasPendingToolCalls&&!e.hasUnresolvedToolCalls}function Hs(){let e=(0,A.c)(10),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=(0,W.useState)(t),i;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],e[1]=i):i=e[1];let a=(0,W.useRef)(i),o=(0,W.useRef)(!1),s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=e=>{let t=[...a.current,{id:At(),parts:e}];a.current=t,o.current=!0,r(t)},e[2]=s):s=e[2];let l=c(s),u;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(u=e=>{let t=a.current;if(t.length===0)return;let[n,...i]=t;a.current=i,o.current=i.length>0,r(i),e(n.parts)},e[3]=u):u=e[3];let d=c(u),f;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{a.current=[],o.current=!1,r([])},e[4]=f):f=e[4];let p=c(f),m;return e[5]!==p||e[6]!==l||e[7]!==d||e[8]!==n?(m={messages:n,enqueue:l,flushNext:d,clear:p,hasQueuedRef:o},e[5]=p,e[6]=l,e[7]=d,e[8]=n,e[9]=m):m=e[9],m}var Us=e=>{let t=(0,A.c)(6),{attachment:n}=e;if(n.mediaType?.startsWith(`image/`)){let e=n.filename||`Attachment`,r;return t[0]!==n.url||t[1]!==e?(r=(0,G.jsx)(`img`,{src:n.url,alt:e,className:`max-h-[100px] max-w-[100px] object-contain mb-1.5`}),t[0]=n.url,t[1]=e,t[2]=r):r=t[2],r}let r;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,G.jsx)(Ze,{className:`h-3 w-3 mt-0.5`}),t[3]=r):r=t[3];let i=n.filename||`Attachment`,a;return t[4]===i?a=t[5]:(a=(0,G.jsxs)(`div`,{className:`flex flex-row gap-1 items-center text-xs`,children:[r,i]}),t[4]=i,t[5]=a),a},Ws=e=>{let t=(0,A.c)(12),{file:n,className:r,onRemove:i}=e,[a,o]=(0,W.useState)(!1),s;t[0]===r?s=t[1]:(s=je(`py-1 px-1.5 bg-muted rounded-md cursor-pointer flex flex-row gap-1 items-center text-xs`,r),t[0]=r,t[1]=s);let c,l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>o(!0),l=()=>o(!1),t[2]=c,t[3]=l):(c=t[2],l=t[3]);let u;t[4]!==n||t[5]!==a||t[6]!==i?(u=a?(0,G.jsx)(Je,{className:`h-3 w-3 mt-0.5`,onClick:i}):Js(n),t[4]=n,t[5]=a,t[6]=i,t[7]=u):u=t[7];let d;return t[8]!==n.name||t[9]!==s||t[10]!==u?(d=(0,G.jsxs)(`div`,{className:s,onMouseEnter:c,onMouseLeave:l,children:[u,n.name]}),t[8]=n.name,t[9]=s,t[10]=u,t[11]=d):d=t[11],d},Gs=e=>{let t=(0,A.c)(12),{isLoading:n,onStop:r,onSendClick:i,isEmpty:a,showStopLabel:o}=e,s=o!==void 0&&o,c;t[0]===s?c=t[1]:(c=s?(0,G.jsxs)(`div`,{className:`flex flex-row items-center gap-1 px-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs text-error`,children:`Stop`}),(0,G.jsx)($e,{size:`small`})]}):(0,G.jsx)(Gt,{className:`size-4 text-error`}),t[0]=s,t[1]=c);let l=c,u=n?`Stop`:`Submit`,d=n?r:i,f=!n&&a,p;t[2]!==n||t[3]!==l?(p=n?l:(0,G.jsx)(qt,{className:`h-3.5 w-3.5`}),t[2]=n,t[3]=l,t[4]=p):p=t[4];let m;t[5]!==d||t[6]!==f||t[7]!==p?(m=(0,G.jsx)(ze,{variant:`text`,size:`sm`,className:`h-6 min-w-6 p-0 hover:bg-muted/30 cursor-pointer`,onClick:d,disabled:f,children:p}),t[5]=d,t[6]=f,t[7]=p,t[8]=m):m=t[8];let h;return t[9]!==u||t[10]!==m?(h=(0,G.jsx)(Re,{content:u,children:m}),t[9]=u,t[10]=m,t[11]=h):h=t[11],h},Ks=e=>{let t=(0,A.c)(4),{handleAddContext:n,isLoading:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,G.jsx)(Ue,{className:`h-3.5 w-3.5`}),t[0]=i):i=t[0];let a;return t[1]!==n||t[2]!==r?(a=(0,G.jsx)(Re,{content:`Add context`,children:(0,G.jsx)(ze,{"aria-label":`Add context`,variant:`text`,size:`icon`,onClick:n,disabled:r,children:i})}),t[1]=n,t[2]=r,t[3]=a):a=t[3],a},qs=e=>{let t=(0,A.c)(15),{fileInputRef:n,isLoading:r,onAddFiles:i}=e,a;t[0]===n?a=t[1]:(a=()=>n.current?.click(),t[0]=n,t[1]=a);let o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,G.jsx)(Kt,{className:`h-3.5 w-3.5`}),t[2]=o):o=t[2];let s;t[3]!==r||t[4]!==a?(s=(0,G.jsx)(Re,{content:`Attach a file`,children:(0,G.jsx)(ze,{"aria-label":`Attach a file`,variant:`text`,size:`icon`,onClick:a,disabled:r,children:o})}),t[3]=r,t[4]=a,t[5]=s):s=t[5];let c;t[6]===i?c=t[7]:(c=e=>{e.target.files&&i([...e.target.files])},t[6]=i,t[7]=c);let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=Os.join(`,`),t[8]=l):l=t[8];let u;t[9]!==n||t[10]!==c?(u=(0,G.jsx)(nt,{ref:n,type:`file`,multiple:!0,hidden:!0,onChange:c,accept:l}),t[9]=n,t[10]=c,t[11]=u):u=t[11];let d;return t[12]!==s||t[13]!==u?(d=(0,G.jsxs)(G.Fragment,{children:[s,u]}),t[12]=s,t[13]=u,t[14]=d):d=t[14],d};function Js(e){let t=`h-3 w-3 mt-0.5`;return e.type.startsWith(`image/`)?(0,G.jsx)(Qe,{className:t}):e.type.startsWith(`text/`)?(0,G.jsx)(He,{className:t}):(0,G.jsx)(Ze,{className:t})}var Ys=e=>{let t=(0,A.c)(15),{icon:n,title:r,subtitle:i,href:a}=e,o;t[0]===r?o=t[1]:(o=(0,G.jsx)(`span`,{className:`truncate font-medium`,children:r}),t[0]=r,t[1]=o);let s;t[2]===i?s=t[3]:(s=i&&(0,G.jsxs)(`span`,{className:`truncate opacity-70`,children:[`(`,i,`)`]}),t[2]=i,t[3]=s);let c;t[4]!==n||t[5]!==o||t[6]!==s?(c=(0,G.jsxs)(G.Fragment,{children:[n,o,s]}),t[4]=n,t[5]=o,t[6]=s,t[7]=c):c=t[7];let l=c;if(a&&De(a)){let e=i??r,n;return t[8]!==l||t[9]!==a||t[10]!==e?(n=(0,G.jsx)(`a`,{href:a,target:`_blank`,rel:`noopener noreferrer`,title:e,className:`inline-flex max-w-full items-center gap-1.5 rounded-md border bg-muted/50 px-2 py-1 my-1 text-xs text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,children:l}),t[8]=l,t[9]=a,t[10]=e,t[11]=n):n=t[11],n}let u=i??r,d;return t[12]!==l||t[13]!==u?(d=(0,G.jsx)(`div`,{className:`inline-flex max-w-full items-center gap-1.5 rounded-md border bg-muted/50 px-2 py-1 my-1 text-xs text-muted-foreground`,title:u,children:l}),t[12]=l,t[13]=u,t[14]=d):d=t[14],d},Xs=gt.define(),Q=dt.define({create(){return new Map},update(e,t){let n=!1,r=e;for(let i of t.effects)if(i.is(Xs)){n||=(r=new Map(e),!0);for(let[e,t]of i.value)r.set(e,t)}return r}}),Zs=dt.define({create(){return{onResourceClick:void 0,onResourceMouseOver:void 0,onResourceMouseOut:void 0,onPromptSubmit:void 0}},update(e){return e}}),Qs=gt.define();dt.define({create(){return new Map},update(e,t){let n=!1,r=e;for(let i of t.effects)if(i.is(Qs)){n||=(r=new Map(e),!0);for(let[e,t]of i.value)r.set(e,t)}return r}});var $s=(e,t)=>async n=>{let r=n.matchBefore(/@(\w+)?/);if(!r||r.from===r.to&&!n.explicit)return null;let i=await e();if(i.length===0)return null;let a=Xs.of(new Map(i.map(e=>[e.uri,e])));n.view&&n.view.dispatch({effects:a});let o=i.map(e=>({label:`@${e.name}`,displayLabel:e.name,detail:e.uri,info:e.description||void 0,type:e.mimeType?`constant`:`variable`,boost:e.description?100:0,...t?.(e),apply:(t,n,r,i)=>{t.dispatch({changes:{from:r,to:i,insert:`@${e.uri} `}})}}));return{from:r.from,options:o}},ec=/@[\w-]+:\/\/(?!\/)[^\s]+/;function $(e){return e.matchAll(new RegExp(ec.source,`g`))}var tc=class extends yt{resource;view;constructor(e,t){super(),this.resource=e,this.view=t}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 t=this.view.state.field(Zs,!1),n=t?.onResourceClick,r=t?.onResourceMouseOver,i=t?.onResourceMouseOut;return n&&(e.style.cursor=`pointer`,e.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),n(this.resource)})),r&&e.addEventListener(`mouseover`,e=>{e.preventDefault(),e.stopPropagation(),r(this.resource)}),i&&e.addEventListener(`mouseout`,e=>{e.preventDefault(),e.stopPropagation(),i(this.resource)}),e}},nc=class extends yt{uri;view;constructor(e,t){super(),this.uri=e,this.view=t}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 rc(e){let t=e.state.field(Q),n=[];for(let{from:r,to:i}of e.visibleRanges){let a=e.state.doc.sliceString(r,i);for(let i of $(a)){let a=r+i.index,o=i[0].slice(1),s=t.get(o);s?n.push(vt.replace({widget:new tc(s,e)}).range(a,a+i[0].length)):n.push(vt.replace({widget:new nc(o,e)}).range(a,a+i[0].length))}}return vt.set(n)}var ic=St.fromClass(class{decorations;constructor(e){this.decorations=rc(e)}update(e){(e.docChanged||e.viewportChanged||e.transactions.some(e=>e.effects.some(e=>e.is(Xs))))&&(this.decorations=rc(e.view))}},{decorations:e=>e.decorations});function ac(e){let t=document.createElement(`div`);t.className=`cm-tooltip-cursor`;let n=document.createElement(`div`);if(n.className=`cm-tooltip-cursor-title`,n.textContent=`${e.name} (${e.uri})`,t.appendChild(n),e.description){let n=document.createElement(`div`);n.className=`cm-tooltip-cursor-description`,n.textContent=e.description,t.appendChild(n)}if(e.mimeType){let n=document.createElement(`div`);n.className=`cm-tooltip-cursor-mimetype`,n.textContent=e.mimeType,t.appendChild(n)}return{dom:t}}function oc(e,t,n,r=0){for(let i of $(e)){let e=r+i.index,a=e+i[0].length;if(t>=e&&t<=a){let t=i[0].slice(1),r=n.get(t);if(r)return{resource:r,start:e,end:a}}}return null}function sc(e){return _t((t,n)=>{let{from:r,text:i}=t.state.doc.lineAt(n),a=oc(i,n,t.state.field(Q),r);return a?{pos:a.start,end:a.end,above:!0,create(){return(e.createTooltip??ac)(a.resource)}}:null})}function cc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,i.to),o=Array.from($(a));if(o.length===0)return null;for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);if(t===a&&n.has(o))return{from:r,to:a,uri:o}}return null}function lc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t).to,a=r.sliceString(t,i),o=Array.from($(a));if(o.length===0)return null;let s=o[0];if(!s||s.index!==0)return null;let c=t,l=t+s[0].length,u=s[0].slice(1);return n.has(u)?{from:c,to:l,uri:u}:null}function uc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,i.to),o=Array.from($(a));for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);if(t>r&&t<a&&n.has(o))return{from:r,to:a,uri:o}}return null}function dc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,t),o=Array.from($(a)),s=null;for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);n.has(o)&&a<=t&&(t>a?s=a:t===a&&(s=r))}return s}function fc(e,t){let n=e.field(Q),r=e.doc,i=r.lineAt(t),a=r.sliceString(i.from,i.to),o=Array.from($(a));for(let e of o){let r=i.from+e.index,a=r+e[0].length,o=e[0].slice(1);if(n.has(o)&&r>=t){if(t<r)return r;if(t===r)return a}}return null}var pc=pt.transactionFilter.of(e=>{let t=e.annotation(xt.userEvent);if(!t)return e;let n=e.startState.selection.main;if(!n.empty)return e;if(t===`input.type`||t.startsWith(`input`)){if(e.changes.empty)return e;let t=e.startState.field(Q),n=e.startState.doc,r=!1,i=0,a=[];if(e.changes.iterChanges((e,o,s,c,l)=>{let u=l.toString(),d=e;if(/^\s+$/.test(u)){a.push({from:e,to:o,insert:u});return}let f=n.lineAt(d),p=n.sliceString(f.from,f.to),m=Array.from($(p)),h=!1,g=!1;for(let e of m){let r=f.from+e.index,i=r+e[0].length,a=e[0].slice(1);if(t.has(a)){if(d===r){let e=d>0?n.sliceString(d-1,d):``;e!==``&&e!==` `&&e!==`
59
59
  `&&e!==` `&&(h=!0)}if(d===i){let e=d<n.length?n.sliceString(d,d+1):``;(e===``||e!==` `&&e!==`
60
60
  `&&e!==` `)&&(g=!0)}}}let _=u;h&&(_=` ${_}`,i+=1),g&&(_=` ${_}`,i+=1),_!==u&&(r=!0),a.push({from:e,to:o,insert:_})}),r)return[{changes:a,selection:e.selection?{anchor:e.selection.main.anchor+i,head:e.selection.main.head+i}:void 0,scrollIntoView:e.scrollIntoView}]}if(t===`delete.backward`||t===`delete.forward`){let r=null;return t===`delete.backward`?r=cc(e.startState,n.head):t===`delete.forward`&&(r=lc(e.startState,n.head)),r?[{changes:{from:r.from,to:r.to,insert:``},selection:{anchor:r.from},scrollIntoView:!0}]:e}if(e.selection?.main.empty&&n.empty&&!t.startsWith(`input`)&&t!==`input.type`){let t=n.head,r=e.selection.main.head,i=null;if(r<t){let n=uc(e.startState,t);i=n&&t>n.from?n.from:dc(e.startState,t)}else if(r>t){let n=uc(e.startState,t);i=n&&t<n.to?n.to:fc(e.startState,t)}if(i!==null&&i!==r)return[{selection:{anchor:i},scrollIntoView:!0}]}return e}),mc=150;function hc(e,t){let n=new Set;for(let r of $(e)){let e=r[0].slice(1);t.has(e)||n.add(e)}return[...n]}function gc(e){return[...e].sort().join(`
61
61
  `)}function _c(e){return!$(e).next().done}function vc(e){let t=[],n=[];return e.changes.iterChanges((r,i,a,o)=>{let s=e.startState.doc.lineAt(r),c=e.startState.doc.lineAt(i===r?r:i-1);t.push(e.startState.doc.sliceString(s.from,c.to));let l=e.state.doc.lineAt(a),u=e.state.doc.lineAt(o===a?a:o-1);n.push(e.state.doc.sliceString(l.from,u.to))}),{before:t.join(`
@@ -1,4 +1,4 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{At as n,Mt as r,gi as i,jn as a,jt as o,kt as s,qa as c,wn as l,yt as u}from"./cells-yOs72eZm.js";import{C as d,I as f,N as p,O as m,T as h}from"./schemas-ChRqMOTL.js";import{r as g}from"./coerce-DWjFeXOY.js";import{t as _}from"./compiler-runtime-BrajqUja.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{i as ee,n as te,r as ne,t as re}from"./tabs-CY8E4r9U.js";import{i as b,t as ie}from"./tooltip-CkGm8X7m.js";import{t as ae}from"./components-DCo7mAWO.js";import{a as x,l as oe,p as S,r as C,s as w}from"./write-secret-modal-BEx-EUlh.js";import{t as se}from"./plus-C5silF6g.js";import{Jt as ce,Qt as le,Xt as ue,Yt as de,nn as fe,tn as pe}from"./input-DmHMEZGh.js";import{r as T}from"./strings-C25fhMR_.js";import{t as me}from"./useIframeCapabilities-Czr9e4uG.js";var E=e(t(),1),D=_();function O(){return f().optional().describe(l.of({label:`Password`,inputType:`password`,optionRegex:`(password|passwd|pgpassword|db.?pass(word)?)`}))}function k(e,t){let n=f();return n=t?n.nonempty():n.optional(),n=n.describe(l.of({label:e||`Token`,inputType:`password`,optionRegex:`(token|api.?key|access.?token|auth.?token|(^|_)pat(_|$))`})),n}function A(){return f().optional().describe(l.of({label:`Warehouse Name`,optionRegex:`(warehouse|snowflake.?warehouse)`}))}function j(e,t){let n=f();return n=t?n.nonempty():n.optional(),n.describe(l.of({label:e||`URI`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`}))}function M(e){return f().nonempty().describe(l.of({label:e||`Host`,optionRegex:`^(?!.*(kubernetes|gpg)).*(host(name)?|pghost|db.?host|database.?host|mysql.?host|postgres.?host|server.?host)`}))}function N(){return f().describe(l.of({label:`Database`,optionRegex:`(database|db.?name|pgdatabase|^DB$|^DATABASE$)`}))}function he(){return f().describe(l.of({label:`Schema`,optionRegex:`(^SCHEMA$|db.?schema|postgres.?schema|pg.?schema|_SCHEMA$)`}))}function P(){return f().nonempty().describe(l.of({label:`Username`,optionRegex:`(username|pguser|db.?user|^USER$|_USER$)`}))}function F(e){let t=g().describe(l.of({label:`Port`,inputType:`number`,placeholder:e?.toString()})).transform(Number).refine(e=>e>=0&&e<=65535,{message:`Port must be between 0 and 65535`});return e===void 0?t:t.default(e)}function ge(){return d().default(!1).describe(l.of({label:`Read Only`}))}var _e=p({type:m(`postgres`),host:M(),port:F(5432).optional(),database:N(),username:P(),password:O(),ssl:d().default(!1).describe(l.of({label:`Use SSL`}))}).describe(l.of({direction:`two-columns`})),ve=p({type:m(`mysql`),host:M(),port:F(3306),database:N(),username:P(),password:O(),ssl:d().default(!1).describe(l.of({label:`Use SSL`}))}).describe(l.of({direction:`two-columns`})),ye=p({type:m(`sqlite`),database:N().describe(l.of({label:`Database Path`}))}).describe(l.of({direction:`two-columns`})),be=p({type:m(`duckdb`),database:N().describe(l.of({label:`Database Path`})),read_only:ge()}).describe(l.of({direction:`two-columns`})),I=p({type:m(`motherduck`),database:N().default(`my_db`).describe(l.of({label:`Database Name`})),token:k()}).describe(l.of({direction:`two-columns`})),L=p({type:m(`snowflake`),account:f().nonempty().describe(l.of({label:`Account`,optionRegex:`(snowflake.?account|^SNOWFLAKE_ACCOUNT$|account.?id)`})),warehouse:f().optional().describe(l.of({label:`Warehouse`,optionRegex:`(snowflake.?warehouse|warehouse)`})),database:N(),schema:f().optional().describe(l.of({label:`Schema`,optionRegex:`(snowflake.?schema|^SCHEMA$|_SCHEMA$)`})),role:f().optional().describe(l.of({label:`Role`})),authType:h(`type`,[p({type:m(`Password`),username:P(),password:O(),enable_mfa:d().default(!1).describe(l.of({label:`Enable MFA (Duo Push)`}))}),p({type:m(`SSO (Browser)`),username:P()}),p({type:m(`Key Pair`),username:P(),private_key_path:f().nonempty().describe(l.of({label:`Private Key Path`,placeholder:`/path/to/rsa_key.p8`})),private_key_passphrase:f().optional().describe(l.of({label:`Private Key Passphrase`,inputType:`password`,optionRegex:`(passphrase|private.?key.?passphrase|key.?passphrase)`}))}),p({type:m(`OAuth / PAT`),token:k(`Token`,!0)})]).default({type:`Password`,username:`username`,enable_mfa:!1}).describe(l.of({special:`tabs`}))}).describe(l.of({direction:`two-columns`})),R=p({type:m(`bigquery`),project:f().nonempty().describe(l.of({label:`Project ID`,optionRegex:`(bigquery.?project|gcp.?project|google.?cloud.?project|project.?id)`})),dataset:f().nonempty().describe(l.of({label:`Dataset`,optionRegex:`(bigquery.?dataset|dataset)`})),credentials_json:f().describe(l.of({label:`Credentials JSON`,special:`secret_textarea`}))}).describe(l.of({direction:`two-columns`})),z=p({type:m(`clickhouse_connect`),host:M(),port:F(8123).optional(),username:P(),password:O(),secure:d().default(!1).describe(l.of({label:`Use HTTPs`})),proxy_path:f().optional().describe(l.of({label:`Proxy Path`,placeholder:`/clickhouse`}))}).describe(l.of({direction:`two-columns`})),B=p({type:m(`timeplus`),host:M().default(`localhost`),port:F(8123).optional(),username:P().default(`default`),password:O().default(``)}).describe(l.of({direction:`two-columns`})),V=p({type:m(`chdb`),database:N().describe(l.of({label:`Database Path`})),read_only:ge()}).describe(l.of({direction:`two-columns`})),H=p({type:m(`trino`),host:M(),port:F(8080),database:N(),schema:he().optional(),username:P(),password:O(),async_support:d().default(!1).describe(l.of({label:`Async Support`}))}).describe(l.of({direction:`two-columns`})),U=p({type:m(`iceberg`),name:f().describe(l.of({label:`Catalog Name`})),catalog:h(`type`,[p({type:m(`REST`),warehouse:A(),uri:f().optional().describe(l.of({label:`URI`,placeholder:`https://`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`})),token:k()}),p({type:m(`SQL`),warehouse:A(),uri:f().optional().describe(l.of({label:`URI`,placeholder:`jdbc:iceberg://host:port/database`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`}))}),p({type:m(`Hive`),warehouse:A(),uri:j()}),p({type:m(`Glue`),warehouse:A(),uri:j()}),p({type:m(`DynamoDB`),"dynamodb.profile-name":f().optional().describe(l.of({label:`Profile Name`})),"dynamodb.region":f().optional().describe(l.of({label:`Region`})),"dynamodb.access-key-id":f().optional().describe(l.of({label:`Access Key ID`,inputType:`password`,optionRegex:`(access.?key.?id|aws.?access.?key)`})),"dynamodb.secret-access-key":f().optional().describe(l.of({label:`Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|aws.?secret)`})),"dynamodb.session-token":f().optional().describe(l.of({label:`Session Token`,inputType:`password`,optionRegex:`(session.?token|aws.?session)`}))})]).default({type:`REST`,token:void 0}).describe(l.of({special:`tabs`}))}),W=p({type:m(`datafusion`),sessionContext:d().optional().describe(l.of({label:`Use Session Context`}))}),G=p({type:m(`pyspark`),host:M().optional(),port:F().optional()}),K=p({type:m(`redshift`),host:M(),port:F(5439),connectionType:h(`type`,[p({type:m(`IAM credentials`),region:f().describe(l.of({label:`Region`})),aws_access_key_id:f().nonempty().describe(l.of({label:`AWS Access Key ID`,inputType:`password`,optionRegex:`(access.?key.?id|aws.?access.?key)`})),aws_secret_access_key:f().nonempty().describe(l.of({label:`AWS Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|aws.?secret)`})),aws_session_token:f().optional().describe(l.of({label:`AWS Session Token`,inputType:`password`,optionRegex:`(session.?token|aws.?session)`}))}),p({type:m(`DB credentials`),user:P(),password:O()})]).default({type:`IAM credentials`,aws_access_key_id:``,aws_secret_access_key:``,region:``}),database:N()}).describe(l.of({direction:`two-columns`})),q=p({type:m(`databricks`),access_token:k(`Access Token`,!0),server_hostname:M(`Server Hostname`),http_path:j(`HTTP Path`,!0),catalog:f().optional().describe(l.of({label:`Catalog`})),schema:f().optional().describe(l.of({label:`Schema`}))}).describe(l.of({direction:`two-columns`})),xe=p({type:m(`supabase`),host:M(),port:F(5432).optional(),database:N(),username:P(),password:O(),disable_client_pooling:d().default(!1).describe(l.of({label:`Disable Client-Side Pooling`}))}).describe(l.of({direction:`two-columns`})),Se=h(`type`,[_e,ve,ye,be,I,L,R,z,B,V,H,U,W,G,K,q,xe]),Ce={sqlmodel:`SQLModel`,sqlalchemy:`SQLAlchemy`,duckdb:`DuckDB`,clickhouse_connect:`ClickHouse Connect`,chdb:`chDB`,pyiceberg:`PyIceberg`,ibis:`Ibis`,motherduck:`MotherDuck`,redshift:`Redshift`,databricks:`Databricks`},J=class{connection;orm;secrets;constructor(e,t,n){this.connection=e,this.orm=t,this.secrets=n}get imports(){let e=new Set(this.generateImports());switch(this.orm){case`sqlalchemy`:e.add(`import sqlalchemy`);break;case`sqlmodel`:e.add(`import sqlmodel`);break;case`duckdb`:e.add(`import duckdb`);break;case`ibis`:e.add(`import ibis`)}return e}},we=e=>`_${e}`,Te=class{secrets={};get imports(){return Object.keys(this.secrets).length===0?new Set:new Set([`import os`])}print(e,t,n){if(e=we(e),w(t)){let r=oe(t),i=n?`os.environ.get("${r}", "${n}")`:`os.environ.get("${r}")`;return this.secrets[e]=i,e}if(n!=null){let r=`os.environ.get("${t}", "${n}")`;return this.secrets[e]=r,e}return typeof t==`number`||typeof t==`number`?`${t}`:typeof t==`boolean`?Y(t):t?`"${t}"`:``}printInFString(e,t,n){if(t===void 0)return``;if(typeof t==`number`)return`${t}`;if(typeof t==`boolean`)return Y(t);let r=this.print(e,t,n);return r.startsWith(`"`)&&r.endsWith(`"`)?r.slice(1,-1):`{${r}}`}printPassword(e,t,n,r){let i=n?this.printInFString.bind(this):this.print.bind(this);return w(e)?i(r||`password`,e):i(r||`password`,t,e)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?``:Object.entries(this.secrets).map(([e,t])=>`${e} = ${t}`).join(`
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{At as n,Mt as r,gi as i,jn as a,jt as o,kt as s,qa as c,wn as l,yt as u}from"./cells-B23_t5uX.js";import{C as d,I as f,N as p,O as m,T as h}from"./schemas-ChRqMOTL.js";import{r as g}from"./coerce-DWjFeXOY.js";import{t as _}from"./compiler-runtime-BrajqUja.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{i as ee,n as te,r as ne,t as re}from"./tabs-CY8E4r9U.js";import{i as b,t as ie}from"./tooltip-CkGm8X7m.js";import{t as ae}from"./components-DCo7mAWO.js";import{a as x,l as oe,p as S,r as C,s as w}from"./write-secret-modal-BEx-EUlh.js";import{t as se}from"./plus-C5silF6g.js";import{Jt as ce,Qt as le,Xt as ue,Yt as de,nn as fe,tn as pe}from"./input-DmHMEZGh.js";import{r as T}from"./strings-C25fhMR_.js";import{t as me}from"./useIframeCapabilities-Czr9e4uG.js";var E=e(t(),1),D=_();function O(){return f().optional().describe(l.of({label:`Password`,inputType:`password`,optionRegex:`(password|passwd|pgpassword|db.?pass(word)?)`}))}function k(e,t){let n=f();return n=t?n.nonempty():n.optional(),n=n.describe(l.of({label:e||`Token`,inputType:`password`,optionRegex:`(token|api.?key|access.?token|auth.?token|(^|_)pat(_|$))`})),n}function A(){return f().optional().describe(l.of({label:`Warehouse Name`,optionRegex:`(warehouse|snowflake.?warehouse)`}))}function j(e,t){let n=f();return n=t?n.nonempty():n.optional(),n.describe(l.of({label:e||`URI`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`}))}function M(e){return f().nonempty().describe(l.of({label:e||`Host`,optionRegex:`^(?!.*(kubernetes|gpg)).*(host(name)?|pghost|db.?host|database.?host|mysql.?host|postgres.?host|server.?host)`}))}function N(){return f().describe(l.of({label:`Database`,optionRegex:`(database|db.?name|pgdatabase|^DB$|^DATABASE$)`}))}function he(){return f().describe(l.of({label:`Schema`,optionRegex:`(^SCHEMA$|db.?schema|postgres.?schema|pg.?schema|_SCHEMA$)`}))}function P(){return f().nonempty().describe(l.of({label:`Username`,optionRegex:`(username|pguser|db.?user|^USER$|_USER$)`}))}function F(e){let t=g().describe(l.of({label:`Port`,inputType:`number`,placeholder:e?.toString()})).transform(Number).refine(e=>e>=0&&e<=65535,{message:`Port must be between 0 and 65535`});return e===void 0?t:t.default(e)}function ge(){return d().default(!1).describe(l.of({label:`Read Only`}))}var _e=p({type:m(`postgres`),host:M(),port:F(5432).optional(),database:N(),username:P(),password:O(),ssl:d().default(!1).describe(l.of({label:`Use SSL`}))}).describe(l.of({direction:`two-columns`})),ve=p({type:m(`mysql`),host:M(),port:F(3306),database:N(),username:P(),password:O(),ssl:d().default(!1).describe(l.of({label:`Use SSL`}))}).describe(l.of({direction:`two-columns`})),ye=p({type:m(`sqlite`),database:N().describe(l.of({label:`Database Path`}))}).describe(l.of({direction:`two-columns`})),be=p({type:m(`duckdb`),database:N().describe(l.of({label:`Database Path`})),read_only:ge()}).describe(l.of({direction:`two-columns`})),I=p({type:m(`motherduck`),database:N().default(`my_db`).describe(l.of({label:`Database Name`})),token:k()}).describe(l.of({direction:`two-columns`})),L=p({type:m(`snowflake`),account:f().nonempty().describe(l.of({label:`Account`,optionRegex:`(snowflake.?account|^SNOWFLAKE_ACCOUNT$|account.?id)`})),warehouse:f().optional().describe(l.of({label:`Warehouse`,optionRegex:`(snowflake.?warehouse|warehouse)`})),database:N(),schema:f().optional().describe(l.of({label:`Schema`,optionRegex:`(snowflake.?schema|^SCHEMA$|_SCHEMA$)`})),role:f().optional().describe(l.of({label:`Role`})),authType:h(`type`,[p({type:m(`Password`),username:P(),password:O(),enable_mfa:d().default(!1).describe(l.of({label:`Enable MFA (Duo Push)`}))}),p({type:m(`SSO (Browser)`),username:P()}),p({type:m(`Key Pair`),username:P(),private_key_path:f().nonempty().describe(l.of({label:`Private Key Path`,placeholder:`/path/to/rsa_key.p8`})),private_key_passphrase:f().optional().describe(l.of({label:`Private Key Passphrase`,inputType:`password`,optionRegex:`(passphrase|private.?key.?passphrase|key.?passphrase)`}))}),p({type:m(`OAuth / PAT`),token:k(`Token`,!0)})]).default({type:`Password`,username:`username`,enable_mfa:!1}).describe(l.of({special:`tabs`}))}).describe(l.of({direction:`two-columns`})),R=p({type:m(`bigquery`),project:f().nonempty().describe(l.of({label:`Project ID`,optionRegex:`(bigquery.?project|gcp.?project|google.?cloud.?project|project.?id)`})),dataset:f().nonempty().describe(l.of({label:`Dataset`,optionRegex:`(bigquery.?dataset|dataset)`})),credentials_json:f().describe(l.of({label:`Credentials JSON`,special:`secret_textarea`}))}).describe(l.of({direction:`two-columns`})),z=p({type:m(`clickhouse_connect`),host:M(),port:F(8123).optional(),username:P(),password:O(),secure:d().default(!1).describe(l.of({label:`Use HTTPs`})),proxy_path:f().optional().describe(l.of({label:`Proxy Path`,placeholder:`/clickhouse`}))}).describe(l.of({direction:`two-columns`})),B=p({type:m(`timeplus`),host:M().default(`localhost`),port:F(8123).optional(),username:P().default(`default`),password:O().default(``)}).describe(l.of({direction:`two-columns`})),V=p({type:m(`chdb`),database:N().describe(l.of({label:`Database Path`})),read_only:ge()}).describe(l.of({direction:`two-columns`})),H=p({type:m(`trino`),host:M(),port:F(8080),database:N(),schema:he().optional(),username:P(),password:O(),async_support:d().default(!1).describe(l.of({label:`Async Support`}))}).describe(l.of({direction:`two-columns`})),U=p({type:m(`iceberg`),name:f().describe(l.of({label:`Catalog Name`})),catalog:h(`type`,[p({type:m(`REST`),warehouse:A(),uri:f().optional().describe(l.of({label:`URI`,placeholder:`https://`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`})),token:k()}),p({type:m(`SQL`),warehouse:A(),uri:f().optional().describe(l.of({label:`URI`,placeholder:`jdbc:iceberg://host:port/database`,optionRegex:`(uri|url|connection.?string|database.?url|jdbc)`}))}),p({type:m(`Hive`),warehouse:A(),uri:j()}),p({type:m(`Glue`),warehouse:A(),uri:j()}),p({type:m(`DynamoDB`),"dynamodb.profile-name":f().optional().describe(l.of({label:`Profile Name`})),"dynamodb.region":f().optional().describe(l.of({label:`Region`})),"dynamodb.access-key-id":f().optional().describe(l.of({label:`Access Key ID`,inputType:`password`,optionRegex:`(access.?key.?id|aws.?access.?key)`})),"dynamodb.secret-access-key":f().optional().describe(l.of({label:`Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|aws.?secret)`})),"dynamodb.session-token":f().optional().describe(l.of({label:`Session Token`,inputType:`password`,optionRegex:`(session.?token|aws.?session)`}))})]).default({type:`REST`,token:void 0}).describe(l.of({special:`tabs`}))}),W=p({type:m(`datafusion`),sessionContext:d().optional().describe(l.of({label:`Use Session Context`}))}),G=p({type:m(`pyspark`),host:M().optional(),port:F().optional()}),K=p({type:m(`redshift`),host:M(),port:F(5439),connectionType:h(`type`,[p({type:m(`IAM credentials`),region:f().describe(l.of({label:`Region`})),aws_access_key_id:f().nonempty().describe(l.of({label:`AWS Access Key ID`,inputType:`password`,optionRegex:`(access.?key.?id|aws.?access.?key)`})),aws_secret_access_key:f().nonempty().describe(l.of({label:`AWS Secret Access Key`,inputType:`password`,optionRegex:`(secret.?access.?key|aws.?secret)`})),aws_session_token:f().optional().describe(l.of({label:`AWS Session Token`,inputType:`password`,optionRegex:`(session.?token|aws.?session)`}))}),p({type:m(`DB credentials`),user:P(),password:O()})]).default({type:`IAM credentials`,aws_access_key_id:``,aws_secret_access_key:``,region:``}),database:N()}).describe(l.of({direction:`two-columns`})),q=p({type:m(`databricks`),access_token:k(`Access Token`,!0),server_hostname:M(`Server Hostname`),http_path:j(`HTTP Path`,!0),catalog:f().optional().describe(l.of({label:`Catalog`})),schema:f().optional().describe(l.of({label:`Schema`}))}).describe(l.of({direction:`two-columns`})),xe=p({type:m(`supabase`),host:M(),port:F(5432).optional(),database:N(),username:P(),password:O(),disable_client_pooling:d().default(!1).describe(l.of({label:`Disable Client-Side Pooling`}))}).describe(l.of({direction:`two-columns`})),Se=h(`type`,[_e,ve,ye,be,I,L,R,z,B,V,H,U,W,G,K,q,xe]),Ce={sqlmodel:`SQLModel`,sqlalchemy:`SQLAlchemy`,duckdb:`DuckDB`,clickhouse_connect:`ClickHouse Connect`,chdb:`chDB`,pyiceberg:`PyIceberg`,ibis:`Ibis`,motherduck:`MotherDuck`,redshift:`Redshift`,databricks:`Databricks`},J=class{connection;orm;secrets;constructor(e,t,n){this.connection=e,this.orm=t,this.secrets=n}get imports(){let e=new Set(this.generateImports());switch(this.orm){case`sqlalchemy`:e.add(`import sqlalchemy`);break;case`sqlmodel`:e.add(`import sqlmodel`);break;case`duckdb`:e.add(`import duckdb`);break;case`ibis`:e.add(`import ibis`)}return e}},we=e=>`_${e}`,Te=class{secrets={};get imports(){return Object.keys(this.secrets).length===0?new Set:new Set([`import os`])}print(e,t,n){if(e=we(e),w(t)){let r=oe(t),i=n?`os.environ.get("${r}", "${n}")`:`os.environ.get("${r}")`;return this.secrets[e]=i,e}if(n!=null){let r=`os.environ.get("${t}", "${n}")`;return this.secrets[e]=r,e}return typeof t==`number`||typeof t==`number`?`${t}`:typeof t==`boolean`?Y(t):t?`"${t}"`:``}printInFString(e,t,n){if(t===void 0)return``;if(typeof t==`number`)return`${t}`;if(typeof t==`boolean`)return Y(t);let r=this.print(e,t,n);return r.startsWith(`"`)&&r.endsWith(`"`)?r.slice(1,-1):`{${r}}`}printPassword(e,t,n,r){let i=n?this.printInFString.bind(this):this.print.bind(this);return w(e)?i(r||`password`,e):i(r||`password`,t,e)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?``:Object.entries(this.secrets).map(([e,t])=>`${e} = ${t}`).join(`
2
2
  `)}},Ee=class extends J{generateImports(){return[]}generateConnectionCode(){let e=this.connection.ssl?`, connect_args={'sslmode': 'require'}`:``,t=this.secrets.printPassword(this.connection.password,`POSTGRES_PASSWORD`,!0),n=this.secrets.printInFString(`username`,this.connection.username),r=this.secrets.printInFString(`host`,this.connection.host),a=this.secrets.printInFString(`port`,this.connection.port),o=this.secrets.printInFString(`database`,this.connection.database);return i(`
3
3
  DATABASE_URL = f"postgresql://${n}:${t}@${r}:${a}/${o}"
4
4
  engine = ${this.orm}.create_engine(DATABASE_URL${e})