@truefoundry/trueforge 0.1.0-rc.1 → 0.1.0

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 (148) hide show
  1. package/dist/_frontend/assets/ConnectorSettings-H37ZFC6Z-BoDzRBt-.js +1 -0
  2. package/dist/_frontend/assets/ConnectorSettings-H37ZFC6Z-BoDzRBt-.js.br +0 -0
  3. package/dist/_frontend/assets/ConnectorSettings-H37ZFC6Z-BoDzRBt-.js.gz +0 -0
  4. package/dist/_frontend/assets/{DockLayout-BH5XX2AQ-BIML9R6y.js → DockLayout-KEMFRWIR-2H2_fGVk.js} +1 -1
  5. package/dist/_frontend/assets/{DrawerLayout-O2XZQCG4-BSHMxRL1.js → DrawerLayout-ZVWCKEIS-DFGUqK6q.js} +2 -2
  6. package/dist/_frontend/assets/DrawerLayout-ZVWCKEIS-DFGUqK6q.js.br +0 -0
  7. package/dist/_frontend/assets/DrawerLayout-ZVWCKEIS-DFGUqK6q.js.gz +0 -0
  8. package/dist/_frontend/assets/{ModelSettings-LKFJVUYQ-BmjB0mhb.js → ModelSettings-QJMYHCMD-DaR_pzAb.js} +1 -1
  9. package/dist/_frontend/assets/ModelSettings-QJMYHCMD-DaR_pzAb.js.br +0 -0
  10. package/dist/_frontend/assets/ModelSettings-QJMYHCMD-DaR_pzAb.js.gz +0 -0
  11. package/dist/_frontend/assets/SandboxSettings-BUBMLW7Q-ChiNe2Y8.js +1 -0
  12. package/dist/_frontend/assets/SandboxSettings-BUBMLW7Q-ChiNe2Y8.js.br +0 -0
  13. package/dist/_frontend/assets/SandboxSettings-BUBMLW7Q-ChiNe2Y8.js.gz +0 -0
  14. package/dist/_frontend/assets/{SettingsBuilder-3JOLC56Z-kfSJGmj0.js → SettingsBuilder-26XSGIHK-DmgjXL0m.js} +2 -2
  15. package/dist/_frontend/assets/SettingsBuilder-26XSGIHK-DmgjXL0m.js.br +0 -0
  16. package/dist/_frontend/assets/SettingsBuilder-26XSGIHK-DmgjXL0m.js.gz +0 -0
  17. package/dist/_frontend/assets/{SidebarLayout-G6BGD7EY-DprxwhnC.js → SidebarLayout-F3XFXW7B-BQV8bkzL.js} +2 -2
  18. package/dist/_frontend/assets/SidebarLayout-F3XFXW7B-BQV8bkzL.js.br +0 -0
  19. package/dist/_frontend/assets/SidebarLayout-F3XFXW7B-BQV8bkzL.js.gz +0 -0
  20. package/dist/_frontend/assets/{SkillSettings-4VB42CVG-DjkYTFI_.js → SkillSettings-IRMGDFRG-ChKre3S8.js} +1 -1
  21. package/dist/_frontend/assets/SkillSettings-IRMGDFRG-ChKre3S8.js.br +0 -0
  22. package/dist/_frontend/assets/SkillSettings-IRMGDFRG-ChKre3S8.js.gz +0 -0
  23. package/dist/_frontend/assets/{WidgetLayout-ABSXZUSQ-s-y-do9f.js → WidgetLayout-SZMABKIR-BRKArpEm.js} +1 -1
  24. package/dist/_frontend/assets/WidgetLayout-SZMABKIR-BRKArpEm.js.br +0 -0
  25. package/dist/_frontend/assets/WidgetLayout-SZMABKIR-BRKArpEm.js.gz +0 -0
  26. package/dist/_frontend/assets/{chunk-EFGSH3MO-BG2dZVGV.js → chunk-7EEOWDLE-BIwInB6G.js} +2 -2
  27. package/dist/_frontend/assets/chunk-7EEOWDLE-BIwInB6G.js.br +0 -0
  28. package/dist/_frontend/assets/chunk-7EEOWDLE-BIwInB6G.js.gz +0 -0
  29. package/dist/_frontend/assets/{chunk-VJTCFZNM-DvnS6Ftw.js → chunk-LRQHHZDX-eb14Z2nA.js} +1 -1
  30. package/dist/_frontend/assets/chunk-LRQHHZDX-eb14Z2nA.js.br +0 -0
  31. package/dist/_frontend/assets/chunk-LRQHHZDX-eb14Z2nA.js.gz +0 -0
  32. package/dist/_frontend/assets/{cssMode-CG6nczKl.js → cssMode-Bb1lR8Ti.js} +1 -1
  33. package/dist/_frontend/assets/cssMode-Bb1lR8Ti.js.br +0 -0
  34. package/dist/_frontend/assets/cssMode-Bb1lR8Ti.js.gz +0 -0
  35. package/dist/_frontend/assets/{freemarker2-3d9R0xhA.js → freemarker2-BrrF7mKG.js} +1 -1
  36. package/dist/_frontend/assets/freemarker2-BrrF7mKG.js.br +0 -0
  37. package/dist/_frontend/assets/freemarker2-BrrF7mKG.js.gz +0 -0
  38. package/dist/_frontend/assets/{handlebars-DsKUyrQw.js → handlebars-WQ7HMT1b.js} +1 -1
  39. package/dist/_frontend/assets/handlebars-WQ7HMT1b.js.br +0 -0
  40. package/dist/_frontend/assets/handlebars-WQ7HMT1b.js.gz +0 -0
  41. package/dist/_frontend/assets/{html-DTy6u4nq.js → html-CoOPnhCb.js} +1 -1
  42. package/dist/_frontend/assets/html-CoOPnhCb.js.br +0 -0
  43. package/dist/_frontend/assets/html-CoOPnhCb.js.gz +0 -0
  44. package/dist/_frontend/assets/{htmlMode-DMWLTFGm.js → htmlMode-BW7taYty.js} +1 -1
  45. package/dist/_frontend/assets/htmlMode-BW7taYty.js.br +0 -0
  46. package/dist/_frontend/assets/htmlMode-BW7taYty.js.gz +0 -0
  47. package/dist/_frontend/assets/{index-V5vAkbkm.js → index-ChCGltYc.js} +205 -195
  48. package/dist/_frontend/assets/index-ChCGltYc.js.br +0 -0
  49. package/dist/_frontend/assets/index-ChCGltYc.js.gz +0 -0
  50. package/dist/_frontend/assets/{index-D3W0WUUX.js → index-DFQqb6R1.js} +3 -3
  51. package/dist/_frontend/assets/index-DFQqb6R1.js.br +0 -0
  52. package/dist/_frontend/assets/index-DFQqb6R1.js.gz +0 -0
  53. package/dist/_frontend/assets/{javascript-D9YF35d_.js → javascript-CPINtbIt.js} +1 -1
  54. package/dist/_frontend/assets/{jsonMode-BmO9RwLP.js → jsonMode-C8qDzOfb.js} +1 -1
  55. package/dist/_frontend/assets/jsonMode-C8qDzOfb.js.br +0 -0
  56. package/dist/_frontend/assets/jsonMode-C8qDzOfb.js.gz +0 -0
  57. package/dist/_frontend/assets/{liquid-0rk1qWO4.js → liquid-zGC9H1Dt.js} +1 -1
  58. package/dist/_frontend/assets/liquid-zGC9H1Dt.js.br +0 -0
  59. package/dist/_frontend/assets/liquid-zGC9H1Dt.js.gz +0 -0
  60. package/dist/_frontend/assets/{lspLanguageFeatures-DTTkboOI.js → lspLanguageFeatures-B6VPH2Sv.js} +1 -1
  61. package/dist/_frontend/assets/lspLanguageFeatures-B6VPH2Sv.js.br +0 -0
  62. package/dist/_frontend/assets/lspLanguageFeatures-B6VPH2Sv.js.gz +0 -0
  63. package/dist/_frontend/assets/{mdx-DJcT8q-f.js → mdx-BrQrGCP9.js} +1 -1
  64. package/dist/_frontend/assets/mdx-BrQrGCP9.js.br +0 -0
  65. package/dist/_frontend/assets/mdx-BrQrGCP9.js.gz +0 -0
  66. package/dist/_frontend/assets/{python-CLDE_vWh.js → python-zKGpYLwR.js} +1 -1
  67. package/dist/_frontend/assets/python-zKGpYLwR.js.br +0 -0
  68. package/dist/_frontend/assets/python-zKGpYLwR.js.gz +0 -0
  69. package/dist/_frontend/assets/{razor-DtGC7wgt.js → razor-BJ38lYsd.js} +1 -1
  70. package/dist/_frontend/assets/razor-BJ38lYsd.js.br +0 -0
  71. package/dist/_frontend/assets/razor-BJ38lYsd.js.gz +0 -0
  72. package/dist/_frontend/assets/{tsMode-DWdihmDi.js → tsMode-dPLqGMg8.js} +1 -1
  73. package/dist/_frontend/assets/tsMode-dPLqGMg8.js.br +0 -0
  74. package/dist/_frontend/assets/tsMode-dPLqGMg8.js.gz +0 -0
  75. package/dist/_frontend/assets/{typescript-D1_IEBnH.js → typescript-BJlivWry.js} +1 -1
  76. package/dist/_frontend/assets/typescript-BJlivWry.js.br +0 -0
  77. package/dist/_frontend/assets/typescript-BJlivWry.js.gz +0 -0
  78. package/dist/_frontend/assets/{workers-CiyDz6N8.js → workers-fMwav4jB.js} +1 -1
  79. package/dist/_frontend/assets/workers-fMwav4jB.js.br +0 -0
  80. package/dist/_frontend/assets/workers-fMwav4jB.js.gz +0 -0
  81. package/dist/_frontend/assets/{xml-WgPcpohY.js → xml-DZW470wi.js} +1 -1
  82. package/dist/_frontend/assets/xml-DZW470wi.js.br +0 -0
  83. package/dist/_frontend/assets/xml-DZW470wi.js.gz +0 -0
  84. package/dist/_frontend/assets/{yaml-DGY1pOYu.js → yaml-Bs1DumYp.js} +1 -1
  85. package/dist/_frontend/assets/yaml-Bs1DumYp.js.br +0 -0
  86. package/dist/_frontend/assets/yaml-Bs1DumYp.js.gz +0 -0
  87. package/dist/_frontend/index.html +1 -1
  88. package/dist/_frontend/index.html.br +0 -0
  89. package/dist/_frontend/index.html.gz +0 -0
  90. package/package.json +2 -2
  91. package/dist/_frontend/assets/ConnectorSettings-ADACLWQI-BW-k4488.js +0 -1
  92. package/dist/_frontend/assets/ConnectorSettings-ADACLWQI-BW-k4488.js.br +0 -0
  93. package/dist/_frontend/assets/ConnectorSettings-ADACLWQI-BW-k4488.js.gz +0 -0
  94. package/dist/_frontend/assets/DrawerLayout-O2XZQCG4-BSHMxRL1.js.br +0 -0
  95. package/dist/_frontend/assets/DrawerLayout-O2XZQCG4-BSHMxRL1.js.gz +0 -0
  96. package/dist/_frontend/assets/ModelSettings-LKFJVUYQ-BmjB0mhb.js.br +0 -0
  97. package/dist/_frontend/assets/ModelSettings-LKFJVUYQ-BmjB0mhb.js.gz +0 -0
  98. package/dist/_frontend/assets/SandboxSettings-H5MDAE47-BMAnpZ4v.js +0 -1
  99. package/dist/_frontend/assets/SandboxSettings-H5MDAE47-BMAnpZ4v.js.br +0 -0
  100. package/dist/_frontend/assets/SandboxSettings-H5MDAE47-BMAnpZ4v.js.gz +0 -0
  101. package/dist/_frontend/assets/SettingsBuilder-3JOLC56Z-kfSJGmj0.js.br +0 -0
  102. package/dist/_frontend/assets/SettingsBuilder-3JOLC56Z-kfSJGmj0.js.gz +0 -0
  103. package/dist/_frontend/assets/SidebarLayout-G6BGD7EY-DprxwhnC.js.br +0 -0
  104. package/dist/_frontend/assets/SidebarLayout-G6BGD7EY-DprxwhnC.js.gz +0 -0
  105. package/dist/_frontend/assets/SkillSettings-4VB42CVG-DjkYTFI_.js.br +0 -0
  106. package/dist/_frontend/assets/SkillSettings-4VB42CVG-DjkYTFI_.js.gz +0 -0
  107. package/dist/_frontend/assets/WidgetLayout-ABSXZUSQ-s-y-do9f.js.br +0 -0
  108. package/dist/_frontend/assets/WidgetLayout-ABSXZUSQ-s-y-do9f.js.gz +0 -0
  109. package/dist/_frontend/assets/chunk-EFGSH3MO-BG2dZVGV.js.br +0 -0
  110. package/dist/_frontend/assets/chunk-EFGSH3MO-BG2dZVGV.js.gz +0 -0
  111. package/dist/_frontend/assets/chunk-VJTCFZNM-DvnS6Ftw.js.br +0 -0
  112. package/dist/_frontend/assets/chunk-VJTCFZNM-DvnS6Ftw.js.gz +0 -0
  113. package/dist/_frontend/assets/cssMode-CG6nczKl.js.br +0 -0
  114. package/dist/_frontend/assets/cssMode-CG6nczKl.js.gz +0 -0
  115. package/dist/_frontend/assets/freemarker2-3d9R0xhA.js.br +0 -0
  116. package/dist/_frontend/assets/freemarker2-3d9R0xhA.js.gz +0 -0
  117. package/dist/_frontend/assets/handlebars-DsKUyrQw.js.br +0 -0
  118. package/dist/_frontend/assets/handlebars-DsKUyrQw.js.gz +0 -0
  119. package/dist/_frontend/assets/html-DTy6u4nq.js.br +0 -0
  120. package/dist/_frontend/assets/html-DTy6u4nq.js.gz +0 -0
  121. package/dist/_frontend/assets/htmlMode-DMWLTFGm.js.br +0 -0
  122. package/dist/_frontend/assets/htmlMode-DMWLTFGm.js.gz +0 -0
  123. package/dist/_frontend/assets/index-D3W0WUUX.js.br +0 -0
  124. package/dist/_frontend/assets/index-D3W0WUUX.js.gz +0 -0
  125. package/dist/_frontend/assets/index-V5vAkbkm.js.br +0 -0
  126. package/dist/_frontend/assets/index-V5vAkbkm.js.gz +0 -0
  127. package/dist/_frontend/assets/jsonMode-BmO9RwLP.js.br +0 -0
  128. package/dist/_frontend/assets/jsonMode-BmO9RwLP.js.gz +0 -0
  129. package/dist/_frontend/assets/liquid-0rk1qWO4.js.br +0 -0
  130. package/dist/_frontend/assets/liquid-0rk1qWO4.js.gz +0 -0
  131. package/dist/_frontend/assets/lspLanguageFeatures-DTTkboOI.js.br +0 -0
  132. package/dist/_frontend/assets/lspLanguageFeatures-DTTkboOI.js.gz +0 -0
  133. package/dist/_frontend/assets/mdx-DJcT8q-f.js.br +0 -0
  134. package/dist/_frontend/assets/mdx-DJcT8q-f.js.gz +0 -0
  135. package/dist/_frontend/assets/python-CLDE_vWh.js.br +0 -0
  136. package/dist/_frontend/assets/python-CLDE_vWh.js.gz +0 -0
  137. package/dist/_frontend/assets/razor-DtGC7wgt.js.br +0 -0
  138. package/dist/_frontend/assets/razor-DtGC7wgt.js.gz +0 -0
  139. package/dist/_frontend/assets/tsMode-DWdihmDi.js.br +0 -0
  140. package/dist/_frontend/assets/tsMode-DWdihmDi.js.gz +0 -0
  141. package/dist/_frontend/assets/typescript-D1_IEBnH.js.br +0 -0
  142. package/dist/_frontend/assets/typescript-D1_IEBnH.js.gz +0 -0
  143. package/dist/_frontend/assets/workers-CiyDz6N8.js.br +0 -0
  144. package/dist/_frontend/assets/workers-CiyDz6N8.js.gz +0 -0
  145. package/dist/_frontend/assets/xml-WgPcpohY.js.br +0 -0
  146. package/dist/_frontend/assets/xml-WgPcpohY.js.gz +0 -0
  147. package/dist/_frontend/assets/yaml-DGY1pOYu.js.br +0 -0
  148. package/dist/_frontend/assets/yaml-DGY1pOYu.js.gz +0 -0
@@ -1 +0,0 @@
1
- import{s as _,t as q,r as a,v as B,j as e,I as U,B as O,y as L,A as R,z as $,e as G,D as V,E as Y}from"./index-V5vAkbkm.js";var H={execTimeoutMs:3e5,autoStopIntervalInMinutes:15,autoArchiveIntervalInMinutes:10080,autoDeleteIntervalInMinutes:43200},E=Y("h-11 shadow-sm");function D(n){if(n.trim()==="")return null;const r=Number(n);return!Number.isFinite(r)||r<0?null:r}var J=({open:n,onOpenChange:r,onSave:o,title:j,description:u,initialConfig:F=null,requireApiKey:v=!0,busy:N=!1,error:S})=>{const[m,I]=a.useState(""),[d,c]=a.useState(""),[C,l]=a.useState(""),[x,i]=a.useState(""),[b,h]=a.useState(""),[f,p]=a.useState(!1),z=()=>{I(""),c(""),l(""),i(""),h(""),p(!1)};a.useEffect(()=>{if(!n)return;const t=F??H;I(String(t.execTimeoutMs)),c(String(t.autoStopIntervalInMinutes)),l(String(t.autoArchiveIntervalInMinutes)),i(String(t.autoDeleteIntervalInMinutes)),h(""),p(!1)},[n,F]);const w=t=>{t||z(),r(t)},k=D(m),M=D(d),A=D(C),P=D(x),g=b.trim(),T=(!v||!!g)&&k!=null&&M!=null&&A!=null&&P!=null,s=async t=>{if(t.preventDefault(),!(!T||N||k==null||M==null||A==null||P==null))try{await o({snapshotName:"",execTimeoutMs:k,autoStopIntervalInMinutes:M,autoArchiveIntervalInMinutes:A,autoDeleteIntervalInMinutes:P,apiKey:g}),z(),r(!1)}catch{}};return e.jsx(L,{open:n,onOpenChange:w,title:j,description:u,contentSized:!0,headerIcon:e.jsx("span",{className:"flex size-11 shrink-0 items-center justify-center rounded-lg border border-border bg-secondary-bg text-text-primary","aria-hidden":!0,children:e.jsx(U,{name:"cube",className:"size-6"})}),children:e.jsxs("form",{className:"flex flex-col overflow-y-auto p-5 md:p-6",onSubmit:s,children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"sandbox-api-key",className:"mb-1.5 block text-sm font-medium text-text-primary",children:["API key",v?null:e.jsx("span",{className:"font-normal text-text-secondary",children:" (optional)"})]}),e.jsx("input",{id:"sandbox-api-key",type:"password",required:v,value:b,onChange:t=>{h(t.target.value)},placeholder:v?"dtn_...":"Leave blank to keep existing",autoFocus:!0,className:E})]}),e.jsxs(R,{expanded:f,onChange:(t,y)=>p(y),className:"rounded-md border border-border",children:[e.jsx($,{className:"px-3 py-2.5",children:e.jsxs("span",{className:"flex w-full items-center justify-between text-sm font-medium text-text-primary",children:["Advanced settings",e.jsx(U,{name:"chevron-down",className:G("size-4 shrink-0 text-text-secondary transition-transform duration-200",f?"rotate-0":"-rotate-90")})]})}),e.jsxs(V,{className:"space-y-4 border-t border-border px-3 pb-3 pt-4",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"sandbox-exec-timeout",className:"mb-1.5 block text-sm font-medium text-text-primary",children:"Exec timeout (ms)"}),e.jsx("input",{id:"sandbox-exec-timeout",type:"number",min:0,required:!0,value:m,onChange:t=>{I(t.target.value)},placeholder:"300000",className:E})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"sandbox-auto-stop",className:"mb-1.5 block text-sm font-medium text-text-primary",children:"Auto-stop interval (minutes)"}),e.jsx("input",{id:"sandbox-auto-stop",type:"number",min:0,required:!0,value:d,onChange:t=>{c(t.target.value)},placeholder:"15",className:E})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"sandbox-auto-archive",className:"mb-1.5 block text-sm font-medium text-text-primary",children:"Auto-archive interval (minutes)"}),e.jsx("input",{id:"sandbox-auto-archive",type:"number",min:0,required:!0,value:C,onChange:t=>{l(t.target.value)},placeholder:"10080",className:E})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"sandbox-auto-delete",className:"mb-1.5 block text-sm font-medium text-text-primary",children:"Auto-delete interval (minutes)"}),e.jsx("input",{id:"sandbox-auto-delete",type:"number",min:0,required:!0,value:x,onChange:t=>{i(t.target.value)},placeholder:"43200",className:E})]})]})]})]}),e.jsxs("div",{className:"mt-6 space-y-3",children:[S?e.jsx("p",{className:"text-failure-bg text-sm",children:S}):null,e.jsx(O,{type:"submit",size:"lg",disabled:!T||N,className:"w-full shrink-0",children:"Save"})]})]})})},Q=J,K=({snapshotName:n,execTimeoutMs:r,autoStopIntervalInMinutes:o,autoArchiveIntervalInMinutes:j,autoDeleteIntervalInMinutes:u})=>({snapshotName:n,execTimeoutMs:r,autoStopIntervalInMinutes:o,autoArchiveIntervalInMinutes:j,autoDeleteIntervalInMinutes:u}),W=()=>{const{sandboxCatalog:n}=_(),r=q(),[o,j]=a.useState([]),[u,F]=a.useState([]),[v,N]=a.useState(!0),[S,m]=a.useState(null),[I,d]=a.useState(null),[c,C]=a.useState(!1),[l,x]=a.useState(null),[i,b]=a.useState(null),h=a.useCallback(async({quiet:s=!1}={})=>{if(n){s||N(!0),m(null);try{const[t,y]=await Promise.all([n.listSandboxProviders(),n.getSandboxProviderCatalog()]);j(t),F(y)}catch(t){m(B(t,"Failed to load sandbox providers"))}finally{s||N(!1)}}},[n]);a.useEffect(()=>{h()},[h]);const f=o.length>0,p=a.useMemo(()=>{if(f)return[];const s=new Set(o.map(t=>t.catalogId));return u.filter(t=>!s.has(t.id))},[u,o,f]),z=a.useMemo(()=>i?K(i):l?K(l):null,[i,l]);if(!n)return e.jsx("p",{className:"text-sm text-text-secondary",children:"Sandbox provider catalog is not available."});const w=async(s,t=m)=>{C(!0),m(null);try{await s(),await h({quiet:!0})}catch(y){throw t(B(y,"Request failed")),y}finally{C(!1)}},k=async s=>{l&&(d(null),await w(async()=>{await n.createSandboxProvider({catalogId:l.id,name:l.name,type:l.type,...K(s),apiKey:s.apiKey})},d),x(null),setTimeout(()=>{r==null||r.showSuccess({title:`${l.name} configured`})},0))},M=async s=>{i&&(d(null),await w(async()=>{await n.updateSandboxProvider({id:i.id,...K(s),...s.apiKey?{apiKey:s.apiKey}:{}})},d),b(null),setTimeout(()=>{r==null||r.showSuccess({title:`${i.name} updated`})},0))},A=s=>{const t=n.deleteSandboxProvider;t&&w(async()=>{await t({id:s.id})}).catch(()=>{})},P=l!=null||i!=null,g=i!=null,T=i?`Update ${i.name}`:l?`Configure ${l.name}`:"Configure sandbox provider";return e.jsxs(e.Fragment,{children:[e.jsx("h3",{className:"text-xl font-semibold tracking-tight text-text-primary",children:"Sandbox providers"}),e.jsx("p",{className:"mt-1 text-sm text-text-secondary",children:"Choose a provider that runs sandboxes for code, files and shell commands. Only one can be active at a time."}),S?e.jsx("p",{className:"mt-3 rounded-md border border-failure-bg/30 bg-failure-bg/10 px-3 py-2 text-sm text-failure-bg",children:S}):null,e.jsx("div",{className:"mt-4 flex-1 overflow-y-auto",children:v?e.jsx("p",{className:"text-sm text-text-secondary",children:"Loading sandbox providers…"}):e.jsxs("div",{className:"space-y-6",children:[o.length>0?e.jsxs("section",{children:[e.jsxs("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-text-secondary",children:["Configured · ",o.length]}),e.jsx("div",{className:"overflow-hidden rounded-xl border border-border bg-card-bg",children:o.map(s=>e.jsxs("article",{className:"flex flex-col gap-3 border-b border-border p-3 last:border-b-0 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[e.jsx("span",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-secondary-bg text-text-primary","aria-hidden":!0,children:e.jsx(U,{name:"cube",className:"size-4.5"})}),e.jsx("div",{className:"min-w-0",children:e.jsx("h5",{className:"truncate text-sm font-medium text-text-primary",children:s.name})})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2.5 sm:justify-end",children:[s.isConnected?e.jsxs("span",{className:"flex items-center gap-1.5 rounded-full border border-border bg-secondary-bg/40 px-2 py-0.5 text-xs font-medium text-success-bg",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-success-bg"}),"Connected"]}):null,e.jsx(O,{variant:"secondary",size:"sm",type:"button",disabled:c,onClick:()=>{d(null),x(null),b(s)},children:"Update"}),n.deleteSandboxProvider?e.jsx(O,{variant:"ghost",size:"sm",className:"text-text-secondary",type:"button",disabled:c,onClick:()=>{A(s)},children:"Remove"}):null]})]},s.id))})]}):null,f?null:e.jsxs("section",{children:[e.jsxs("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-text-secondary",children:["Available · ",p.length]}),p.length===0?e.jsx("p",{className:"text-sm text-text-secondary",children:u.length>0?"All catalog providers are configured.":"No sandbox providers in the catalog."}):e.jsx("div",{className:"overflow-hidden rounded-xl border border-border bg-card-bg",children:p.map(s=>e.jsxs("article",{className:"flex flex-col gap-3 border-b border-border p-3 last:border-b-0 sm:flex-row sm:items-center",children:[e.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[e.jsx("span",{className:"flex size-9 shrink-0 items-center justify-center rounded-lg border border-border bg-secondary-bg text-text-primary","aria-hidden":!0,children:e.jsx(U,{name:"cube",className:"size-4.5"})}),e.jsx("div",{className:"min-w-0",children:e.jsx("h5",{className:"truncate text-sm font-medium text-text-primary",children:s.name})})]}),e.jsx(O,{variant:"secondary",type:"button",disabled:c,onClick:()=>{d(null),b(null),x(s)},children:"Configure"})]},s.id))})]})]})}),e.jsx(Q,{open:P,onOpenChange:s=>{s||(d(null),x(null),b(null))},onSave:g?M:k,title:T,description:g?"Update this sandbox provider. Leave API key blank to keep the existing key.":"Configure this sandbox provider. API key is never stored in the catalog.",initialConfig:z,requireApiKey:!g,busy:c,error:I})]})},Z=W;export{Z as default};