tarsk 0.5.78 → 0.5.80

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/bundled-skills/skill-creator/eval-viewer/generate_review.js +183 -95
  2. package/dist/bundled-skills/skill-creator/scripts/__tests__/improve_description.test.js +77 -0
  3. package/dist/bundled-skills/skill-creator/scripts/__tests__/package_skill.test.js +203 -0
  4. package/dist/bundled-skills/skill-creator/scripts/__tests__/run_eval.test.js +125 -0
  5. package/dist/bundled-skills/skill-creator/scripts/__tests__/utils.test.js +149 -0
  6. package/dist/bundled-skills/skill-creator/scripts/aggregate_benchmark.js +2 -0
  7. package/dist/bundled-skills/skill-creator/scripts/improve_description.js +42 -22
  8. package/dist/bundled-skills/skill-creator/scripts/package_skill.js +68 -40
  9. package/dist/bundled-skills/skill-creator/scripts/run_eval.js +60 -32
  10. package/dist/bundled-skills/skill-creator/scripts/run_loop.js +224 -150
  11. package/dist/bundled-skills/skill-creator/scripts/utils.js +71 -41
  12. package/dist/index.js +267445 -257080
  13. package/dist/node_modules/@libsql/darwin-x64/README.md +3 -0
  14. package/dist/node_modules/@libsql/darwin-x64/index.node +0 -0
  15. package/dist/node_modules/@libsql/darwin-x64/package.json +36 -0
  16. package/dist/public/assets/account-view-DVfacvrH.js +1 -0
  17. package/dist/public/assets/alert-dialog-DTxl_mXc.js +7 -0
  18. package/dist/public/assets/api-B_ZIptgC.js +2 -0
  19. package/dist/public/assets/{async-error-boundary-Dll_zcqr.js → async-error-boundary-DmJy8jgz.js} +1 -1
  20. package/dist/public/assets/browser-tab-BZSxX4fR.js +12 -0
  21. package/dist/public/assets/{button-B5aMz2Rk.js → button-DhxraVUW.js} +1 -1
  22. package/dist/public/assets/{card-DRr14MEQ.js → card-DZy9jCWQ.js} +1 -1
  23. package/dist/public/assets/chat-dock-context-DhO-jYMh.js +1 -0
  24. package/dist/public/assets/{commit-dialog-C-JfaoS6.js → commit-dialog-D0z3emO_.js} +1 -1
  25. package/dist/public/assets/{commit-error-dialog-VXqZLeta.js → commit-error-dialog-CVSOwpqp.js} +1 -1
  26. package/dist/public/assets/{commit-method-fields-DAd1unUF.js → commit-method-fields-C7Du43jy.js} +1 -1
  27. package/dist/public/assets/conversation-history-view-CkI6-Hvt.js +1 -0
  28. package/dist/public/assets/create-project-dialog-Ciiyx0LH.js +2 -0
  29. package/dist/public/assets/{create-repo-dialog-mBGGkX-g.js → create-repo-dialog-lS-Tko1c.js} +1 -1
  30. package/dist/public/assets/delete-confirm-dialog-Ciwqi6ts.js +1 -0
  31. package/dist/public/assets/diff-view-DKEDlvjR.js +4 -0
  32. package/dist/public/assets/{dist-COfI64N5.js → dist-BZmr2Qex.js} +1 -1
  33. package/dist/public/assets/{dist-DwblUvSf.js → dist-Bihbg_hO.js} +1 -1
  34. package/dist/public/assets/{dist-TCNzmc2V.js → dist-BkOEUrQf.js} +1 -1
  35. package/dist/public/assets/{dist-DDYi9MQo.js → dist-CA_zFhwJ.js} +1 -1
  36. package/dist/public/assets/dist-DZtmmQ-F.js +2 -0
  37. package/dist/public/assets/{dist-sThe8WYP.js → dist-Dj1qT-gv.js} +1 -1
  38. package/dist/public/assets/{dist-CWYnBq-n.js → dist-aB1qUwWW.js} +1 -1
  39. package/dist/public/assets/{dist-T8-4ZfS0.js → dist-iDwSbcD5.js} +1 -1
  40. package/dist/public/assets/{es2015-Bu0NIPbn.js → es2015-B0KHrBGH.js} +1 -1
  41. package/dist/public/assets/{explorer-monaco-editor-q8CnSwWA.js → explorer-monaco-editor-YoaTqh0f.js} +1 -1
  42. package/dist/public/assets/explorer-tab-view-DlBIsvNp.js +2 -0
  43. package/dist/public/assets/explorer-tree-BWb4wB5M.js +1 -0
  44. package/dist/public/assets/explorer-view-qOBi4ACi.js +76 -0
  45. package/dist/public/assets/{git-history-dialog-XEr5pugf.js → git-history-dialog-DOcupC-P.js} +1 -1
  46. package/dist/public/assets/index-B3oaBks2.css +1 -0
  47. package/dist/public/assets/index-DdJcjvu2.js +112 -0
  48. package/dist/public/assets/{lucide-react-B-115rul.js → lucide-react-CNNzKD4G.js} +1 -1
  49. package/dist/public/assets/{model-list-controls-DAZM0NBC.js → model-list-controls-DOpHpzG8.js} +1 -1
  50. package/dist/public/assets/onboarding-dialog-CfkWB6ST.js +1 -0
  51. package/dist/public/assets/{pill-tabs-QsjH027B.js → pill-tabs-CiONEGsi.js} +1 -1
  52. package/dist/public/assets/{progress-indicator-C01aPXIe.js → progress-indicator-C7Kj9U3t.js} +1 -1
  53. package/dist/public/assets/project-coding-view-CrOGfL2D.js +1 -0
  54. package/dist/public/assets/{project-danger-zone-view-BaSu793w.js → project-danger-zone-view-BfHTp5LI.js} +1 -1
  55. package/dist/public/assets/project-env-vars-view-QrpeAxIt.js +1 -0
  56. package/dist/public/assets/project-model-aliases-view-D_pamHsA.js +1 -0
  57. package/dist/public/assets/project-settings-view-C04tQu0x.js +1 -0
  58. package/dist/public/assets/project-tools-view-0j2uWvRy.js +1 -0
  59. package/dist/public/assets/providers-list-view-4pcZxBFJ.js +1 -0
  60. package/dist/public/assets/pull-request-dialog-HXBislex.js +1 -0
  61. package/dist/public/assets/{pull-with-changes-dialog-DDp_srHq.js → pull-with-changes-dialog-CFLl2SQP.js} +1 -1
  62. package/dist/public/assets/{push-before-pr-dialog-Bt0BChlV.js → push-before-pr-dialog-CD1rZKan.js} +1 -1
  63. package/dist/public/assets/{scroll-area-DwRwR2nQ.js → scroll-area-BQ9bdsVQ.js} +1 -1
  64. package/dist/public/assets/settings-general-tabs-view-CKaL-A9_.js +2 -0
  65. package/dist/public/assets/settings-general-view-ybttpP37.js +1 -0
  66. package/dist/public/assets/settings-list-n-CrPPNl.js +1 -0
  67. package/dist/public/assets/settings-logs-view-CFD-_MKT.js +5 -0
  68. package/dist/public/assets/settings-mcp-servers-view-kTpnzhrf.js +5 -0
  69. package/dist/public/assets/settings-models-view-RmIvRn-i.js +1 -0
  70. package/dist/public/assets/settings-plugins-view-fSxDPjsF.js +2 -0
  71. package/dist/public/assets/settings-providers-view-Bj4-iemE.js +2 -0
  72. package/dist/public/assets/settings-setup-view-ORNCF3ma.js +2 -0
  73. package/dist/public/assets/settings-skills-view-Dl38QbWw.js +2 -0
  74. package/dist/public/assets/settings-slack-view-Dx4Pdxjq.js +1 -0
  75. package/dist/public/assets/settings-slash-commands-view-CSm-ZqwM.js +1 -0
  76. package/dist/public/assets/settings-statistics-view-B8YLP2Nb.js +1 -0
  77. package/dist/public/assets/settings-storage-view-Cnmt9-0H.js +1 -0
  78. package/dist/public/assets/settings-subagents-view-Be7aa0Va.js +2 -0
  79. package/dist/public/assets/settings-system-prompt-view-KlPFbkat.js +1 -0
  80. package/dist/public/assets/{settings-tab-bar-DAHxT5KE.js → settings-tab-bar-BJtpuIky.js} +1 -1
  81. package/dist/public/assets/settings-view-dchqYhRC.js +2 -0
  82. package/dist/public/assets/{slug-utils-BQZ6c2py.js → slug-utils-Ccbyp4Mu.js} +1 -1
  83. package/dist/public/assets/store-D4D62vkY.js +9 -0
  84. package/dist/public/assets/{table-7hMwxpkF.js → table-DCmeRDBK.js} +1 -1
  85. package/dist/public/assets/tasks-view-CRBklv4O.js +1 -0
  86. package/dist/public/assets/{terminal-panel-BNOIOh8z.js → terminal-panel-DlfAu8U1.js} +2 -2
  87. package/dist/public/assets/{toggle-group-UiksQ0n9.js → toggle-group-Dl5P_F6a.js} +1 -1
  88. package/dist/public/assets/{tooltip-Dvmz78Z_.js → tooltip-Cg_EhO9M.js} +1 -1
  89. package/dist/public/assets/{use-active-dock-panel-instance-2LfvItRH.js → use-active-dock-panel-instance-iaFSG9kX.js} +1 -1
  90. package/dist/public/assets/use-git-check-BfkMHX3g.js +1 -0
  91. package/dist/public/assets/use-installed-ai-files-BtR-wIuu.js +1 -0
  92. package/dist/public/assets/use-settings-page-loading-CpaBd260.js +1 -0
  93. package/dist/public/assets/use-toast-xpb5jNtN.js +1 -0
  94. package/dist/public/assets/{useBaseQuery-D5as4SgS.js → useBaseQuery-ChJtNS_3.js} +1 -1
  95. package/dist/public/assets/utils-BCj_kT9l.js +1 -0
  96. package/dist/public/assets/{web-B9ndApmi.js → web-BC7Gc4bP.js} +1 -1
  97. package/dist/public/assets/{web-DyqJbQ3L.js → web-BGZnt3gU.js} +1 -1
  98. package/dist/public/assets/{web-gEWIDddb.js → web-BdHVYPFA.js} +1 -1
  99. package/dist/public/assets/{web-BkuMY08B.js → web-C5YunZdw.js} +1 -1
  100. package/dist/public/browser-preview-rpc.js +123 -68
  101. package/dist/public/index.html +25 -23
  102. package/dist/scaffold-templates.json +1 -1
  103. package/package.json +6 -5
  104. package/dist/public/assets/account-view-Bzv2EHnc.js +0 -1
  105. package/dist/public/assets/api-OO3KSG8d.js +0 -2
  106. package/dist/public/assets/browser-tab-Cwa1TB3I.js +0 -12
  107. package/dist/public/assets/chat-dock-context-Cnq0BWgm.js +0 -1
  108. package/dist/public/assets/context-menu-BKOotkeD.js +0 -1
  109. package/dist/public/assets/conversation-history-view-CcdQRxoP.js +0 -1
  110. package/dist/public/assets/create-project-dialog-D1VaSgqh.js +0 -2
  111. package/dist/public/assets/delete-confirm-dialog-Cx9nT7Xd.js +0 -1
  112. package/dist/public/assets/diff-view-CyOnLSEA.js +0 -4
  113. package/dist/public/assets/dist-DNkA3vYh.js +0 -2
  114. package/dist/public/assets/explorer-tab-view-G2HmkQyY.js +0 -2
  115. package/dist/public/assets/explorer-tree-DAuc2Npx.js +0 -1
  116. package/dist/public/assets/explorer-view-BDMlnV3f.js +0 -76
  117. package/dist/public/assets/index-C4WzOmf3.css +0 -1
  118. package/dist/public/assets/index-DD_a7tQU.js +0 -3665
  119. package/dist/public/assets/onboarding-dialog-Dd9hiOOf.js +0 -1
  120. package/dist/public/assets/project-coding-view-DbKI7sbW.js +0 -1
  121. package/dist/public/assets/project-env-vars-view-BB66j52E.js +0 -1
  122. package/dist/public/assets/project-model-aliases-view-o1-Z2es5.js +0 -1
  123. package/dist/public/assets/project-settings-view-BKjvtOtk.js +0 -1
  124. package/dist/public/assets/project-tools-view-CZbblznF.js +0 -1
  125. package/dist/public/assets/providers-list-view-ChY2DXYc.js +0 -1
  126. package/dist/public/assets/pull-request-dialog-BZgY4vrw.js +0 -1
  127. package/dist/public/assets/settings-general-tabs-view-BH7AaXyP.js +0 -2
  128. package/dist/public/assets/settings-general-view-B-t99LmD.js +0 -1
  129. package/dist/public/assets/settings-list-Dn4CHP4Z.js +0 -1
  130. package/dist/public/assets/settings-logs-view-BCRjz-Fr.js +0 -5
  131. package/dist/public/assets/settings-mcp-servers-view-xv9D4DPO.js +0 -5
  132. package/dist/public/assets/settings-models-view-rUeqlE4k.js +0 -1
  133. package/dist/public/assets/settings-plugins-view-qnWmII61.js +0 -2
  134. package/dist/public/assets/settings-providers-view-DsxTdBEQ.js +0 -2
  135. package/dist/public/assets/settings-setup-view-ew5KW8gL.js +0 -2
  136. package/dist/public/assets/settings-skills-view-C4NxP4gI.js +0 -3
  137. package/dist/public/assets/settings-slack-view-BNT5ervf.js +0 -1
  138. package/dist/public/assets/settings-slash-commands-view-CE7FT3dB.js +0 -1
  139. package/dist/public/assets/settings-statistics-view-jKPoSWBs.js +0 -1
  140. package/dist/public/assets/settings-storage-view-C_Rs-9Hw.js +0 -1
  141. package/dist/public/assets/settings-subagents-view-DHVSAmCY.js +0 -2
  142. package/dist/public/assets/settings-system-prompt-view-B_nF2HUy.js +0 -1
  143. package/dist/public/assets/settings-view-BY6OO-xy.js +0 -2
  144. package/dist/public/assets/store-B7EgrEO7.js +0 -9
  145. package/dist/public/assets/tasks-view-Dc7sthjm.js +0 -1
  146. package/dist/public/assets/use-installed-ai-files-BkpswqGI.js +0 -1
  147. package/dist/public/assets/use-settings-page-loading-BTySlInF.js +0 -1
  148. package/dist/public/assets/utils-B-qS8qMg.js +0 -1
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Ft as a}from"./dist-DNkA3vYh.js";import{r as o}from"./store-B7EgrEO7.js";import{t as s}from"./utils-B-qS8qMg.js";import{d as c,en as l,gn as u,it as d,u as f}from"./lucide-react-B-115rul.js";import{t as p}from"./button-B5aMz2Rk.js";import{D as m,Kr as h,Q as g,Qt as _,sn as v}from"./api-OO3KSG8d.js";import{$n as y,Nt as b,St as x,ir as S,xt as C}from"./index-DD_a7tQU.js";import{t as w}from"./delete-confirm-dialog-Cx9nT7Xd.js";var T=t(),E=e(n(),1),D=r();function O(e){let t=(0,T.c)(6),{title:n,description:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,D.jsx)(x,{title:n,description:r,sticky:!1}),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,D.jsxs)(b,{children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function k(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(S,{className:`h-4 w-20`}),(0,D.jsx)(S,{className:`h-9 w-28`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[t,(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,D.jsx)(S,{className:`h-4 w-24`}),(0,D.jsx)(S,{className:`h-6 w-32`}),(0,D.jsx)(S,{className:`h-4 w-full`})]})]}),e[1]=n):n=e[1],n}function A(){let e=(0,T.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(S,{className:`h-5 w-28`}),(0,D.jsx)(S,{className:`h-4 w-64`})]}),(0,D.jsx)(S,{className:`h-9 w-28 shrink-0`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[t,(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,D.jsx)(S,{className:`h-5 w-36`}),(0,D.jsx)(S,{className:`h-4 w-56`}),(0,D.jsx)(S,{className:`h-4 w-32`})]}),(0,D.jsx)(S,{className:`h-9 w-24 shrink-0`})]})]}),e[1]=n):n=e[1],n}function j(){let[e,t]=(0,E.useState)(null),[n,r]=(0,E.useState)(!0),[b,x]=(0,E.useState)(!1),[S,T]=(0,E.useState)(!1),j=i(),M=o(e=>e.projects),N=(0,E.useMemo)(()=>M.reduce((e,t)=>e+t.threads.length,0),[M]);(0,E.useEffect)(()=>{P();let e=()=>{document.visibilityState===`visible`&&P()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);async function P(){r(!0);try{t(await g())}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to load account info`,variant:`destructive`})}finally{r(!1)}}function F(){_(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e?.clientReferenceId??``}`)}function I(){_(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e?.clientReferenceId??``}`)}async function L(){T(!0);try{if(await m(),h())try{await v()}catch{}window.close()}catch(e){T(!1),x(!1),y({title:`Error`,description:e instanceof Error?e.message:`Failed to delete account`,variant:`destructive`})}}let R=e?.plan===`unlimited-pro`,z=n&&e===null,B=e===null?n:!R;return(0,D.jsxs)(`div`,{className:`frosted-scrollbar flex h-full min-h-0 flex-col overflow-auto`,children:[(0,D.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[(0,D.jsx)(O,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`,children:z?(0,D.jsx)(k,{}):(0,D.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[(0,D.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,D.jsxs)(`div`,{className:s(a.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(d,{className:`h-4 w-4`}),`Balance`]}),(0,D.jsx)(`div`,{className:`flex items-end gap-2`,children:R?(0,D.jsx)(`span`,{className:a.stat,children:`Unlimited`}):(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`span`,{className:a.stat,children:e?.promptsRemaining.toLocaleString()??0}),(0,D.jsx)(`span`,{className:`${a.caption} mb-1`,children:`prompts remaining`})]})})]}),(0,D.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,D.jsxs)(`div`,{className:s(a.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,D.jsx)(l,{className:`h-4 w-4`}),`Current Plan`]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`span`,{className:a.label,children:R?`Unlimited Pro`:`Pay as you go`}),R&&(0,D.jsx)(`span`,{className:s(a.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`})]}),(0,D.jsx)(`p`,{className:a.bodyMuted,children:R?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`})]})]})}),B?(0,D.jsx)(O,{title:`Add Prompts`,description:`Top up your balance or upgrade to Pro for unlimited access.`,children:z?(0,D.jsx)(A,{}):(0,D.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsx)(`span`,{className:a.label,children:`1,000 Prompts`}),(0,D.jsx)(`p`,{className:a.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),(0,D.jsx)(p,{onClick:F,className:`shrink-0`,children:`Top Up Balance`})]}),(0,D.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,D.jsxs)(`div`,{className:`space-y-1`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(l,{className:`h-4 w-4 text-primary`}),(0,D.jsx)(`span`,{className:a.label,children:`Unlimited Pro Plan`})]}),(0,D.jsx)(`p`,{className:a.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),(0,D.jsxs)(`ul`,{className:s(a.bodyMuted,`space-y-0.5`),children:[(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(u,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),(0,D.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,D.jsx)(u,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),(0,D.jsx)(p,{onClick:I,className:`shrink-0`,children:`Purchase`})]})]})}):null,(0,D.jsx)(O,{title:`Delete Account`,description:`Permanently delete the Tarsk database and any logs on this device.`,children:(0,D.jsxs)(`div`,{className:`space-y-4 px-6 pb-6 pt-6`,children:[N>0?(0,D.jsxs)(C,{variant:`error`,children:[(0,D.jsxs)(`span`,{className:`flex items-start gap-2`,children:[(0,D.jsx)(f,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,D.jsxs)(`span`,{children:[`You have `,N,` workspace`,` `,N===1?`folder`:`folders`,` listed in Storage. Clear`,` `,N===1?`it`:`them`,` first under Storage — deleting your account does not remove those folders.`]})]}),(0,D.jsx)(`div`,{className:`mt-3`,children:(0,D.jsx)(p,{variant:`outline`,size:`sm`,onClick:()=>j(`/settings/storage`),children:`Go to Storage`})})]}):null,(0,D.jsx)(`p`,{className:a.bodyMuted,children:`This removes the Tarsk database and any logs on this machine and cannot be undone.`}),(0,D.jsxs)(p,{variant:`destructive`,onClick:()=>x(!0),children:[(0,D.jsx)(c,{className:`h-4 w-4`}),`Delete Account`]})]})})]}),(0,D.jsx)(w,{open:b,onOpenChange:e=>{!e&&!S&&x(!1)},title:`Delete account?`,description:`This permanently deletes the Tarsk database and any logs on this device. The app will close and you can relaunch it. This action cannot be undone.`,onConfirm:()=>void L(),confirming:S,confirmLabel:`Delete Account`,confirmingLabel:`Deleting...`})]})}export{j as default};
@@ -1,2 +0,0 @@
1
- import{Lt as e,N as t,R as n,pn as r,x as i,zt as a}from"./dist-DNkA3vYh.js";var o=function(e){return e.PACKAGE_MANAGER=`tarsk.create-project.packageManager`,e.COMMIT_METHOD=`tarsk.create-project.commitMethod`,e.TEMPLATE_ID=`tarsk.create-project.templateId`,e.CREATE_BRANCH_AFTER_PR=`createBranchAfterPR`,e.CREATE_WORKSPACE_AFTER_PR=`createWorkspaceAfterPR`,e.PRIVATE_REPOSITORY_DEFAULT=`privateRepositoryDefault`,e.NEW_CHAT_ON_NEW_BRANCH=`newChatOnNewBranch`,e.SELECTED_MODEL_PREFIX=`selected-model-`,e.FONT_SCALE=`tarsk.general.fontScale`,e.FROSTED_PANEL_OPACITY=`tarsk.general.frostedPanelOpacity`,e.IMAGE_BACKGROUND=`tarsk.general.imageBackground`,e.WALLPAPER_MODE=`tarsk.general.wallpaperMode`,e.WALLPAPER_COLOR=`tarsk.general.wallpaperColor`,e.BRAND_COLOR=`tarsk.general.brandColor`,e.OPEN_WITH_PROGRAM=`tarsk.general.openWithProgram`,e.SERVER_URL=`tarsk.server.url`,e.SERVER_BIND_MODE=`tarsk.general.serverBindMode`,e.HISTORY_COLUMNS=`tarsk.settings.historyColumns`,e}({}),s=function(e){return e.MESSAGE_HISTORY=`chat_message_history`,e.BASH_COMMAND_DURATIONS=`tarsk.bash-command-durations`,e.SKILL_CATALOG_PREFIX=`tarsk.skills.catalog.`,e.SKILL_SOURCE_SELECTION=`tarsk.skills.selectedSource`,e.PROJECT_SESSION_OPEN_PREFIX=`tarsk.project-session-open.`,e}({});function c(e){return typeof localStorage>`u`?null:localStorage.getItem(e)}function l(e,t){typeof localStorage>`u`||localStorage.setItem(e,t)}function u(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function d(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function f(e=`npm`){return c(`tarsk.create-project.packageManager`)??e}function p(e){l(`tarsk.create-project.packageManager`,e)}function m(e=`pull-request`){return c(`tarsk.create-project.commitMethod`)??e}function h(e){l(`tarsk.create-project.commitMethod`,e)}function ee(e=``){return c(`tarsk.create-project.templateId`)??e}function te(e){l(`tarsk.create-project.templateId`,e)}function g(e=!1){let t=c(`createBranchAfterPR`);return t===null?e:t===`true`}function ne(e){l(`createBranchAfterPR`,e.toString())}function re(e=!1){let t=c(`createWorkspaceAfterPR`);return t===null?e:t===`true`}function ie(e){l(`createWorkspaceAfterPR`,e.toString())}function ae(e=!1){let t=c(`privateRepositoryDefault`);return t===null?e:t===`true`}function oe(e){l(`privateRepositoryDefault`,e.toString())}function se(e=!1){let t=c(`newChatOnNewBranch`);return t===null?e:t===`true`}function ce(e){l(`newChatOnNewBranch`,e.toString())}function _(){let e=u(`chat_message_history`);return e?JSON.parse(e):[]}function le(e){let t=_();e.trim()&&t[t.length-1]!==e&&(t.push(e),d(`chat_message_history`,JSON.stringify(t)))}function ue(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function de(e,t){typeof sessionStorage>`u`||sessionStorage.setItem(e,t)}function fe(e=`default`){return ue(`tarsk.skills.selectedSource`)??e}function pe(e){de(`tarsk.skills.selectedSource`,e)}function v(e){return`tarsk.skills.catalog.${e}`}function me(e){let t=ue(v(e));if(!t)return null;try{return JSON.parse(t)}catch{return null}}function he(e,t){de(v(e),JSON.stringify(t))}function ge(e){typeof sessionStorage>`u`||sessionStorage.removeItem(v(e))}var _e=`tarsk.skills.customSources`;function ve(){if(typeof localStorage>`u`)return[];let e=localStorage.getItem(_e);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.title==`string`&&typeof e.url==`string`):[]}catch{return[]}}function ye(){typeof localStorage>`u`||localStorage.removeItem(_e)}function be(e=100){let t=c(`tarsk.general.fontScale`);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=50&&e<=300)return e}return e}function xe(e){l(`tarsk.general.fontScale`,String(e))}function Se(e=80){let t=c(`tarsk.general.frostedPanelOpacity`);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=60&&e<=100)return e}return e}function Ce(e){l(`tarsk.general.frostedPanelOpacity`,String(e))}var we=new Set([`image`,`background`,`color`]),y=/^#[0-9a-fA-F]{6}$/,b=`#1f2937`,x=`#82c309`;function Te(e){return e!==null&&we.has(e)}function Ee(e=`background`){let t=c(`tarsk.general.wallpaperMode`);if(Te(t))return t;if(t===`brand`)return`background`;let n=c(`tarsk.general.imageBackground`);return n===`false`?`background`:n===`true`?`image`:e}function De(e){l(`tarsk.general.wallpaperMode`,e)}function Oe(e=b){let t=c(`tarsk.general.wallpaperColor`);return t!==null&&y.test(t)?t:e}function ke(e){y.test(e)&&l(`tarsk.general.wallpaperColor`,e.toLowerCase())}function Ae(e=x){let t=c(`tarsk.general.brandColor`);return t!==null&&y.test(t)?t:e}function je(e){y.test(e)&&l(`tarsk.general.brandColor`,e.toLowerCase())}function Me(e=`VS Code`){return c(`tarsk.general.openWithProgram`)??e}function Ne(e){l(`tarsk.general.openWithProgram`,e)}function Pe(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.fetchedAt==`number`&&(t.serverBindMode===`local`||t.serverBindMode===`network`)&&Array.isArray(t.networkAddresses)&&t.networkAddresses.every(e=>typeof e==`string`)}function Fe(){let e=c(`tarsk.general.serverBindMode`);if(!e)return null;try{let t=JSON.parse(e);return Pe(t)?t:null}catch{return null}}function Ie(e){l(`tarsk.general.serverBindMode`,JSON.stringify({...e,fetchedAt:e.fetchedAt??Date.now()}))}var Le=`641`;function S(){return typeof window>`u`?null:window.Capacitor?.getPlatform?.()??null}function Re(){return T()&&S()===`ios`}function C(){return c(o.SERVER_URL)}function ze(e){l(o.SERVER_URL,e)}function Be(e){try{return new URL(e).hostname}catch{return``}}function w(e){let t=e.trim();if(!t)return``;let n=t.replace(/^https?:\/\//,``).split(`/`)[0]?.split(`:`)[0]??``;return n?`http://${n}:${Le}`:``}function T(){if(typeof window>`u`)return!1;if(window.Capacitor?.isNativePlatform?.())return!0;let e=window.location.protocol;return e===`capacitor:`||e===`ionic:`||e===`file:`}function Ve(){let e=C();if(e){let t=Be(e);if(t)return t}return T()?``:document.location.hostname}async function He(e){try{return(await fetch(`${e.replace(/\/$/,``)}/health`,{method:`GET`})).ok}catch{return!1}}function Ue(e){let t=w(e);if(t){if(T()){ze(t),window.location.reload();return}window.location.assign(t)}}function E(){return typeof window<`u`&&`__electrobunWebviewId`in window}function We(){return typeof document<`u`&&document.location.port===`8100`}function D(){if(typeof document>`u`)return null;let{protocol:e,hostname:t,port:n,host:r,origin:i}=document.location;return e!==`http:`&&e!==`https:`?null:i||`${e}//${r??(n?`${t}:${n}`:t)}`}function O(){if(typeof document>`u`)return`http://localhost:641`;let{hostname:e,port:t}=document.location;return t===`8100`?`http://${e}:462`:D()||`http://${e}:641`}function k(){if(E()){let e=D();if(e)return e}if(!T())return O();let e=C();return e?e.replace(/\/$/,``):O()}function A(e){let t=e.startsWith(`/`)?e:`/${e}`;return`${k()}${t}`}function j(e){if(!e)return`Unknown error`;if(typeof e.error==`string`)return e.error.trim()||`Unknown error`;if(e.error&&typeof e.error==`object`){let t=e.error.message;if(typeof t==`string`&&t.trim())return t.trim();let n=e.error.details;return typeof n==`string`&&n.trim()?n.trim():`Unknown error`}return`Unknown error`}async function M(e){try{return j(await e.json())}catch{}return e.statusText||`Unknown error`}function N(e,t,n){let r=Error(e);return n?.error&&typeof n.error==`object`&&(r.details=n.error.details,r.code=n.error.code),r}async function P(e){let t;try{t=await e.json()}catch{}throw N(j(t)||e.statusText||`Unknown error`,e,t)}async function F(e,t){let n=await fetch(A(e),{...t,method:`GET`});if(!n.ok){let e=await M(n);throw Error(e)}return n.blob()}async function I(e,t){let n=await fetch(A(e),{...t,method:`GET`});if(!n.ok){let e=await M(n);throw Error(e)}return n.json()}async function L(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function Ge(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.blob()}async function Ke(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/octet-stream`,...n?.headers},body:t});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function R(e,t,n){let r=await fetch(A(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function z(e,t,n){let r=await fetch(A(e),{...n,method:`PATCH`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.json()}async function qe(e,t,n){let r=await fetch(A(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e=await M(r);throw Error(e)}return r.body}async function B(e,t){let n=await fetch(A(e),{...t,method:`DELETE`});if(!n.ok){let e=await M(n);throw Error(e)}if(n.status!==204)return n.json()}async function Je(e,t){let n=await fetch(A(e),{...t,method:`DELETE`});if(!n.ok){let e=await M(n);throw Error(e)}return n.body}async function V(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0,signal:n?.signal});return r.ok||await P(r),r.body}async function H(e,t){let n=await fetch(A(e),{...t,method:`GET`});return n.ok||await P(n),n.body}async function U(e,t,n){let r=await fetch(A(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw N(j(e)||r.statusText||`Unknown error`,r,e)}return r.json()}async function W(e,t,n){let r=await fetch(A(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw N(j(e)||r.statusText||`Unknown error`,r,e)}return r.json()}function G(...e){return e.map(e=>encodeURIComponent(String(e))).join(`/`)}var K=t(`gitops.ttl-cache`),q=new class{cache=new Map;inFlightRequests=new Map;generations=new Map;async get(e,t,n){let r=e.startsWith(`unified-git-status-`),i=r?performance.now():0,a=this.inFlightRequests.get(e);if(a)return r&&K.debug(`in-flight-reuse`,{key:e}),a;let o=this.cache.get(e);if(o&&Date.now()<o.expires){if(r){let t=Math.round(performance.now()-i);K.debug(`cache hit`,{key:e,duration:t})}return o.data}r&&K.debug(`cache miss, fetching`,{key:e});let s=this.generations.get(e)??0,c=t().then(t=>{if((this.generations.get(e)??0)===s){if(this.cache.set(e,{data:t,expires:Date.now()+n}),r){let t=Math.round(performance.now()-i);K.debug(`stored in cache`,{key:e,duration:t})}}else r&&K.debug(`skipped stale cache write`,{key:e});return t}).finally(()=>{this.inFlightRequests.get(e)===c&&this.inFlightRequests.delete(e)});return this.inFlightRequests.set(e,c),c}getSync(e){let t=this.cache.get(e);if(t&&Date.now()<t.expires)return t.data}bumpGeneration(e){this.generations.set(e,(this.generations.get(e)??0)+1)}invalidate(e){this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}invalidatePattern(e){let t=[];for(let n of this.cache.keys())e.test(n)&&t.push(n);for(let n of this.inFlightRequests.keys())e.test(n)&&!t.includes(n)&&t.push(n);for(let e of t)this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}clear(){for(let e of new Set([...this.cache.keys(),...this.inFlightRequests.keys(),...this.generations.keys()]))this.bumpGeneration(e);this.cache.clear(),this.inFlightRequests.clear()}};function Ye(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function J(e,t=`image/png`){let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return new Blob([r],{type:t})}function Xe(e){let t=e.indexOf(`,`),n=e.slice(0,t);return J(e.slice(t+1),n.match(/^data:([^;]+)/)?.[1]??`image/png`)}async function Y(e){if(e.imageData)return J(e.imageData);if(e.imageUrl){if(e.imageUrl.startsWith(`data:`))return Xe(e.imageUrl);let t=a(e.imageUrl,k()),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch image: ${n.status}`);return n.blob()}throw Error(`imageUrl or imageData is required`)}function Ze(t){return!t.imageUrl||e(t.imageUrl)?t:{...t,imageUrl:a(t.imageUrl,k())}}async function Qe(e){let t=e.filename??`generated-image-${Date.now()}.png`;try{return Ye(await Y(e),t),{path:t}}catch{if(!e.imageUrl||e.imageUrl.startsWith(`data:`))throw Error(`imageUrl or imageData is required`);let n=document.createElement(`a`);return n.href=e.imageUrl,n.download=t,n.target=`_blank`,n.rel=`noopener noreferrer`,document.body.appendChild(n),n.click(),document.body.removeChild(n),{path:t}}}async function $e(e){let t=await Y(e);if(!navigator.clipboard?.write)throw Error(`Clipboard API not available`);let n=t.type||`image/png`,r=t.type?t:new Blob([t],{type:n});await navigator.clipboard.write([new ClipboardItem({[n]:r})])}async function et(e){return E()?L(`api/image/save`,Ze(e)):Qe(e)}async function tt(e){if(E()){await L(`api/image/clipboard`,Ze(e));return}await $e(e)}function nt(e){let t=e.trim().toLowerCase();return t===`load failed`||t.includes(`failed to fetch`)||t.includes(`network error`)||t.includes(`network connection was lost`)||t.includes(`networkrequestfailed`)||t.includes(`networkrequest failed`)||t.includes(`socket is not connected`)}function rt(e){if(e instanceof Error&&`code`in e&&typeof e.code==`string`)return e.code}function it(e){if(rt(e)===`THREAD_BUSY`)return!0;if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return t.includes(`already processing a message`)||t.includes(`already being processed`)||t.includes(`multiple chat windows are processing`)}function at(e,t){return it(e)?t?.trim()?!0:e instanceof Error?!e.message.toLowerCase().includes(`multiple chat windows`):!1:!1}var ot=50;function st(e,t,n,r,a){let o=e.getReader(),s=!1;function c(){s=!0,o.cancel().catch(()=>{})}let l=new TextDecoder,u=``,d=0;function f(e){let t=e.content?.trim();if(t)return i(t);let n=e.error?.message?.trim();if(n)return i(n);let r=e.message?.trim();return r?i(r):`Unknown error`}function p(e){if(!e)return!1;let t=e.trim();return t.length>200?!1:[/^Cannot read properties/i,/^Error:/i,/^TypeError:/i,/^ReferenceError:/i,/^SyntaxError:/i,/^failed to/i,/^error:/i,/^forbidden/i,/^unauthorized/i].some(e=>e.test(t))}async function m(){d+=1,!(d<ot)&&(d=0,await new Promise(e=>{setTimeout(e,0)}))}async function h(e){return e.type===`ping`?`continue`:e.type===`error`?(r(f(e)),n(),`stop`):e.type===`message`?(a?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking}),`continue`):e.type===`complete`?(n(),`stop`):e.type===`result`&&p(e.content)?(r(i(e.content??`Unknown error`)),n(),`stop`):(t(e),await m(),`continue`)}async function ee(){if(!u.trim())return`continue`;try{return await h(JSON.parse(u))}catch{return u.trim()&&t({type:`result`,content:u}),`continue`}}async function te(e){let t=e.trim();if(!t)return`continue`;try{return await h(JSON.parse(t))}catch{return`continue`}}async function g(){try{for(;!s;){let{done:e,value:t}=await o.read();if(e||s){if(!s&&e){if(await ee()===`stop`)return;n()}break}u+=l.decode(t,{stream:!0});let r=u.split(`
2
- `);u=r.pop()??``;for(let e of r)if(s||await te(e)===`stop`)return}}catch(e){s||(r(e instanceof Error?e.message:`Stream error`),n())}}return g(),c}var ct=t(`gitops.api`);async function lt(e,t=!1,n=!1){let r=new URLSearchParams;t&&r.set(`fresh`,`true`),n&&r.set(`asyncRefresh`,`true`);let i=r.toString(),a=i?`api/git/unified-status/${G(e)}?${i}`:`api/git/unified-status/${G(e)}`,o=performance.now();ct.debug(`getUnifiedGitStatus start`,{threadId:e,fresh:t});try{return await I(a)}finally{let n=Math.round(performance.now()-o);ct.debug(`getUnifiedGitStatus end`,{threadId:e,fresh:t,duration:n})}}async function ut(e,t,n){return(await L(`api/git/generate-commit-message/${G(e)}`,{model:t,provider:n})).message}async function dt(e,t){await L(`api/git/commit/${G(e)}`,{message:t})}async function ft(e){await L(`api/git/push/${G(e)}`)}async function pt(e){await L(`api/git/pull/${G(e)}`)}async function mt(e){return L(`api/git/sync-branch/${G(e)}`,{})}async function ht(e,t,n){return L(`api/git/generate-pr-info/${G(e)}`,{model:t,provider:n})}async function gt(e,t,n,r){return L(`api/git/create-pr/${G(e)}`,{title:t,description:n,baseBranch:r})}async function _t(e){await L(`api/git/fetch/${G(e)}`)}async function vt(e,t,n){return L(`api/git/create-branch/${G(e)}`,{baseBranch:t,branchName:n})}async function yt(e,t){return L(`api/git/revert-file/${G(e)}`,{filePath:t})}async function bt(e,t=50){return(await I(`api/git/log/${G(e)}?limit=${t}`)).commits}async function xt(e){return I(`api/git/pr-status/${G(e)}`)}async function St(e,t,n,r){return L(`api/git/create-repo/${G(e)}`,{repoName:t,description:n,isPrivate:r})}async function Ct(e,t){return L(`api/git/checkpoint/${G(e)}`,{messageId:t})}async function wt(e,t){return L(`api/git/checkpoint-restore/${G(e)}`,{checkpointRef:t})}async function Tt(e){return I(`api/git/diff/${G(e)}`)}async function Et(e,t,n){return F(`api/git/media/${G(e)}?path=${encodeURIComponent(t)}&version=${n}`)}async function Dt(e){return L(`api/git/cleanup-deleted-branches/${G(e)}`)}async function Ot(){return(await I(`api/skills/popular`)).skills??[]}async function kt(){return(await I(`api/skills/sources`)).sources??[]}async function At(e){return(await I(`api/skills/catalog?${new URLSearchParams({sourceId:e}).toString()}`)).skills??[]}async function jt(e,t){return L(`api/skills/sources/verify`,{title:e,url:t})}async function Mt(e,t,n){return R(`api/skills/sources/${G(e)}`,{title:t,url:n})}async function Nt(e){await B(`api/skills/sources/${G(e)}`)}async function Pt(e){return(await L(`api/skills/sources/import`,{sources:e})).sources??[]}async function Ft(e,t){return I(`api/skills/catalog/files?${new URLSearchParams({sourceId:e,skillId:t}).toString()}`)}async function It(e,t,n){return I(`api/skills/catalog/file?${new URLSearchParams({sourceId:e,skillId:t,relativePath:n}).toString()}`)}async function Lt(){return(await I(`api/agents/popular`)).agents??[]}async function Rt(){return(await I(`api/slash-commands/popular`)).commands??[]}async function zt(e,t,n,r,i){return L(`api/threads/${G(e)}/ai-files/github-folder`,{gitHubRepo:t,gitHubFolder:n,destPath:r,gitHubRef:i})}async function Bt(e,t,n,r){return L(`api/threads/${G(e)}/ai-files/catalog-skill`,{sourceId:t,skillId:n,destPath:r})}var Vt=t(`gitops.api`),X=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}},Ht=50;async function Ut(){let{plan:e,promptsRemaining:t}=await Q();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1,promptsRemaining:-1}:{isEmpty:t<=0,isLow:t>0&&t<=Ht,promptsRemaining:t}}var Wt=null,Z=!1;function Gt(e){Wt=e}function Kt(e){Z||(Z=!0,Wt?.(e))}async function qt(){return I(`api/scaffold/templates`)}async function Jt(){return(await I(`api/scaffold/check-vp`)).installed}async function Yt(){return L(`api/scaffold/install-vp`,{})}async function Xt(e,t,n,r){return V(`api/scaffold`,{projectName:e,templateId:t,packageManager:n},{signal:r})}async function Zt(){return q.get(`providers`,async()=>I(`api/providers`),6e4)}function Qt(e){return`${k()}/api/providers/${G(e)}/logo`}function $t(e){return`https://models.tarsk.io/svg/${G(e)}.svg`}async function en(e){return q.get(`provider-credits-${e}`,async()=>I(`api/providers/${G(e)}/credits`),3e4)}async function tn(){return(await I(`api/providers/openrouter/oauth/start`)).url}async function nn(e,t){await L(`api/providers/keys`,{providerName:e,apiKey:t}),q.invalidate(`providers`)}async function rn(e){await L(`api/providers/env`,{values:e}),q.invalidate(`providers`)}function an(e){return typeof window>`u`?!1:window.open(e,`_blank`,`noopener,noreferrer`)!==null}async function on(e){if(typeof window<`u`&&!E()){an(e);return}try{await L(`api/providers/open-external`,{url:e})}catch(t){if(an(e))return;throw t instanceof Error?t:Error(`Failed to open URL`)}}async function Q(){return I(`api/account/info`)}async function sn(){return L(`api/account/delete`,{})}async function cn(){return L(`api/account/quit`,{})}async function ln(){return I(`api/account/spend`)}async function un(){return I(`api/account/statistics`)}async function dn(){return B(`api/account/statistics`)}async function fn(){return I(`api/account/settings`)}async function pn(){return I(`api/slack/settings`)}async function mn(){await B(`api/logs`)}async function hn(e){return H(`api/logs/stream`,e)}async function gn(e){try{await L(`api/logs`,e)}catch(e){Vt.debug(`Failed to post client log entry`,e)}}async function _n(){return I(`api/slack/manifest`)}async function vn(e){return R(`api/slack/tokens`,e)}async function yn(){await B(`api/slack/tokens`)}async function bn(e){return L(`api/slack/bindings`,e)}async function xn(e,t){await B(`api/slack/bindings/${G(e)}/${G(t)}`)}async function Sn(e){return R(`api/account/settings`,e)}async function Cn(e,t){return(await L(`api/voice-model/process-transcript`,{text:e,threadId:t?.threadId,provider:t?.provider,model:t?.model})).text}async function wn(){return q.get(`available-programs`,async()=>(await I(`api/programs`)).programs??[],3e5)}async function Tn(){return(await I(`api/processes`)).processes}async function En(e){await L(`api/processes/${G(e)}/kill`)}async function Dn(){return q.get(`processing-threads`,async()=>{let e=await I(`api/threads/processing`);return{processingThreadIds:e.processingThreadIds??[],processingRuns:e.processingRuns??[]}},0)}async function On(){return(await Dn()).processingThreadIds}async function kn(e){let t=new URLSearchParams({since:e.since});return e.ids&&t.set(`ids`,e.ids),q.get(`processing-roster:${t.toString()}`,async()=>(await I(`api/conversations/processing-roster?${t.toString()}`)).conversations??[],0)}async function An(){return q.get(`git-user`,async()=>{try{let e=await I(`api/git/user`);return{name:e.name??``,email:e.email??``}}catch{return{name:``,email:``}}},6e5)}async function jn(){return(await An()).name}async function Mn(){return q.get(`projects`,async()=>{let e=await I(`api/projects`),t=Array.isArray(e)?e:e.projects??[],i=Array.isArray(e)?null:e.cloneRootPath??null;return{projects:(t||[]).map(e=>{let t=e;return{projectId:t.projectId??t.id,name:t.name,gitUrl:t.gitUrl,projectPath:t.projectPath??t.path,threads:t.threads??[],commands:t.commands??[],setupScript:t.setupScript,runCommand:t.runCommand,planPrompt:t.planPrompt,testPrompt:t.testPrompt,reviewPrompt:t.reviewPrompt,customSystemPrompt:t.customSystemPrompt,useCustomSystemPrompt:!!t.useCustomSystemPrompt,allowAllCommands:t.allowAllCommands!==!1,allowedCommandPatterns:t.allowedCommandPatterns??[],defaultChatMode:r(t.defaultChatMode)?t.defaultChatMode:void 0,disabledTools:t.disabledTools??void 0,smartJsEnabled:t.smartJsEnabled===!0,useBuiltInBrowser:t.useBuiltInBrowser!==!1,projectIcon:t.projectIcon,tasksModifiedCount:Number(t.tasksModifiedCount)||0,type:t.type===`bot`?`bot`:`standard`,builtIn:t.builtIn===!0}}).map(e=>{let t=(e.threads||[]).map(e=>{let t=e,r=t.threadId??t.id;return{threadId:r,title:t.title??r,path:t.path??``,currentBranch:t.currentBranch??``,isSelected:!!t.isSelected,model:t.model??void 0,modelProvider:t.modelProvider??void 0,gitStatusDot:n(t.gitStatusDot)}});return{...e,threads:t}}),cloneRootPath:i}},3e4)}async function Nn(e){await L(`api/projects/${G(e)}/tasks/clear-modifications`)}async function Pn(e,t,n){return V(`api/projects`,{gitUrl:e,commitMethod:t},{signal:n})}async function Fn(e,t){await L(`api/projects/git-auth/${encodeURIComponent(e)}`,t)}async function In(e){return V(`api/projects/open-folder`,{},{signal:e})}async function Ln(e,t){return V(`api/projects/open-path`,{path:e},{signal:t})}async function Rn(e,t){return V(`api/projects/new-folder`,{projectName:e},{signal:t})}async function zn(e,t){return V(`api/projects/new-bot`,{projectName:e},{signal:t})}function Bn(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=typeof r.result==`string`?r.result:``,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):e)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function Vn(e,t,n,r){return V(`api/projects/from-zip`,{data:await Bn(e),name:t,overrideProjectId:n},{signal:r})}async function Hn(e){return q.get(`project-${e}`,async()=>{let t=await I(`api/projects/${G(e)}`);return{...t,projectPath:t.projectPath??t.path}},3e4)}async function Un(e){return I(`api/projects/${G(e)}/env-vars`)}async function Wn(e){return(await I(`api/projects/${G(e)}/window-state`)).state}async function Gn(e,t){await W(`api/projects/${G(e)}/window-state`,{state:t})}async function Kn(e,t,n){return L(`api/projects/${G(e)}/replace-unique-text`,{oldText:t,newText:n})}async function qn(e,t){await R(`api/projects/${G(e)}/env-vars`,{vars:t})}async function Jn(e){await B(`api/projects/${G(e)}`),q.invalidate(`projects`)}function Yn(e){q.invalidate(`projects`),e&&q.invalidate(`project-${e}`)}async function Xn(e,t,n){return V(`api/threads`,{projectId:e,title:t,sourceThreadId:n?.sourceThreadId})}async function Zn(e,t){let n=await Je(`api/threads/${G(t)}?stream=true`);return q.invalidate(`projects`),n}async function Qn(e,t){await z(`api/threads/${G(e)}`,t),q.invalidate(`thread-${e}`),(`model`in t||`modelProvider`in t||`chatTitles`in t||`diffComments`in t)&&q.invalidate(`projects`)}async function $n(e,t,n){return(await L(`api/threads/${G(e)}/generate-title`,{prompt:t,provider:n?.provider,model:n?.model})).title}async function er(e,t){return L(`api/threads/${G(e)}/fix-comments`,{comments:t})}async function tr(e,t){await L(`api/threads/${G(t)}/select`)}async function nr(e,t){let n=t?`?conversationId=${encodeURIComponent(t)}`:``;return{threadId:e,messages:await I(`api/threads/${G(e)}/messages${n}`)}}async function rr(e,t,n=1,r=2e3){let i=new URLSearchParams({offset:String(n),limit:String(r)});return I(`api/threads/${G(e)}/observations/${G(t)}?${i}`)}async function ir(e){return(await I(`api/threads/${G(e)}/conversation-folder-path`)).path}async function ar(e){return(await I(`api/threads/${G(e)}/session-learnings`)).learnings}async function or(e,t,n,r=[],i,a,o,s,c,l,u,d){let{isEmpty:f,isLow:p,promptsRemaining:m}=await Ut();if(f)throw new X;return p?Kt(m):Z=!1,V(`api/chat`,{threadId:e,content:t,model:n,provider:a,planMode:o,ralphMode:s,orchestrateMode:u,autoRoute:d,checkpointRef:c,conversationId:l,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))},{signal:i})}async function sr(e,t,n,r=[],i,a,o,s,c){let{isEmpty:l,isLow:u,promptsRemaining:d}=await Ut();if(l)throw new X;return u?Kt(d):Z=!1,L(`api/chat`,{threadId:e,content:t,model:n,provider:i,planMode:a,ralphMode:o,orchestrateMode:s,autoRoute:c,runInBackground:!0,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function cr(e,t,n,r,i,a){await L(`api/chat/${G(e)}/steer`,{messageId:t,content:n,conversationId:r,model:i,attachments:a.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function lr(e,t,n){let r=new URLSearchParams({replay:`compact`}),i=n?.trim();return i&&r.set(`conversationId`,i),H(`api/chat/subscribe/${G(e)}?${r.toString()}`,{signal:t})}async function ur(e){let t=await B(`api/chat/${G(e)}`);return q.invalidate(`thread-${e}`),t?.conversationId||``}async function dr(e,t,n){return L(`api/chat/${G(e)}/agent-note`,{content:t,...n})}async function fr(e,t){return U(`api/chat/${G(e)}/compact`,t)}async function pr(e,t){let n=await L(`api/chat/${G(e)}/workspace-handoff`,t);return typeof n.brief==`string`?n.brief:``}async function mr(e,t){try{let n=new URLSearchParams,r=t?.conversationId?.trim();r&&n.set(`conversationId`,r),t?.all&&n.set(`all`,`1`);let i=n.size>0?`?${n.toString()}`:``;await L(`api/chat/stop/${G(e)}${i}`)}catch{}}async function $(e,t){return t.runNow&&t.setupScript?qe(`api/projects/${G(e)}`,t):(await W(`api/projects/${G(e)}`,t),Yn(e),null)}async function hr(e,t){await U(`api/projects/${G(e)}/open`,{program:t})}async function gr(e,t){await U(`api/threads/${G(e)}/open`,{program:t})}async function _r(e,t){await $(e,{program:t})}async function vr(e,t,n){return $(e,{setupScript:t,runNow:n})}async function yr(e,t){await $(e,{name:t})}async function br(e,t){let n=new URLSearchParams({provider:e});t!==void 0&&n.set(`supportedTools`,t?`true`:`false`),n.set(`useCase`,`coding`);let r=`available-models-${n.toString()}`;return q.get(r,async()=>{let e=await I(`api/models?${n.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function xr(e){let t=new URLSearchParams({useCase:e}),n=`available-models-all-${e}`;return q.get(n,async()=>(await I(`api/models/all?${t.toString()}`)).providers??{},12e4)}async function Sr(e,t){await L(`api/models/${G(e,t)}/enable`),q.invalidate(`enabled-models`),q.invalidatePattern(/^available-models-/),q.invalidatePattern(/^available-image-models-/)}async function Cr(e,t){await L(`api/models/${G(e,t)}/disable`),q.invalidate(`enabled-models`),q.invalidatePattern(/^available-models-/),q.invalidatePattern(/^available-image-models-/)}async function wr(e,t,n){await L(`api/models/${G(e,t)}/settings`,n),q.invalidatePattern(/^available-models-/),q.invalidate(`enabled-models`)}async function Tr(){return q.get(`enabled-models`,async()=>(await I(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function Er(e){let t=new URLSearchParams({provider:e,useCase:`image`}),n=`available-image-models-${e}`;return q.get(n,async()=>{let e=await I(`api/models?${t.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function Dr(){return q.get(`enabled-image-models`,async()=>(await I(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function Or(e,t){await L(`api/models/${G(e,t)}/enable?useCase=image`),q.invalidate(`enabled-image-models`),q.invalidatePattern(/^available-models-/),q.invalidatePattern(/^available-image-models-/)}async function kr(e,t){await L(`api/models/${G(e,t)}/disable?useCase=image`),q.invalidate(`enabled-image-models`),q.invalidatePattern(/^available-models-/),q.invalidatePattern(/^available-image-models-/)}async function Ar(e,t,n,r){return L(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r})}async function jr(e){await tt(e)}async function Mr(e){return et(e)}async function Nr(e,t){return Ge(`api/projects/${G(e)}/plugin-export`,t)}async function Pr(e,t){return L(`api/projects/${G(e)}/plugin-import/preview`,{url:t})}async function Fr(e,t){return L(`api/projects/${G(e)}/plugin-import`,t)}async function Ir(e,t){return L(`api/projects/${G(e)}/plugin-upload`,t)}async function Lr(e){let t=await L(`api/models/${G(e)}/refresh`);return q.invalidatePattern(/^available-models-/),q.invalidatePattern(/^available-image-models-/),q.invalidate(`enabled-models`),q.invalidate(`enabled-image-models`),t.modelCount??0}async function Rr(e,t){await L(`api/projects/${G(e)}/commands`,t)}async function zr(e,t){await B(`api/projects/${G(e)}/commands/${G(t)}`)}async function Br(e){return I(`api/projects/${G(e)}/package-scripts`)}async function Vr(e){return I(`api/threads/${G(e)}/files`)}async function Hr(e){return(await I(`api/threads/${G(e)}/project-scripts`)).scripts}async function Ur(e,t,n,r){let{relativeFolder:i,...a}=r??{},o={scriptName:t,command:n};return i&&(o.relativeFolder=i),V(`api/threads/${G(e)}/project-scripts/run`,o,a)}async function Wr(e,t){return L(`api/threads/${G(e)}/project-scripts/stop`,{scriptName:t})}async function Gr(e){return q.get(`thread-${e}`,async()=>I(`api/threads/${e}`),45e3)}async function Kr(e){return(await I(`api/projects/${G(e)}/user-tasks`)).tasks??[]}async function qr(e,t){return L(`api/projects/${G(e)}/user-tasks`,{content:t})}async function Jr(e,t){await B(`api/projects/${G(e)}/user-tasks/${G(t)}`)}async function Yr(e){return L(`api/projects/${G(e)}/run-suggest`,{})}async function Xr(e,t,n){return Vt.info(`Start dev server requested`,{projectId:e,threadId:t}),q.invalidate(`dev-server-running-${e}`),V(`api/projects/${G(e)}/run`,{threadId:t},{signal:n})}async function Zr(e){return q.invalidate(`dev-server-running-${e}`),L(`api/projects/${G(e)}/stop`,{})}async function Qr(e,t){return L(`api/projects/${G(e)}/free-port`,{port:t})}async function $r(e){return q.get(`dev-server-running-${e}`,async()=>I(`api/projects/${G(e)}/running`),3e3)}async function ei(e){return I(`api/projects/${G(e)}/system-prompt`)}async function ti(){return I(`api/onboarding/status`)}async function ni(){return I(`api/onboarding/git-check`)}async function ri(){return L(`api/onboarding/complete`,{})}async function ii(){return L(`api/onboarding/reset`,{})}async function ai(){return I(`api/onboarding/recommended-models`)}async function oi(e){return(await I(`api/slash-commands?threadId=${G(e)}`)).commands??[]}async function si(e){let t=await I(`api/slash-commands?threadId=${G(e)}`);return{commands:t.commands??[],skills:t.skills??[],bundledSkills:t.bundledSkills??[]}}async function ci(e,t,n,r,i){return L(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function li(e,t){let n=await fetch(`http://localhost:641/api/slash-commands`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,threadId:t})});if(!n.ok)throw Error(`Failed to delete slash command: ${n.statusText}`);return n.json()}async function ui(e){let t=new URLSearchParams;e?.threadId?t.set(`threadId`,e.threadId):e?.projectId&&t.set(`projectId`,e.projectId);let n=t.toString();await B(`api/conversations${n?`?${n}`:``}`)}async function di(e=20,t=0,n,r){return I(`api/conversations/recent?limit=${Math.min(Math.max(e,1),100)}&offset=${Math.max(t,0)}${n?`&projectId=${encodeURIComponent(n)}`:``}${r?.unreadOnly?`&unreadOnly=1`:``}`)}async function fi(e,t){await U(`api/conversations/${G(e)}/${G(t)}/read`,{})}async function pi(e,t){await B(`api/conversations/${G(e)}/${G(t)}/read`)}async function mi(e,t){return I(`api/conversations/${G(e)}/${G(t)}/usage`)}async function hi(e,t,n){let r=`context-breakdown-${e}-${t}`;return n?.forceRefresh&&q.invalidate(r),q.get(r,async()=>I(`api/conversations/${G(e)}/${G(t)}/context`),45e3)}async function gi(e,t){return I(`api/conversations/${G(e)}/${G(t)}/context/tool-definitions`)}async function _i(){try{return await I(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function vi(){return L(`api/update/apply`)}async function yi(){return(await I(`api/ask-user/pending`)).questions??[]}async function bi(e,t){await L(`api/ask-user/respond`,typeof t==`string`?{toolCallId:e,answer:t}:{toolCallId:e,answers:t})}async function xi(e,t,n){await L(`api/shell-permission/respond`,{toolCallId:e,decision:t,pattern:n?.pattern,projectId:n?.projectId})}async function Si(e,t){await L(`api/shell-permission/respond`,{toolCallId:e,escalationScope:t===`skip`?void 0:t,escalationDecision:t===`skip`?`skip`:void 0})}async function Ci(e,t){await L(`api/web-fetch-permission/respond`,{toolCallId:e,decision:t})}async function wi(e,t,n,r){await L(`api/browser-js/respond`,{toolCallId:e,result:t,threadId:n,...r===void 0?{}:{runToken:r}})}async function Ti(e,t,n){await L(`api/browser-js/respond`,{toolCallId:e,started:!0,threadId:t,...n===void 0?{}:{runToken:n}})}async function Ei(e,t){await L(`api/browser/ready`,{toolCallId:e,webviewId:t})}async function Di(e,t){await L(`api/browser/action-result`,{toolCallId:e,result:t})}async function Oi(e){return I(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function ki(e,t,n){return R(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function Ai(e,t){return B(`api/mcp/config/${G(t)}?projectPath=${encodeURIComponent(e)}`)}async function ji(e,t){return L(`api/mcp/discover`,{projectPath:e,serverName:t})}async function Mi(){return(await I(`api/mcp/popular`)).servers??[]}async function Ni(e,t){return L(`api/mcp/oauth/authorize`,{projectPath:e,serverName:t})}async function Pi(e,t){return I(`api/mcp/oauth/status?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Fi(e,t){return B(`api/mcp/oauth?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Ii(e){return(await I(`api/projects/${G(e)}/ai-files`)).nodes??[]}async function Li(e,t){return B(`api/projects/${G(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Ri(e,t){return I(`api/projects/${G(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function zi(e,t,n){return R(`api/projects/${G(e)}/ai-file`,{path:t,content:n})}async function Bi(e){return(await I(`api/threads/${G(e)}/ai-files`)).nodes??[]}async function Vi(e,t,n){return R(`api/threads/${G(e)}/ai-file`,{path:t,content:n})}async function Hi(e,t,n){return L(`api/threads/${G(e)}/ai-files/skill`,{name:t,description:n})}async function Ui(e,t,n,r){return L(`api/threads/${G(e)}/ai-files/agent`,{name:t,description:n,tools:r})}async function Wi(e,t){return B(`api/threads/${G(e)}/ai-file?path=${encodeURIComponent(t)}`)}export{fn as $,Ir as $n,He as $r,In as $t,Jn as A,ie as Ai,vn as An,mt as Ar,Qt as At,Or as B,d as Bi,Si as Bn,F as Br,ln as Bt,Xn as C,me as Ci,rn as Cn,dt as Cr,Un as Ct,sn as D,je as Di,or as Dn,pt as Dr,Mn as Dt,qr as E,Ee as Ei,tr as En,_t as Er,Wn as Et,Wi as F,p as Fi,Zr as Fn,q as Fr,ar as Ft,br as G,qn as Gn,We as Gr,Kr as Gt,Nr as H,te as Hi,Ci as Hn,L as Hr,Bi as Ht,Jr as I,Ne as Ii,Wr as In,B as Ir,_n as It,Qr as J,$ as Jn,Ue as Jr,Yn as Jt,yi as K,pi as Kn,E as Kr,Fr as Kt,kr as L,oe as Li,hn as Ln,G as Lr,pn as Lt,xn as M,Ce as Mi,tn as Mn,nt as Mr,di as Mt,li as N,l as Ni,cr as Nn,st as Nr,ai as Nt,zr as O,h as Oi,sr as On,ft as Or,en as Ot,Zn as P,ce as Pi,mr as Pn,at as Pr,qt as Pt,Q,Qn,T as Qr,on as Qt,Cr as R,pe as Ri,bi as Rn,I as Rr,oi as Rt,ci as S,u as Si,Gn as Sn,Dt as Sr,Ii as St,Hi as T,Oe as Ti,Vi as Tn,gt as Tr,ei as Tt,xr as U,ke as Ui,lr as Un,Ke as Ur,Vr as Ut,Sr as V,he as Vi,xi as Vn,z as Vr,Gr as Vt,Er as W,De as Wi,Yr as Wn,R as Wr,gi as Wt,$n as X,_r as Xn,S as Xr,En as Xt,Ar as Y,yr as Yn,Ve as Yr,$r as Yt,pr as Z,vr as Zn,Re as Zr,fi as Zt,Rn as _,f as _i,Rr as _n,Tt as _r,kn as _t,_i as a,ye as ai,Pr as an,Rt as ar,hi as at,Xt as b,fe as bi,wr as bn,xt as br,Hn as bt,ur as c,m as ci,Lr as cn,Pt as cr,An as ct,Nn as d,be as di,Ei as dn,Mt as dr,Oi as dt,x as ei,Ln as en,Nt as er,Dr as et,yn as f,Se as fi,dn as fn,jt as fr,Pi as ft,zn as g,se as gi,Ur as gn,ht as gr,Mi as gt,jr as h,_ as hi,Fi as hn,ut as hr,Br as ht,Ni as i,le as ii,gn as in,Ot as ir,Tn as it,Li as j,xe as ji,Xr as jn,wt as jr,Zt as jt,Ai as k,ne as ki,Gt as kn,yt as kr,$t as kt,ui as l,g as li,Kn as ln,Bt as lr,jn as lt,ri as m,c as mi,Fn as mn,St as mr,ti as mt,Ti as n,o as ni,gr as nn,Ft as nr,wn as nt,ni as o,ge as oi,Cn as on,At as or,ir as ot,fr as p,ve as pi,ii as pn,Ct as pr,rr as pt,er as q,Sn as qn,w as qr,Yt as qt,vi as r,s as ri,dr as rn,Lt as rr,nr as rt,Jt as s,Ae as si,cn as sn,kt as sr,mi as st,X as t,b as ti,hr as tn,It as tr,Tr as tt,mn as u,re as ui,Di as un,zt as ur,un as ut,Pn as v,Me as vi,Mr as vn,bt as vr,Dn as vt,Ui as w,ee as wi,nn as wn,vt as wr,Hr as wt,bn as x,Fe as xi,zi as xn,lt as xr,Ri as xt,Vn as y,ae as yi,ki as yn,Et as yr,On as yt,ji as z,Ie as zi,wi as zn,k as zr,si as zt};
@@ -1,12 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{n as i}from"./chat-dock-context-Cnq0BWgm.js";import{Ft as a,N as o}from"./dist-DNkA3vYh.js";import{et as s,n as c,r as l}from"./store-B7EgrEO7.js";import{t as u}from"./utils-B-qS8qMg.js";import{Jt as d,N as f,Q as p,Sn as m,et as h,h as g,l as _,x as v,xn as y}from"./lucide-react-B-115rul.js";import{t as b}from"./button-B5aMz2Rk.js";import{i as x,n as S,r as C,t as w}from"./tooltip-Dvmz78Z_.js";import{Kr as T,Qt as E,ln as D}from"./api-OO3KSG8d.js";import{i as O,r as k}from"./browser-overlay-block-CiDtkfup.js";import{$n as A,A as j,C as M,D as N,E as P,En as F,G as I,Kt as L,O as R,R as z,S as B,T as V,Tr as H,V as U,b as W,g as G,h as K,qt as ee,w as te,x as q}from"./index-DD_a7tQU.js";import{t as ne}from"./use-active-dock-panel-instance-2LfvItRH.js";var J=e(n(),1),Y=t();async function re(e){let{projectId:t,oldText:n,newText:r,selection:i,replaceUnique:a=D}=e;if(n===r)return{kind:`unchanged`};try{let e=await a(t,n,r);if(e.applied&&e.path)return{kind:`replaced`,path:e.path}}catch{}return{kind:`prompt`,prompt:M(i,n,r)}}var X=r();function ie(e){let t=(0,Y.c)(43),{onCommit:n,onCancelPreview:r}=e,i=c(),a=l(Z),o=l(oe),u=l(ae),d;t[0]===a?d=t[1]:(d=e=>a?e.projectModelSelections[a]:void 0,t[0]=a,t[1]=d);let f=l(d),{selectedBrowserElement:p,setSelectedBrowserElement:m,setIsEditModeEnabled:h,setBrowserAgentProcessingThreadId:g}=j(),{handleSend:_}=ee(),{paneId:v,conversationId:y}=L(),[x,S]=(0,J.useState)(!1),C;if(t[2]!==u||t[3]!==o){let e;t[5]===o?e=t[6]:(e=e=>e.projectId===o,t[5]=o,t[6]=e),C=u.find(e),t[2]=u,t[3]=o,t[4]=C}else C=t[4];let w=C,T;t[7]===p?T=t[8]:(T=V(p),t[7]=p,t[8]=T);let E=T,D;t[9]!==h||t[10]!==m?(D=()=>{S(!1),h(!1),m(null)},t[9]=h,t[10]=m,t[11]=D):D=t[11];let O=D,k;t[12]!==y||t[13]!==i||t[14]!==O||t[15]!==_||t[16]!==v||t[17]!==w?.lastSelectedModel||t[18]!==w?.lastSelectedModelProvider||t[19]!==o||t[20]!==a||t[21]!==g||t[22]!==f?.id||t[23]!==f?.provider?(k=async e=>{if(!o){A({title:`No project selected`,description:`Open a project to apply text edits.`,variant:`destructive`}),O();return}S(!0);let t=await re({projectId:o,oldText:e.originalText,newText:e.currentText,selection:e.selection});if(t.kind===`unchanged`){A({title:`No text changes detected`}),O();return}if(t.kind===`replaced`){A({title:`Text updated`,description:`Replaced in ${t.path}`}),O();return}let n=f?.id??w?.lastSelectedModel,r=f?.provider??w?.lastSelectedModelProvider;if(!a||!n){A({title:`Could not apply text change`,description:`Select a chat thread and model to send this change as a prompt.`,variant:`destructive`}),S(!1);return}_(v,y,t.prompt,n,[],r),i({type:s.SetChatInputDraft,threadId:v===`primary`?a:`${a}:${v}`,draft:``}),g(a),O()},t[12]=y,t[13]=i,t[14]=O,t[15]=_,t[16]=v,t[17]=w?.lastSelectedModel,t[18]=w?.lastSelectedModelProvider,t[19]=o,t[20]=a,t[21]=g,t[22]=f?.id,t[23]=f?.provider,t[24]=k):k=t[24],w?.lastSelectedModel,w?.lastSelectedModelProvider,f?.id,f?.provider;let M=k,N,F;t[25]===E?(N=t[26],F=t[27]):(N=()=>{E||S(!1)},F=[E],t[25]=E,t[26]=N,t[27]=F),(0,J.useEffect)(N,F);let I,R;t[28]===M?(I=t[29],R=t[30]):(I=()=>{let e=function(e){let t=e.detail;te(t)&&M(t)},t=function(e){let t=P(e.data);t&&M(t)};return window.addEventListener(W,e),window.addEventListener(`message`,t),function(){window.removeEventListener(W,e),window.removeEventListener(`message`,t)}},R=[M],t[28]=M,t[29]=I,t[30]=R),(0,J.useEffect)(I,R);let z;t[31]!==O||t[32]!==r?(z=function(){r(),O()},t[31]=O,t[32]=r,t[33]=z):z=t[33];let B=z;if(!E)return null;let H;t[34]!==x||t[35]!==n?(H=(0,X.jsx)(b,{type:`button`,size:`sm`,onClick:n,disabled:x,children:`Apply Changes`}),t[34]=x,t[35]=n,t[36]=H):H=t[36];let U;t[37]!==B||t[38]!==x?(U=(0,X.jsx)(b,{type:`button`,size:`sm`,variant:`outline`,onClick:B,disabled:x,children:`Cancel`}),t[37]=B,t[38]=x,t[39]=U):U=t[39];let G;return t[40]!==H||t[41]!==U?(G=(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center justify-center gap-2 border-b border-border px-3 py-2`,children:[H,U]}),t[40]=H,t[41]=U,t[42]=G):G=t[42],G}function ae(e){return e.projects}function oe(e){return e.selectedProjectId}function Z(e){return e.selectedThreadId}function Q(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function se(e){return typeof e==`string`?e:typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}var ce=`tarsk-browser-page-title`;function le(e){if(!e)return null;if(typeof e==`string`)try{let t=JSON.parse(e);return t&&typeof t==`object`?t:null}catch{return null}return typeof e==`object`?e:null}function ue(e){let t=le(e);if(!t||t.type!==ce)return null;let n=t.payload;if(!n||typeof n!=`object`)return null;let r=n.title;return typeof r==`string`?r:null}function de(e){return ue(e)}function fe(e){return!e?.trim()}function pe(e,t){return fe(t)?e:t.trim()}function me(e){return e?e.querySelector(`electrobun-webview`):null}function he(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function ge(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function _e(e,t){if(t){ge(e);return}he(e)}function ve(e){return e!=null&&e.getClientRects().length>0}function ye(e,t,n){let r=!1,i=0;function a(){if(!r){if(e.webviewId==null){i=requestAnimationFrame(a);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),_e(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function be(e){let t=(0,Y.c)(8),{useNativeWebview:n,shouldRenderNativeWebview:r,currentUrl:i,resolveWebview:a}=e,[o,s]=(0,J.useState)(r),c;t[0]!==a||t[1]!==r||t[2]!==n?(c=()=>{if(!n)return;if(r){s(!0);return}let e=a();e&&he(e);let t=requestAnimationFrame(()=>{s(!1)});return function(){cancelAnimationFrame(t)}},t[0]=a,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l;return t[4]!==i||t[5]!==r||t[6]!==n?(l=[r,n,i],t[4]=i,t[5]=r,t[6]=n,t[7]=l):l=t[7],(0,J.useLayoutEffect)(c,l),o}var xe=o(`browser.preview-scripting`);function Se(e,t=!1,n=`select`){return`(function () {
2
- const api = window.__tarskBrowserPreview;
3
- if (!api || typeof api.setSelectMode !== "function") {
4
- log.error("[browser-preview] selection API is not available");
5
- return;
6
- }
7
- api.setSelectMode(${e?`true`:`false`}, ${t?`true`:`false`}, ${JSON.stringify(n)});
8
- })();`}function Ce(e){let t=e===`commit`?`commitTextEdit`:`cancelTextEdit`;return`(function () {
9
- const api = window.__tarskBrowserPreview;
10
- if (!api || typeof api.${t} !== "function") return;
11
- api.${t}();
12
- })();`}function we(e,t,n=!1,r=`select`){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(Se(t,n,r))}catch(i){throw xe.error(`[browser-preview] Failed to toggle native preview selection mode`,{enabled:t,preserveSelection:n,interaction:r,src:e.src,webview_id:e.webviewId,error:i instanceof Error?i.message:String(i),stack:i instanceof Error?i.stack:void 0}),i}}function Te(e,t){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);e.executeJavascript(t)}function Ee(e,t,n=!1,r=`select`){let i=e.contentWindow;if(!i)throw Error(`Browser preview frame is not ready`);let a=i.__tarskBrowserPreview;if(!a?.setSelectMode)throw Error(`Browser preview selection API is not available in iframe preview`);a.setSelectMode(t,n,r)}function De(e,t){let n=e.contentWindow?.__tarskBrowserPreview;if(!n||typeof n[t===`commit`?`commitTextEdit`:`cancelTextEdit`]!=`function`){xe.warn(`[browser-preview] Preview text-edit API unavailable; action ignored`,{action:t,src:e.src});return}if(t===`commit`){n.commitTextEdit?.();return}n.cancelTextEdit?.()}var Oe=o(`app.browser-tab.ui`),ke=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`]),Ae=new Set([`INPUT`,`TEXTAREA`,`SELECT`]),je=new Set([`combobox`,`listbox`,`menu`,`menubar`,`menuitem`,`option`,`radiogroup`,`tablist`,`tab`,`grid`,`slider`,`spinbutton`]);function Me(e){if(Ae.has(e.tagName)||e.isContentEditable)return!0;let t=e.getAttribute(`role`);return t!==null&&je.has(t)}function Ne(e){return e instanceof HTMLElement&&Me(e)}function Pe(e,t,n){let[r,i]=(0,J.useState)(!0),a=(0,J.useSyncExternalStore)(G,K),o=(0,J.useSyncExternalStore)(O,k),s=t&&(r&&!o||a),c=(0,J.useRef)(s);c.current=s;let l=(0,J.useCallback)(function(){return c.current},[]),u=(0,J.useCallback)(function(){i(ve(e.current))},[]);return(0,J.useLayoutEffect)(u),(0,J.useEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(u);return n.observe(t),function(){n.disconnect()}},[u,n]),{shouldShowWebview:s,readWebviewVisibility:l}}function Fe({devServerUrl:e,devServerStopped:t,isBrowserActive:n,currentUrl:r,browserResetTrigger:i,webviewRef:a,iframeRef:o,setCurrentUrl:s,setPendingUrl:c,setInputUrl:l,setSelectionModeError:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectedBrowserElement:p,setIsSelectionPromptOpen:m,setBrowserAgentProcessingThreadId:h,setBrowserPageTitle:g}){let _=(0,J.useRef)(r),v=(0,J.useRef)(null);_.current=r,(0,J.useEffect)(()=>{s(``),c(``),l(``),u(null),g(null),d(!1),f(!1),p(null),m(!1),h(null);let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``)},[i,h,g,d,f,m,p]),(0,J.useEffect)(()=>{if(t&&!e){s(``),c(``),l(``),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null));let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``);return}if(!e)return;let r=Q(e);l(r),(!_.current||_.current===v.current)&&(s(r),c(r),v.current=r),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null))},[e,t,n,h,d,f,m,p])}function Ie(e,t,n,r){let i=(0,Y.c)(9),a;i[0]!==n||i[1]!==e||i[2]!==r||i[3]!==t?(a=()=>{if(!e||!t)return;let i=function(e){ke.has(e.key)&&(Ne(e.target)||r.current?.contains(e.target)||(e.preventDefault(),n()))};return document.addEventListener(`keydown`,i,!0),function(){document.removeEventListener(`keydown`,i,!0)}},i[0]=n,i[1]=e,i[2]=r,i[3]=t,i[4]=a):a=i[4];let o;i[5]!==n||i[6]!==e||i[7]!==t?(o=[e,t,n],i[5]=n,i[6]=e,i[7]=t,i[8]=o):o=i[8],(0,J.useEffect)(a,o)}function Le(e){let t=(0,Y.c)(15),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,resolveWebview:a,setCurrentUrl:o,setPendingUrl:s,setInputUrl:c,setSelectionModeError:l,setBrowserPageTitle:u}=e,d;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==u||t[4]!==o||t[5]!==c||t[6]!==s||t[7]!==l||t[8]!==n?(d=()=>{let e=a();if(!n||!e||!r)return;let t=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),s(``),c(t))},d=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),c(t))},f=function(e){let t=se(e.detail);t&&E(t)},p=function(e){let t=de(e.detail);if(t!=null){u(e=>pe(e,t));return}let n=R(e.detail);if(n){B(n);return}let r=N(e.detail);r&&(l(null),q(r))};return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,d),e.on(`new-window-open`,f),e.on(`host-message`,p),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,d),e.off(`new-window-open`,f),e.off(`host-message`,p)}},t[0]=i,t[1]=r,t[2]=a,t[3]=u,t[4]=o,t[5]=c,t[6]=s,t[7]=l,t[8]=n,t[9]=d):d=t[9];let f;t[10]!==i||t[11]!==r||t[12]!==u||t[13]!==n?(f=[i,n,r,u],t[10]=i,t[11]=r,t[12]=u,t[13]=n,t[14]=f):f=t[14],(0,J.useEffect)(d,f)}function Re(e){let t=(0,Y.c)(23),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,deviceMode:a,shouldShowWebview:o,pendingUrl:s,readWebviewVisibility:c,resolveWebview:l}=e,u;t[0]!==r||t[1]!==l||t[2]!==o||t[3]!==n?(u=()=>{if(!n||!r)return;let e=l();!e||e.webviewId==null||_e(e,o)},t[0]=r,t[1]=l,t[2]=o,t[3]=n,t[4]=u):u=t[4];let d;t[5]!==i||t[6]!==a||t[7]!==r||t[8]!==o||t[9]!==n?(d=[r,n,i,a,o],t[5]=i,t[6]=a,t[7]=r,t[8]=o,t[9]=n,t[10]=d):d=t[10],(0,J.useLayoutEffect)(u,d);let f;t[11]!==r||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==n?(f=()=>{let e=l();if(!(!n||!e||!s||!r))return ye(e,s,c)},t[11]=r,t[12]=s,t[13]=c,t[14]=l,t[15]=n,t[16]=f):f=t[16];let p;t[17]!==i||t[18]!==r||t[19]!==s||t[20]!==c||t[21]!==n?(p=[s,n,i,r,c],t[17]=i,t[18]=r,t[19]=s,t[20]=c,t[21]=n,t[22]=p):p=t[22],(0,J.useEffect)(f,p)}function ze({isBrowserActive:e,currentUrl:t,isSelectModeEnabled:n,isEditModeEnabled:r,isSelectionPromptOpen:i,nativeWebviewMounted:a,useNativeWebview:o,resolveWebview:s,iframeRef:c,setIsSelectModeEnabled:l,setIsEditModeEnabled:u,setSelectionModeError:d}){(0,J.useEffect)(()=>{if(!e)return;if(!t){n&&l(!1),r&&u(!1);return}let f=!1,p=n||r,m=r?`edit`:`select`,h=!p&&i;function g(){try{if(o){let e=s();if(!e||e.webviewId==null||!a)return;we(e,p,h,m);return}let e=c.current;if(!e)return;Ee(e,p,h,m)}catch(e){if(f||!p)return;let t=e instanceof Error?e.message:`Could not enable element selection.`;Oe.error(`Failed to toggle browser selection mode:`,e),d(t),l(!1),u(!1),A({title:`Selection mode unavailable`,description:t,variant:`destructive`})}}return g(),function(){f=!0}},[t,e,r,n,i,a,u,l,o])}function Be(e,t){let n=(0,Y.c)(8),r,i;n[0]!==e||n[1]!==t?(r=()=>{if(!e)return;let n=function(e){let n=ue(e.data);n!=null&&t(e=>pe(e,n))};return window.addEventListener(`message`,n),function(){window.removeEventListener(`message`,n)}},i=[e,t],n[0]=e,n[1]=t,n[2]=r,n[3]=i):(r=n[2],i=n[3]),(0,J.useEffect)(r,i);let a,o;n[4]!==e||n[5]!==t?(a=()=>{if(e)return function(){t(null)}},o=[e,t],n[4]=e,n[5]=t,n[6]=a,n[7]=o):(a=n[6],o=n[7]),(0,J.useEffect)(a,o)}function Ve(e){let t=ne(e,`browser`),{devServerUrl:n,devServerStopped:r}=U(),{browserResetTrigger:i,setBrowserPageTitle:a,browserDeviceMode:o,setBrowserDeviceMode:s,isSelectModeEnabled:c,setIsSelectModeEnabled:u,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_}=j(),v=l(e=>e.selectedProjectId),y=l(e=>e.projects).find(e=>e.projectId===v),[b,x]=(0,J.useState)(``),[S,C]=(0,J.useState)(``),[w,D]=(0,J.useState)(``),[O,k]=(0,J.useState)(o),[A,M]=(0,J.useState)(null),N=(0,J.useRef)(null),P=(0,J.useRef)(w),I=(0,J.useRef)(null),L=(0,J.useRef)(null),R=T(),z=F(),B=R&&!!S;P.current=w;function H(){return N.current??me(L.current)}let{shouldShowWebview:W,readWebviewVisibility:G}=Pe(L,t,S),K=be({useNativeWebview:R,shouldRenderNativeWebview:B,currentUrl:S,resolveWebview:H});Fe({devServerUrl:n,devServerStopped:r,isBrowserActive:t,currentUrl:S,browserResetTrigger:i,webviewRef:N,iframeRef:I,setCurrentUrl:C,setPendingUrl:D,setInputUrl:x,setSelectionModeError:M,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,setBrowserAgentProcessingThreadId:_,setBrowserPageTitle:a}),Ie(t,R,(0,J.useCallback)(function(){R?H()?.focus():I.current?.contentWindow?.focus()},[R]),L),Le({useNativeWebview:R,nativeWebviewMounted:K,currentUrl:S,resolveWebview:H,setCurrentUrl:C,setPendingUrl:D,setInputUrl:x,setSelectionModeError:M,setBrowserPageTitle:a}),Be(t,a),Re({useNativeWebview:R,nativeWebviewMounted:K,currentUrl:S,deviceMode:O,shouldShowWebview:W,pendingUrl:w,readWebviewVisibility:G,resolveWebview:H}),ze({isBrowserActive:t,currentUrl:S,isSelectModeEnabled:c,isEditModeEnabled:d,isSelectionPromptOpen:g,nativeWebviewMounted:K,useNativeWebview:R,resolveWebview:H,iframeRef:I,setIsSelectModeEnabled:u,setIsEditModeEnabled:f,setSelectionModeError:M}),(0,J.useEffect)(()=>{k(o)},[o]);let ee=(0,J.useCallback)(e=>{N.current=e,e&&ye(e,P.current,G)},[G]);function te(e){k(e),s(e)}function q(){M(null),u(!1),f(!1),m(null),h(!1)}function Y(e){try{if(R){let t=H();if(!t)return;Te(t,Ce(e));return}let t=I.current;if(!t)return;De(t,e)}catch(e){Oe.error(`Failed to run preview text edit action:`,e)}}function re(e){let t=Q(e);t&&(x(t),C(t),D(t),q())}function X(e){e.key===`Enter`&&re(b)}function ie(){if(q(),R){let e=H();e&&e.reload();return}let e=I.current;if(!e)return;let t=e.src;e.src=``,requestAnimationFrame(()=>{e.src=t})}function ae(){if(q(),R){let e=H();e&&e.executeJavascript(`history.back()`);return}Z(-1)}function oe(){if(q(),R){let e=H();e&&e.executeJavascript(`history.forward()`);return}Z(1)}function Z(e){let t=I.current;if(!(!t||!t.contentWindow))try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}function se(){M(null),f(!1),V(p)&&(Y(`cancel`),m(null)),u(e=>!e)}function ce(){if(M(null),u(!1),h(!1),V(p)){Y(`cancel`),m(null),f(!1);return}f(e=>!e)}return{isBrowserActive:t,devServerStopped:r,selectedProjectId:v,runCommand:y?.runCommand,currentUrl:S,inputUrl:b,setInputUrl:x,handleKeyDown:X,deviceMode:O,updateDeviceMode:te,selectionModeError:A,isSelectModeEnabled:c,isEditModeActive:d||V(p),isSurfaceSelectInteraction:c||d,toggleSelectMode:se,toggleEditMode:ce,refresh:ie,goBack:ae,goForward:oe,openExternal:()=>void E(S),runPreviewTextEdit:Y,previewContainerRef:L,iframeRef:I,handleWebviewRef:ee,useNativeWebview:R,nativeWebviewMounted:K,previewRpcPreload:z}}var He={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}};function Ue(e){let t=(0,Y.c)(7),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,previewRpcPreload:a,handleWebviewRef:o,iframeRef:s}=e;if(n){if(!r)return null;let e;return t[0]!==i||t[1]!==o||t[2]!==a?(e=(0,J.createElement)(`electrobun-webview`,{ref:o,src:i,preload:a,renderer:`native`,className:`block h-full w-full bg-background`}),t[0]=i,t[1]=o,t[2]=a,t[3]=e):e=t[3],e}let c;return t[4]!==i||t[5]!==s?(c=(0,X.jsx)(`iframe`,{ref:s,src:i,className:`h-full w-full border-none`,title:`Browser`,sandbox:`allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads`}),t[4]=i,t[5]=s,t[6]=c):c=t[6],c}function We(e){let t=(0,Y.c)(18),{selectionModeError:n,isSelectModeEnabled:r,deviceMode:i,currentDeviceConfig:a,previewContainerRef:o,children:s}=e,c;t[0]===n?c=t[1]:(c=n&&(0,X.jsxs)(`div`,{className:`border-b border-destructive/20 bg-destructive/5 px-3 py-2 text-sm text-destructive`,children:[`Element selection is unavailable: `,n]}),t[0]=n,t[1]=c);let l=r&&`cursor-crosshair`,d;t[2]===l?d=t[3]:(d=u(`flex min-h-0 flex-1 items-center justify-center bg-background`,l),t[2]=l,t[3]=d);let f=`overflow-hidden border border-border bg-background shadow-sm ${i===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,p;t[4]!==a.height||t[5]!==a.width?(p={width:a.width,height:a.height,maxWidth:`100%`,maxHeight:`100%`},t[4]=a.height,t[5]=a.width,t[6]=p):p=t[6];let m;t[7]!==s||t[8]!==f||t[9]!==p?(m=(0,X.jsx)(`div`,{className:f,style:p,children:s}),t[7]=s,t[8]=f,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==o||t[12]!==d||t[13]!==m?(h=(0,X.jsx)(`div`,{ref:o,className:d,children:m}),t[11]=o,t[12]=d,t[13]=m,t[14]=h):h=t[14];let g;return t[15]!==c||t[16]!==h?(g=(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[c,h]}),t[15]=c,t[16]=h,t[17]=g):g=t[17],g}function Ge(e){let t=(0,Y.c)(3),{previewContainerRef:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,X.jsx)(`div`,{className:`hidden`,"aria-hidden":`true`,children:(0,X.jsx)(`div`,{ref:n,children:r})}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i}function $(e){let t=(0,Y.c)(16),{onClick:n,label:r,children:i,isActive:a,disabled:o,activeStyle:s}=e,c=a===void 0?!1:a,l=o===void 0?!1:o,d=s===void 0?`elevated`:s,f=l&&`cursor-not-allowed text-muted-foreground/50`,p=!l&&!c&&`text-muted-foreground hover:bg-background/50 hover:text-foreground`,m=!l&&c&&d===`depressed`&&`bg-muted text-primary shadow-[inset_0_2px_4px_rgba(0,0,0,0.14)] ring-1 ring-inset ring-border/80 dark:shadow-[inset_0_2px_4px_rgba(0,0,0,0.35)]`,h=!l&&c&&d===`elevated`&&`bg-background text-foreground shadow-sm`,g;t[0]!==f||t[1]!==p||t[2]!==m||t[3]!==h?(g=u(`rounded p-1.5 transition-all`,f,p,m,h),t[0]=f,t[1]=p,t[2]=m,t[3]=h,t[4]=g):g=t[4];let _;t[5]!==i||t[6]!==l||t[7]!==c||t[8]!==n||t[9]!==g?(_=(0,X.jsx)(x,{asChild:!0,children:(0,X.jsx)(`button`,{type:`button`,onClick:n,disabled:l,"aria-pressed":c,className:g,children:i})}),t[5]=i,t[6]=l,t[7]=c,t[8]=n,t[9]=g,t[10]=_):_=t[10];let v;t[11]===r?v=t[12]:(v=(0,X.jsx)(S,{children:r}),t[11]=r,t[12]=v);let y;return t[13]!==v||t[14]!==_?(y=(0,X.jsxs)(w,{children:[_,v]}),t[13]=v,t[14]=_,t[15]=y):y=t[15],y}function Ke(e){let t=(0,Y.c)(43),{controller:n,urlInputRef:r}=e,{currentUrl:i,inputUrl:a,setInputUrl:o,handleKeyDown:s,goBack:c,goForward:l,refresh:b,toggleSelectMode:x,toggleEditMode:S,openExternal:C,updateDeviceMode:w,selectionModeError:T,isSelectModeEnabled:E,isEditModeActive:D,deviceMode:O}=n,k;t[0]!==i||t[1]!==c?(k=i&&(0,X.jsx)($,{onClick:c,label:`Back`,children:(0,X.jsx)(m,{size:15})}),t[0]=i,t[1]=c,t[2]=k):k=t[2];let A;t[3]!==i||t[4]!==l?(A=i&&(0,X.jsx)($,{onClick:l,label:`Forward`,children:(0,X.jsx)(y,{size:15})}),t[3]=i,t[4]=l,t[5]=A):A=t[5];let j;t[6]===o?j=t[7]:(j=e=>o(e.target.value),t[6]=o,t[7]=j);let M;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(M=u(`flex-1 rounded-full bg-muted font-mono`),t[8]=M):M=t[8];let N;t[9]!==s||t[10]!==a||t[11]!==j||t[12]!==r?(N=(0,X.jsx)(H,{ref:r,type:`text`,value:a,onChange:j,onKeyDown:s,placeholder:`Enter URL...`,className:M,spellCheck:!1}),t[9]=s,t[10]=a,t[11]=j,t[12]=r,t[13]=N):N=t[13];let P;t[14]!==i||t[15]!==b?(P=i&&(0,X.jsx)($,{onClick:b,label:`Refresh page`,children:(0,X.jsx)(f,{size:15})}),t[14]=i,t[15]=b,t[16]=P):P=t[16];let F;t[17]!==i||t[18]!==E||t[19]!==T||t[20]!==x?(F=i&&(0,X.jsx)($,{onClick:x,label:T?`Select element unavailable: ${T}`:E?`Exit element selection`:`Select element from preview`,isActive:E,activeStyle:`depressed`,children:(0,X.jsx)(p,{size:15})}),t[17]=i,t[18]=E,t[19]=T,t[20]=x,t[21]=F):F=t[21];let I;t[22]!==i||t[23]!==D||t[24]!==T||t[25]!==S?(I=i&&(0,X.jsx)($,{onClick:S,label:T?`Edit text unavailable: ${T}`:D?`Exit text editing`:`Edit text from preview`,isActive:D,activeStyle:`depressed`,children:(0,X.jsx)(_,{size:15})}),t[22]=i,t[23]=D,t[24]=T,t[25]=S,t[26]=I):I=t[26];let L;t[27]!==i||t[28]!==O||t[29]!==w?(L=i&&(0,X.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,X.jsx)($,{onClick:()=>w(`desktop`),label:`Desktop view`,isActive:O===`desktop`,children:(0,X.jsx)(h,{size:15})}),(0,X.jsx)($,{onClick:()=>w(`tablet`),label:`Tablet view`,isActive:O===`tablet`,children:(0,X.jsx)(g,{size:15})}),(0,X.jsx)($,{onClick:()=>w(`mobile`),label:`Mobile view`,isActive:O===`mobile`,children:(0,X.jsx)(v,{size:15})})]}),t[27]=i,t[28]=O,t[29]=w,t[30]=L):L=t[30];let R;t[31]!==i||t[32]!==C?(R=i&&(0,X.jsx)($,{onClick:C,label:`Open in external browser`,children:(0,X.jsx)(d,{size:15})}),t[31]=i,t[32]=C,t[33]=R):R=t[33];let z;return t[34]!==k||t[35]!==R||t[36]!==A||t[37]!==N||t[38]!==P||t[39]!==F||t[40]!==I||t[41]!==L?(z=(0,X.jsx)(`div`,{className:`relative shrink-0 border-b border-border`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[k,A,N,P,F,I,L,R]})}),t[34]=k,t[35]=R,t[36]=A,t[37]=N,t[38]=P,t[39]=F,t[40]=I,t[41]=L,t[42]=z):z=t[42],z}function qe(e){let t=(0,Y.c)(6),{devServerStopped:n,selectedProjectId:r,runCommand:i}=e,o=I(),s=l(Je),c;return t[0]!==n||t[1]!==i||t[2]!==r||t[3]!==s||t[4]!==o?(c=(0,X.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:n?(0,X.jsx)(`p`,{className:a.body,children:`Dev server stopped`}):r&&s&&i&&!o?(0,X.jsx)(z,{projectId:r,runCommand:i,large:!0}):(0,X.jsx)(`p`,{className:a.body,children:`Enter a URL to browse`})}),t[0]=n,t[1]=i,t[2]=r,t[3]=s,t[4]=o,t[5]=c):c=t[5],c}function Je(e){return e.selectedThreadId}function Ye(e){let t=(0,Y.c)(23),{instanceId:n}=e,r=Ve(n),a=He[r.deviceMode],{registerPanelFocus:o}=i(),s=(0,J.useRef)(null),c,l;t[0]!==n||t[1]!==o?(c=()=>o(n,()=>s.current?.focus()),l=[n,o],t[0]=n,t[1]=o,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,J.useEffect)(c,l);let u;t[4]!==r.currentUrl||t[5]!==r.handleWebviewRef||t[6]!==r.iframeRef||t[7]!==r.nativeWebviewMounted||t[8]!==r.previewRpcPreload||t[9]!==r.useNativeWebview?(u=(0,X.jsx)(Ue,{useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,currentUrl:r.currentUrl,previewRpcPreload:r.previewRpcPreload,handleWebviewRef:r.handleWebviewRef,iframeRef:r.iframeRef}),t[4]=r.currentUrl,t[5]=r.handleWebviewRef,t[6]=r.iframeRef,t[7]=r.nativeWebviewMounted,t[8]=r.previewRpcPreload,t[9]=r.useNativeWebview,t[10]=u):u=t[10];let d=u;if(!r.isBrowserActive){let e;return t[11]!==r.previewContainerRef||t[12]!==d?(e=(0,X.jsx)(Ge,{previewContainerRef:r.previewContainerRef,children:d}),t[11]=r.previewContainerRef,t[12]=d,t[13]=e):e=t[13],e}let f;t[14]===r?f=t[15]:(f=(0,X.jsx)(Ke,{controller:r,urlInputRef:s}),t[14]=r,t[15]=f);let p;t[16]!==r||t[17]!==a||t[18]!==d?(p=r.currentUrl?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(ie,{onCommit:()=>r.runPreviewTextEdit(`commit`),onCancelPreview:()=>r.runPreviewTextEdit(`cancel`)}),(0,X.jsx)(We,{selectionModeError:r.selectionModeError,isSelectModeEnabled:r.isSurfaceSelectInteraction,deviceMode:r.deviceMode,currentDeviceConfig:a,previewContainerRef:r.previewContainerRef,children:d})]}):(0,X.jsx)(qe,{devServerStopped:r.devServerStopped,selectedProjectId:r.selectedProjectId,runCommand:r.runCommand}),t[16]=r,t[17]=a,t[18]=d,t[19]=p):p=t[19];let m;return t[20]!==f||t[21]!==p?(m=(0,X.jsx)(C,{children:(0,X.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[f,p]})}),t[20]=f,t[21]=p,t[22]=m):m=t[22],m}export{Ye as BrowserTab};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{N as i,k as a,q as o}from"./dist-DNkA3vYh.js";import{et as s,i as c,n as l,q as u,r as d,tt as f}from"./store-B7EgrEO7.js";import{Et as p,Sn as m,Vt as h,Zt as g}from"./api-OO3KSG8d.js";var _=e(n(),1),ee=r(),v=_.createContext(void 0),y=e=>{let t=_.useContext(v);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},b=({client:e,children:t})=>(_.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,ee.jsx)(v.Provider,{value:e,children:t})),x=t();function S({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:r,threadMultiPaneStates:i}){let a={};for(let e of r){let t=i[e];!t||Object.keys(t.extraChatPanes).length===0||(a[e]={focusedPaneId:t.focusedPane,panes:Object.entries(t.extraChatPanes).map(([e,t])=>({paneId:e,conversationId:t.conversationId}))})}return{version:1,nonChatWindows:e,layout:t===null?`grid`:`expanded`,expandedWindowId:t,selectedWindowId:n,chatPanesByThread:a}}function te(e,t){let n=new Set(t?e.chatPanesByThread[t]?.panes.map(e=>e.paneId)??[]:[]),r=new Set(e.nonChatWindows.map(e=>e.id)),i=n.size>0||r.size>0;function a(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=a(e.selectedWindowId)?e.selectedWindowId:o,c=null;return e.layout===`expanded`&&i&&(c=a(e.expandedWindowId)?e.expandedWindowId:o),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var C=i(`app.window-state`);function w(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function T({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=l(),o=d(e=>e.selectedProjectId),c=d(e=>e.projects),u=d(e=>e.threadMultiPaneStates),f=c.find(e=>e.projectId===o),h=(f?.threads.map(e=>e.threadId)??[]).join(`\0`),g=f!==void 0,[ee,v]=(0,_.useState)(null),y=(0,_.useRef)(null),b=(0,_.useRef)(Promise.resolve()),x=(0,_.useRef)(null),te=(0,_.useRef)(0),T=(0,_.useRef)(w(e,t,n));T.current=w(e,t,n),(0,_.useEffect)(()=>{let e=x.current!==o;if(x.current=o,!o||!g){r(),v(null),y.current=null;return}e&&(r(),v(null),y.current=null);let t=o,n=h?h.split(`\0`):[],c=T.current,l=++te.current,u=!1;async function d(){try{let e=await p(t);if(u||l!==te.current)return;if(a({type:s.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),T.current!==c){v(t);return}y.current=JSON.stringify(e),i(e),v(t)}catch(e){u||C.error(`Failed to restore project window state`,e)}}return d(),()=>{u=!0}},[a,g,i,r,h,o]),(0,_.useEffect)(()=>{if(!o||o!==ee||!g)return;let r=S({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:h?h.split(`\0`):[],threadMultiPaneStates:u}),i=JSON.stringify(r);if(i===y.current)return;let a=o;y.current=i,b.current=b.current.catch(()=>void 0).then(()=>m(a,r)).catch(e=>{C.error(`Failed to save project window state`,e),y.current===i&&(y.current=null)})},[t,g,ee,e,o,n,h,u])}var E={onboarding:{status:()=>[`onboarding`,`status`]},app:{update:()=>[`app`,`update`]},models:{enabled:e=>[`models`,`enabled`,e],enabledImage:e=>[`models`,`enabled-image`,e]},userTasks:e=>[`user-tasks`,e],threads:{files:e=>[`threads`,`files`,e]},conversations:{recent:()=>[`conversations`,`recent`],unread:e=>[`conversations`,`unread`,e??null],unreadAll:()=>[`conversations`,`unread`]}},ne=(0,_.createContext)(null);function re(e){let t=(0,x.c)(19),{windows:n,extraChatPanes:r,primaryChatOpen:i,expandedWindowId:a,selectedWindowId:s,setExpandedWindowId:c,setSelectedWindowId:l}=e,u,d;t[0]!==a||t[1]!==r||t[2]!==i||t[3]!==c||t[4]!==n?(u=()=>{if(a){if(a===`primary`){if(i)return;c(n.length>0?n[0].id:null);return}!n.some(e=>e.id===a)&&!r[a]&&c(i?o:n[0]?.id??null)}},d=[a,r,i,n,c],t[0]=a,t[1]=r,t[2]=i,t[3]=c,t[4]=n,t[5]=u,t[6]=d):(u=t[5],d=t[6]),(0,_.useEffect)(u,d);let f,p;t[7]!==r||t[8]!==i||t[9]!==s||t[10]!==l||t[11]!==n?(f=()=>{if(s===`primary`){if(i||n.length===0)return;l(n[0].id);return}!n.some(e=>e.id===s)&&!r[s]&&l(i?o:n[0]?.id??`primary`)},p=[r,i,s,n,l],t[7]=r,t[8]=i,t[9]=s,t[10]=l,t[11]=n,t[12]=f,t[13]=p):(f=t[12],p=t[13]),(0,_.useEffect)(f,p);let m,h;t[14]!==a||t[15]!==c||t[16]!==n.length?(m=()=>{n.length===0&&a!==null&&c(null)},h=[a,n.length,c],t[14]=a,t[15]=c,t[16]=n.length,t[17]=m,t[18]=h):(m=t[17],h=t[18]),(0,_.useEffect)(m,h)}function ie(e){return e.filter(e=>e.panelId!==`tasks`)}function ae(e,t,n,r){t.panelId===`chat`?n({type:s.RemoveChatPane,paneId:e}):r(t=>t.filter(t=>t.id!==e))}var oe=i(`chat.dock`);function D(e,t,n,r){return e.processingRuns.some(e=>e.threadId===t&&e.conversationId===r)||u(e.threadStreamingStates,t,n).isStreaming||n===f&&e.pendingChatMessage?.threadId===t?!0:e.queuedChatMessages.some(e=>e.threadId===t&&e.paneId===n)}function se(e,t,n){g(e,t).catch(n=>{oe.error(`Failed to mark conversation read on chat window close`,{error:n,threadId:e,conversationId:t})}).finally(()=>{n.invalidateQueries({queryKey:E.conversations.unreadAll()})})}async function ce(e,t,n){let r=t.selectedThreadId;if(!r)return;let i=e===f?t.primaryConversationId:t.extraChatPanes[e]?.conversationId;if(!i&&e===f)try{i=(await h(r)).currentConversationId??void 0}catch(e){oe.error(`Failed to resolve current conversation on chat window close`,{error:e,threadId:r});return}!i||D(t,r,e,i)||se(r,i,n)}function le(e,t,n,r){if(n.length===1)return null;if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?o:i[0]?.id??null}function ue(e,t,n,r){if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?o:i[0]?.id??`primary`}function de(e,t,n){return t.length===0?null:e===`primary`?n:e}function fe(e,t){return e===`primary`&&t?t:e}function O(e){let t=(0,x.c)(83),{children:n}=e,r=l(),i=c(),u=y(),p=d(ye),m=d(ve),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=[],t[0]=h):h=t[0];let[g,v]=(0,_.useState)(h),[b,S]=(0,_.useState)(!0),[C,w]=(0,_.useState)(null),[E,oe]=(0,_.useState)(`half`),[D,se]=(0,_.useState)(`tasks`),[O,k]=(0,_.useState)(o),[be,A]=(0,_.useState)(null),j;t[1]===m?j=t[2]:(j=Object.keys(m).map(_e),t[1]=m,t[2]=j);let M=j,N;t[3]!==g||t[4]!==p?(N=p?ie(g):g,t[3]=g,t[4]=p,t[5]=N):N=t[5];let xe=N,P;t[6]!==M||t[7]!==xe?(P=[...M,...xe],t[6]=M,t[7]=xe,t[8]=P):P=t[8];let F=P,I,L;t[9]===p?(I=t[10],L=t[11]):(I=()=>{p&&v(ge)},L=[p],t[9]=p,t[10]=I,t[11]=L),(0,_.useEffect)(I,L);let R;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(R=new Map,t[12]=R):R=t[12];let Se=(0,_.useRef)(R),z=(0,_.useRef)(null),B;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(B=(e,t)=>(Se.current.set(e,t),()=>{Se.current.delete(e)}),t[13]=B):B=t[13];let Ce=B,V;t[14]!==r||t[15]!==F?(V=e=>{if(e===`primary`){r({type:s.SetFocusedPane,paneId:`primary`}),r({type:s.FocusChatInput});return}if(F.find(t=>t.id===e)?.panelId===`chat`){r({type:s.SetFocusedPane,paneId:e}),r({type:s.FocusChatInput});return}Se.current.get(e)?.()},t[14]=r,t[15]=F,t[16]=V):V=t[16];let H=V,U,W;t[17]!==C||t[18]!==H||t[19]!==O?(U=()=>{let e=C??O;if(e===null)return;let t=z.current;z.current=e,!(t===null||t===e)&&H(e)},W=[C,O,H],t[17]=C,t[18]=H,t[19]=O,t[20]=U,t[21]=W):(U=t[20],W=t[21]),(0,_.useEffect)(U,W);let G;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>{z.current=o,v([]),S(!0),w(null),k(o),A(null)},t[22]=G):G=t[22];let we=G,K;t[23]===i?K=t[24]:(K=e=>{let t=i.getState().selectedThreadId,n=te(e,t),r=t?ie(n.nonChatWindows):n.nonChatWindows,a=new Set(n.nonChatWindows.filter(he).map(me)),s=t&&n.expandedWindowId&&a.has(n.expandedWindowId)?o:n.expandedWindowId,c=t&&a.has(n.selectedWindowId)?o:n.selectedWindowId;z.current=s??c,v(r),w(s),k(c),A(null)},t[23]=i,t[24]=K);let Te=K,q;t[25]!==C||t[26]!==Te||t[27]!==g||t[28]!==O?(q={nonChatWindows:g,expandedWindowId:C,selectedWindowId:O,onReset:we,onHydrate:Te},t[25]=C,t[26]=Te,t[27]=g,t[28]=O,t[29]=q):q=t[29],T(q);let J;t[30]!==C||t[31]!==m||t[32]!==b||t[33]!==O||t[34]!==F?(J={windows:F,extraChatPanes:m,primaryChatOpen:b,expandedWindowId:C,selectedWindowId:O,setExpandedWindowId:w,setSelectedWindowId:k},t[30]=C,t[31]=m,t[32]=b,t[33]=O,t[34]=F,t[35]=J):J=t[35],re(J);let Y;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>{k(e)},t[36]=Y):Y=t[36];let Ee=Y,X;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(X=e=>{e===`primary`&&S(!0),k(e),w(e)},t[37]=X):X=t[37];let De=X,Z;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(Z=()=>{w(null)},t[38]=Z):Z=t[38];let Oe=Z,Q;t[39]!==b||t[40]!==F.length?(Q=e=>{e===`primary`&&S(!0),w(t=>t===null&&F.length>0||t===null&&b&&e!==`primary`?null:e),A(e)},t[39]=b,t[40]=F.length,t[41]=Q):Q=t[41];let $=Q,ke;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(ke=()=>{A(null)},t[42]=ke):ke=t[42];let Ae=ke,je;t[43]!==r||t[44]!==$||t[45]!==p?(je=e=>{let t=a();return e===`chat`?p?(r({type:s.AddChatPane,paneId:t,conversationId:a()}),$(t),t):t:(v(n=>[...n,{id:t,panelId:e}]),$(t),t)},t[43]=r,t[44]=$,t[45]=p,t[46]=je):je=t[46];let Me=je,Ne;t[47]!==r||t[48]!==b||t[49]!==u||t[50]!==i||t[51]!==F?(Ne=e=>{if(e===`primary`){ce(f,i.getState(),u),S(!1);let e=F[0]?.id??null;w(t=>de(t,F,e)),k(t=>fe(t,e));return}let t=F.find(t=>t.id===e);t&&(t.panelId===`chat`&&!b&&!F.some(t=>t.panelId===`chat`&&t.id!==e)||(t.panelId===`chat`&&ce(e,i.getState(),u),ae(e,t,r,v),w(t=>le(t,e,F,b)),k(t=>ue(t,e,F,b))))},t[47]=r,t[48]=b,t[49]=u,t[50]=i,t[51]=F,t[52]=Ne):Ne=t[52];let Pe=Ne,Fe;t[53]!==r||t[54]!==u||t[55]!==i||t[56]!==F?(Fe=()=>{w(null),k(o),S(!0);let e=i.getState();for(let t of F)t.panelId===`chat`&&(ce(t.id,e,u),r({type:s.RemoveChatPane,paneId:t.id}));v([])},t[53]=r,t[54]=u,t[55]=i,t[56]=F,t[57]=Fe):Fe=t[57];let Ie=Fe,Le;t[58]!==M||t[59]!==g?(Le=e=>e===`chat`?M[0]:g.find(t=>t.panelId===e),t[58]=M,t[59]=g,t[60]=Le):Le=t[60];let Re=Le,ze;t[61]!==b||t[62]!==F?(ze=e=>e===`chat`?b||F.some(pe):F.some(t=>t.panelId===e),t[61]=b,t[62]=F,t[63]=ze):ze=t[63];let Be=ze,Ve=F.length>0,He=C!==null,Ue;t[64]!==Me||t[65]!==Ie||t[66]!==Pe||t[67]!==E||t[68]!==C||t[69]!==Re||t[70]!==Ve||t[71]!==He||t[72]!==Be||t[73]!==be||t[74]!==b||t[75]!==$||t[76]!==O||t[77]!==D||t[78]!==F?(Ue={windows:F,addWindow:Me,closeWindow:Pe,closeAllWindows:Ie,isPrimaryChatOpen:b,isPanelOpen:Be,findWindowByPanel:Re,hasOpenWindows:Ve,isLayoutExpanded:He,expandedWindowId:C,expandWindow:De,collapseLayout:Oe,columnWidth:E,setColumnWidth:oe,selectedWindowId:O,selectWindow:Ee,revealWindow:$,pendingScrollWindowId:be,clearPendingScrollWindow:Ae,tasksView:D,setTasksView:se,registerPanelFocus:Ce},t[64]=Me,t[65]=Ie,t[66]=Pe,t[67]=E,t[68]=C,t[69]=Re,t[70]=Ve,t[71]=He,t[72]=Be,t[73]=be,t[74]=b,t[75]=$,t[76]=O,t[77]=D,t[78]=F,t[79]=Ue):Ue=t[79];let We=Ue,Ge;return t[80]!==n||t[81]!==We?(Ge=(0,ee.jsx)(ne.Provider,{value:We,children:n}),t[80]=n,t[81]=We,t[82]=Ge):Ge=t[82],Ge}function pe(e){return e.panelId===`chat`}function me(e){return e.id}function he(e){return e.panelId===`tasks`}function ge(e){let t=ie(e);return t.length===e.length?e:t}function _e(e){return{id:e,panelId:`chat`}}function ve(e){return e.extraChatPanes}function ye(e){return e.selectedThreadId}function k(){let e=(0,_.useContext)(ne);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}export{y as a,b as i,k as n,E as r,O as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Ft as i}from"./dist-DNkA3vYh.js";import{t as a}from"./utils-B-qS8qMg.js";import{gn as o,pn as s,sn as c}from"./lucide-react-B-115rul.js";import{g as l,h as u,l as d,t as f,u as p}from"./dist-T8-4ZfS0.js";import{_ as m,a as ee,c as te,d as ne,f as re,g as ie,h as ae,i as oe,l as h,m as se,n as ce,o as le,p as ue,r as de,s as fe,t as pe,u as g}from"./dist-CWYnBq-n.js";var _=t(),v=e(n(),1),y=r(),b=`ContextMenu`,[me,he]=u(b,[m]),x=m(),[ge,S]=me(b),C=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=v.useState(!1),c=x(t),l=d(r),u=v.useCallback(e=>{s(e),l(e)},[l]);return(0,y.jsx)(ge,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,y.jsx)(re,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};C.displayName=b;var w=`ContextMenuTrigger`,T=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=S(w,n),o=x(n),s=v.useRef({x:0,y:0}),c=v.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),u=v.useRef(0),d=v.useCallback(()=>window.clearTimeout(u.current),[]),f=e=>{s.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return v.useEffect(()=>d,[d]),v.useEffect(()=>void(r&&d()),[r,d]),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(pe,{...o,virtualRef:c}),(0,y.jsx)(p.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:l(e.onContextMenu,e=>{d(),f(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:l(e.onPointerDown,V(e=>{d(),u.current=window.setTimeout(()=>f(e),700)})),onPointerMove:r?e.onPointerMove:l(e.onPointerMove,V(d)),onPointerCancel:r?e.onPointerCancel:l(e.onPointerCancel,V(d)),onPointerUp:r?e.onPointerUp:l(e.onPointerUp,V(d))})]})});T.displayName=w;var _e=`ContextMenuPortal`,E=e=>{let{__scopeContextMenu:t,...n}=e,r=x(t);return(0,y.jsx)(h,{...r,...n})};E.displayName=_e;var D=`ContextMenuContent`,O=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=S(D,n),a=x(n),o=v.useRef(!1);return(0,y.jsx)(oe,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});O.displayName=D;var ve=`ContextMenuGroup`,ye=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ee,{...i,...r,ref:t})});ye.displayName=ve;var be=`ContextMenuLabel`,k=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(te,{...i,...r,ref:t})});k.displayName=be;var A=`ContextMenuItem`,j=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(le,{...i,...r,ref:t})});j.displayName=A;var M=`ContextMenuCheckboxItem`,N=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(de,{...i,...r,ref:t})});N.displayName=M;var xe=`ContextMenuRadioGroup`,Se=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(g,{...i,...r,ref:t})});Se.displayName=xe;var Ce=`ContextMenuRadioItem`,P=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ne,{...i,...r,ref:t})});P.displayName=Ce;var we=`ContextMenuItemIndicator`,F=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(fe,{...i,...r,ref:t})});F.displayName=we;var Te=`ContextMenuSeparator`,I=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ue,{...i,...r,ref:t})});I.displayName=Te;var L=`ContextMenuArrow`,Ee=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ce,{...i,...r,ref:t})});Ee.displayName=L;var R=`ContextMenuSub`,De=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=x(t),[s,c]=f({prop:i,defaultProp:a??!1,onChange:r,caller:R});return(0,y.jsx)(se,{...o,open:s,onOpenChange:c,children:n})};De.displayName=R;var Oe=`ContextMenuSubTrigger`,z=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ie,{...i,...r,ref:t})});z.displayName=Oe;var ke=`ContextMenuSubContent`,B=v.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=x(n);return(0,y.jsx)(ae,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});B.displayName=ke;function V(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var Ae=C,je=T,Me=E,H=O,U=k,W=j,G=N,K=P,q=F,J=I,Y=z,X=B,Ne=Ae,Pe=je,Fe=v.forwardRef((e,t)=>{let n=(0,_.c)(14),r,o,c,l;n[0]===e?(r=n[1],o=n[2],c=n[3],l=n[4]):({className:o,inset:c,children:r,...l}=e,n[0]=e,n[1]=r,n[2]=o,n[3]=c,n[4]=l);let u;n[5]!==o||n[6]!==c?(u=a(a(i.body,`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`),c&&`pl-8`,o),n[5]=o,n[6]=c,n[7]=u):u=n[7];let d;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,y.jsx)(s,{className:`ml-auto h-4 w-4`}),n[8]=d):d=n[8];let f;return n[9]!==r||n[10]!==l||n[11]!==t||n[12]!==u?(f=(0,y.jsxs)(Y,{ref:t,className:u,...l,children:[r,d]}),n[9]=r,n[10]=l,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Fe.displayName=Y.displayName;var Ie=v.forwardRef((e,t)=>{let n=(0,_.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let o;n[3]===r?o=n[4]:(o=a(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==i||n[6]!==t||n[7]!==o?(s=(0,y.jsx)(X,{ref:t,className:o,...i}),n[5]=i,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Ie.displayName=X.displayName;var Z=v.forwardRef((e,t)=>{let n=(0,_.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let o;n[3]===r?o=n[4]:(o=a(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==i||n[6]!==t||n[7]!==o?(s=(0,y.jsx)(Me,{children:(0,y.jsx)(H,{ref:t,className:o,...i})}),n[5]=i,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Z.displayName=H.displayName;var Q=v.forwardRef((e,t)=>{let n=(0,_.c)(11),r,o,s;n[0]===e?(r=n[1],o=n[2],s=n[3]):({className:r,inset:o,...s}=e,n[0]=e,n[1]=r,n[2]=o,n[3]=s);let c;n[4]!==r||n[5]!==o?(c=a(a(i.body,`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),o&&`pl-8`,r),n[4]=r,n[5]=o,n[6]=c):c=n[6];let l;return n[7]!==s||n[8]!==t||n[9]!==c?(l=(0,y.jsx)(W,{ref:t,className:c,...s}),n[7]=s,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});Q.displayName=W.displayName;var Le=v.forwardRef((e,t)=>{let n=(0,_.c)(14),r,s,c,l;n[0]===e?(r=n[1],s=n[2],c=n[3],l=n[4]):({className:c,children:s,checked:r,...l}=e,n[0]=e,n[1]=r,n[2]=s,n[3]=c,n[4]=l);let u;n[5]===c?u=n[6]:(u=a(a(i.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),c),n[5]=c,n[6]=u);let d;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,y.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,y.jsx)(q,{children:(0,y.jsx)(o,{className:`h-4 w-4`})})}),n[7]=d):d=n[7];let f;return n[8]!==r||n[9]!==s||n[10]!==l||n[11]!==t||n[12]!==u?(f=(0,y.jsxs)(G,{ref:t,className:u,checked:r,...l,children:[d,s]}),n[8]=r,n[9]=s,n[10]=l,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});Le.displayName=G.displayName;var Re=v.forwardRef((e,t)=>{let n=(0,_.c)(12),r,o,s;n[0]===e?(r=n[1],o=n[2],s=n[3]):({className:o,children:r,...s}=e,n[0]=e,n[1]=r,n[2]=o,n[3]=s);let l;n[4]===o?l=n[5]:(l=a(a(i.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),o),n[4]=o,n[5]=l);let u;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,y.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,y.jsx)(q,{children:(0,y.jsx)(c,{className:`h-2 w-2 fill-current`})})}),n[6]=u):u=n[6];let d;return n[7]!==r||n[8]!==s||n[9]!==t||n[10]!==l?(d=(0,y.jsxs)(K,{ref:t,className:l,...s,children:[u,r]}),n[7]=r,n[8]=s,n[9]=t,n[10]=l,n[11]=d):d=n[11],d});Re.displayName=K.displayName;var ze=v.forwardRef((e,t)=>{let n=(0,_.c)(11),r,o,s;n[0]===e?(r=n[1],o=n[2],s=n[3]):({className:r,inset:o,...s}=e,n[0]=e,n[1]=r,n[2]=o,n[3]=s);let c;n[4]!==r||n[5]!==o?(c=a(a(i.body,`px-2 py-1.5 font-semibold text-foreground`),o&&`pl-8`,r),n[4]=r,n[5]=o,n[6]=c):c=n[6];let l;return n[7]!==s||n[8]!==t||n[9]!==c?(l=(0,y.jsx)(U,{ref:t,className:c,...s}),n[7]=s,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});ze.displayName=U.displayName;var $=v.forwardRef((e,t)=>{let n=(0,_.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let o;n[3]===r?o=n[4]:(o=a(`-mx-1 my-1 h-px bg-divider`,r),n[3]=r,n[4]=o);let s;return n[5]!==i||n[6]!==t||n[7]!==o?(s=(0,y.jsx)(J,{ref:t,className:o,...i}),n[5]=i,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});$.displayName=J.displayName;var Be=e=>{let t=(0,_.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let o;t[3]===n?o=t[4]:(o=a(i.compact,`ml-auto tracking-widest text-muted-foreground`,n),t[3]=n,t[4]=o);let s;return t[5]!==r||t[6]!==o?(s=(0,y.jsx)(`span`,{className:o,...r}),t[5]=r,t[6]=o,t[7]=s):s=t[7],s};Be.displayName=`ContextMenuShortcut`;export{Pe as a,$ as i,Z as n,Q as r,Ne as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{a as i,r as a}from"./chat-dock-context-Cnq0BWgm.js";import{Ft as o,N as s}from"./dist-DNkA3vYh.js";import{i as c,t as l}from"./utils-B-qS8qMg.js";import{Xt as u,d,it as ee}from"./lucide-react-B-115rul.js";import{t as f}from"./button-B5aMz2Rk.js";import{Kn as p,Mt as m,Ni as h,l as g,mi as _,ni as v}from"./api-OO3KSG8d.js";import{t as y}from"./progress-indicator-C01aPXIe.js";import{At as te,Bn as b,Cr as x,In as S,Mr as C,St as ne,_r as w,er as re,gr as ie,hr as ae,mr as T,vr as E,yr as D}from"./index-DD_a7tQU.js";import{t as oe}from"./delete-confirm-dialog-Cx9nT7Xd.js";import{i as O,r as k}from"./table-7hMwxpkF.js";var A=t(),j=e(n(),1),M=s(`app.use-restore-chat-to-chats`);function N(){let e=i();return(0,j.useCallback)(async function(t,n){try{await p(t,n)}catch(e){M.error(`Failed to restore chat to the Chats group`,{error:e,threadId:t,conversationId:n})}finally{e.invalidateQueries({queryKey:a.conversations.unreadAll()})}},[e])}var P=25;function F(){let e=(0,A.c)(12),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:a.conversations.recent(),queryFn:I,initialPageParam:0,getNextPageParam(e){let t=e.offset+e.conversations.length;return t<e.total?t:void 0}},e[0]=t):t=e[0];let n=C(t),r;e[1]===n.data?.pages?r=e[2]:(r=n.data?.pages.flatMap(function(e){return e.conversations})??[],e[1]=n.data?.pages,e[2]=r);let i=r,o=n.data?.pages[0]?.total??0,s;return e[3]!==i||e[4]!==n.error||e[5]!==n.fetchNextPage||e[6]!==n.hasNextPage||e[7]!==n.isFetchingNextPage||e[8]!==n.isPending||e[9]!==n.refetch||e[10]!==o?(s={conversations:i,total:o,isInitialLoading:n.isPending,isLoadingMore:n.isFetchingNextPage,error:n.error,hasNextPage:n.hasNextPage,fetchNextPage:n.fetchNextPage,refetch:n.refetch},e[3]=i,e[4]=n.error,e[5]=n.fetchNextPage,e[6]=n.hasNextPage,e[7]=n.isFetchingNextPage,e[8]=n.isPending,e[9]=n.refetch,e[10]=o,e[11]=s):s=e[11],s}function I(e){let{pageParam:t}=e;return m(P,t)}var L=[{id:`turns`,label:`Turns`},{id:`inputTokens`,label:`Input Tokens`},{id:`outputTokens`,label:`Output Tokens`},{id:`model`,label:`Model`},{id:`branch`,label:`Branch`}],R=new Set(L.map(function(e){return e.id}));function z(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(function(e){return typeof e==`string`&&R.has(e)}):[]}catch{return[]}}function B(){return z(_(v.HISTORY_COLUMNS))}function V(){let e=(0,A.c)(6),[t,n]=(0,j.useState)(B),r;e[0]===t?r=e[1]:(r=function(e){return t.includes(e)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=function(e,t){n(function(n){let r=t?n.includes(e)?n:[...n,e]:n.filter(function(t){return t!==e});return h(v.HISTORY_COLUMNS,JSON.stringify(r)),r})},e[2]=a):a=e[2];let o=a,s;return e[3]!==i||e[4]!==t?(s={visibleColumns:t,isColumnVisible:i,setColumnVisible:o},e[3]=i,e[4]=t,e[5]=s):s=e[5],s}var H=r(),U=36,W=3,G=`table-fixed`,K=`h-9 w-48 bg-transparent py-2`,q=`h-9 bg-transparent py-2`,J=`h-9 w-20 bg-transparent py-2 text-right`,Y=`h-9 w-28 bg-transparent py-2 text-right`,X=`h-9 w-28 bg-transparent py-2 text-right`,Z=`h-9 w-40 bg-transparent py-2`,Q=`h-9 w-32 bg-transparent py-2`,se=`h-9 w-24 bg-transparent py-2 text-right`,ce=l(o.bodyMuted,`w-48 truncate py-1.5`),le=`py-1.5`,$=l(o.bodyMuted,`w-20 py-1.5 text-right tabular-nums`),ue=l(o.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),de=l(o.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),fe=l(o.bodyMuted,`w-40 truncate py-1.5`),pe=l(o.bodyMuted,`w-32 truncate py-1.5`),me=l(o.bodyMuted,`w-24 py-1.5 text-right tabular-nums`);function he(e){let t=(0,A.c)(4),n;if(t[0]!==e){let{style:r,...i}=e,a;t[2]===r?a=t[3]:(a={...r,width:`100%`},t[2]=r,t[3]=a),n=(0,H.jsx)(`table`,{...i,style:a,className:l(`w-full caption-bottom select-text`,G,o.body,i.className)}),t[0]=e,t[1]=n}else n=t[1];return n}function ge(e){let t=(0,A.c)(5),n;t[0]===e.className?n=t[1]:(n=l(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,H.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function _e(e){let t=(0,A.c)(5),n;t[0]===e.className?n=t[1]:(n=l(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,H.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function ve(e){let t=(0,A.c)(5),n;t[0]===e.className?n=t[1]:(n=l(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,H.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function ye(e){return function(){return(0,H.jsx)(`tr`,{children:(0,H.jsx)(`td`,{colSpan:e,className:`py-3 text-center`,children:(0,H.jsx)(y,{centered:!0,label:`Loading more…`,size:`sm`})})})}}function be(e){switch(e){case`turns`:return(0,H.jsx)(O,{className:J,children:`Turns`},e);case`inputTokens`:return(0,H.jsx)(O,{className:Y,children:`Input Tokens`},e);case`outputTokens`:return(0,H.jsx)(O,{className:X,children:`Output Tokens`},e);case`model`:return(0,H.jsx)(O,{className:Z,children:`Model`},e);case`branch`:return(0,H.jsx)(O,{className:Q,children:`Branch`},e)}}function xe(e,t){switch(t){case`turns`:return(0,H.jsx)(k,{className:$,children:e.turnCount.toLocaleString()},t);case`inputTokens`:return(0,H.jsx)(k,{className:ue,children:e.inputTokens.toLocaleString()},t);case`outputTokens`:return(0,H.jsx)(k,{className:de,children:e.outputTokens.toLocaleString()},t);case`model`:return(0,H.jsx)(k,{className:fe,children:e.model??`—`},t);case`branch`:return(0,H.jsx)(k,{className:pe,children:e.branch},t)}}function Se(){let{openConversation:e}=b(),t=N(),{toast:n}=re(),[r,i]=(0,j.useState)(!1),[a,s]=(0,j.useState)(!1),{visibleColumns:p,isColumnVisible:m,setColumnVisible:h}=V(),{conversations:_,isInitialLoading:v,isLoadingMore:C,error:A,hasNextPage:M,fetchNextPage:P,refetch:I}=F(),R=W+p.length,z=(0,j.useCallback)(async function(n){await e(n).catch(()=>!1)&&await t(n.threadId,n.conversationId)},[e,t]),B=(0,j.useCallback)(()=>{M&&!C&&P()},[P,M,C]);async function J(){s(!0);try{await g(),await I(),i(!1),n({title:`Conversation history cleared`})}catch(e){n({title:`Failed to clear conversation history`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{s(!1)}}let Y=(0,j.useMemo)(function(){return function({item:e,...t}){return(0,H.jsx)(`tr`,{...t,className:l(`cursor-pointer border-0 transition-colors hover:bg-muted/50`,t.className),onClick:()=>{e&&z(e)}})}},[z]),X=(0,j.useMemo)(function(){return{Table:he,TableHead:ge,TableBody:_e,TableRow:Y,Scroller:ve,Footer:C?ye(R):void 0}},[Y,R,C]);function Z(e,t){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(k,{className:ce,children:t.projectName}),(0,H.jsx)(k,{className:le,children:(0,H.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,H.jsx)(ee,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,H.jsx)(`span`,{className:l(o.body,`truncate`),children:t.title})]})}),L.map(function(e){return m(e.id)?xe(t,e.id):null}),(0,H.jsx)(k,{className:me,"aria-label":`Last updated ${c(t.lastMessageAt)} ago`,children:c(t.lastMessageAt)})]})}function Q(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(O,{className:K,children:`Project`}),(0,H.jsx)(O,{className:q,children:`Chat`}),L.map(function(e){return m(e.id)?be(e.id):null}),(0,H.jsx)(O,{className:se,children:`Updated`})]})}let $=(0,H.jsx)(`table`,{className:l(`w-full caption-bottom`,G,o.body),children:(0,H.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,H.jsx)(`tr`,{children:Q()})})});return(0,H.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[(0,H.jsxs)(te,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[(0,H.jsx)(ne,{title:`History`,description:`Browse recent chats across all projects.`,tableHeader:_.length>0?$:void 0,action:(0,H.jsxs)(T,{children:[(0,H.jsx)(x,{asChild:!0,children:(0,H.jsx)(f,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Choose columns`,children:(0,H.jsx)(u,{className:`h-4 w-4`})})}),(0,H.jsxs)(ie,{align:`end`,className:`w-48`,children:[(0,H.jsx)(E,{className:o.body,children:`Columns`}),L.map(function(e){return(0,H.jsx)(ae,{checked:m(e.id),onCheckedChange:t=>{h(e.id,t===!0)},onSelect:e=>{e.preventDefault()},children:e.label},e.id)}),(0,H.jsx)(D,{}),(0,H.jsxs)(w,{className:l(o.body,`gap-2 text-destructive focus:text-destructive`),disabled:_.length===0,onSelect:()=>i(!0),children:[(0,H.jsx)(d,{className:`h-4 w-4`}),`Clear history`]})]})]})}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:v?(0,H.jsx)(y,{centered:!0,label:`Loading conversation history...`,size:`lg`}):A?(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,H.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[(0,H.jsx)(`p`,{className:o.body,children:A instanceof Error?A.message:`Failed to load conversation history`}),(0,H.jsx)(f,{onClick:()=>void I(),children:`Try again`})]})}):_.length===0?(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,H.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,H.jsx)(`h3`,{className:o.emptyStateTitle,children:`No history`}),(0,H.jsx)(`p`,{className:o.bodyMuted,children:`No conversations found yet.`})]})}):(0,H.jsx)(S,{style:{height:`100%`},data:_,computeItemKey:(e,t)=>t.conversationId,itemContent:Z,endReached:B,defaultItemHeight:U,increaseViewportBy:U*5,components:X})})]}),(0,H.jsx)(oe,{open:r,onOpenChange:i,title:`Clear conversation history?`,description:`This permanently clears conversation history across all projects. This action cannot be undone.`,onConfirm:()=>void J(),confirming:a,confirmLabel:`Clear`,confirmingLabel:`Clearing...`})]})}export{Se as default};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Ft as i,N as a,an as o,on as s}from"./dist-DNkA3vYh.js";import{t as c}from"./utils-B-qS8qMg.js";import{Jt as l}from"./lucide-react-B-115rul.js";import{t as u}from"./button-B5aMz2Rk.js";import{Fi as d,Hi as f,Oi as p,Pt as m,_i as h,ci as g,qt as _,s as v,wi as y}from"./api-OO3KSG8d.js";import{n as b}from"./scroll-area-DwRwR2nQ.js";import{Ar as x,Dr as S,Er as C,Or as w,Tr as T,a as E,jr as D,kr as O,wr as k}from"./index-DD_a7tQU.js";import{n as A,t as ee}from"./toggle-group-UiksQ0n9.js";import{r as j}from"./commit-method-fields-DAd1unUF.js";var M=e(n(),1),N=t(),P={"angular-standalone":`logo-angular.svg`,"custom-angular":`logo-angular.svg`,react:`logo-react.svg`,"vite-react":`logo-react.svg`,vue:`logo-vue.svg`,"vite-vue":`logo-vue.svg`,"custom-svelte":`logo-svelte.svg`,"custom-ionic-svelte":`logo-svelte.svg`,"vite-svelte":`logo-svelte.svg`,"vite-solid":`logo-solid.svg`,astro:`logo-astro.svg`,nextjs:`logo-nextjs.svg`,nuxt:`logo-nuxt.svg`,"vite-qwik":`logo-qwik.svg`,"vite-preact":`logo-preact.svg`,"vite-lit":`logo-lit.svg`,"vite-web":`logo-web.svg`,"tanstack-start":`logo-vite.svg`,waku:`logo-waku.svg`,hydrogen:`logo-hydrogen.svg`,plugin:`logo-capacitor.svg`};function te(e){return e.trim().toLowerCase().replace(/[\\/]+/g,` `).replace(/[^a-z0-9._ -]+/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``)}function ne(e,t,n){return e===2&&t===`clone`?{title:`Clone Repository`,description:`Enter a git repository URL to clone.`}:e===2&&t===`webapp`?{title:`Create App`,description:`Choose a template type.`}:e===3&&t===`clone`?{title:`Clone Repository`,description:`Choose commit workflow.`}:e===3&&t===`folder`?{title:`Blank Starter`,description:`Enter a project name.`}:e===3&&t===`webapp`?{title:n===`Capacitor Plugin`?`Create Capacitor Plugin`:n?`Create ${n} App`:`Create App`,description:`Name your project and choose variation, package manager, and commit workflow.`}:{title:``,description:``}}var re=a(`app.create-project-dialog.ui`);async function ie(){try{if(await v())return!0;let e=`macOS / Linux: curl -fsSL https://vite.plus | bash
2
- Windows: irm https://vite.plus/ps1 | iex`;if(!window.confirm(`Vite Plus is required for this template but is not installed.\n\nIs it ok to install Vite Plus using the following command?\n\n${e}`))return!1;let{success:t,error:n}=await _();return t?await v()?!0:(window.alert(`Vite Plus was installed but could not be verified.\n\nTry restarting the app — if it is still missing, install it manually with:\n\n${e}`),!1):(window.alert(`Failed to install Vite Plus:\n${n||`Unknown error`}`),!1)}catch(e){return re.error(`Vite Plus check/install failed:`,e),!0}}function ae(e){let t=(0,N.c)(38),n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=[],t[0]=n):n=t[0];let[r,i]=(0,M.useState)(n),[a,o]=(0,M.useState)(!1),s=Array.isArray(r)&&r.length>0,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{o(!0),m().then(e=>i(e?.templates||[])).catch(()=>i([])).finally(()=>o(!1))},t[1]=c):c=t[1];let l=c,u,d;if(t[2]!==r){if(u={},Array.isArray(r))for(let e of r){let t=e.typeName;u[t]||(u[t]=[]),u[t].push(e)}d=Object.keys(u).sort(),t[2]=r,t[3]=u,t[4]=d}else u=t[3],d=t[4];let p=d,h;t[5]!==u||t[6]!==p?(h={typeNames:p,templatesByTypeName:u},t[5]=u,t[6]=p,t[7]=h):h=t[7];let{typeNames:g,templatesByTypeName:_}=h,v;if(t[8]!==_){v={};for(let e of Object.keys(_)){let t=_[e]??[];if(t.length===0)continue;let n=t.find(le),r=t.filter(ce),i=n?[n,...r]:t;v[e]=i[0].id}t[8]=_,t[9]=v}else v=t[9];let y=v,b;bb0:{if(!Array.isArray(r)){b=e;break bb0}if(r.find(t=>t.id===e)){b=e;break bb0}if(r.length===0){b=e;break bb0}let n=g[0],i;t[10]!==n||t[11]!==_?(i=n?_[n]??[]:[],t[10]=n,t[11]=_,t[12]=i):i=t[12];let a=i,o;t[13]===a?o=t[14]:(o=a.find(se),t[13]=a,t[14]=o),b=(o??a[0])?.id??e}let x=b,S;bb1:{if(!x||!Array.isArray(r)||r.length===0){S=null;break bb1}let e;t[15]!==x||t[16]!==r?(e=r.find(e=>e.id===x)?.typeName??null,t[15]=x,t[16]=r,t[17]=e):e=t[17],S=e}let C=S,w;if(t[18]!==C||t[19]!==_){bb2:{let e=C?_[C]??[]:[];if(e.length<=1){w=e;break bb2}let t=e.find(oe),n=e.filter(F);w=t?[t,...n]:e}t[18]=C,t[19]=_,t[20]=w}else w=t[20];let T=w,E;t[21]!==x||t[22]!==r?(E=x&&Array.isArray(r)?r.find(e=>e.id===x):null,t[21]=x,t[22]=r,t[23]=E):E=t[23];let D=E,O,k;t[24]===x?(O=t[25],k=t[26]):(O=()=>{x&&f(x)},k=[x],t[24]=x,t[25]=O,t[26]=k),(0,M.useEffect)(O,k);let A;return t[27]!==x||t[28]!==y||t[29]!==s||t[30]!==D||t[31]!==C||t[32]!==r||t[33]!==_||t[34]!==a||t[35]!==g||t[36]!==T?(A={templates:r,templatesLoading:a,hasTemplates:s,loadTemplates:l,typeNames:g,templatesByTypeName:_,firstVariationIdByTypeName:y,effectiveTemplateId:x,selectedTypeNameFromEffective:C,variations:T,selectedTemplate:D},t[27]=x,t[28]=y,t[29]=s,t[30]=D,t[31]=C,t[32]=r,t[33]=_,t[34]=a,t[35]=g,t[36]=T,t[37]=A):A=t[37],A}function F(e){return e.variationName!==`Starter`}function oe(e){return e.variationName===`Starter`}function se(e){return e.variationName===`Starter`}function ce(e){return e.variationName!==`Starter`}function le(e){return e.variationName===`Starter`}var I=r();function L(e){let t=(0,N.c)(10),{gitUrl:n,onGitUrlChange:r,canProceed:i,onNext:a}=e,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,I.jsx)(k,{htmlFor:`gitUrl`,children:`Repository URL`}),t[0]=o):o=t[0];let s;t[1]===r?s=t[2]:(s=e=>r(e.target.value),t[1]=r,t[2]=s);let c;t[3]!==i||t[4]!==a?(c=e=>e.key===`Enter`&&i&&a(),t[3]=i,t[4]=a,t[5]=c):c=t[5];let l;return t[6]!==n||t[7]!==s||t[8]!==c?(l=(0,I.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,I.jsx)(`div`,{className:`px-6 py-4`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[o,(0,I.jsx)(T,{id:`gitUrl`,placeholder:`https://github.com/user/repo.git`,value:n,onChange:s,onKeyDown:c,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`,autoFocus:!0})]})})}),t[6]=n,t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function ue(e){let t=(0,N.c)(11),{templatesLoading:n,typeNames:r,templatesByTypeName:a,selectedTypeName:o,loadedImages:s,onImageLoad:l,onSelectType:u,onSelectTypeAndAdvance:d}=e,f;t[0]!==s||t[1]!==l||t[2]!==u||t[3]!==d||t[4]!==o||t[5]!==a||t[6]!==n||t[7]!==r?(f=n?(0,I.jsx)(`p`,{className:c(i.bodyMuted,`col-span-full p-4`),children:`Loading…`}):r.map(e=>{let t=a[e]?.[0]?.type,n=t?P[t]:null,r=o===e;return(0,I.jsxs)(`button`,{type:`button`,onClick:()=>u(e),onDoubleClick:()=>d(e),className:c(`group flex flex-col items-center gap-0 rounded-lg px-1 py-1 text-center transition-colors`,r?`text-accent-foreground`:`text-foreground`),children:[(0,I.jsx)(`div`,{className:c(`relative flex size-20 shrink-0 items-center justify-center overflow-hidden rounded-xl bg-[hsl(0_0%_35%)] bg-gradient-to-br from-[hsl(0_0%_35%)] to-[hsl(0_0%_25%)] text-white/70 transition-transform can-hover:group-hover:scale-[1.03]`,r&&`ring-[3px] ring-brand`),children:n?(0,I.jsx)(`img`,{src:`/template-types/${n}`,alt:``,className:c(`relative size-8 shrink-0 transition-opacity duration-300`,s.has(n)?`opacity-100`:`opacity-0`),onLoad:()=>l(n),"aria-hidden":!0}):null}),(0,I.jsx)(`span`,{className:c(i.compact,`w-full truncate pt-1 font-medium`),children:e})]},e)}),t[0]=s,t[1]=l,t[2]=u,t[3]=d,t[4]=o,t[5]=a,t[6]=n,t[7]=r,t[8]=f):f=t[8];let p;return t[9]===f?p=t[10]:(p=(0,I.jsx)(`div`,{className:`flex flex-col flex-1 min-h-0 px-6 pb-4`,children:(0,I.jsx)(`div`,{className:`flex-1 min-h-0 flex flex-col py-2`,children:(0,I.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto -mx-1`,children:(0,I.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-1 p-1 mr-2`,children:f})})})}),t[9]=f,t[10]=p),p}function de(e){let t=(0,N.c)(17),{projectName:n,onProjectNameChange:r,canSubmit:a,onSubmit:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,I.jsx)(k,{htmlFor:`folderProjectName`,children:`Project Name`}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=e=>r(e.target.value),t[1]=r,t[2]=c);let l;t[3]!==a||t[4]!==o?(l=e=>e.key===`Enter`&&a&&o(),t[3]=a,t[4]=o,t[5]=l):l=t[5];let u;t[6]!==n||t[7]!==c||t[8]!==l?(u=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[s,(0,I.jsx)(T,{id:`folderProjectName`,placeholder:`My Project`,value:n,onChange:c,onKeyDown:l,autoFocus:!0,className:`w-full`})]}),t[6]=n,t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===n?d=t[11]:(d=te(n)||`project-name`,t[10]=n,t[11]=d);let f;t[12]===d?f=t[13]:(f=(0,I.jsxs)(`p`,{className:i.bodyMuted,children:[`Folder name: `,d]}),t[12]=d,t[13]=f);let p;return t[14]!==u||t[15]!==f?(p=(0,I.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,I.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-3`,children:[u,f]})}),t[14]=u,t[15]=f,t[16]=p):p=t[16],p}function fe(e){let t=(0,N.c)(33),{projectNameDisplay:n,onProjectNameChange:r,variations:a,effectiveTemplateId:s,onTemplateIdChange:c,selectedTemplate:u,packageManager:d,onPackageManagerChange:f,commitMethod:p,onCommitMethodChange:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,I.jsx)(k,{htmlFor:`projectName`,children:`Project Name`}),t[0]=h):h=t[0];let g;t[1]===r?g=t[2]:(g=e=>r(e.target.value),t[1]=r,t[2]=g);let _;t[3]!==n||t[4]!==g?(_=(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[h,(0,I.jsx)(T,{id:`projectName`,placeholder:`My App`,value:n,onChange:g,className:`w-full`})]}),t[3]=n,t[4]=g,t[5]=_):_=t[5];let v;t[6]!==s||t[7]!==c||t[8]!==a?(v=a.length>1&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(k,{children:`Variation`}),(0,I.jsx)(ee,{type:`single`,value:s,onValueChange:e=>e&&c(e),variant:`outline`,className:`flex flex-wrap gap-0 justify-start [&>button]:rounded-none [&>button:first-child]:rounded-l-md [&>button:last-child]:rounded-r-md [&>button:not(:first-child)]:-ml-px`,children:a.map(me)})]}),t[6]=s,t[7]=c,t[8]=a,t[9]=v):v=t[9];let y=u?.description??a[0]?.description??``,x;t[10]===u?x=t[11]:(x=u?.url&&(0,I.jsxs)(I.Fragment,{children:[` `,(0,I.jsxs)(`a`,{href:u.url,target:`_blank`,rel:`noreferrer`,className:`text-brand hover:underline hover:text-brand/80 inline-flex items-center gap-0.5`,children:[`Documentation `,(0,I.jsx)(l,{className:`h-3 w-3`})]})]}),t[10]=u,t[11]=x);let S;t[12]!==y||t[13]!==x?(S=(0,I.jsxs)(`p`,{className:i.bodyMuted,children:[y,x]}),t[12]=y,t[13]=x,t[14]=S):S=t[14];let C;t[15]!==v||t[16]!==S?(C=(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v,S]}),t[15]=v,t[16]=S,t[17]=C):C=t[17];let w;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,I.jsx)(k,{children:`Package manager`}),t[18]=w):w=t[18];let E;t[19]===f?E=t[20]:(E=e=>{e&&f(e)},t[19]=f,t[20]=E);let D;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(D=Object.values(o).map(pe),t[21]=D):D=t[21];let O;t[22]!==d||t[23]!==E?(O=(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[w,(0,I.jsx)(ee,{type:`single`,value:d,onValueChange:E,variant:`outline`,className:`flex flex-wrap gap-0 justify-start [&>button]:rounded-none [&>button:first-child]:rounded-l-md [&>button:last-child]:rounded-r-md [&>button:not(:first-child)]:-ml-px`,children:D})]}),t[22]=d,t[23]=E,t[24]=O):O=t[24];let A;t[25]!==p||t[26]!==m?(A=(0,I.jsx)(j,{commitMethod:p,onCommitMethodChange:m}),t[25]=p,t[26]=m,t[27]=A):A=t[27];let M;return t[28]!==O||t[29]!==A||t[30]!==_||t[31]!==C?(M=(0,I.jsx)(b,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,I.jsxs)(`div`,{className:`px-6 py-4 flex flex-col gap-6`,children:[_,C,O,A]})}),t[28]=O,t[29]=A,t[30]=_,t[31]=C,t[32]=M):M=t[32],M}function pe(e){return(0,I.jsx)(A,{value:e.id,className:i.body,children:e.label},e.id)}function me(e){return(0,I.jsx)(A,{value:e.id,className:i.body,children:e.variationName},e.id)}function he(e){return e===`folder`?3:2}function ge(e){return e===`folder`?{projectName:``,projectNameUserEdited:!1,loadedImages:new Set}:{projectName:`My App`,projectNameUserEdited:!1,loadedImages:new Set}}function _e(e){let t=(0,N.c)(5),{canGoToStep3:n,gitUrl:r,onGitUrlChange:i,onNext:a}=e,o;return t[0]!==n||t[1]!==r||t[2]!==i||t[3]!==a?(o=(0,I.jsx)(L,{gitUrl:r,onGitUrlChange:i,canProceed:n,onNext:a}),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o):o=t[4],o}function ve(e){let t=(0,N.c)(9),{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeNameFromEffective:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}=e,u;return t[0]!==o||t[1]!==s||t[2]!==c||t[3]!==l||t[4]!==a||t[5]!==i||t[6]!==n||t[7]!==r?(u=(0,I.jsx)(ue,{templatesLoading:n,typeNames:r,templatesByTypeName:i,selectedTypeName:a,loadedImages:o,onImageLoad:s,onSelectType:c,onSelectTypeAndAdvance:l}),t[0]=o,t[1]=s,t[2]=c,t[3]=l,t[4]=a,t[5]=i,t[6]=n,t[7]=r,t[8]=u):u=t[8],u}function ye(e){let t=(0,N.c)(5),{canGoToStep3:n,projectName:r,onProjectNameChange:i,onSubmitFolder:a}=e,o;return t[0]!==n||t[1]!==i||t[2]!==a||t[3]!==r?(o=(0,I.jsx)(de,{projectName:r,onProjectNameChange:i,canSubmit:n,onSubmit:a}),t[0]=n,t[1]=i,t[2]=a,t[3]=r,t[4]=o):o=t[4],o}function be(e){let t=(0,N.c)(11),{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}=e,f;return t[0]!==u||t[1]!==a||t[2]!==d||t[3]!==l||t[4]!==r||t[5]!==o||t[6]!==c||t[7]!==n||t[8]!==s||t[9]!==i?(f=(0,I.jsx)(fe,{projectNameDisplay:n,onProjectNameChange:r,variations:i,effectiveTemplateId:a,onTemplateIdChange:o,selectedTemplate:s,packageManager:c,onPackageManagerChange:l,commitMethod:u,onCommitMethodChange:d}),t[0]=u,t[1]=a,t[2]=d,t[3]=l,t[4]=r,t[5]=o,t[6]=c,t[7]=n,t[8]=s,t[9]=i,t[10]=f):f=t[10],f}function xe(e){let t=(0,N.c)(3),{commitMethod:n,onCommitMethodChange:r}=e,i;return t[0]!==n||t[1]!==r?(i=(0,I.jsx)(b,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,I.jsx)(`div`,{className:`flex flex-col gap-6 px-6 py-4`,children:(0,I.jsx)(j,{commitMethod:n,onCommitMethodChange:r})})}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function Se(e){let t=(0,N.c)(33),{step:n,mode:r,canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s,templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h,projectName:g,onProjectNameChange:_,onSubmitFolder:v,projectNameDisplay:y,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}=e;switch(`${n}:${r}`){case`2:clone`:{let e;return t[0]!==i||t[1]!==a||t[2]!==o||t[3]!==s?(e=(0,I.jsx)(_e,{canGoToStep3:i,gitUrl:a,onGitUrlChange:o,onNext:s}),t[0]=i,t[1]=a,t[2]=o,t[3]=s,t[4]=e):e=t[4],e}case`2:webapp`:{let e;return t[5]!==f||t[6]!==p||t[7]!==m||t[8]!==h||t[9]!==d||t[10]!==u||t[11]!==c||t[12]!==l?(e=(0,I.jsx)(ve,{templatesLoading:c,typeNames:l,templatesByTypeName:u,selectedTypeNameFromEffective:d,loadedImages:f,onImageLoad:p,onSelectType:m,onSelectTypeAndAdvance:h}),t[5]=f,t[6]=p,t[7]=m,t[8]=h,t[9]=d,t[10]=u,t[11]=c,t[12]=l,t[13]=e):e=t[13],e}case`3:folder`:{let e;return t[14]!==i||t[15]!==_||t[16]!==v||t[17]!==g?(e=(0,I.jsx)(ye,{canGoToStep3:i,projectName:g,onProjectNameChange:_,onSubmitFolder:v}),t[14]=i,t[15]=_,t[16]=v,t[17]=g,t[18]=e):e=t[18],e}case`3:webapp`:{let e;return t[19]!==E||t[20]!==x||t[21]!==D||t[22]!==T||t[23]!==_||t[24]!==S||t[25]!==w||t[26]!==y||t[27]!==C||t[28]!==b?(e=(0,I.jsx)(be,{projectNameDisplay:y,onProjectNameChange:_,variations:b,effectiveTemplateId:x,onTemplateIdChange:S,selectedTemplate:C,packageManager:w,onPackageManagerChange:T,commitMethod:E,onCommitMethodChange:D}),t[19]=E,t[20]=x,t[21]=D,t[22]=T,t[23]=_,t[24]=S,t[25]=w,t[26]=y,t[27]=C,t[28]=b,t[29]=e):e=t[29],e}default:{let e;return t[30]!==E||t[31]!==D?(e=(0,I.jsx)(xe,{commitMethod:E,onCommitMethodChange:D}),t[30]=E,t[31]=D,t[32]=e):e=t[32],e}}}function Ce(e){let t=(0,N.c)(30),{step:n,mode:r,canGoToStep3:i,projectName:a,projectNameDisplay:o,isCheckingVp:s,onBack:c,onNext:l,onSubmitClone:d,onSubmitFolder:f,onSubmitWebApp:p}=e,m;t[0]!==r||t[1]!==c||t[2]!==n?(m=n===3&&r!==`folder`&&(0,I.jsx)(u,{variant:`ghost`,onClick:c,children:`Back`}),t[0]=r,t[1]=c,t[2]=n,t[3]=m):m=t[3];let h;t[4]!==i||t[5]!==r||t[6]!==l||t[7]!==n?(h=n===2&&r!==`folder`&&(0,I.jsx)(u,{onClick:l,disabled:!i,children:`Next`}),t[4]=i,t[5]=r,t[6]=l,t[7]=n,t[8]=h):h=t[8];let g;t[9]!==r||t[10]!==d||t[11]!==n?(g=n===3&&r===`clone`&&(0,I.jsx)(u,{onClick:d,children:`Create Project`}),t[9]=r,t[10]=d,t[11]=n,t[12]=g):g=t[12];let _;t[13]!==r||t[14]!==f||t[15]!==a||t[16]!==n?(_=n===3&&r===`folder`&&(0,I.jsx)(u,{onClick:f,disabled:!a.trim()||!te(a),children:`Create Project`}),t[13]=r,t[14]=f,t[15]=a,t[16]=n,t[17]=_):_=t[17];let v;t[18]!==s||t[19]!==r||t[20]!==p||t[21]!==o||t[22]!==n?(v=n===3&&r===`webapp`&&(0,I.jsx)(u,{onClick:p,disabled:!o.trim()||s,children:s?`Preparing...`:`Create Project`}),t[18]=s,t[19]=r,t[20]=p,t[21]=o,t[22]=n,t[23]=v):v=t[23];let y;return t[24]!==m||t[25]!==h||t[26]!==g||t[27]!==_||t[28]!==v?(y=(0,I.jsx)(`div`,{className:`flex min-h-[4.5rem] flex-col justify-end border-t border-border bg-muted/10 px-6 py-4`,children:(0,I.jsxs)(O,{children:[m,h,g,_,v]})}),t[24]=m,t[25]=h,t[26]=g,t[27]=_,t[28]=v,t[29]=y):y=t[29],y}function R(e){let t=(0,N.c)(117),{open:n,onOpenChange:r,onDialogDismissed:i,initialMode:a,onSubmitClone:o,onSubmitWebApp:c,onSubmitFolder:l}=e,[u,f]=(0,M.useState)(a??`clone`),m=a??`clone`,_;t[0]===m?_=t[1]:(_=he(m),t[0]=m,t[1]=_);let[v,b]=(0,M.useState)(_),[T,O]=(0,M.useState)(``),k;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(k=g(s.PullRequest),t[2]=k):k=t[2];let[A,ee]=(0,M.useState)(k),[j,P]=(0,M.useState)(`My App`),[re,F]=(0,M.useState)(!1),oe;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(oe=y(),t[3]=oe):oe=t[3];let[se,ce]=(0,M.useState)(oe),le;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(le=h(),t[4]=le):le=t[4];let[L,ue]=(0,M.useState)(le),[de,fe]=(0,M.useState)(!1),pe;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(pe=new Set,t[5]=pe):pe=t[5];let[me,_e]=(0,M.useState)(pe),ve;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(ve=e=>{_e(t=>new Set(t).add(e))},t[6]=ve):ve=t[6];let ye=ve,{templatesLoading:be,hasTemplates:xe,loadTemplates:R,typeNames:Te,templatesByTypeName:Ee,firstVariationIdByTypeName:z,effectiveTemplateId:B,selectedTypeNameFromEffective:V,variations:De,selectedTemplate:H}=ae(se),Oe,ke;t[7]!==xe||t[8]!==a||t[9]!==R||t[10]!==n?(Oe=()=>{if(!n||!a)return;let e=ge(a);f(a),b(he(a)),O(``),P(e.projectName),F(e.projectNameUserEdited),_e(e.loadedImages),a===`webapp`&&!xe&&R()},ke=[n,a,xe,R],t[7]=xe,t[8]=a,t[9]=R,t[10]=n,t[11]=Oe,t[12]=ke):(Oe=t[11],ke=t[12]),(0,M.useEffect)(Oe,ke);let U=re?j:V?`My ${V} App`:`My App`,Ae;t[13]!==i||t[14]!==r?(Ae=function(){i?.(),f(`clone`),b(2),O(``),P(`My App`),F(!1),_e(new Set),r(!1)},t[13]=i,t[14]=r,t[15]=Ae):Ae=t[15];let W=Ae,je;t[16]!==v||t[17]!==u||t[18]!==W?(je=function(){if(v===2||u===`folder`){W();return}b(2)},t[16]=v,t[17]=u,t[18]=W,t[19]=je):je=t[19];let Me=je,Ne;t[20]!==T||t[21]!==u||t[22]!==j||t[23]!==V?(Ne=u===`clone`?T.trim().length>0:u===`folder`?j.trim().length>0&&!!te(j):V!==null,t[20]=T,t[21]=u,t[22]=j,t[23]=V,t[24]=Ne):Ne=t[24];let G=Ne,Pe;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=function(e){ee(e),p(e)},t[25]=Pe):Pe=t[25];let Fe=Pe,Ie;t[26]!==A||t[27]!==T||t[28]!==r||t[29]!==o?(Ie=function(){if(!T.trim())return;let e=T.trim();O(``),b(2),r(!1),f(`clone`),o(e,A).catch(we)},t[26]=A,t[27]=T,t[28]=r,t[29]=o,t[30]=Ie):Ie=t[30];let Le=Ie,Re;t[31]!==B||t[32]!==r||t[33]!==c||t[34]!==L||t[35]!==U||t[36]!==H?.variation?(Re=async function(){if(!U.trim()||!B||!te(U))return;if(H?.variation===`vite-plus`){fe(!0);let e=await ie();if(fe(!1),!e)return}let e=U.trim();P(``),F(!1),b(2),r(!1),f(`clone`),c(e,B,L)},t[31]=B,t[32]=r,t[33]=c,t[34]=L,t[35]=U,t[36]=H?.variation,t[37]=Re):Re=t[37];let ze=Re,Be;t[38]!==r||t[39]!==l||t[40]!==j?(Be=function(){let e=j.trim();!e||!te(e)||(P(``),F(!1),b(2),r(!1),f(`clone`),l(e))},t[38]=r,t[39]=l,t[40]=j,t[41]=Be):Be=t[41];let K=Be,q=v,Ve=u===`folder`?1:v-1,He;t[42]!==G||t[43]!==v||t[44]!==u?(He=function(e){return u===`folder`?e===1:e===1?v>2:v>=3||v===2&&G},t[42]=G,t[43]=v,t[44]=u,t[45]=He):He=t[45];let Ue=He,We;t[46]===u?We=t[47]:(We=function(e){u!==`folder`&&b(e===1?2:3)},t[46]=u,t[47]=We);let Ge=We,Ke;t[48]!==u||t[49]!==V||t[50]!==q?(Ke=ne(q,u,V),t[48]=u,t[49]=V,t[50]=q,t[51]=Ke):Ke=t[51];let J=Ke,qe=u!==`folder`,Je;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Je=function(e){P(e),F(!0)},t[52]=Je):Je=t[52];let Ye=Je,Xe;t[53]===z?Xe=t[54]:(Xe=function(e){ce(z[e]??``)},t[53]=z,t[54]=Xe);let Ze=Xe,Qe;t[55]===z?Qe=t[56]:(Qe=function(e){ce(z[e]??``),b(3)},t[55]=z,t[56]=Qe);let $e=Qe,et;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(et=function(e){ue(e),d(e)},t[57]=et):et=t[57];let tt=et,nt;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(nt=function(){b(3)},t[58]=nt):nt=t[58];let rt=nt,Y;t[59]===W?Y=t[60]:(Y=e=>!e&&W(),t[59]=W,t[60]=Y);let X;t[61]!==Ue||t[62]!==Ve||t[63]!==Ge||t[64]!==qe?(X=qe?(0,I.jsx)(E,{currentStep:Ve,canGoToStep:Ue,onGoToStep:Ge}):null,t[61]=Ue,t[62]=Ve,t[63]=Ge,t[64]=qe,t[65]=X):X=t[65];let Z;t[66]===J.title?Z=t[67]:(Z=(0,I.jsx)(D,{children:J.title}),t[66]=J.title,t[67]=Z);let it;t[68]===J.description?it=t[69]:(it=(0,I.jsx)(w,{children:J.description}),t[68]=J.description,t[69]=it);let Q;t[70]!==Z||t[71]!==it?(Q=(0,I.jsxs)(x,{children:[Z,it]}),t[70]=Z,t[71]=it,t[72]=Q):Q=t[72];let at;t[73]!==X||t[74]!==Q?(at=(0,I.jsxs)(`div`,{className:`px-6 pb-2 pt-6`,children:[X,Q]}),t[73]=X,t[74]=Q,t[75]=at):at=t[75];let ot;t[76]!==G||t[77]!==A||t[78]!==B||t[79]!==T||t[80]!==Ze||t[81]!==$e||t[82]!==K||t[83]!==me||t[84]!==u||t[85]!==L||t[86]!==j||t[87]!==U||t[88]!==H||t[89]!==V||t[90]!==q||t[91]!==Ee||t[92]!==be||t[93]!==Te||t[94]!==De?(ot=(0,I.jsx)(Se,{step:q,mode:u,canGoToStep3:G,gitUrl:T,onGitUrlChange:O,onNext:rt,templatesLoading:be,typeNames:Te,templatesByTypeName:Ee,selectedTypeNameFromEffective:V,loadedImages:me,onImageLoad:ye,onSelectType:Ze,onSelectTypeAndAdvance:$e,projectName:j,onProjectNameChange:Ye,onSubmitFolder:K,projectNameDisplay:U,variations:De,effectiveTemplateId:B,onTemplateIdChange:ce,selectedTemplate:H,packageManager:L,onPackageManagerChange:tt,commitMethod:A,onCommitMethodChange:Fe}),t[76]=G,t[77]=A,t[78]=B,t[79]=T,t[80]=Ze,t[81]=$e,t[82]=K,t[83]=me,t[84]=u,t[85]=L,t[86]=j,t[87]=U,t[88]=H,t[89]=V,t[90]=q,t[91]=Ee,t[92]=be,t[93]=Te,t[94]=De,t[95]=ot):ot=t[95];let st;t[96]===ze?st=t[97]:(st=()=>void ze(),t[96]=ze,t[97]=st);let ct;t[98]!==G||t[99]!==Me||t[100]!==Le||t[101]!==K||t[102]!==de||t[103]!==u||t[104]!==j||t[105]!==U||t[106]!==q||t[107]!==st?(ct=(0,I.jsx)(Ce,{step:q,mode:u,canGoToStep3:G,projectName:j,projectNameDisplay:U,isCheckingVp:de,onBack:Me,onNext:rt,onSubmitClone:Le,onSubmitFolder:K,onSubmitWebApp:st}),t[98]=G,t[99]=Me,t[100]=Le,t[101]=K,t[102]=de,t[103]=u,t[104]=j,t[105]=U,t[106]=q,t[107]=st,t[108]=ct):ct=t[108];let $;t[109]!==at||t[110]!==ot||t[111]!==ct?($=(0,I.jsxs)(S,{className:`flex h-[min(42rem,90dvh)] max-w-2xl flex-col overflow-hidden p-0`,children:[at,ot,ct]}),t[109]=at,t[110]=ot,t[111]=ct,t[112]=$):$=t[112];let lt;return t[113]!==n||t[114]!==Y||t[115]!==$?(lt=(0,I.jsx)(C,{open:n,onOpenChange:Y,children:$}),t[113]=n,t[114]=Y,t[115]=$,t[116]=lt):lt=t[116],lt}function we(){}export{R as CreateProjectDialog,R as default,Ce as ProjectDialogFooter};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Gn as n,Jn as r,Kn as i,Wn as a,Xn as o,Yn as s,Zn as c,qn as l}from"./index-DD_a7tQU.js";var u=e(),d=t();function f(e){let t=(0,u.c)(19),{open:f,onOpenChange:p,title:m,description:h,onConfirm:g,confirming:_,confirmLabel:v,confirmingLabel:y}=e,b=_===void 0?!1:_,x=v===void 0?`Delete`:v,S=y===void 0?`Deleting...`:y,C;t[0]===m?C=t[1]:(C=(0,d.jsx)(c,{children:m}),t[0]=m,t[1]=C);let w;t[2]===h?w=t[3]:(w=(0,d.jsx)(r,{children:h}),t[2]=h,t[3]=w);let T;t[4]!==C||t[5]!==w?(T=(0,d.jsxs)(o,{children:[C,w]}),t[4]=C,t[5]=w,t[6]=T):T=t[6];let E;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,d.jsx)(i,{children:`Cancel`}),t[7]=E):E=t[7];let D=b?S:x,O;t[8]!==b||t[9]!==g||t[10]!==D?(O=(0,d.jsxs)(s,{children:[E,(0,d.jsx)(n,{onClick:g,disabled:b,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:D})]}),t[8]=b,t[9]=g,t[10]=D,t[11]=O):O=t[11];let k;t[12]!==T||t[13]!==O?(k=(0,d.jsxs)(l,{children:[T,O]}),t[12]=T,t[13]=O,t[14]=k):k=t[14];let A;return t[15]!==p||t[16]!==f||t[17]!==k?(A=(0,d.jsx)(a,{open:f,onOpenChange:p,children:k}),t[15]=p,t[16]=f,t[17]=k,t[18]=A):A=t[18],A}export{f as t};
@@ -1,4 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Ft as i,N as a}from"./dist-DNkA3vYh.js";import{H as o,V as s,et as c,n as l,r as u}from"./store-B7EgrEO7.js";import{t as d}from"./utils-B-qS8qMg.js";import{Jt as f,Ot as p,P as m,X as h,Y as g,ct as _,it as v,jt as y,kt as b,mn as x,nt as S,pn as C,r as w}from"./lucide-react-B-115rul.js";import{t as T}from"./button-B5aMz2Rk.js";import{i as E,n as D,t as O}from"./tooltip-Dvmz78Z_.js";import{Qn as k,Vt as A,_r as j,kr as M,q as N,tt as P,yr as F}from"./api-OO3KSG8d.js";import{n as I}from"./scroll-area-DwRwR2nQ.js";import{n as ee}from"./explorer-tab-context-BxUVwWQQ.js";import{t as L}from"./progress-indicator-C01aPXIe.js";import{n as R}from"./suspense-resource-DzlMlIgR.js";import{Ar as z,B,Dr as V,Er as H,Gt as U,L as te,Ln as ne,M as re,Mn as W,Qn as ie,Rn as G,W as ae,jr as oe,k as se,kr as ce,or as K,rr as le,sr as q,tr as ue,zn as de}from"./index-DD_a7tQU.js";import{a as fe,n as pe,r as J,t as me}from"./context-menu-BKOotkeD.js";import{t as he}from"./async-error-boundary-Dll_zcqr.js";import{s as Y}from"./monaco-lJcjGRXq.js";import{n as ge}from"./monaco-setup-DU2h1v3K.js";var X=e(n(),1),Z=t(),Q=r();function _e(e){let t=(0,Z.c)(12),{children:n,title:r,subtitle:a,headerAction:o,footer:s}=e,c;t[0]!==o||t[1]!==a||t[2]!==r?(c=(r||a||o)&&(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1 border-b border-sidebar-border px-4 py-6`,children:[(r||o)&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:r&&(0,Q.jsx)(`span`,{className:i.sectionTitle,children:r})}),o&&(0,Q.jsx)(`div`,{className:`flex items-center gap-2 ml-auto`,children:o})]}),a]}),t[0]=o,t[1]=a,t[2]=r,t[3]=c):c=t[3];let l;t[4]===n?l=t[5]:(l=(0,Q.jsx)(I,{className:`min-h-0 flex-1`,children:n}),t[4]=n,t[5]=l);let u;t[6]===s?u=t[7]:(u=s&&(0,Q.jsx)(`div`,{className:`border-t border-sidebar-border`,children:s}),t[6]=s,t[7]=u);let d;return t[8]!==c||t[9]!==l||t[10]!==u?(d=(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-col`,children:[c,l,u]}),t[8]=c,t[9]=l,t[10]=u,t[11]=d):d=t[11],d}function ve(e){let t=(0,Z.c)(30),{node:n,level:r,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u}=e,d=!!(n.children&&n.children.length>0),f,p,m;if(t[0]!==a||t[1]!==u||t[2]!==d||t[3]!==r||t[4]!==n||t[5]!==l||t[6]!==c||t[7]!==i){f=u?.has(n.id)||(c[n.id]??a);let e;t[11]!==n.id||t[12]!==l?(e=()=>l(n.id),t[11]=n.id,t[12]=l,t[13]=e):e=t[13];let o=e;p=`min-w-0`,m=i(n,{isOpen:f,level:r,toggle:o,hasChildren:d}),t[0]=a,t[1]=u,t[2]=d,t[3]=r,t[4]=n,t[5]=l,t[6]=c,t[7]=i,t[8]=f,t[9]=p,t[10]=m}else f=t[8],p=t[9],m=t[10];let h;t[14]!==s||t[15]!==a||t[16]!==u||t[17]!==d||t[18]!==o||t[19]!==f||t[20]!==r||t[21]!==n.children||t[22]!==l||t[23]!==c||t[24]!==i?(h=d&&f&&(0,Q.jsx)(`div`,{style:{paddingLeft:o},className:s,children:n.children.map(e=>(0,Q.jsx)(ve,{node:e,level:r+1,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u},e.id))}),t[14]=s,t[15]=a,t[16]=u,t[17]=d,t[18]=o,t[19]=f,t[20]=r,t[21]=n.children,t[22]=l,t[23]=c,t[24]=i,t[25]=h):h=t[25];let g;return t[26]!==p||t[27]!==m||t[28]!==h?(g=(0,Q.jsxs)(`div`,{className:p,children:[m,h]}),t[26]=p,t[27]=m,t[28]=h,t[29]=g):g=t[29],g}function ye(e){let t=(0,Z.c)(31),{nodes:n,renderNode:r,resetKey:i,defaultOpen:a,forceOpenIds:o,initialOpenIds:s,indent:c,childContainerClassName:l,className:u}=e,f=a===void 0?!1:a,p=c===void 0?16:c,m;t[0]===s?m=t[1]:(m=()=>{let e={};if(s)for(let t of s)e[t]=!0;return e},t[0]=s,t[1]=m);let[h,g]=(0,X.useState)(m),[_,v]=(0,X.useState)(i);if(i!==_){v(i);let e={};if(s)for(let t of s)e[t]=!0;g(e)}let y;t[2]===o?y=t[3]:(y=o?new Set(o):void 0,t[2]=o,t[3]=y);let b=y,x,S;t[4]===o?(x=t[5],S=t[6]):(x=()=>{o?.length&&g(e=>{let t={...e},n=!1;for(let e of o)t[e]!==!0&&(t[e]=!0,n=!0);return n?t:e})},S=[o],t[4]=o,t[5]=x,t[6]=S),(0,X.useEffect)(x,S);let C;t[7]===f?C=t[8]:(C=e=>{g(t=>({...t,[e]:!(t[e]??f)}))},t[7]=f,t[8]=C);let w=C,T;t[9]===u?T=t[10]:(T=d(`min-w-0`,u),t[9]=u,t[10]=T);let E;if(t[11]!==l||t[12]!==f||t[13]!==b||t[14]!==w||t[15]!==p||t[16]!==n||t[17]!==h||t[18]!==r){let e;t[20]!==l||t[21]!==f||t[22]!==b||t[23]!==w||t[24]!==p||t[25]!==h||t[26]!==r?(e=e=>(0,Q.jsx)(ve,{node:e,level:0,renderNode:r,defaultOpen:f,indent:p,childContainerClassName:l,openState:h,onToggle:w,forceOpenIds:b},e.id),t[20]=l,t[21]=f,t[22]=b,t[23]=w,t[24]=p,t[25]=h,t[26]=r,t[27]=e):e=t[27],E=n.map(e),t[11]=l,t[12]=f,t[13]=b,t[14]=w,t[15]=p,t[16]=n,t[17]=h,t[18]=r,t[19]=E}else E=t[19];let D;return t[28]!==T||t[29]!==E?(D=(0,Q.jsx)(`div`,{className:T,children:E}),t[28]=T,t[29]=E,t[30]=D):D=t[30],D}function be(e){let t=[],n={};return e.forEach((e,r)=>{let i=e.path.split(`/`),a=t,o=``;for(let e=0;e<i.length-1;e++){if(o=o?`${o}/${i[e]}`:i[e],!n[o]){let t={id:`dir:${o}`,name:i[e],children:[]};n[o]=t,a.push(t)}a=n[o].children}a.push({id:`file:${e.path}`,name:i[i.length-1],fileIndex:r,status:e.status})}),t}var xe={added:`text-green-500`,deleted:`text-red-500`,untracked:`text-green-500`,renamed:`text-blue-500`,modified:`text-orange-500`},Se={added:`A`,deleted:`D`,untracked:`U`,renamed:`R`,modified:`M`};function Ce(e){return d(d(i.compact,`status-badge font-mono font-semibold`),xe[e]??`text-orange-500`)}function we(e){return Se[e]??`M`}function Te(e){let t=(0,Z.c)(22),{treeData:n,files:r,error:a,selectedFileIndex:o,onFileSelect:s,onRevertFile:c}=e,{setStats:l}=re(),u;t[0]===r?u=t[1]:(u=r.reduce(ke,0),t[0]=r,t[1]=u);let f=u,h;t[2]===r?h=t[3]:(h=r.reduce(Ee,0),t[2]=r,t[3]=h);let g=h,_,v;if(t[4]!==r.length||t[5]!==l||t[6]!==f||t[7]!==g?(_=()=>{l({fileCount:r.length,additions:f,deletions:g})},v=[r.length,f,g,l],t[4]=r.length,t[5]=l,t[6]=f,t[7]=g,t[8]=_,t[9]=v):(_=t[8],v=t[9]),(0,X.useEffect)(_,v),a){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=d(i.compact,`text-destructive text-center`),t[10]=e):e=t[10];let n;return t[11]===a?n=t[12]:(n=(0,Q.jsx)(_e,{children:(0,Q.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,Q.jsx)(`p`,{className:e,children:a})})}),t[11]=a,t[12]=n),n}if(r.length===0){let e;return t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(_e,{children:(0,Q.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,Q.jsx)(`p`,{className:d(i.compact,i.bodyMuted,`text-center`),children:`No changes to review`})})}),t[13]=e):e=t[13],e}let x;t[14]!==r||t[15]!==s||t[16]!==c||t[17]!==o?(x=(e,t)=>{let{isOpen:n,toggle:a}=t,l=!!e.children,u=(0,Q.jsxs)(K,{onClick:()=>{l?a():e.fileIndex!==void 0&&s(e.fileIndex)},selected:!l&&e.fileIndex===o,className:d(i.conversationBody,`gap-1.5`),children:[l?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(C,{className:d(`h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform`,n&&`rotate-90`)}),n?(0,Q.jsx)(b,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}):(0,Q.jsx)(p,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}):(0,Q.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:`truncate flex-1 min-w-0`,children:e.name}),!l&&e.status&&(0,Q.jsx)(`span`,{className:Ce(e.status),children:we(e.status)})]});return l?u:(0,Q.jsxs)(me,{children:[(0,Q.jsx)(fe,{asChild:!0,children:(0,Q.jsx)(`div`,{children:u})}),(0,Q.jsx)(pe,{children:(0,Q.jsxs)(J,{onClick:()=>{e.fileIndex!==void 0&&c?.(r[e.fileIndex])},children:[(0,Q.jsx)(m,{className:`mr-2 h-3.5 w-3.5`}),`Revert Change`]})})]})},t[14]=r,t[15]=s,t[16]=c,t[17]=o,t[18]=x):x=t[18];let S;return t[19]!==x||t[20]!==n?(S=(0,Q.jsx)(_e,{children:(0,Q.jsx)(`div`,{className:`px-1 pt-3 pb-2`,children:(0,Q.jsx)(ye,{nodes:n,defaultOpen:!0,indent:16,childContainerClassName:`ml-4 border-l border-sidebar-border pl-2`,renderNode:x})})}),t[19]=x,t[20]=n,t[21]=S):S=t[21],S}function Ee(e,t){return e+t.hunks.reduce(De,0)}function De(e,t){return e+t.changes.filter(Oe).length}function Oe(e){return e.type===`delete`}function ke(e,t){return e+t.hunks.reduce(Ae,0)}function Ae(e,t){return e+t.changes.filter(je).length}function je(e){return e.type===`add`}function Me(e){let t=(0,Z.c)(36),{open:n,lineNumber:r,lineContent:a,initialComment:o,isEditing:s,onSave:c,onDelete:l,onClose:u}=e,[f,p]=(0,X.useState)((o===void 0?``:o)??``),m;t[0]!==c||t[1]!==f?(m=()=>{f.trim()&&c(f.trim())},t[0]=c,t[1]=f,t[2]=m):m=t[2];let h=m,g;t[3]===h?g=t[4]:(g=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),h())},t[3]=h,t[4]=g);let _=g,v;t[5]===u?v=t[6]:(v=e=>{e||u()},t[5]=u,t[6]=v);let y;t[7]===r?y=t[8]:(y=(0,Q.jsx)(z,{children:(0,Q.jsxs)(oe,{children:[`Comment on line `,r]})}),t[7]=r,t[8]=y);let b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=d(i.compact,`font-mono rounded bg-muted px-3 py-2 text-muted-foreground overflow-x-auto whitespace-pre`),t[9]=b):b=t[9];let x=a||` `,S;t[10]===x?S=t[11]:(S=(0,Q.jsx)(`div`,{className:b,children:x}),t[10]=x,t[11]=S);let C;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>p(e.target.value),t[12]=C):C=t[12];let w;t[13]!==_||t[14]!==f?(w=(0,Q.jsx)(B,{autoFocus:!0,placeholder:`Add a comment... (Cmd+Enter to save)`,value:f,onChange:C,onKeyDown:_,rows:12,className:`resize-none text-base`}),t[13]=_,t[14]=f,t[15]=w):w=t[15];let E;t[16]!==s||t[17]!==l?(E=s&&l&&(0,Q.jsx)(T,{variant:`destructive`,size:`sm`,onClick:l,className:`mr-auto`,children:`Delete`}),t[16]=s,t[17]=l,t[18]=E):E=t[18];let D;t[19]===f?D=t[20]:(D=f.trim(),t[19]=f,t[20]=D);let O=!D,k;t[21]!==h||t[22]!==O?(k=(0,Q.jsx)(T,{size:`sm`,onClick:h,disabled:O,children:`Save`}),t[21]=h,t[22]=O,t[23]=k):k=t[23];let A;t[24]!==E||t[25]!==k?(A=(0,Q.jsxs)(ce,{className:`gap-2 sm:gap-0`,children:[E,k]}),t[24]=E,t[25]=k,t[26]=A):A=t[26];let j;t[27]!==w||t[28]!==A||t[29]!==y||t[30]!==S?(j=(0,Q.jsxs)(V,{className:`max-w-2xl`,children:[y,S,w,A]}),t[27]=w,t[28]=A,t[29]=y,t[30]=S,t[31]=j):j=t[31];let M;return t[32]!==n||t[33]!==j||t[34]!==v?(M=(0,Q.jsx)(H,{open:n,onOpenChange:v,children:j}),t[32]=n,t[33]=j,t[34]=v,t[35]=M):M=t[35],M}function Ne(e){let t=l(),n=u(e=>e.diffComments),r=(0,X.useMemo)(()=>n[e]??[],[n,e]),i=(0,X.useCallback)(r=>{let i=n[e]??[],a=typeof r==`function`?r(i):r;t({type:c.SetDiffComments,threadId:e,comments:a})},[t,e,n]),a=(0,X.useRef)(!1);return(0,X.useEffect)(()=>{if((n[e]??[]).length>0){a.current=!0;return}A(e).then(n=>{n.diffComments&&n.diffComments.length>0&&t({type:c.SetDiffComments,threadId:e,comments:n.diffComments}),a.current=!0}).catch(()=>{a.current=!0})},[e]),(0,X.useEffect)(()=>{a.current&&k(e,{diffComments:r}).catch(()=>{})},[e,r]),{comments:r,setComments:i}}function Pe(e,t){return`git-diff:${e}:${t}`}function Fe(e){return e===`dark`?`vs-dark`:`vs-light`}function Ie(e){return d(`bg-transparent`,e&&`h-auto py-3 flex-col items-start gap-3 md:flex-row md:items-center md:h-[71px] md:py-0 md:gap-2 justify-between`)}function Le(e){return d(`flex items-center gap-2`,e?`ml-0`:`ml-auto`,`md:ml-auto`)}function Re(){return Error(`Loading review changes timed out. Please try again.`)}async function ze(e,t=15e3){return Promise.race([j(e),new Promise((e,n)=>{window.setTimeout(()=>n(Re()),t)})])}var Be=2;function Ve(e,t){return t<=0?{min:e,max:e}:{min:e,max:e+t-1}}function He(e,t){return{startLine:Math.max(1,e-Be),endLine:t+Be}}function $(e){if(e.hunks.length===0)return null;let t=1/0,n=0,r=1/0,i=0;for(let a of e.hunks){let e=Ve(a.oldStart,a.oldLines),o=Ve(a.newStart,a.newLines);t=Math.min(t,e.min),n=Math.max(n,e.max),r=Math.min(r,o.min),i=Math.max(i,o.max)}return t===1/0||r===1/0?null:{original:He(t,n),modified:He(r,i)}}function Ue(e,t,n){if(e.length===0)return``;let r=e.endsWith(`
2
- `),i=e.split(`
3
- `);return r&&i.length>0&&i[i.length-1]===``&&i.pop(),i.slice(Math.max(0,t-1),Math.max(t-1,n)).join(`
4
- `)}function We(e){let t=$(e);return t?t.original.startLine<=1||t.modified.startLine<=1:!0}function Ge(e,t){return t?e-t.startLine+1:e}function Ke(e,t){return t?t.startLine+e-1:e}function qe(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,rb:`ruby`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,swift:`swift`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`}[e.split(`.`).pop()??``]||`plaintext`}function Je(e){let t=(0,Z.c)(34),{comments:n,activeCommentIndex:r,isFullView:i,selectedFileIndex:a,files:o,selectedFile:s,onLineGutterClick:c}=e,l=(0,X.useRef)(null),u=(0,X.useRef)(n),d=(0,X.useRef)(r),f;t[0]!==o||t[1]!==i||t[2]!==a?(f={isFullView:i,selectedFileIndex:a,files:o},t[0]=o,t[1]=i,t[2]=a,t[3]=f):f=t[3];let p=(0,X.useRef)(f),m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m={original:[],modified:[]},t[4]=m):m=t[4];let h=(0,X.useRef)(m),g=(0,X.useRef)(null),_=(0,X.useRef)(!0),v,y;t[5]===n?(v=t[6],y=t[7]):(v=()=>{u.current=n},y=[n],t[5]=n,t[6]=v,t[7]=y),(0,X.useEffect)(v,y);let b,x;t[8]===r?(b=t[9],x=t[10]):(b=()=>{d.current=r},x=[r],t[8]=r,t[9]=b,t[10]=x),(0,X.useEffect)(b,x);let S,C;t[11]!==o||t[12]!==i||t[13]!==a?(S=()=>{p.current={isFullView:i,selectedFileIndex:a,files:o}},C=[i,a,o],t[11]=o,t[12]=i,t[13]=a,t[14]=S,t[15]=C):(S=t[14],C=t[15]),(0,X.useEffect)(S,C);let w;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{if(!_.current)return;let e=l.current;if(!e)return;let{isFullView:t,selectedFileIndex:n,files:r}=p.current,i=u.current,a=d.current,o=r[n];if(!o)return;let s=(e,r)=>{let s=t?null:$(o),c=s?r===`original`?s.original:s.modified:null,l=i.filter(e=>e.fileIndex===n&&e.side===r),u=new Set(l.map(e=>Ge(e.lineNumber,c))),d=e.getModel()?.getLineCount()??0,f=[];for(let e=1;e<=d;e++)u.has(e)||f.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},options:{isWholeLine:!0,glyphMarginClassName:`diff-gutter-add-comment`,glyphMarginHoverMessage:{value:`$(add) Click to add a comment`},stickiness:Y.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}});let p=l.map(e=>{let t=Ge(e.lineNumber,c);if(t<1)return null;let n=i.indexOf(e)===a;return{range:{startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1},options:{isWholeLine:!0,className:n?`diff-comment-active-line`:`diff-comment-marked-line`,glyphMarginClassName:n?`diff-comment-glyph-active`:`diff-comment-glyph`,glyphMarginHoverMessage:{value:e.comment},stickiness:Y.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}}}).filter(Xe);f.push(...p);let m=r===`original`?h.current.original:h.current.modified,g=e.deltaDecorations(m,f);r===`original`?h.current.original=g:h.current.modified=g};s(e.getOriginalEditor(),`original`),s(e.getModifiedEditor(),`modified`)},t[16]=w):w=t[16];let T=w,E;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=g.current;g.current=null,e?.original?.dispose(),e?.modified?.dispose()},t[17]=E):E=t[17];let D=E,O;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>{h.current={original:[],modified:[]};let e=setTimeout(()=>T(),150);return()=>clearTimeout(e)},t[18]=O):O=t[18];let k;t[19]===a?k=t[20]:(k=[a,T],t[19]=a,t[20]=k),(0,X.useEffect)(O,k);let A;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>{T()},t[21]=A):A=t[21];let j;t[22]!==r||t[23]!==n||t[24]!==i||t[25]!==s||t[26]!==a?(j=[T,n,r,a,i,s],t[22]=r,t[23]=n,t[24]=i,t[25]=s,t[26]=a,t[27]=j):j=t[27],(0,X.useEffect)(A,j);let M,N;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>()=>{_.current=!1,l.current=null,h.current={original:[],modified:[]},D()},N=[D],t[28]=M,t[29]=N):(M=t[28],N=t[29]),(0,X.useEffect)(M,N);let P;t[30]===c?P=t[31]:(P=e=>{l.current=e;let t=e.getModel();g.current=t?{original:t.original,modified:t.modified}:null;let n=Ye,r=(e,t)=>{e.onMouseDown(r=>{if(!r.target?.position||!n(r.target.type))return;let i=r.target.position.lineNumber,{isFullView:a,selectedFileIndex:o,files:s}=p.current,l=s[o];if(!l)return;let d=a?null:$(l),f=Ke(i,d?t===`original`?d.original:d.modified:null),m=e.getModel()?.getLineContent(i)??``;c({existing:u.current.find(e=>e.fileIndex===o&&e.lineNumber===f&&e.side===t),lineNumber:f,lineContent:m,side:t})})};r(e.getOriginalEditor(),`original`),r(e.getModifiedEditor(),`modified`),setTimeout(()=>{l.current===e&&T()},150)},t[30]=c,t[31]=P);let F=P,I;return t[32]===F?I=t[33]:(I={diffEditorRef:l,applyAllDecorations:T,handleEditorDidMount:F},t[32]=F,t[33]=I),I}function Ye(e){return e===Y.MouseTargetType.GUTTER_GLYPH_MARGIN||e===Y.MouseTargetType.GUTTER_LINE_NUMBERS||e===Y.MouseTargetType.GUTTER_LINE_DECORATIONS||e===Y.MouseTargetType.GUTTER_VIEW_ZONE}function Xe(e){return e!==null}function Ze(e){let t=(0,Z.c)(6),{onRetry:n}=e,[r,a]=(0,X.useState)(!1),o,s;if(t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=window.setTimeout(()=>{a(!0)},15e3);return()=>{window.clearTimeout(e)}},s=[],t[0]=o,t[1]=s):(o=t[0],s=t[1]),(0,X.useEffect)(o,s),!r){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(L,{centered:!0,label:`Loading review changes...`}),t[2]=e):e=t[2],e}let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(`p`,{className:i.bodyMuted,children:`Loading review changes is taking longer than expected.`}),t[3]=c):c=t[3];let l;return t[4]===n?l=t[5]:(l=(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,Q.jsxs)(`div`,{className:`space-y-4 text-center`,children:[c,(0,Q.jsx)(T,{variant:`outline`,onClick:n,children:`Retry`})]})}),t[4]=n,t[5]=l),l}function Qe(e,t,n){return`git-media:${e}:${t}:${n}`}function $e(e,t,n){let r=(0,Z.c)(13),i;r[0]!==t||r[1]!==e||r[2]!==n?(i=Qe(e,t,n),r[0]=t,r[1]=e,r[2]=n,r[3]=i):i=r[3];let a;r[4]!==t||r[5]!==e||r[6]!==n?(a=()=>F(e,t,n),r[4]=t,r[5]=e,r[6]=n,r[7]=a):a=r[7];let o=ie(i,a),s;r[8]===o?s=r[9]:(s=URL.createObjectURL(o),r[8]=o,r[9]=s);let c=s,l,u;return r[10]===c?(l=r[11],u=r[12]):(l=()=>()=>{URL.revokeObjectURL(c)},u=[c],r[10]=c,r[11]=l,r[12]=u),(0,X.useEffect)(l,u),c}function et(e){let t=(0,Z.c)(9),{threadId:n,filePath:r,version:a,label:o}=e,s=$e(n,r,a),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=d(i.caption,`px-3 py-1.5 border-b text-muted-foreground bg-muted/30`),t[0]=c):c=t[0];let l;t[1]===o?l=t[2]:(l=(0,Q.jsx)(`div`,{className:c,children:o}),t[1]=o,t[2]=l);let u=`${o} - ${r}`,f;t[3]!==s||t[4]!==u?(f=(0,Q.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 overflow-auto bg-background`,children:(0,Q.jsx)(`img`,{src:s,alt:u,className:`max-w-full max-h-full object-contain`})}),t[3]=s,t[4]=u,t[5]=f):f=t[5];let p;return t[6]!==l||t[7]!==f?(p=(0,Q.jsxs)(`div`,{className:`flex flex-col h-full`,children:[l,f]}),t[6]=l,t[7]=f,t[8]=p):p=t[8],p}function tt(e){let t=(0,Z.c)(23),{threadId:n,file:r}=e,i=r.status===`modified`||r.status===`deleted`||r.status===`renamed`,a=r.status===`modified`||r.status===`added`||r.status===`untracked`||r.status===`renamed`;if(i&&a){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(L,{centered:!0,label:`Loading before image...`}),t[0]=e):e=t[0];let i=r.status===`renamed`&&r.oldPath?r.oldPath:r.path,a;t[1]!==i||t[2]!==n?(a=(0,Q.jsx)(`div`,{className:`flex-1 border-r border-border`,children:(0,Q.jsx)(X.Suspense,{fallback:e,children:(0,Q.jsx)(et,{threadId:n,filePath:i,version:`old`,label:`Before`})})}),t[1]=i,t[2]=n,t[3]=a):a=t[3];let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(L,{centered:!0,label:`Loading after image...`}),t[4]=o):o=t[4];let s;t[5]!==r.path||t[6]!==n?(s=(0,Q.jsx)(`div`,{className:`flex-1`,children:(0,Q.jsx)(X.Suspense,{fallback:o,children:(0,Q.jsx)(et,{threadId:n,filePath:r.path,version:`new`,label:`After`})})}),t[5]=r.path,t[6]=n,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==s?(c=(0,Q.jsxs)(`div`,{className:`flex h-full`,children:[a,s]}),t[8]=a,t[9]=s,t[10]=c):c=t[10],c}let o=a?`new`:`old`,s=a?`Added`:`Deleted`,c;t[11]===s?c=t[12]:(c=s.toLowerCase(),t[11]=s,t[12]=c);let l=`Loading ${c} image...`,u;t[13]===l?u=t[14]:(u=(0,Q.jsx)(L,{centered:!0,label:l}),t[13]=l,t[14]=u);let d;t[15]!==r.path||t[16]!==s||t[17]!==n||t[18]!==o?(d=(0,Q.jsx)(et,{threadId:n,filePath:r.path,version:o,label:s}),t[15]=r.path,t[16]=s,t[17]=n,t[18]=o,t[19]=d):d=t[19];let f;return t[20]!==u||t[21]!==d?(f=(0,Q.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,Q.jsx)(X.Suspense,{fallback:u,children:d})}),t[20]=u,t[21]=d,t[22]=f):f=t[22],f}function nt(e){let t=(0,Z.c)(21),{comments:n,activeCommentIndex:r,onPrevComment:a,onNextComment:o}=e,s=r??0,c=n.length===1?`1 Comment`:`Comment ${s+1} of ${n.length}`,l=s===0,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(x,{className:`h-3 w-3`}),t[0]=u):u=t[0];let f;t[1]!==a||t[2]!==l?(f=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsx)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:a,disabled:l,children:u})}),t[1]=a,t[2]=l,t[3]=f):f=t[3];let p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(D,{children:`Previous comment`}),t[4]=p):p=t[4];let m;t[5]===f?m=t[6]:(m=(0,Q.jsxs)(O,{children:[f,p]}),t[5]=f,t[6]=m);let h;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(h=d(i.caption,`whitespace-nowrap`),t[7]=h):h=t[7];let g;t[8]===c?g=t[9]:(g=(0,Q.jsx)(`span`,{className:h,children:c}),t[8]=c,t[9]=g);let _=s===n.length-1,v;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Q.jsx)(C,{className:`h-3 w-3`}),t[10]=v):v=t[10];let y;t[11]!==o||t[12]!==_?(y=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsx)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:o,disabled:_,children:v})}),t[11]=o,t[12]=_,t[13]=y):y=t[13];let b;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsx)(D,{children:`Next comment`}),t[14]=b):b=t[14];let S;t[15]===y?S=t[16]:(S=(0,Q.jsxs)(O,{children:[y,b]}),t[15]=y,t[16]=S);let w;return t[17]!==S||t[18]!==m||t[19]!==g?(w=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[m,g,S]}),t[17]=S,t[18]=m,t[19]=g,t[20]=w):w=t[20],w}function rt(e){let t=(0,Z.c)(12),{isChatOpen:n,onOpenChat:r,onCloseChat:i,focusedPane:a,conversationId:o,paneMessages:s}=e,c;t[0]!==o||t[1]!==a||t[2]!==n||t[3]!==i||t[4]!==s?(c=n&&(0,Q.jsxs)(`div`,{className:`pointer-events-auto w-[min(100%,48rem)] rounded-2xl bg-background/50 p-4 backdrop-blur-md`,children:[(0,Q.jsx)(`div`,{className:`mb-3 flex items-center justify-end`,children:(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:i,children:[(0,Q.jsx)(w,{className:`h-4 w-4`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Close chat`})]})}),(0,Q.jsx)(U,{paneId:a,conversationId:o,children:(0,Q.jsx)(ae,{children:(0,Q.jsx)(te,{messages:s})})})]}),t[0]=o,t[1]=a,t[2]=n,t[3]=i,t[4]=s,t[5]=c):c=t[5];let l;t[6]!==n||t[7]!==r?(l=!n&&(0,Q.jsxs)(O,{children:[(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsxs)(T,{size:`icon`,className:`pointer-events-auto h-12 w-12 rounded-full shadow-lg`,onClick:r,children:[(0,Q.jsx)(v,{className:`h-5 w-5`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Open review chat`})]})}),(0,Q.jsx)(D,{children:`Chat about this diff`})]}),t[6]=n,t[7]=r,t[8]=l):l=t[8];let u;return t[9]!==c||t[10]!==l?(u=(0,Q.jsxs)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 z-20 flex flex-col items-end gap-3`,children:[c,l]}),t[9]=c,t[10]=l,t[11]=u):u=t[11],u}function it(e){let t=(0,Z.c)(10),{showTreeBackButton:n,isPanelCollapsed:r,onShowTree:i,onTogglePanel:a}=e;if(n){let e,n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(g,{className:`h-4 w-4`}),n=(0,Q.jsx)(`span`,{className:`sr-only`,children:`Show file tree`}),t[0]=e,t[1]=n):(e=t[0],n=t[1]);let r;return t[2]===i?r=t[3]:(r=(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:i,children:[e,n]}),t[2]=i,t[3]=r),r}let o;t[4]===r?o=t[5]:(o=r?(0,Q.jsx)(g,{className:`h-4 w-4`}):(0,Q.jsx)(h,{className:`h-4 w-4`}),t[4]=r,t[5]=o);let s;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(`span`,{className:`sr-only`,children:`Toggle file tree`}),t[6]=s):s=t[6];let c;return t[7]!==a||t[8]!==o?(c=(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:a,children:[o,s]}),t[7]=a,t[8]=o,t[9]=c):c=t[9],c}function at(e){let t=(0,Z.c)(7),{isImageFile:n,isFullView:r,onToggleFullView:a,selectedFile:o}=e;if(n)return null;let s=!o,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=d(i.compact,`h-8 gap-1 px-2`),t[0]=c):c=t[0];let l;t[1]===r?l=t[2]:(l=r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(S,{className:`h-3 w-3`}),` Show changes only`]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(_,{className:`h-3 w-3`}),` Show full file`]}),t[1]=r,t[2]=l);let u;return t[3]!==a||t[4]!==s||t[5]!==l?(u=(0,Q.jsx)(T,{variant:`ghost`,size:`sm`,onClick:a,disabled:s,className:c,children:l}),t[3]=a,t[4]=s,t[5]=l,t[6]=u):u=t[6],u}function ot(e){let t=(0,Z.c)(7),{onOpen:n}=e,r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(f,{className:`h-3.5 w-3.5`}),i=(0,Q.jsx)(`span`,{className:`sr-only`,children:`Open in Files window`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;t[2]===n?a=t[3]:(a=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-7 w-7 shrink-0 text-muted-foreground`,onClick:n,children:[r,i]})}),t[2]=n,t[3]=a);let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(D,{children:`Open in Files window`}),t[4]=o):o=t[4];let s;return t[5]===a?s=t[6]:(s=(0,Q.jsxs)(O,{children:[a,o]}),t[5]=a,t[6]=s),s}function st(e){let t=(0,Z.c)(9),{selectedFile:n,onOpenInFiles:r}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=d(i.label,`text-foreground`),t[0]=a):a=t[0];let o=n?n.path:`Review Changes`,s;t[1]===o?s=t[2]:(s=(0,Q.jsx)(`span`,{className:a,children:o}),t[1]=o,t[2]=s);let c;t[3]!==r||t[4]!==n?(c=n&&(0,Q.jsx)(ot,{onOpen:r}),t[3]=r,t[4]=n,t[5]=c):c=t[5];let l;return t[6]!==s||t[7]!==c?(l=(0,Q.jsxs)(Q.Fragment,{children:[s,c]}),t[6]=s,t[7]=c,t[8]=l):l=t[8],l}function ct(e){let t=(0,Z.c)(15),{comments:n,activeCommentIndex:r,onPrevComment:a,onNextComment:o,onFixComments:s}=e;if(n.length===0)return null;let c;t[0]!==r||t[1]!==n||t[2]!==o||t[3]!==a?(c=(0,Q.jsx)(nt,{comments:n,activeCommentIndex:r,onPrevComment:a,onNextComment:o}),t[0]=r,t[1]=n,t[2]=o,t[3]=a,t[4]=c):c=t[4];let l,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=d(i.compact,`h-8 gap-1 px-3 bg-foreground text-background hover:bg-foreground/90`),u=(0,Q.jsx)(v,{className:`h-3 w-3`}),t[5]=l,t[6]=u):(l=t[5],u=t[6]);let f;t[7]===s?f=t[8]:(f=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsxs)(T,{size:`sm`,onClick:s,className:l,children:[u,`Fix all comments`]})}),t[7]=s,t[8]=f);let p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(D,{children:`Send all comments to Tarsk for resolution`}),t[9]=p):p=t[9];let m;t[10]===f?m=t[11]:(m=(0,Q.jsxs)(O,{children:[f,p]}),t[10]=f,t[11]=m);let h;return t[12]!==c||t[13]!==m?(h=(0,Q.jsxs)(Q.Fragment,{children:[c,m]}),t[12]=c,t[13]=m,t[14]=h):h=t[14],h}function lt(e){let t=(0,Z.c)(10),{isImageFile:n,selectedFile:r,threadId:i,language:a,theme:o,diffOriginal:s,diffModified:c,onEditorMount:l,diffEditorOptions:u}=e;if(n&&r){let e;return t[0]!==r||t[1]!==i?(e=(0,Q.jsx)(tt,{threadId:i,file:r}),t[0]=r,t[1]=i,t[2]=e):e=t[2],e}let d;return t[3]!==u||t[4]!==c||t[5]!==s||t[6]!==a||t[7]!==l||t[8]!==o?(d=(0,Q.jsx)(ge,{height:`100%`,language:a,original:s,modified:c,keepCurrentOriginalModel:!0,keepCurrentModifiedModel:!0,theme:o,onMount:l,options:u}),t[3]=u,t[4]=c,t[5]=s,t[6]=a,t[7]=l,t[8]=o,t[9]=d):d=t[9],d}function ut(){let e=(0,Z.c)(8),t=u(dt),n;e[0]===t?n=e[1]:(n=e=>s(e,t),e[0]=t,e[1]=n);let r=u(n),i;e[2]===t?i=e[3]:(i=e=>o(e,t),e[2]=t,e[3]=i);let a=u(i),c;return e[4]!==r||e[5]!==t||e[6]!==a?(c={focusedPane:t,conversationId:r,paneMessages:a},e[4]=r,e[5]=t,e[6]=a,e[7]=c):c=e[7],c}function dt(e){return e.focusedPane}function ft(e){let t=(0,Z.c)(61),{threadId:n,selectedFile:r,content:i,layout:a,commentControls:o,chatControls:s}=e,{isImageFile:c,diffOriginal:l,diffModified:u,resolvedTheme:d,onEditorMount:f,diffEditorOptions:p,isFullView:m,onToggleFullView:h}=i,{isPanelCollapsed:g,showTreeBackButton:_,onShowTree:v,onTogglePanel:y}=a,{focusedPane:b,conversationId:x,paneMessages:S}=ut(),{openChatDockPanel:C}=ue(),{setPendingExplorerPath:w}=ee(),T;t[0]!==C||t[1]!==r||t[2]!==w?(T=function(){r&&(w(r.path),C(`explorer`))},t[0]=C,t[1]=r,t[2]=w,t[3]=T):T=t[3];let E=T,D;t[4]===g?D=t[5]:(D=Ie(g),t[4]=g,t[5]=D);let O;t[6]!==g||t[7]!==v||t[8]!==y||t[9]!==_?(O=(0,Q.jsx)(it,{showTreeBackButton:_,isPanelCollapsed:g,onShowTree:v,onTogglePanel:y}),t[6]=g,t[7]=v,t[8]=y,t[9]=_,t[10]=O):O=t[10];let k;t[11]!==E||t[12]!==r?(k=(0,Q.jsx)(st,{selectedFile:r,onOpenInFiles:E}),t[11]=E,t[12]=r,t[13]=k):k=t[13];let A;t[14]!==O||t[15]!==k?(A=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[O,k]}),t[14]=O,t[15]=k,t[16]=A):A=t[16];let j;t[17]===g?j=t[18]:(j=Le(g),t[17]=g,t[18]=j);let M;t[19]!==m||t[20]!==c||t[21]!==h||t[22]!==r?(M=(0,Q.jsx)(at,{isImageFile:c,isFullView:m,onToggleFullView:h,selectedFile:r}),t[19]=m,t[20]=c,t[21]=h,t[22]=r,t[23]=M):M=t[23];let N;t[24]===o?N=t[25]:(N=(0,Q.jsx)(ct,{...o}),t[24]=o,t[25]=N);let P;t[26]!==j||t[27]!==M||t[28]!==N?(P=(0,Q.jsxs)(`div`,{className:j,children:[M,N]}),t[26]=j,t[27]=M,t[28]=N,t[29]=P):P=t[29];let F;t[30]!==D||t[31]!==A||t[32]!==P?(F=(0,Q.jsxs)(q,{className:D,children:[A,P]}),t[30]=D,t[31]=A,t[32]=P,t[33]=F):F=t[33];let I=r?.path||``,L;t[34]===I?L=t[35]:(L=qe(I),t[34]=I,t[35]=L);let R;t[36]===d?R=t[37]:(R=Fe(d),t[36]=d,t[37]=R);let z;t[38]!==p||t[39]!==u||t[40]!==l||t[41]!==c||t[42]!==f||t[43]!==r||t[44]!==L||t[45]!==R||t[46]!==n?(z=(0,Q.jsx)(lt,{isImageFile:c,selectedFile:r,threadId:n,language:L,theme:R,diffOriginal:l,diffModified:u,onEditorMount:f,diffEditorOptions:p}),t[38]=p,t[39]=u,t[40]=l,t[41]=c,t[42]=f,t[43]=r,t[44]=L,t[45]=R,t[46]=n,t[47]=z):z=t[47];let B;t[48]!==s.isChatOpen||t[49]!==s.onCloseChat||t[50]!==s.onOpenChat||t[51]!==x||t[52]!==b||t[53]!==S?(B=(0,Q.jsx)(rt,{isChatOpen:s.isChatOpen,onOpenChat:s.onOpenChat,onCloseChat:s.onCloseChat,focusedPane:b,conversationId:x,paneMessages:S}),t[48]=s.isChatOpen,t[49]=s.onCloseChat,t[50]=s.onOpenChat,t[51]=x,t[52]=b,t[53]=S,t[54]=B):B=t[54];let V;t[55]!==z||t[56]!==B?(V=(0,Q.jsxs)(`div`,{className:`flex-1 bg-transparent relative`,children:[z,B]}),t[55]=z,t[56]=B,t[57]=V):V=t[57];let H;return t[58]!==F||t[59]!==V?(H=(0,Q.jsxs)(`div`,{className:`diff-editor-panel flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden bg-transparent`,children:[F,V]}),t[58]=F,t[59]=V,t[60]=H):H=t[60],H}function pt(){let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(ne,{withHandle:!0,className:`z-10 shrink-0`}),e[0]=t):t=e[0],t}function mt(e){let t=(0,Z.c)(8),{isMobile:n,mobileShowTree:r,panelRef:i,onPanelCollapse:a,onPanelExpand:o,fileTreePanel:s,diffEditorPanel:c}=e,l;return t[0]!==c||t[1]!==s||t[2]!==n||t[3]!==r||t[4]!==a||t[5]!==o||t[6]!==i?(l=(0,Q.jsx)(`div`,{className:`diff-body flex min-h-0 w-full flex-1 overflow-hidden`,children:n?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:d(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,!r&&`hidden`),children:s}),(0,Q.jsx)(`div`,{className:d(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,r&&`hidden`),children:c})]}):(0,Q.jsxs)(de,{direction:`horizontal`,children:[(0,Q.jsx)(G,{ref:i,defaultSize:25,minSize:12,maxSize:40,collapsible:!0,collapsedSize:0,onCollapse:a,onExpand:o,className:`overflow-hidden border-r border-transparent`,children:s}),(0,Q.jsx)(pt,{}),(0,Q.jsx)(G,{className:`overflow-hidden border-l border-border bg-transparent`,children:c})]})}),t[0]=c,t[1]=s,t[2]=n,t[3]=r,t[4]=a,t[5]=o,t[6]=i,t[7]=l):l=t[7],l}var ht=a(`app.diff-view.ui`);function gt(e,t){if(!e)return{diffOriginal:``,diffModified:``};if(t)return{diffOriginal:e.oldContent,diffModified:e.newContent};let n=$(e);return n?{diffOriginal:Ue(e.oldContent,n.original.startLine,n.original.endLine),diffModified:Ue(e.newContent,n.modified.startLine,n.modified.endLine)}:{diffOriginal:e.oldContent,diffModified:e.newContent}}function _t(e,t){return!!(e&&(t||We(e)))}function vt(e,t,n){let r=n?null:$(e),i=r?t.side===`original`?r.original:r.modified:null;return Ge(t.lineNumber,i)}async function yt(e,t){let n=t[e];if(n)return n;try{let e=await P(),t=Object.values(e).flat();return t.length>0?t[0]:null}catch(e){return ht.error(`Failed to load models:`,e),null}}function bt(e){let t=(0,Z.c)(7),{treeData:n,files:r,error:i,selectedFileIndex:a,onFileSelect:o,onRevertFile:s}=e,c;return t[0]!==i||t[1]!==r||t[2]!==o||t[3]!==s||t[4]!==a||t[5]!==n?(c=(0,Q.jsx)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,children:(0,Q.jsx)(Te,{treeData:n,files:r,error:i,selectedFileIndex:a,onFileSelect:o,onRevertFile:s})}),t[0]=i,t[1]=r,t[2]=o,t[3]=s,t[4]=a,t[5]=n,t[6]=c):c=t[6],c}function xt(e,t){return`${e?e.id:``}-${t?String(t.lineNumber):``}-${t?t.side:``}`}function St(e,t){return e?{lineNumber:e.lineNumber,lineContent:e.lineContent,comment:e.comment}:t?{lineNumber:t.lineNumber,lineContent:t.lineContent,comment:void 0}:{lineNumber:0,lineContent:``,comment:void 0}}function Ct(e,t){return t!==null||e!==null}function wt(e){let t=(0,Z.c)(19),{editingComment:n,pendingLine:r,onSave:i,onDelete:a,onClose:o}=e,s;t[0]!==n||t[1]!==r?(s=St(n,r),t[0]=n,t[1]=r,t[2]=s):s=t[2];let c=s,l;t[3]!==n||t[4]!==r?(l=xt(n,r),t[3]=n,t[4]=r,t[5]=l):l=t[5];let u;t[6]!==n||t[7]!==r?(u=Ct(n,r),t[6]=n,t[7]=r,t[8]=u):u=t[8];let d=n!==null,f;return t[9]!==c.comment||t[10]!==c.lineContent||t[11]!==c.lineNumber||t[12]!==o||t[13]!==a||t[14]!==i||t[15]!==l||t[16]!==u||t[17]!==d?(f=(0,Q.jsx)(Me,{open:u,lineNumber:c.lineNumber,lineContent:c.lineContent,initialComment:c.comment,isEditing:d,onSave:i,onDelete:a,onClose:o},l),t[9]=c.comment,t[10]=c.lineContent,t[11]=c.lineNumber,t[12]=o,t[13]=a,t[14]=i,t[15]=l,t[16]=u,t[17]=d,t[18]=f):f=t[18],f}function Tt(e,t){return Math.min(e,Math.max(t-1,0))}function Et(e,t,n,r){e(r??[]),t(e=>Tt(n??e,r?.length??1))}function Dt(e,t,n){let r=Tt(t,e.length);return n?.files===e&&n.selectedFileIndex===r?n:{files:e,selectedFileIndex:r}}function Ot(e,t,n,r){return{id:`comment-${Date.now()}`,filePath:t.path,fileIndex:n,lineNumber:e.lineNumber,lineContent:e.lineContent,comment:r,side:e.side}}function kt(e,t){return(t%e+e)%e}function At(e,t,n,r){if(!e)return;let i=t[n.fileIndex];if(!i)return;let a=vt(i,n,r);(n.side===`original`?e.getOriginalEditor():e.getModifiedEditor()).revealLineInCenter(Math.max(1,a))}function jt(e,t,n){return{readOnly:!0,renderSideBySide:!e,ignoreTrimWhitespace:!1,renderOverviewRuler:!0,scrollBeyondLastLine:!1,minimap:{enabled:!1},folding:!1,glyphMargin:!0,lineNumbers:_t(t,n)?`on`:`off`,diffWordWrap:`on`,originalEditable:!1,automaticLayout:!0}}function Mt(e,t){e.current&&(t?e.current.expand():e.current.collapse())}async function Nt(e){return(await j(e)).files||[]}async function Pt(e,t,n,r){try{return await M(e,t.path),await Promise.all([n(),r(!0)]),null}catch(e){return e instanceof Error?e.message:`Failed to revert file`}}async function Ft({threadId:e,comments:t,selectedModel:n,clearComments:r,dispatch:i,onExit:a}){try{let{prompt:o}=await N(e,t);r(),i({type:c.SetPendingChatMessage,message:{threadId:e,message:o,model:n.id,provider:n.provider}}),a()}catch(e){ht.error(`Failed to fix comments:`,e),typeof window<`u`&&window.alert(`Failed to process comments. Please try again.`)}}function It(e,t){return e?.files??t??[]}function Lt(e){return e?.selectedFileIndex??0}function Rt(e){return e?.isBinary??!1}function zt(e,t,n,r){Et(e,t,n?.selectedFileIndex,r)}function Bt(e,t,n){n&&n(n=>Dt(e,t,n))}function Vt(e,t,n,r){n(e),t&&r(!1)}async function Ht(e,t,n,r){if(e){r(null);try{let r=await Nt(e);t(r),n(e=>Tt(e,r.length))}catch(e){r(e instanceof Error?e.message:`Failed to load diff`)}}}async function Ut(e,t,n,r,i){let a=await Pt(t,e,n,r);a&&i(a)}function Wt(e,t,n,r,i,a){e?i(e):a({lineNumber:t,lineContent:n,side:r})}function Gt(e,t,n,r,i,a){return t&&r?[...e,Ot(t,r,i,a)]:n?e.map(e=>e.id===n.id?{...e,comment:a}:e):e}function Kt(e,t){return t?e.filter(e=>e.id!==t.id):e}function qt(e,t){if(e.length===0)return null;let n=kt(e.length,t);return{idx:n,comment:e[n]}}function Jt(e,t,n,r,i,a,o,s,c,l){let u=qt(e,t);u&&(n(u.idx),r(u.comment.fileIndex),i&&a(!1),setTimeout(()=>{At(o.current,s,u.comment,c),l()},100))}async function Yt(e,t,n,r,i,a){let o=await yt(e,t);if(!o){ht.error(`No models available to process comments`);return}await Ft({threadId:e,comments:n,selectedModel:o,clearComments:a,dispatch:r,onExit:i})}function Xt(e,t,n,r,i){let a=(0,Z.c)(38),{fetchUnifiedStatus:o}=W(),s;a[0]!==n||a[1]!==t?(s=()=>It(n,t),a[0]=n,a[1]=t,a[2]=s):s=a[2];let[c,l]=(0,X.useState)(s),[u,d]=(0,X.useState)(null),f;a[3]===n?f=a[4]:(f=()=>Lt(n),a[3]=n,a[4]=f);let[p,m]=(0,X.useState)(f),[h,g]=(0,X.useState)(!0),_;a[5]!==n||a[6]!==t?(_=()=>{zt(l,m,n,t)},a[5]=n,a[6]=t,a[7]=_):_=a[7];let v=n?.selectedFileIndex,y;a[8]!==t||a[9]!==v?(y=[v,t],a[8]=t,a[9]=v,a[10]=y):y=a[10],(0,X.useEffect)(_,y);let b;a[11]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{g(!0)},a[11]=b):b=a[11];let x;a[12]===e?x=a[13]:(x=[e],a[12]=e,a[13]=x),(0,X.useEffect)(b,x);let S,C;a[14]!==c||a[15]!==r||a[16]!==p?(S=()=>{Bt(c,p,r)},C=[c,r,p],a[14]=c,a[15]=r,a[16]=p,a[17]=S,a[18]=C):(S=a[17],C=a[18]),(0,X.useEffect)(S,C);let w;a[19]===i?w=a[20]:(w=e=>{Vt(e,i,m,g)},a[19]=i,a[20]=w);let T=w,E;a[21]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{g(!0)},a[21]=E):E=a[21];let D=E,O;a[22]===e?O=a[23]:(O=async()=>{await Ht(e,l,m,d)},a[22]=e,a[23]=O);let k=O,A;a[24]!==o||a[25]!==k||a[26]!==e?(A=async t=>{await Ut(t,e,k,o,d)},a[24]=o,a[25]=k,a[26]=e,a[27]=A):A=a[27];let j=A,M;a[28]===c?M=a[29]:(M=be(c),a[28]=c,a[29]=M);let N=M,P;return a[30]!==u||a[31]!==c||a[32]!==T||a[33]!==j||a[34]!==h||a[35]!==p||a[36]!==N?(P={files:c,error:u,selectedFileIndex:p,mobileShowTree:h,treeData:N,setSelectedFileIndex:m,setMobileShowTree:g,handleFileSelect:T,handleShowTree:D,handleRevertFile:j},a[30]=u,a[31]=c,a[32]=T,a[33]=j,a[34]=h,a[35]=p,a[36]=N,a[37]=P):P=a[37],P}function Zt(e,t,n,r){let i=(0,Z.c)(17),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(null),l;i[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{let{existing:t,lineNumber:n,lineContent:r,side:i}=e;Wt(t,n,r,i,c,o)},i[0]=l):l=i[0];let u=l,d;i[1]!==e||i[2]!==s||i[3]!==a||i[4]!==n||i[5]!==r||i[6]!==t?(d=i=>{t(Gt(e,a,s,n,r,i)),o(null),c(null)},i[1]=e,i[2]=s,i[3]=a,i[4]=n,i[5]=r,i[6]=t,i[7]=d):d=i[7];let f=d,p;i[8]!==s||i[9]!==t?(p=()=>{t(e=>Kt(e,s)),s&&c(null)},i[8]=s,i[9]=t,i[10]=p):p=i[10];let m=p,h;i[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{o(null),c(null)},i[11]=h):h=i[11];let g=h,_;return i[12]!==s||i[13]!==m||i[14]!==f||i[15]!==a?(_={pendingLine:a,editingComment:s,handleLineGutterClick:u,handleSaveComment:f,handleDeleteComment:m,handleCloseCommentPopup:g},i[12]=s,i[13]=m,i[14]=f,i[15]=a,i[16]=_):_=i[16],_}function Qt(e){let t=(0,Z.c)(19),{comments:n,files:r,isFullView:i,isMobile:a,activeCommentIndex:o,setActiveCommentIndex:s,setSelectedFileIndex:c,setMobileShowTree:l,diffEditorRef:u,applyAllDecorations:d}=e,f;t[0]!==d||t[1]!==n||t[2]!==u||t[3]!==r||t[4]!==i||t[5]!==a||t[6]!==s||t[7]!==l||t[8]!==c?(f=e=>{Jt(n,e,s,c,a,l,u,r,i,d)},t[0]=d,t[1]=n,t[2]=u,t[3]=r,t[4]=i,t[5]=a,t[6]=s,t[7]=l,t[8]=c,t[9]=f):f=t[9];let p=f,m;t[10]!==o||t[11]!==p?(m=()=>{p((o??0)-1)},t[10]=o,t[11]=p,t[12]=m):m=t[12];let h=m,g;t[13]!==o||t[14]!==p?(g=()=>{p((o??-1)+1)},t[13]=o,t[14]=p,t[15]=g):g=t[15];let _=g,v;return t[16]!==_||t[17]!==h?(v={handlePrevComment:h,handleNextComment:_},t[16]=_,t[17]=h,t[18]=v):v=t[18],v}function $t(e,t,n,r,i,a){let o=(0,Z.c)(9),s;o[0]!==n||o[1]!==r||o[2]!==i||o[3]!==t||o[4]!==a||o[5]!==e?(s=()=>Yt(e,t,n,r,i,()=>a([])),o[0]=n,o[1]=r,o[2]=i,o[3]=t,o[4]=a,o[5]=e,o[6]=s):s=o[6];let c=s,l;return o[7]===c?l=o[8]:(l={handleFixComments:c},o[7]=c,o[8]=l),l}function en({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:s,isPanelCollapsed:c,showTreeBackButton:l,onShowTree:u,onTogglePanel:d,isFullView:f,onToggleFullView:p,comments:m,activeCommentIndex:h,onPrevComment:g,onNextComment:_,onFixComments:v,isChatOpen:y,onOpenChat:b,onCloseChat:x}){return{threadId:e,selectedFile:t,content:{isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:s,isFullView:f,onToggleFullView:p},layout:{isPanelCollapsed:c,showTreeBackButton:l,onShowTree:u,onTogglePanel:d},commentControls:{comments:m,activeCommentIndex:h,onPrevComment:g,onNextComment:_,onFixComments:v},chatControls:{isChatOpen:y,onOpenChat:b,onCloseChat:x}}}function tn({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,isMobile:s,showTreeBackButton:c,onShowTree:l,isFullView:u,onToggleFullView:d,comments:f,activeCommentIndex:p,onPrevComment:m,onNextComment:h,onFixComments:g}){let[_,v]=(0,X.useState)(!1),[y,b]=(0,X.useState)(!1),x=(0,X.useRef)(null),S=(0,X.useCallback)(()=>{Mt(x,_)},[_]);return{panelRef:x,editorPanelProps:en({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:(0,X.useMemo)(()=>jt(s,t,u),[s,t,u]),isPanelCollapsed:_,showTreeBackButton:c,onShowTree:l,onTogglePanel:S,isFullView:u,onToggleFullView:d,comments:f,activeCommentIndex:p,onPrevComment:m,onNextComment:h,onFixComments:g,isChatOpen:y,onOpenChat:()=>b(!0),onCloseChat:()=>b(!1)}),onPanelCollapse:()=>v(!0),onPanelExpand:()=>v(!1)}}function nn(e){let t=(0,Z.c)(64),{threadId:n,onExit:r,loadVersion:i,cachedState:a,onCachedStateChange:o}=e,s;t[0]!==i||t[1]!==n?(s=Pe(n,i),t[0]=i,t[1]=n,t[2]=s):s=t[2];let c;t[3]===n?c=t[4]:(c=()=>ze(n),t[3]=n,t[4]=c);let d=ie(s,c),f=l(),p=u(an),{resolvedTheme:m}=se(),h=le(),[g,_]=(0,X.useState)(!1),[v,y]=(0,X.useState)(null),{files:b,error:x,selectedFileIndex:S,mobileShowTree:C,treeData:w,setSelectedFileIndex:T,setMobileShowTree:E,handleFileSelect:D,handleShowTree:O,handleRevertFile:k}=Xt(n,d.files,a,o,h),{comments:A,setComments:j}=Ne(n),M=b[S],N;t[5]===M?N=t[6]:(N=Rt(M),t[5]=M,t[6]=N);let P=N,F;t[7]!==g||t[8]!==M?(F=gt(M,g),t[7]=g,t[8]=M,t[9]=F):F=t[9];let{diffOriginal:I,diffModified:ee}=F,{pendingLine:L,editingComment:R,handleLineGutterClick:z,handleSaveComment:B,handleDeleteComment:V,handleCloseCommentPopup:H}=Zt(A,j,M,S),U;t[10]!==v||t[11]!==A||t[12]!==b||t[13]!==z||t[14]!==g||t[15]!==M||t[16]!==S?(U={comments:A,activeCommentIndex:v,isFullView:g,selectedFileIndex:S,files:b,selectedFile:M,onLineGutterClick:z},t[10]=v,t[11]=A,t[12]=b,t[13]=z,t[14]=g,t[15]=M,t[16]=S,t[17]=U):U=t[17];let{diffEditorRef:te,applyAllDecorations:ne,handleEditorDidMount:re}=Je(U),W;t[18]!==v||t[19]!==ne||t[20]!==A||t[21]!==te||t[22]!==b||t[23]!==g||t[24]!==h||t[25]!==E||t[26]!==T?(W={comments:A,files:b,isFullView:g,isMobile:h,activeCommentIndex:v,setActiveCommentIndex:y,setSelectedFileIndex:T,setMobileShowTree:E,diffEditorRef:te,applyAllDecorations:ne},t[18]=v,t[19]=ne,t[20]=A,t[21]=te,t[22]=b,t[23]=g,t[24]=h,t[25]=E,t[26]=T,t[27]=W):W=t[27];let{handlePrevComment:G,handleNextComment:ae}=Qt(W),{handleFixComments:oe}=$t(n,p,A,f,r,j),ce=h&&!C,K;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>_(rn),t[28]=K):K=t[28];let q;t[29]!==v||t[30]!==A||t[31]!==ee||t[32]!==I||t[33]!==re||t[34]!==oe||t[35]!==ae||t[36]!==G||t[37]!==O||t[38]!==g||t[39]!==P||t[40]!==h||t[41]!==m||t[42]!==M||t[43]!==ce||t[44]!==n?(q={threadId:n,selectedFile:M,isImageFile:P,diffOriginal:I,diffModified:ee,resolvedTheme:m,onEditorMount:re,isMobile:h,showTreeBackButton:ce,onShowTree:O,isFullView:g,onToggleFullView:K,comments:A,activeCommentIndex:v,onPrevComment:G,onNextComment:ae,onFixComments:oe},t[29]=v,t[30]=A,t[31]=ee,t[32]=I,t[33]=re,t[34]=oe,t[35]=ae,t[36]=G,t[37]=O,t[38]=g,t[39]=P,t[40]=h,t[41]=m,t[42]=M,t[43]=ce,t[44]=n,t[45]=q):q=t[45];let{panelRef:ue,editorPanelProps:de,onPanelCollapse:fe,onPanelExpand:pe}=tn(q),J;return t[46]!==R||t[47]!==de||t[48]!==x||t[49]!==b||t[50]!==H||t[51]!==V||t[52]!==D||t[53]!==k||t[54]!==B||t[55]!==h||t[56]!==C||t[57]!==fe||t[58]!==pe||t[59]!==ue||t[60]!==L||t[61]!==S||t[62]!==w?(J={isMobile:h,mobileShowTree:C,panelRef:ue,files:b,error:x,selectedFileIndex:S,treeData:w,handleFileSelect:D,handleRevertFile:k,editorPanelProps:de,editingComment:R,pendingLine:L,handleSaveComment:B,handleDeleteComment:V,handleCloseCommentPopup:H,onPanelCollapse:fe,onPanelExpand:pe},t[46]=R,t[47]=de,t[48]=x,t[49]=b,t[50]=H,t[51]=V,t[52]=D,t[53]=k,t[54]=B,t[55]=h,t[56]=C,t[57]=fe,t[58]=pe,t[59]=ue,t[60]=L,t[61]=S,t[62]=w,t[63]=J):J=t[63],J}function rn(e){return!e}function an(e){return e.projectModelSelections}function on(e){let t=(0,Z.c)(26),{isMobile:n,mobileShowTree:r,panelRef:i,files:a,error:o,selectedFileIndex:s,treeData:c,handleFileSelect:l,handleRevertFile:u,editorPanelProps:d,editingComment:f,pendingLine:p,handleSaveComment:m,handleDeleteComment:h,handleCloseCommentPopup:g,onPanelCollapse:_,onPanelExpand:v}=nn(e),y;t[0]!==o||t[1]!==a||t[2]!==l||t[3]!==u||t[4]!==s||t[5]!==c?(y=(0,Q.jsx)(bt,{treeData:c,files:a,error:o,selectedFileIndex:s,onFileSelect:l,onRevertFile:u}),t[0]=o,t[1]=a,t[2]=l,t[3]=u,t[4]=s,t[5]=c,t[6]=y):y=t[6];let b;t[7]===d?b=t[8]:(b=(0,Q.jsx)(ft,{...d}),t[7]=d,t[8]=b);let x;t[9]!==n||t[10]!==r||t[11]!==_||t[12]!==v||t[13]!==i||t[14]!==y||t[15]!==b?(x=(0,Q.jsx)(mt,{isMobile:n,mobileShowTree:r,panelRef:i,onPanelCollapse:_,onPanelExpand:v,fileTreePanel:y,diffEditorPanel:b}),t[9]=n,t[10]=r,t[11]=_,t[12]=v,t[13]=i,t[14]=y,t[15]=b,t[16]=x):x=t[16];let S;t[17]!==f||t[18]!==g||t[19]!==h||t[20]!==m||t[21]!==p?(S=(0,Q.jsx)(wt,{editingComment:f,pendingLine:p,onSave:m,onDelete:h,onClose:g}),t[17]=f,t[18]=g,t[19]=h,t[20]=m,t[21]=p,t[22]=S):S=t[22];let C;return t[23]!==x||t[24]!==S?(C=(0,Q.jsxs)(`div`,{className:`diff-view-root flex h-full min-h-0 w-full flex-col`,children:[x,S]}),t[23]=x,t[24]=S,t[25]=C):C=t[25],C}function sn(e){let t=(0,Z.c)(23),[n,r]=(0,X.useState)(0),[i,a]=(0,X.useState)(0),o=(0,X.useRef)(0),s=!!e.cachedState,c;t[0]===e.threadId?c=t[1]:(c=()=>{r(t=>(R(Pe(e.threadId,t)),t+1)),a(ln)},t[0]=e.threadId,t[1]=c);let l=c,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{a(0),r(0),o.current=0},t[2]=u):u=t[2];let d;t[3]===e.threadId?d=t[4]:(d=[e.threadId],t[3]=e.threadId,t[4]=d),(0,X.useEffect)(u,d);let f,p;t[5]!==e.refreshTrigger||t[6]!==e.threadId?(f=()=>{!e.refreshTrigger||e.refreshTrigger<=o.current||(o.current=e.refreshTrigger,r(t=>(R(Pe(e.threadId,t)),t+1)),a(cn))},p=[e.refreshTrigger,e.threadId],t[5]=e.refreshTrigger,t[6]=e.threadId,t[7]=f,t[8]=p):(f=t[7],p=t[8]),(0,X.useEffect)(f,p);let m=`${e.threadId}:${i}`,h;t[9]!==l||t[10]!==s?(h=s?null:(0,Q.jsx)(Ze,{onRetry:l}),t[9]=l,t[10]=s,t[11]=h):h=t[11];let g=`${e.threadId}:${n}`,_;t[12]!==n||t[13]!==e||t[14]!==g?(_=(0,Q.jsx)(on,{...e,loadVersion:n},g),t[12]=n,t[13]=e,t[14]=g,t[15]=_):_=t[15];let v;t[16]!==h||t[17]!==_?(v=(0,Q.jsx)(X.Suspense,{fallback:h,children:_}),t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;return t[19]!==l||t[20]!==m||t[21]!==v?(y=(0,Q.jsx)(he,{fallbackTitle:`Failed to load review changes`,onRetry:l,children:v},m),t[19]=l,t[20]=m,t[21]=v,t[22]=y):y=t[22],y}function cn(e){return e+1}function ln(e){return e+1}export{sn as DiffView,sn as default};