openpond 0.0.67 → 0.0.68

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 (173) hide show
  1. package/dist/chunks/{actions-command-DZ6D7JTO.js → actions-command-DLOKFA34.js} +2 -1
  2. package/dist/chunks/{app-layer-MAATABDM.js → app-layer-K7NAOLDL.js} +4 -3
  3. package/dist/chunks/{app-server-runtime-CJFOO54B.js → app-server-runtime-OFZZIWAB.js} +9 -8
  4. package/dist/chunks/{apps-L23POEUT.js → apps-5VSVJLM7.js} +4 -3
  5. package/dist/chunks/{chunk-DEEQG5MY.js → chunk-HFQHD35D.js} +1 -1
  6. package/dist/chunks/{chunk-MHUN6LXO.js → chunk-HNY7OSDY.js} +1 -1
  7. package/dist/chunks/{chunk-7OQFWODA.js → chunk-IG72OKNB.js} +39883 -23453
  8. package/dist/chunks/{chunk-2N57HMVR.js → chunk-KLD7NT5J.js} +1 -1
  9. package/dist/chunks/{chunk-WYDVQOBL.js → chunk-MLWNI3WG.js} +1352 -3538
  10. package/dist/chunks/{chunk-RN7MVPC6.js → chunk-MUS7KPXK.js} +1643 -1100
  11. package/dist/chunks/{chunk-EJURKADM.js → chunk-N6FKRVAT.js} +1 -1
  12. package/dist/chunks/{chunk-XIFRFL4T.js → chunk-NA4L2HQM.js} +33 -33
  13. package/dist/chunks/{chunk-CWCMYSX2.js → chunk-OOJP442J.js} +19 -3
  14. package/dist/chunks/{chunk-BPII37IS.js → chunk-OQLYO7TA.js} +584 -77
  15. package/dist/chunks/{chunk-J3PSR6F6.js → chunk-PSGEH4FC.js} +3 -3
  16. package/dist/chunks/{chunk-PLDCQVNW.js → chunk-TBEBLKCQ.js} +2 -2
  17. package/dist/chunks/{chunk-42WUHGKD.js → chunk-TSDVA7QP.js} +14 -3
  18. package/dist/chunks/{chunk-Z3SXHGOC.js → chunk-WEB37YVJ.js} +1 -1
  19. package/dist/chunks/chunk-X7ZG4TSW.js +3063 -0
  20. package/dist/chunks/{chunk-BYAPLT37.js → chunk-Z2ZWHU7O.js} +4 -2
  21. package/dist/chunks/{cli-6N2QZCOF.js → cli-6WFY2ULA.js} +8 -7
  22. package/dist/chunks/{core-commands-5TW5I3Z6.js → core-commands-HQ3HL34W.js} +5 -4
  23. package/dist/chunks/{desktop-test-JG6XDUTT.js → desktop-test-RU6SRARQ.js} +4 -3
  24. package/dist/chunks/{extension-UUM4ELAF.js → extension-4KFKWMC4.js} +554 -70
  25. package/dist/chunks/{help-JFQVVETR.js → help-ZUCPOR22.js} +1 -1
  26. package/dist/chunks/{opchat-3772JCGJ.js → opchat-AZX7SYM7.js} +4 -3
  27. package/dist/chunks/{organizations-USWBONDO.js → organizations-GV6Z7G4J.js} +7 -6
  28. package/dist/chunks/{profile-2MYIXRUK.js → profile-TSLGZPUI.js} +8 -7
  29. package/dist/chunks/{project-agent-VDKGFG5V.js → project-agent-SHIQZWPY.js} +7 -6
  30. package/dist/chunks/{sandbox-command-M5W3VWVP.js → sandbox-command-TRS66NUT.js} +4 -3
  31. package/dist/chunks/{sandbox-template-25SKARVM.js → sandbox-template-RVWXD5O3.js} +7 -6
  32. package/dist/chunks/{src-KYP4COYD.js → src-Q3BOITLJ.js} +5 -4
  33. package/dist/chunks/{src-7RDE5SYD.js → src-VUJ6EBOU.js} +3863 -762
  34. package/dist/chunks/{teams-bot-BJJISVOG.js → teams-bot-CLCMGBW5.js} +4 -3
  35. package/dist/chunks/{workspaces-EQTHCFVV.js → workspaces-IIPITOCV.js} +2 -2
  36. package/dist/cli.js +13 -13
  37. package/dist/client.d.ts +1 -1
  38. package/dist/hosted-chat.d.ts +5 -0
  39. package/dist/index.js +14543 -14121
  40. package/dist/skills/openpond-refiner-authoring/SKILL.md +29 -0
  41. package/dist/skills/openpond-refiner-authoring/references/core-boundary.md +5 -0
  42. package/dist/skills/openpond-refiner-authoring/references/review-profile.md +7 -0
  43. package/dist/skills/openpond-refiner-authoring/references/validation-and-activation.md +5 -0
  44. package/dist/web/assets/App-D7vhbyMO.js +171 -0
  45. package/dist/web/assets/{AppDialog-B8HYaM0m.js → AppDialog-sLTPiFGX.js} +1 -1
  46. package/dist/web/assets/AppTerminalPanel-B0NCyY4L.js +2 -0
  47. package/dist/web/assets/AppsView-CzbB5pXp.css +1 -0
  48. package/dist/web/assets/AppsView-DyDyktK2.js +1 -0
  49. package/dist/web/assets/BrowserSidebar-C-PQxmQa.js +1 -0
  50. package/dist/web/assets/CartesianChart-CnerMhTr.js +53 -0
  51. package/dist/web/assets/CollaborationTabs-BfVlyLmR.css +1 -0
  52. package/dist/web/assets/CollaborationTabs-DJEp6dux.js +1 -0
  53. package/dist/web/assets/CommandMenu-B5lGz8rG.js +1 -0
  54. package/dist/web/assets/CommunityView-DQJaHBa5.js +1 -0
  55. package/dist/web/assets/ComposerCreateImproveStrip-7hBR2bdV.js +1 -0
  56. package/dist/web/assets/GetStartedView-l1Cz1e7g.js +1 -0
  57. package/dist/web/assets/LabModelVersionDetailPage-D2PfI3-r.js +1 -0
  58. package/dist/web/assets/LabSkillSidebar-jlX5I_D5.js +1 -0
  59. package/dist/web/assets/LabsRoute-D3w6nPSa.css +1 -0
  60. package/dist/web/assets/LabsRoute-VOgPrf94.js +2 -0
  61. package/dist/web/assets/MainChatThread-B1nXTMAf.js +2 -0
  62. package/dist/web/assets/MainPane-DxVcMBFo.js +6 -0
  63. package/dist/web/assets/MarkdownText-B3njGyZS.js +9 -0
  64. package/dist/web/assets/{Messages-CWoU5OZ2.js → Messages-yBS4UHWl.js} +6 -6
  65. package/dist/web/assets/NativeSkillSidebar-DaD52aW1.js +1 -0
  66. package/dist/web/assets/NewExperienceSwitcher-C7X_K5Xl.js +1 -0
  67. package/dist/web/assets/NewProjectDialog-NuPVF2Y7.js +1 -0
  68. package/dist/web/assets/OutputsPage-Bmof4Tdv.js +1 -0
  69. package/dist/web/assets/ProjectsPage-D7opg6ff.js +1 -0
  70. package/dist/web/assets/ProjectsPage-DdG-U9ZW.css +1 -0
  71. package/dist/web/assets/RightChatPanelStack-BzsNeSwx.js +1 -0
  72. package/dist/web/assets/RightSidebarHomePanel-D8dAMHcp.js +1 -0
  73. package/dist/web/assets/ScheduledWorkPage-Dkjhof6t.js +1 -0
  74. package/dist/web/assets/SettingsView-CWTAUy2b.js +6 -0
  75. package/dist/web/assets/{TeamChatView-Cst9bXqE.js → TeamChatView-DIxvrgai.js} +2 -2
  76. package/dist/web/assets/{TerminalOverlay-72oJPCbi.js → TerminalOverlay-Cd0Sp9LD.js} +3 -3
  77. package/dist/web/assets/TrainingCreationPanel-DACYaOny.js +1 -0
  78. package/dist/web/assets/TrainingDraftPanel-DBWJW8ZD.js +1 -0
  79. package/dist/web/assets/UsageSettingsSection-B3sbqaUV.js +7 -0
  80. package/dist/web/assets/UsageSettingsSection-Csg3diiE.css +1 -0
  81. package/dist/web/assets/{MainPane-BfVDe9f7.css → WorkSidebarPanel-Bky_Rqcx.css} +1 -1
  82. package/dist/web/assets/WorkSidebarPanel-D4yXQ64j.js +1 -0
  83. package/dist/web/assets/WorkspaceDiffPanel-CBgPVF1P.js +14 -0
  84. package/dist/web/assets/WorkspaceEnvironmentMenu-Bp-9V7Jq.js +32 -0
  85. package/dist/web/assets/WorkspaceGitDialogs-BxU5Uhpz.js +1 -0
  86. package/dist/web/assets/{WorkspaceMonacoEditor-CxD40rNT.js → WorkspaceMonacoEditor-Db_sWYFt.js} +3 -3
  87. package/dist/web/assets/activity-BzKyRXbd.js +1 -0
  88. package/dist/web/assets/arrow-up-right-DaIxkG4K.js +1 -0
  89. package/dist/web/assets/chat-file-links-wORSEipQ.js +1 -0
  90. package/dist/web/assets/chevron-up-C8-qSzck.js +1 -0
  91. package/dist/web/assets/clipboard-BTRsPPaK.js +1 -0
  92. package/dist/web/assets/cloud-upload-BYXHJoKd.js +1 -0
  93. package/dist/web/assets/{cssMode-CJPZShEy.js → cssMode-Be446Wgi.js} +1 -1
  94. package/dist/web/assets/desktop-files-BQj1J-ob.js +1 -0
  95. package/dist/web/assets/figtree-latin-CEHu_veL.woff2 +0 -0
  96. package/dist/web/assets/folder-open-KtKTXn4w.js +1 -0
  97. package/dist/web/assets/folder-plus-9-Xcli22.js +1 -0
  98. package/dist/web/assets/git-branch-CLGxzDjJ.js +1 -0
  99. package/dist/web/assets/git-commit-horizontal-CmVYsUnh.js +1 -0
  100. package/dist/web/assets/{htmlMode-fp60PdLB.js → htmlMode-DTjTyBB_.js} +1 -1
  101. package/dist/web/assets/index-AzqEDIEY.css +1 -0
  102. package/dist/web/assets/index-C5uP_Gug.js +1 -0
  103. package/dist/web/assets/index-DqWw2ymf.js +9 -0
  104. package/dist/web/assets/info-BLmP4K0e.js +1 -0
  105. package/dist/web/assets/{jsonMode-9tQDt87U.js → jsonMode-Z-2iim-u.js} +1 -1
  106. package/dist/web/assets/{lspLanguageFeatures-DhOXsUmI.js → lspLanguageFeatures-Cr2iCfG2.js} +1 -1
  107. package/dist/web/assets/minimize-2-CWA6iO3r.js +1 -0
  108. package/dist/web/assets/{monaco.contribution-D3sQBkAF.js → monaco.contribution-BtMcDmCM.js} +2 -2
  109. package/dist/web/assets/{monaco.contribution-DRNDpuUQ.js → monaco.contribution-Cac9eBUk.js} +2 -2
  110. package/dist/web/assets/{monaco.contribution-BCc7daQX.js → monaco.contribution-NtjNqMdv.js} +2 -2
  111. package/dist/web/assets/{monaco.contribution-BPct5K1-.js → monaco.contribution-YhqlKmCp.js} +2 -2
  112. package/dist/web/assets/play-DYSQH2rx.js +1 -0
  113. package/dist/web/assets/{python-CO5ats2F.js → python-CNqOWXNv.js} +1 -1
  114. package/dist/web/assets/refresh-cw-DMysDKOA.js +1 -0
  115. package/dist/web/assets/save-HPZ4ZiDi.js +1 -0
  116. package/dist/web/assets/square-D-mpY1a-.js +1 -0
  117. package/dist/web/assets/{toggleHighContrast-7mdj7cLQ.js → toggleHighContrast-Bccdn3Qi.js} +1 -1
  118. package/dist/web/assets/{training-BQVNUTZA.css → training-daZlCtKV.css} +1 -1
  119. package/dist/web/assets/{training-model-data-V8276E5q.js → training-model-data-CKOkpBBL.js} +1 -1
  120. package/dist/web/assets/{tsMode-qx-y8781.js → tsMode-BhcKJxhG.js} +1 -1
  121. package/dist/web/assets/upload-DE7xaWVj.js +1 -0
  122. package/dist/web/assets/useLocalAgentSchedules-C0J--_MD.js +1 -0
  123. package/dist/web/assets/wifi-off-CrCfhll9.js +1 -0
  124. package/dist/web/assets/{workers-DC-vdMwa.js → workers-DCaGzukk.js} +1 -1
  125. package/dist/web/assets/{yaml-Bu611qJb.js → yaml-CCfH63KB.js} +1 -1
  126. package/dist/web/index.html +2 -2
  127. package/package.json +1 -1
  128. package/dist/web/assets/AppsView-DIhprTIC.css +0 -1
  129. package/dist/web/assets/AppsView-DzVZTM0y.js +0 -1
  130. package/dist/web/assets/BrowserSidebar-BobBdHTm.js +0 -1
  131. package/dist/web/assets/CommandMenu-pp69WTbf.js +0 -1
  132. package/dist/web/assets/CommunityView-D1V7y3l5.js +0 -1
  133. package/dist/web/assets/ComposerCreateImproveStrip-Dv5RKQaG.js +0 -1
  134. package/dist/web/assets/GetStartedView-DXmHN_BA.js +0 -1
  135. package/dist/web/assets/LabModelVersionDetailPage-BDN4AQVt.js +0 -1
  136. package/dist/web/assets/LabSkillSidebar-DYR_pq0Q.js +0 -1
  137. package/dist/web/assets/LabsRoute-CFXaPC-i.js +0 -3
  138. package/dist/web/assets/LabsRoute-DDTgtCul.css +0 -1
  139. package/dist/web/assets/MainChatThread-C1XrdeAC.js +0 -2
  140. package/dist/web/assets/MainPane-D8Mu6Nf3.js +0 -6
  141. package/dist/web/assets/MarkdownText-D5-tAHVZ.js +0 -9
  142. package/dist/web/assets/NativeSkillSidebar-cKgCM5s9.js +0 -1
  143. package/dist/web/assets/NewProjectDialog-B4wrkUrZ.js +0 -1
  144. package/dist/web/assets/OutputsPage-DoJz_FcJ.js +0 -1
  145. package/dist/web/assets/RightChatPanelStack-goxULcZy.js +0 -1
  146. package/dist/web/assets/ScheduledWorkPage-DLtJnU9O.js +0 -1
  147. package/dist/web/assets/SettingsView-M-_wJvH1.js +0 -6
  148. package/dist/web/assets/TrainingCreationPanel-BK8T_q3X.js +0 -1
  149. package/dist/web/assets/TrainingDraftPanel-DSZ8e9ve.js +0 -1
  150. package/dist/web/assets/UsageSettingsSection-Co0UH4EJ.js +0 -59
  151. package/dist/web/assets/UsageSettingsSection-O8VK0qBL.css +0 -1
  152. package/dist/web/assets/WorkspaceDiffPanel-OcpOQdEE.js +0 -14
  153. package/dist/web/assets/WorkspaceEnvironmentMenu-Cg_VY5XS.js +0 -32
  154. package/dist/web/assets/WorkspaceGitDialogs-ApPWIEpT.js +0 -1
  155. package/dist/web/assets/arrow-up-right-DtR75sMi.js +0 -1
  156. package/dist/web/assets/chevron-up-DH33C_vT.js +0 -1
  157. package/dist/web/assets/cloud-upload-Cp4pi0X7.js +0 -1
  158. package/dist/web/assets/folder-open-hEq-0bAV.js +0 -1
  159. package/dist/web/assets/folder-plus-ClgoqsjW.js +0 -1
  160. package/dist/web/assets/git-branch-CLBU2IM9.js +0 -1
  161. package/dist/web/assets/git-commit-horizontal-CpOgDvCh.js +0 -1
  162. package/dist/web/assets/index-2rbiOiLR.js +0 -179
  163. package/dist/web/assets/index-BWqDWo3b.js +0 -1
  164. package/dist/web/assets/index-CHqMtVfF.css +0 -1
  165. package/dist/web/assets/info-D3L7JgSo.js +0 -1
  166. package/dist/web/assets/play-DUBpqm-k.js +0 -1
  167. package/dist/web/assets/refresh-cw-D7OfmCic.js +0 -1
  168. package/dist/web/assets/save-CJN-WmnU.js +0 -1
  169. package/dist/web/assets/square-Bx9UTvNe.js +0 -1
  170. package/dist/web/assets/upload-Bp6EKIYv.js +0 -1
  171. package/dist/web/assets/useLocalAgentSchedules-CZ1tgG1x.js +0 -1
  172. package/dist/web/assets/wifi-off-DovWnIF6.js +0 -1
  173. /package/dist/chunks/{chunk-K4JEWEJQ.js → chunk-7FW2CVYN.js} +0 -0
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TrainingCreationPanel-DACYaOny.js","./index-DqWw2ymf.js","./index-AzqEDIEY.css","./App-D7vhbyMO.js","./training-daZlCtKV.css"])))=>i.map(i=>d[i]);
2
+ import{r as i,j as s,_ as E}from"./index-DqWw2ymf.js";import{u as k,T as v,M as y}from"./Messages-yBS4UHWl.js";import"./App-D7vhbyMO.js";import"./chevron-up-C8-qSzck.js";import"./MainPane-DxVcMBFo.js";import"./cloud-upload-BYXHJoKd.js";import"./chat-file-links-wORSEipQ.js";import"./arrow-up-right-DaIxkG4K.js";import"./square-D-mpY1a-.js";import"./MarkdownText-B3njGyZS.js";import"./desktop-files-BQj1J-ob.js";import"./git-branch-CLGxzDjJ.js";import"./folder-open-KtKTXn4w.js";import"./play-DYSQH2rx.js";import"./refresh-cw-DMysDKOA.js";const C=i.lazy(()=>E(()=>import("./TrainingCreationPanel-DACYaOny.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url).then(t=>({default:t.TrainingStatusReceipt})));function H({accountBaseUrl:t,activeWorkspaceAppId:o,billingOrganizationSlug:r,billingTeamId:m,connection:p,conversationKey:l,creation:n,onOpenBrowserLink:g,onOpenAttachmentInSidebar:c,onOpenFileInSidebar:d,onOpenProfileSettings:u,onResolveUserQuestion:h,onOpenSession:x,onScroll:_,preparingInitialScroll:f,rows:a,userAttachmentDisplay:j,threadRef:M,workspaceRootPath:T}){const I=i.useMemo(()=>a.flatMap(e=>e.type==="message"?[e.message]:[]),[a]),R=k(I,l);return s.jsxs("section",{className:`chat-thread${f?" initial-scroll-pending":""}`,"aria-label":"Conversation",ref:M,onScroll:_,children:[a.map(e=>e.type==="thinking"?s.jsx(v,{},e.id):s.jsx(y,{activeWorkspaceAppId:o,accountBaseUrl:t,billingOrganizationSlug:r,billingTeamId:m,connection:p,animateInitialContent:e.message.role==="assistant"&&R.has(e.message.id),message:e.message,onOpenAttachmentInSidebar:c,onOpenFileInSidebar:d,onOpenBrowserLink:g,onOpenProfileSettings:u,onResolveUserQuestion:h,onOpenSession:x,userAttachmentDisplay:j,workspaceRootPath:T,showFooter:e.showFooter},e.id)),n?s.jsx(i.Suspense,{fallback:null,children:s.jsx(C,{creation:n})}):null]})}export{H as MainChatThread};
@@ -0,0 +1,6 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ComposerCreateImproveStrip-7hBR2bdV.js","./index-DqWw2ymf.js","./index-AzqEDIEY.css","./App-D7vhbyMO.js","./chat-file-links-wORSEipQ.js","./play-DYSQH2rx.js","./refresh-cw-DMysDKOA.js","./WorkspaceDiffPanel-CBgPVF1P.js","./MarkdownText-B3njGyZS.js","./desktop-files-BQj1J-ob.js","./training-model-data-CKOkpBBL.js","./folder-open-KtKTXn4w.js","./info-BLmP4K0e.js","./minimize-2-CWA6iO3r.js","./save-HPZ4ZiDi.js","./clipboard-BTRsPPaK.js","./chevron-up-C8-qSzck.js","./AppTerminalPanel-B0NCyY4L.js","./RightSidebarHomePanel-D8dAMHcp.js","./WorkSidebarPanel-D4yXQ64j.js","./activity-BzKyRXbd.js","./cloud-upload-BYXHJoKd.js","./arrow-up-right-DaIxkG4K.js","./square-D-mpY1a-.js","./WorkSidebarPanel-Bky_Rqcx.css","./NewExperienceSwitcher-C7X_K5Xl.js","./CollaborationTabs-DJEp6dux.js","./CollaborationTabs-BfVlyLmR.css","./AppsView-DyDyktK2.js","./AppsView-CzbB5pXp.css","./GetStartedView-l1Cz1e7g.js","./index-C5uP_Gug.js","./AppDialog-sLTPiFGX.js","./GetStartedView-yVmnGZPw.css","./LabsRoute-VOgPrf94.js","./LabsRoute-D3w6nPSa.css","./training-daZlCtKV.css","./ScheduledWorkPage-Dkjhof6t.js","./useLocalAgentSchedules-C0J--_MD.js","./OutputsPage-Bmof4Tdv.js","./ProjectsPage-D7opg6ff.js","./ProjectsPage-DdG-U9ZW.css","./LabSkillSidebar-jlX5I_D5.js","./LabSkillSidebar-CVxtS9pd.css","./BrowserSidebar-C-PQxmQa.js","./BrowserSidebar-D9i7gQzw.css","./RightChatPanelStack-BzsNeSwx.js","./Messages-yBS4UHWl.js","./git-branch-CLGxzDjJ.js","./NativeSkillSidebar-DaD52aW1.js","./NativeSkillSidebar-T8KXjnUH.css","./TeamChatView-DIxvrgai.js","./TeamChatView-Br3VdxhD.css","./git-dialogs-BZDqS1eT.css","./CommunityView-DQJaHBa5.js","./wifi-off-CrCfhll9.js","./CommunityView-DaIS0cHw.css","./TrainingDraftPanel-DBWJW8ZD.js","./MainChatThread-B1nXTMAf.js","./TrainingCreationPanel-DACYaOny.js"])))=>i.map(i=>d[i]);
2
+ import{r as o,j as s,_ as ce}from"./index-DqWw2ymf.js";import{c as Be,b as Ir,C as ss,a as As,A as vn,d as kt,e as mr,F as hr,f as sr,g as Xo,O as Qo,h as kr,B as Jo,i as Is,j as yr,k as Zo,l as Yo,m as ea,n as ta,o as $e,p as na,q as _r,r as Pr,S as sa,s as lo,t as ra,X as Ps,G as oa,u as aa,v as Pt,w as Sr,x as Sn,y as Rr,z as io,D as la,E as ia,H as ca,I as ua,J as da,K as fa,L as ma,M as ha,N as pa,P as co,Q as ga,R as xa,T as ba,U as ka,V as ya,W as Sa,Y as va,Z as Ca,_ as $r,$ as wa,a0 as ja,a1 as Ma,a2 as Ea,a3 as Aa,a4 as Na,a5 as Ta,a6 as Ia,a7 as _a,a8 as Pa,a9 as Ra,aa as $a,ab as La,ac as Oa,ad as Da}from"./App-D7vhbyMO.js";import{C as za}from"./cloud-upload-BYXHJoKd.js";import{P as wn,T as Fa,B as rr,W as or,D as Lr,a as Ba,F as Ua,C as Ha,A as qa,b as uo,r as Va,n as Ga}from"./chat-file-links-wORSEipQ.js";import{A as Ka}from"./arrow-up-right-DaIxkG4K.js";import{S as pr,a as Wa}from"./square-D-mpY1a-.js";function fo(e){return e?(e.match(/\r\n|\r|\n/g)?.length??0)+(/(?:\r\n|\r|\n)$/.test(e)?0:1):0}const Xa=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Qa=Be("arrow-down",Xa);const Ja=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Or=Be("arrow-up",Ja);const Za=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]],Dr=Be("at-sign",Za);const Ya=[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],el=Be("badge-check",Ya);const tl=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],nl=Be("ban",tl);const sl=[["path",{d:"M12 13v8l-4-4",key:"1f5nwf"}],["path",{d:"m12 21 4-4",key:"1lfcce"}],["path",{d:"M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284",key:"ui1hmy"}]],rl=Be("cloud-download",sl);const ol=[["path",{d:"M4 6.835V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-.343",key:"1vfytu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0",key:"1etmh7"}]],al=Be("file-headphone",ol);const ll=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 17h2",key:"10kma7"}]],il=Be("file-spreadsheet",ll);const cl=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z",key:"1tzo1f"}]],ul=Be("file-play",cl);const dl=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],fl=Be("image",dl);const ml=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],hl=Be("mic",ml);const pl=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],zr=Be("paperclip",pl);const gl=[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]],xl=Be("presentation",gl);const bl=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],kl=Be("reply",bl),Fr=Object.freeze({events:[],messages:[]});class yl{projection=Fr;project(t){if(t===this.projection.events)return this.projection.messages;if(!Cl(this.projection.events,t))return this.replace(t);const n=t.slice(this.projection.events.length);if(n.length===0)return this.projection={events:t,messages:this.projection.messages},this.projection.messages;const r=Sl(this.projection.messages,n);if(r)return this.projection={events:t,messages:r},r;const a=vl(t,this.projection.events.length);if(!a)return this.replace(t);const l=t.slice(a.eventIndex),c=new Set(l.flatMap(d=>d.turnId?[d.turnId]:[])),p=[...this.projection.messages.filter(d=>!d.turnId||!c.has(d.turnId)),...Ir(l)];return this.projection={events:t,messages:p},p}reset(){this.projection=Fr}snapshot(){return this.projection}replace(t){const n=Ir(t);return this.projection={events:t,messages:n},n}}function Sl(e,t){if(t.length===0||e.length===0)return null;const n=e[e.length-1];if(n?.role!=="assistant"||n.createImproveRun||t.some(d=>d.name!=="assistant.delta"&&d.name!=="assistant.reasoning.delta"||d.turnId!==n.turnId||!d.output))return null;let r=n.content,a=n.reasoningContent,l=n.timestamp,c=!1,u=!1;for(const d of t)d.name==="assistant.delta"?(r=`${r??""}${d.output}`,c=!0):(a=`${a??""}${d.output}`,u=!0),l=d.timestamp;const p={...n,...c?{content:r}:{},...u?{reasoningContent:a}:{},timestamp:l};return[...e.slice(0,-1),p]}function vl(e,t){const n=e[t];if(!n?.turnId)return null;const r=e.findIndex(a=>a.turnId===n.turnId);return r<0?null:{eventIndex:r}}function Cl(e,t){return e.length===0?!0:e.length>=t.length?!1:e[0]===t[0]&&e[e.length-1]===t[e.length-1]}function wl(e,t){const n=o.useCallback(l=>t?e.subscribeSession(t,l):()=>{},[t,e]),r=o.useCallback(()=>e.getSessionSnapshot(t),[t,e]),a=o.useSyncExternalStore(n,r,r);return o.useEffect(()=>{if(t)return e.retainSession(t,!0),()=>e.retainSession(t,!1)},[t,e]),a}function jl(e,t){const n=e.slice(0,Math.max(0,Math.min(t,e.length))),r=/(?:^|\s)\$([a-zA-Z][a-zA-Z0-9_-]*)?$/.exec(n);if(!r||typeof r.index!="number")return null;const a=r[0].lastIndexOf("$");return a<0?null:{end:n.length,query:(r[1]??"").toLowerCase(),start:r.index+a}}function Rs(e){return`$${e.name}`}function Ml(e,t,n){const r=Math.max(0,Math.min(t.start,e.length)),a=Math.max(r,Math.min(t.end,e.length)),l=e.slice(0,r),c=e.slice(a),u=l&&!/\s$/.test(l)?" ":"",p=c&&/^\s/.test(c)?"":" ",d=`${u}${Rs(n)}${p}`;return{cursor:l.length+d.length-(c?p.length:0),value:`${l}${d}${c}`}}function Ns(e,t,n){const r=t.trim().toLowerCase(),a=e.filter(l=>l.enabled&&l.validationStatus==="valid").filter(l=>r?[l.name,l.description,l.path].join(" ").toLowerCase().includes(r):!0).sort((l,c)=>l.name.localeCompare(c.name));return typeof n=="number"&&Number.isFinite(n)?a.slice(0,Math.max(0,n)):a}function El(e,t,n){const r=t.trim().replace(/\s+/g," "),a=Al(n,e.length);if(!r)return{value:e,cursorIndex:a};const l=e.slice(0,a),c=e.slice(a),u=l&&!/\s$/.test(l)?" ":"",p=c&&!/^\s/.test(c)?" ":"",d=`${u}${r}${p}`;return{value:`${l}${d}${c}`,cursorIndex:l.length+u.length+r.length+p.length}}function Al(e,t){return Number.isFinite(e)?Math.max(0,Math.min(t,Math.round(e))):t}function mo({busy:e,placement:t,state:n,onChange:r}){const[a,l]=o.useState(!1),[c,u]=o.useState(""),p=o.useRef(null),d=o.useMemo(()=>{const g=c.trim().toLowerCase();return g?n.options.filter(C=>`${C.label} ${C.detail}`.toLowerCase().includes(g)):n.options},[c,n.options]);return o.useEffect(()=>{if(!a){u("");return}function g(m){p.current?.contains(m.target)||l(!1)}function C(m){m.key==="Escape"&&l(!1)}return document.addEventListener("pointerdown",g),document.addEventListener("keydown",C),()=>{document.removeEventListener("pointerdown",g),document.removeEventListener("keydown",C)}},[a]),n.options.length<=1?null:s.jsxs("div",{className:`composer-profile-target ${t==="top"?"open-up":""}`,ref:p,children:[s.jsxs("button",{type:"button",className:`composer-profile-trigger ${a?"active":""}`,disabled:e,"aria-label":"Profile","aria-haspopup":"menu","aria-expanded":a,onClick:()=>l(g=>!g),children:[s.jsx("span",{children:n.label}),s.jsx(ss,{size:14})]}),a?s.jsxs("div",{className:"composer-project-menu",role:"menu","aria-label":"Profile",children:[s.jsx("div",{className:"composer-menu-search",children:s.jsx("input",{autoFocus:!0,value:c,placeholder:"Search profiles",onChange:g=>u(g.currentTarget.value)})}),s.jsx("div",{className:"composer-menu-items",children:d.map(g=>{const C=g.value===n.value;return s.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":C,className:`composer-project-option ${C?"selected":""}`,onClick:()=>{r(g.value),l(!1)},children:[s.jsxs("span",{children:[s.jsx("strong",{children:g.label}),s.jsx("small",{children:g.detail})]}),C?s.jsx(kt,{size:14}):null]},g.value)})})]}):null]})}function Nl({busy:e,placement:t,state:n,onChange:r}){const[a,l]=o.useState(!1),[c,u]=o.useState(!1),[p,d]=o.useState(""),g=o.useRef(null),m=n.value==="none"?"Select Project":n.label,h=n.options.find(v=>v.value===n.value)?.kind??"local",k=o.useMemo(()=>{const v=p.trim().toLowerCase();return v?n.options.filter(A=>[A.label,A.detail].filter(Boolean).some(y=>y.toLowerCase().includes(v))):n.options},[p,n.options]),S=k.filter(v=>v.kind==="local"||v.kind==="cloud"),j=k.filter(v=>v.kind==="action"),w=k.filter(v=>v.kind==="none");o.useEffect(()=>{if(!a){d(""),u(!1);return}function v(y){g.current?.contains(y.target)||l(!1)}function A(y){y.key==="Escape"&&(c?u(!1):l(!1))}return document.addEventListener("pointerdown",v),document.addEventListener("keydown",A),()=>{document.removeEventListener("pointerdown",v),document.removeEventListener("keydown",A)}},[c,a]);function E(v){const A=v.value===n.value,y=e||v.disabled,P=v.kind==="action",D=v.disabled&&v.disabledReason?v.disabledReason:`${v.label}: ${v.detail}`;return s.jsxs("button",{type:"button",role:P?"menuitem":"menuitemradio","aria-checked":P?void 0:A,className:`composer-project-option ${A?"selected":""} ${v.kind}`,disabled:y,"data-tooltip":D,onClick:()=>{r(v.value),u(!1),l(!1)},children:[s.jsx(gr,{kind:v.kind,size:14}),s.jsxs("span",{children:[s.jsx("strong",{children:v.label}),s.jsx("small",{children:v.detail})]}),A&&s.jsx(kt,{size:14})]},v.value)}return s.jsxs("div",{className:`composer-project-target ${t==="top"?"open-up":""}`,ref:g,children:[s.jsxs("button",{type:"button",className:`composer-project-trigger ${a?"active":""} ${h}`,disabled:e,"aria-label":"Project","aria-haspopup":"menu","aria-expanded":a,onClick:()=>{l(v=>!v),u(!1)},children:[s.jsx(gr,{kind:h,size:14}),s.jsx("span",{children:m}),s.jsx(ss,{size:14})]}),a&&s.jsxs("div",{className:"composer-project-menu",role:"menu","aria-label":"Project",children:[s.jsx("div",{className:"composer-menu-search",children:s.jsx("input",{autoFocus:!0,value:p,placeholder:"Search projects",onChange:v=>d(v.target.value)})}),s.jsx("div",{className:"composer-menu-items",children:k.length===0?s.jsx("div",{className:"composer-menu-empty",children:"No projects found"}):S.map(E)}),j.length>0||w.length>0?s.jsxs("div",{className:"composer-project-actions",children:[j.length>0?s.jsxs("button",{type:"button",role:"menuitem",className:`composer-project-option action composer-project-new-trigger ${c?"selected":""}`,"aria-haspopup":"menu","aria-expanded":c,onClick:()=>u(v=>!v),children:[s.jsx(wn,{size:14}),s.jsxs("span",{children:[s.jsx("strong",{children:"New"}),s.jsx("small",{children:"Create or add a project"})]}),s.jsx(As,{size:14})]}):null,w.map(E)]}):null]}),a&&c?s.jsxs("div",{className:"composer-project-new-menu",role:"menu","aria-label":"New project",children:[s.jsxs("button",{type:"button",role:"menuitem",className:"composer-project-new-menu-back",onClick:()=>u(!1),children:[s.jsx(vn,{size:14}),s.jsx("span",{children:"New project"})]}),j.map(E)]}):null]})}function gr({kind:e,size:t}){return e==="cloud"?s.jsx(mr,{size:t}):e==="action"?s.jsx(wn,{size:t}):s.jsx(hr,{size:t})}function Tl({busy:e,placement:t,state:n,onChange:r}){const[a,l]=o.useState(!1),c=o.useRef(null),u=n.value==="cloud"?"cloud":n.value==="hybrid"?"hybrid":"local",p=`${n.label}: ${n.detail}`,d=n.uploadAction??null,g=d?Br(d):null,C=d?d.disabled&&d.disabledReason?d.disabledReason:`${d.label}: ${g??d.detail}`:null,m=!!(d&&(e||n.busy||d.disabled));return o.useEffect(()=>{if(!a)return;function h(S){c.current?.contains(S.target)||l(!1)}function k(S){S.key==="Escape"&&l(!1)}return document.addEventListener("pointerdown",h),document.addEventListener("keydown",k),()=>{document.removeEventListener("pointerdown",h),document.removeEventListener("keydown",k)}},[a]),s.jsxs("div",{className:`workspace-action-control ${t==="top"?"open-up":""}`,ref:c,children:[s.jsxs("button",{type:"button",className:`workspace-action-trigger ${u} ${a?"active":""}`,disabled:e,"data-tooltip":p,"aria-label":"Working in","aria-haspopup":"menu","aria-expanded":a,onClick:()=>l(h=>!h),children:[s.jsx(Ts,{value:n.value,size:14}),s.jsx("span",{className:"workspace-target-trigger-label",children:n.label}),s.jsx(ss,{size:14})]}),d?s.jsx("button",{type:"button",className:`workspace-upload-trigger ${d.value}`,disabled:m,"data-tooltip":C??void 0,"aria-label":d.label,onClick:()=>{r(d.value),l(!1)},children:s.jsx(Ts,{value:d.value,size:14})}):null,a&&s.jsx("div",{className:"workspace-target-menu",role:"menu","aria-label":"Working in",children:n.options.map(h=>{const k=h.value===n.value,S=e||n.busy||h.disabled,w=Br(h)??h.detail,E=h.disabled&&h.disabledReason?h.disabledReason:`${h.label}: ${w}`;return s.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":k,className:`workspace-target-option ${k?"selected":""} ${h.value}`,disabled:S,"data-tooltip":E,onClick:()=>{r(h.value),l(!1)},children:[s.jsx(Ts,{value:h.value,size:14}),s.jsxs("span",{children:[s.jsx("strong",{children:h.label}),s.jsx("small",{children:w})]}),k&&s.jsx(kt,{size:14})]},h.value)})})]})}function Il({project:e,workspace:t}){const r=e.options.find(l=>l.value===e.value)?.kind??"none",a=e.value==="none"?"No Project":e.label;return s.jsxs("div",{className:"composer-footer composer-pinned-context",role:"group","aria-label":"Task context",children:[s.jsxs("span",{className:"composer-context-chip","aria-label":`Project: ${a}`,children:[s.jsx(gr,{kind:r,size:14}),s.jsx("span",{children:a})]}),s.jsxs("span",{className:"composer-context-chip","aria-label":`Execution: ${t.label}`,children:[s.jsx(Ts,{value:t.value,size:14}),s.jsx("span",{children:t.label})]})]})}function Br(e){return e.disabled&&e.disabledReason?e.disabledReason:e.stateNote??null}function Ts({value:e,size:t}){return e==="cloud"?s.jsx(mr,{size:t}):e==="hybrid"?s.jsxs("span",{className:"workspace-target-hybrid-icon","aria-hidden":"true",children:[s.jsx(hr,{className:"hybrid-folder",size:t}),s.jsx(mr,{className:"hybrid-cloud",size:Math.max(7,Math.round(t*.62))})]}):e==="upload_cloud"?s.jsx(za,{size:t}):s.jsx(hr,{size:t})}function Ur({disabled:e,model:t,modelGroups:n,placement:r,provider:a,reasoningEffort:l,showReasoning:c,onModelSelectionChange:u,onProviderSetupOpen:p,onReasoningEffortChange:d}){const[g,C]=o.useState(!1),[m,h]=o.useState("root"),k=o.useRef(null),S=n.find(y=>y.provider===a),j=S?.options.find(y=>y.value===t),w=sr.find(y=>y.value===l)??sr[1],E=_l(j?.label??t),v=c?`${E} ${w.shortLabel??w.label}`:E,A=c?"Model and reasoning":"Model";return o.useEffect(()=>{if(!g){h("root");return}function y(D){k.current?.contains(D.target)||C(!1)}function P(D){D.key==="Escape"&&C(!1)}return document.addEventListener("pointerdown",y),document.addEventListener("keydown",P),()=>{document.removeEventListener("pointerdown",y),document.removeEventListener("keydown",P)}},[g]),o.useEffect(()=>{!c&&m==="effort"&&h("root")},[m,c]),s.jsxs("div",{className:`codex-model-reasoning ${r==="top"?"open-up":""}`,"data-tooltip":A,ref:k,children:[s.jsxs("button",{type:"button",className:`codex-model-trigger ${g?"active":""}`,disabled:e,"aria-label":A,"aria-haspopup":"menu","aria-expanded":g,onClick:()=>C(y=>!y),children:[s.jsx("span",{children:v}),s.jsx(ss,{size:14})]}),g&&s.jsx("div",{className:"codex-model-menu",role:"menu","aria-label":A,children:m==="root"?s.jsxs("div",{className:"codex-model-menu-root",children:[s.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>h("provider"),children:[s.jsx("span",{children:"Provider"}),s.jsx("span",{className:"codex-model-menu-value",children:S?.label??a}),s.jsx(As,{size:14})]}),s.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>h("model"),children:[s.jsx("span",{children:"Model"}),s.jsx("span",{className:"codex-model-menu-value",children:j?.label??t}),s.jsx(As,{size:14})]}),c?s.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>h("effort"),children:[s.jsx("span",{children:"Effort"}),s.jsx("span",{className:"codex-model-menu-value",children:w.shortLabel??w.label}),s.jsx(As,{size:14})]}):null]}):m==="provider"?s.jsxs(s.Fragment,{children:[s.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Provider",onClick:()=>h("root"),children:[s.jsx(vn,{size:14}),s.jsx("span",{children:"Provider"})]}),s.jsx("div",{className:"codex-model-menu-divider"}),s.jsx("div",{className:"codex-model-menu-options",children:n.map(y=>{const P=y.provider===a;return s.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":P,className:P?"selected":"",onClick:()=>{const D=y.options.find(U=>U.value===y.defaultModel)??y.options[0];D&&(u(y.provider,D.value),h("root"))},children:[s.jsx("span",{children:y.label}),P?s.jsx(kt,{size:14}):null]},y.provider)})}),s.jsx("button",{type:"button",className:"codex-model-setup-action",role:"menuitem",onClick:()=>{C(!1),p?.()},children:s.jsxs("span",{className:"codex-model-menu-option-label",children:[s.jsx(wn,{size:13}),s.jsx("span",{children:"New Model/Provider"})]})})]}):m==="model"?s.jsxs(s.Fragment,{children:[s.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Model",onClick:()=>h("root"),children:[s.jsx(vn,{size:14}),s.jsx("span",{children:"Model"})]}),s.jsx("div",{className:"codex-model-menu-divider"}),s.jsxs("div",{className:"codex-model-menu-options",children:[(S?.options??[]).map(y=>{const P=y.value===t;return s.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":P,className:P?"selected":"",onClick:()=>{u(a,y.value),h("root")},children:[s.jsx("span",{children:y.label}),P?s.jsx(kt,{size:14}):null]},y.value)}),S?.options.length?null:s.jsx("div",{className:"codex-model-menu-empty",children:"No models from this provider"})]}),s.jsx("button",{type:"button",className:"codex-model-setup-action",role:"menuitem",onClick:()=>{C(!1),p?.()},children:s.jsxs("span",{className:"codex-model-menu-option-label",children:[s.jsx(wn,{size:13}),s.jsx("span",{children:"New Model/Provider"})]})})]}):s.jsxs("div",{className:"codex-model-menu-effort",children:[s.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Effort",onClick:()=>h("root"),children:[s.jsx(vn,{size:14}),s.jsx("span",{children:"Effort"})]}),s.jsx("div",{className:"codex-model-menu-divider"}),sr.map(y=>s.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":y.value===l,className:y.value===l?"selected":"",onClick:()=>{d(y.value),h("root")},children:[s.jsx("span",{children:y.label}),y.value===l?s.jsx(kt,{size:14}):null]},y.value))]})})]})}function _l(e){return e.replace(/^GPT-/,"").replace(/\s+Codex Spark$/," Spark").replace(/\s+Codex$/," Codex")}function Pl({detailsOpen:e,goalRuntime:t,objectiveId:n,subagentRuntime:r,onToggleDetails:a}){const l=r?.activeCount?`${t.tooltip}. ${r.tooltip}`:t.tooltip;return s.jsxs("div",{className:`composer-goal-strip ${t.tone}${r?.activeCount?" has-subagents":""}`,"data-tooltip":l,children:[s.jsx("div",{className:"composer-goal-heading",children:s.jsxs("button",{type:"button",className:"composer-goal-toggle","aria-expanded":e,"aria-controls":n,onClick:a,children:[s.jsx("span",{children:t.actionLabel}),s.jsxs("span",{className:"composer-goal-toggle-meta",children:[r?s.jsx("span",{className:"composer-goal-subagent-count",children:r.label}):null,s.jsx("span",{children:t.timeLabel}),s.jsx(ss,{size:15,"aria-hidden":"true"})]})]})}),e&&s.jsxs("div",{className:"composer-goal-objective",id:n,children:[t.objective,r?s.jsx("span",{className:"composer-goal-subagent-summary",children:r.tooltip}):null]})]})}function Rl(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`steer-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,9)}`}function ar(e,t=120){const n=e.trim().replace(/\s+/g," ");return n.length<=t?n:`${n.slice(0,Math.max(0,t-1)).trimEnd()}...`}function ho(e,t={}){const n=t.now??new Date().toISOString();return{createdAt:n,id:t.id??Rl(),prompt:e,updatedAt:n}}function po(e,t){return e.filter(n=>n.id!==t)}function $l(e,t,n){const r=n?.trim();return e.flatMap(a=>a.id!==t?[a]:r?[ho(r)]:[])}function Ll(e,t,n){return n?po(e,t):e}function xr(e,t,n=[]){return e[t]??n}function Ol(e,t,n,r=[]){const a=xr(e,t,r),l=n(a);return Object.is(a,l)?e:{...e,[t]:l}}function Dl({drafts:e,sendingDraftId:t,onDeleteDraft:n,onEditDraft:r,onSteerDraft:a}){return e.length===0?null:s.jsx("div",{className:"composer-steer-stack","aria-label":"Steer drafts",children:e.map(l=>{const c=t===l.id,u=ar(l.prompt);return s.jsxs("div",{className:`composer-steer-row ${c?"sending":""}`,children:[s.jsx("span",{className:"composer-steer-row-icon","aria-hidden":"true",children:s.jsx(kl,{size:13})}),s.jsx("span",{className:"composer-steer-row-text",title:l.prompt,children:u}),s.jsxs("button",{type:"button",className:"composer-steer-row-action primary",disabled:c,"aria-label":`Steer: ${ar(l.prompt,60)}`,onClick:()=>a(l.id),children:[s.jsx(Ka,{size:12}),s.jsx("span",{children:c?"Sending":"Steer"})]}),s.jsx("button",{type:"button",className:"composer-steer-row-icon-button",disabled:c,"data-tooltip":"Delete steer draft","aria-label":"Delete steer draft",onClick:()=>n(l.id),children:s.jsx(Fa,{size:13})}),s.jsx("button",{type:"button",className:"composer-steer-row-action",disabled:c,"aria-label":`Edit: ${ar(l.prompt,60)}`,onClick:()=>r(l),children:s.jsx("span",{children:"Edit"})})]},l.id)})})}const zl=/\b(?:https?:\/\/)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai)\/[^\s<>"'`]+/gi,Fl=/\b(?:git@)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai):[^\s<>"'`]+/gi,Bl=new Set(["about","apps","collections","codespaces","contact","customer-stories","enterprise","events","explore","features","issues","login","marketplace","mobile","new","notifications","orgs","organizations","pricing","pulls","readme","search","settings","sponsors","team","topics","trending"]),Ul=new Set(["account","api","dashboard","docs","install.sh","login","logout","opchat","sandboxes","settings"]);function Hl(e){const t=e.toLowerCase().replace(/^www\./,"");return t==="github.com"?"github":t==="openpond.ai"||t.endsWith(".openpond.ai")?"openpond":null}function ql(e){return e==="github"?Bl:Ul}function go(e){let t=e;for(;/[.,;!?]$/.test(t);)t=t.slice(0,-1);for(;Vl(t);)t=t.slice(0,-1);return t}function Vl(e){const t=e.at(-1);if(!t||!")]}".includes(t))return!1;const n=t===")"?"(":t==="]"?"[":"{";let r=0;for(const a of e)a===n&&(r+=1),a===t&&(r-=1);return r<0}function Gl(e){return e.replace(/\.git$/i,"")}function xo(e){try{return decodeURIComponent(e)}catch{return e}}function Kl(e){return Gl(xo(e.trim()))}function bo(e){const t=e.host.toLowerCase().replace(/^www\./,""),n=Hl(t);if(!n)return null;const r=xo(e.owner?.trim()??""),a=Kl(e.repo??"");return!r||!a||ql(n).has(r.toLowerCase())?null:{end:e.end,host:t,label:`${r}/${a}`,provider:n,repo:a,start:e.start,url:e.url,owner:r}}function Wl(e,t){const n=go(e);if(!n)return null;try{const r=new URL(/^https?:\/\//i.test(n)?n:`https://${n}`),a=r.pathname.split("/").filter(Boolean);return bo({end:t+n.length,host:r.hostname,owner:a[0],repo:a[1],start:t,url:n})}catch{return null}}function Xl(e,t){const n=go(e),r=/^(?:git@)?([^:]+):(.+)$/i.exec(n);if(!r)return null;const a=r[1]?.trim()??"",l=(r[2]??"").split("/").filter(Boolean);return bo({end:t+n.length,host:a,owner:l[0],repo:l[1],start:t,url:n})}function Hr(e,t,n){const r=[];t.lastIndex=0;let a;for(;a=t.exec(e);){const l=a[0]??"",c=n(l,a.index);c&&r.push(c)}return r}function Ql(e){if(!e)return[];const t=[...Hr(e,zl,Wl),...Hr(e,Fl,Xl)].sort((r,a)=>r.start-a.start||a.end-r.end),n=[];for(const r of t)n.some(a=>r.start<a.end&&r.end>a.start)||n.push(r);return n.sort((r,a)=>r.start-a.start)}const Jl=10,Zl=340,Yl=320,ei=160,ti=56;function bt(e,t=0){const n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function lr(e){if(!e)return;e.style.height="auto";const t=window.getComputedStyle(e),n=bt(t.fontSize,16),r=bt(t.lineHeight,n*1.45),a=bt(t.paddingTop)+bt(t.paddingBottom),l=bt(t.borderTopWidth)+bt(t.borderBottomWidth),c=bt(t.minHeight,66),u=Math.max(c,Math.ceil(r*Jl+a+l)),p=Math.max(c,Math.min(e.scrollHeight,u));e.style.height=`${p}px`,e.style.overflowY=e.scrollHeight>u?"auto":"hidden"}function ir(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),a=window.getComputedStyle(e),l=bt(a.paddingLeft,14),c=bt(a.paddingTop,15),u=Math.max(0,r.width-16),p=Math.min(Zl,u),d=n.left-r.left+l-8,g=Math.max(8,Math.min(d,r.width-p-8)),C=Math.max(8,n.top-r.top+c+2);return{left:g,top:C,width:p}}function ni(e){const t=e.getBoundingClientRect(),n=Math.floor(t.top-ti);return{maxHeight:Math.max(ei,Math.min(Yl,n))}}const si="[data-inline-token='true']",ri="[data-inline-repo-link='true']",oi="[data-inline-connected-app-mention='true']";function es(e){return e instanceof HTMLElement&&e.matches(si)}function ts(e){return e instanceof HTMLElement&&e.matches(ri)}function ns(e){return e instanceof HTMLElement&&e.matches(oi)}function _s(e,t){return Math.max(0,Math.min(e,t))}function Cn(e,t){return e?_s(e.position,t.length):null}function ai(e,t,n,r=!1){const a=Cn(t,n),l=_s(e,n.length);return a===null?l:l>a||r&&l===a?l+1:l}function qr(e,t,n){const r=Cn(t,n);return _s(r===null?e:e>r?e-1:e,n.length)}function cr(e){let t="",n=null;function r(a){if(ts(a)){t+=a.dataset.repoUrl??"";return}if(ns(a)){t+=a.dataset.connectedMentionText??"";return}if(es(a)){n=t.length;return}if(a.nodeType===Node.TEXT_NODE){t+=a.textContent??"";return}a instanceof HTMLBRElement||a.childNodes.forEach(r)}return e.childNodes.forEach(r),{text:t,tokenPosition:n}}function Xt(e){if(ts(e))return e.dataset.repoUrl?.length??0;if(ns(e))return e.dataset.connectedMentionText?.length??0;if(es(e))return 1;if(e.nodeType===Node.TEXT_NODE)return e.textContent?.length??0;if(e instanceof HTMLBRElement)return 0;let t=0;return e.childNodes.forEach(n=>{t+=Xt(n)}),t}function Vr(e,t,n){if(!t||t!==e&&!e.contains(t))return null;let r=0,a=!1;function l(c){if(!a){if((es(c)||ts(c)||ns(c))&&(c===t||c.contains(t))){(c!==t||n>0)&&(r+=Xt(c)),a=!0;return}if(es(c)||ts(c)||ns(c)){r+=Xt(c);return}if(c===t){if(c.nodeType===Node.TEXT_NODE)r+=n;else{const u=Array.from(c.childNodes).slice(0,n);for(const p of u)r+=Xt(p)}a=!0;return}if(c.nodeType===Node.TEXT_NODE){r+=c.textContent?.length??0;return}c instanceof HTMLBRElement||c.childNodes.forEach(l)}}return l(e),a?r:null}function ur(e){const t=window.getSelection();if(!t||t.rangeCount===0)return null;const n=Vr(e,t.anchorNode,t.anchorOffset),r=Vr(e,t.focusNode,t.focusOffset);return n===null||r===null?null:{anchor:n,focus:r}}function Gr(e,t){let n=Math.max(0,t);function r(c){const u=c.parentNode;return u?{node:u,offset:Array.prototype.indexOf.call(u.childNodes,c)}:{node:e,offset:0}}function a(c){const u=r(c);return{node:u.node,offset:u.offset+1}}function l(c){if(es(c)||ts(c)||ns(c)){const u=Xt(c);return n<=0?r(c):n<=u?a(c):(n-=u,null)}if(c.nodeType===Node.TEXT_NODE){const u=c.textContent?.length??0;return n<=u?{node:c,offset:n}:(n-=u,null)}if(c instanceof HTMLBRElement)return null;for(const u of c.childNodes){const p=l(u);if(p)return p}return null}return l(e)??{node:e,offset:e.childNodes.length}}function ko(e,t){const n=window.getSelection();if(!n)return;const r=Gr(e,t.anchor),a=Gr(e,t.focus);if(n.removeAllRanges(),typeof n.setBaseAndExtent=="function"){n.setBaseAndExtent(r.node,r.offset,a.node,a.offset);return}const l=document.createRange(),c=t.anchor<=t.focus,u=c?r:a,p=c?a:r;l.setStart(u.node,u.offset),l.setEnd(p.node,p.offset),n.addRange(l)}function li(e,t){ko(e,{anchor:t,focus:t})}function Kr(e){document.execCommand("insertText",!1,e)}function ii(e){return e==="plus"?'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>':e==="bot"?'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg>':e==="skill"?'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V5a2 2 0 0 1 2-2h5a3 3 0 0 1 3 3v15a3 3 0 0 0-3-3Z"></path><path d="M21 18a1 1 0 0 0 1-1V5a2 2 0 0 0-2-2h-5a3 3 0 0 0-3 3v15a3 3 0 0 1 3-3Z"></path></svg>':'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg>'}function ci(){return'<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="composer-invocation-clear" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg>'}function Wr(e){const t=document.createElement("span");t.className="composer-invocation-pill",t.contentEditable="false",t.dataset.inlineToken="true";const n=document.createElement("button");n.type="button",n.className="composer-invocation-remove",n.setAttribute("aria-label",`Remove ${e.label}`),n.addEventListener("mousedown",l=>l.preventDefault()),n.addEventListener("click",l=>{l.preventDefault(),e.onRemove()});const r=document.createElement("span");r.className="composer-invocation-icon",r.setAttribute("aria-hidden","true"),r.innerHTML=ii(e.icon),n.append(r),n.insertAdjacentHTML("beforeend",ci());const a=document.createElement("span");return a.className="composer-invocation-label",a.textContent=e.label,t.append(n,a),t}function ui(e){return e.provider==="github"?kr("github"):Qo}function di(e){const t=document.createElement("span");t.className=`composer-repo-link ${e.provider}`,t.contentEditable="false",t.dataset.inlineRepoLink="true",t.dataset.repoUrl=e.url,t.dataset.repoProvider=e.provider,t.setAttribute("aria-label",`${e.provider==="github"?"GitHub":"OpenPond"} repository ${e.label}`),t.title=e.url;const n=document.createElement("img");n.className="composer-repo-link-icon",n.src=ui(e),n.alt="",n.draggable=!1;const r=document.createElement("span");return r.className="composer-repo-link-label",r.textContent=e.label,t.append(n,r),t}function fi(e){return kr(e)}function mi(e){const t=document.createElement("span");t.className=`composer-connected-app-mention ${e.provider}`,t.contentEditable="false",t.dataset.inlineConnectedAppMention="true",t.dataset.connectedMentionText=e.text,t.dataset.connectedMentionProvider=e.provider,t.setAttribute("aria-label",`${e.label} connected app mention ${e.displayText}`),t.title=e.detail;const n=document.createElement("img");n.className="composer-connected-app-mention-icon",n.src=fi(e.provider),n.alt="",n.draggable=!1;const r=document.createElement("span");return r.className="composer-connected-app-mention-label",r.textContent=e.displayText,t.append(n,r),t}function hi(e,t){const n=Ql(e);return t===null?n:n.filter(r=>t<=r.start||t>=r.end)}function pi(e,t,n){const r=Xo(e,t);return n===null?r:r.filter(a=>n<=a.start||n>=a.end)}function yo(e,t,n){const r=[...hi(e,t).map(c=>({end:c.end,kind:"repo",link:c,start:c.start})),...pi(e,n,t).map(c=>({end:c.end,kind:"connected-app",mention:c,start:c.start}))].sort((c,u)=>c.start-u.start||u.end-c.end),a=[];let l=0;for(const c of r)c.start<l||(a.push(c),l=c.end);return a}function gi(e,t,n){return yo(e,t,n).map(r=>r.kind==="repo"?`${r.start}:${r.end}:repo:${r.link.provider}:${r.link.label}:${r.link.url}`:`${r.start}:${r.end}:connected-app:${r.mention.provider}:${r.mention.text}:${r.mention.displayText}`).join("|")}function xi(e,t,n,r){const a=Cn(n,t),l=yo(t,a,r);let c=!1;function u(g){g&&e.append(document.createTextNode(g))}function p(g,C){if(!n||a===null||c||a<g||a>C){u(t.slice(g,C));return}u(t.slice(g,a)),e.append(Wr(n)),c=!0,u(t.slice(a,C))}e.replaceChildren();let d=0;for(const g of l)p(d,g.start),g.kind==="repo"?e.append(di(g.link)):e.append(mi(g.mention)),d=g.end;p(d,t.length),n&&!c&&e.append(Wr(n))}const bi=o.forwardRef(function({connectedAppMentions:t=[],disabled:n,onCursorChange:r,onKeyDown:a,onPasteFiles:l,onPasteTextAsAttachment:c,onPromptChange:u,onTokenPositionChange:p,placeholder:d,prompt:g,token:C},m){const h=o.useRef(null),S=`${C?`${C.key}:${Cn(C,g)??0}`:"none"}|${gi(g,Cn(C,g),t)}`,j=o.useRef(null),w=g.length===0&&!C;o.useImperativeHandle(m,()=>({get element(){return h.current},getPrompt(){const y=h.current;return y?cr(y).text:g},focusAtPromptIndex(y,P){const D=h.current;if(!D)return;const U=ai(y,C,g,P?.afterToken);D.focus(),li(D,U),lr(D)},resize(){lr(h.current)}}),[g,C]),o.useLayoutEffect(()=>{const y=h.current;if(!y)return;const P=j.current!==S;j.current=S;const D=cr(y);if(P||g===""||D.text!==g||D.tokenPosition!==Cn(C,g)){const H=document.activeElement===y?ur(y):null;xi(y,g,C,t),y.dataset.empty=g.length===0&&!C?"true":"false",H&&ko(y,H)}lr(y)},[t,g,C,S]);function E(){const y=h.current;if(!y)return;const P=ur(y)?.focus??Xt(y),D=cr(y),U=qr(P,C,D.text);y.dataset.empty=D.text.length===0&&!C?"true":"false",p(D.tokenPosition),r(U),u(D.text,U)}function v(){E(),window.requestAnimationFrame(E)}function A(){const y=h.current;if(!y)return;const P=ur(y)?.focus??Xt(y);r(qr(P,C,g))}return s.jsx("div",{ref:h,className:"composer-inline-input",role:"textbox","aria-multiline":"true",contentEditable:!n,suppressContentEditableWarning:!0,"data-empty":w?"true":"false","data-placeholder":d,onBeforeInput:y=>{y.nativeEvent.inputType==="insertParagraph"&&(y.preventDefault(),Kr(`
3
+ `),v())},onInput:E,onKeyDown:y=>{a(y)},onKeyUp:A,onMouseUp:A,onPaste:y=>{y.preventDefault();const P=Array.from(y.clipboardData.files);if(P.length>0&&l){l(P);return}const D=y.clipboardData.getData("text/plain");D&&(c?.(D)||(Kr(D),v()))}})});function ki(e){if(!e.saving){if(!e.prompt.trim()){e.showInfo("Add task instructions before saving a draft.");return}if(e.attachmentsCount>0){e.showInfo("Task drafts currently save instructions only. Remove attachments before saving.");return}if(e.hasSelectedInvocation){e.showInfo("Finish or remove the selected command before saving this task draft.");return}e.setSaving(!0),e.onSave(e.prompt).then(t=>{t&&e.onSaved()}).finally(()=>e.setSaving(!1))}}function yi(e,t,n,r,a,l,c){return e==="Enter"&&(t||n)&&!r&&a==="work"&&l==="chat"&&c}function Si(e){return e.surface==="team"?"Message team":e.mode!=="start"?"Ask for follow-up changes":e.experience==="chat"?"Ask anything":"What should we work on? Ctrl Enter to save as draft"}function Xr(e){const t=e.implementation?.type;return t==="openpond-agent"||t==="local-profile-agent"||t==="openpond-profile-action"&&(e.sourceActionId==="chat"||e.id==="chat"||e.id.endsWith(".chat"))}function vi(e){return e.kind==="command"?`command:${e.command.id}`:e.kind==="app-context"?`app-context:${e.app.id}`:e.kind==="skill"?`skill:${e.skill.name}`:`action:${e.action.id}`}function Ci(e){return e.kind==="command"?`${e.command.command} ${e.command.label}`:e.kind==="app-context"?e.app.name:e.kind==="skill"?Rs(e.skill):yr(e.action)}function wi(e){return e.kind==="command"?Yo(e.command):e.kind==="app-context"?`Planning context${e.app.description?`: ${e.app.description}`:e.app.gitRepo?`: ${e.app.gitRepo}`:""}`:e.kind==="skill"?e.skill.description||e.skill.path:e.action.description||ea(e.action)}function ji(e){return e.kind==="app"?`app:${e.app.id}`:e.kind==="connected-app"?`connected-app:${e.app.provider}`:e.kind==="team-member"?`team-member:${e.member.userId}`:e.kind==="skill"?`skill:${e.skill.name}`:`action:${e.action.id}`}function Mi(e){return e.kind==="app"?e.app.name:e.kind==="connected-app"?e.app.label:e.kind==="team-member"?e.member.name:e.kind==="skill"?Rs(e.skill):Zo(e.action)}function Ei(e){if(e.kind==="action")return ta(e.action);if(e.kind==="connected-app")return e.app.detail;if(e.kind==="team-member")return e.member.handle?`@${e.member.handle}`:"Team member";if(e.kind==="skill")return e.skill.description||e.skill.path;const t=e.app.sandboxActionRegistry?.actions.map(n=>n.name)??[];return t.length>0?`Actions: ${t.slice(0,4).join(", ")}${t.length>4?` +${t.length-4}`:""}`:e.app.sandboxManifestError?"Manifest registry unavailable":e.app.description||e.app.gitRepo||e.app.id}function Ai(e){return e.kind==="files"?"files":e.kind==="folder"?"folder":e.kind==="slash"?`slash:${vi(e.item)}`:`mention:${ji(e.item)}`}function So(e){return e.kind==="files"?"Files and folders":e.kind==="folder"?"Local folder":e.kind==="slash"?Ci(e.item):Mi(e.item)}function vo(e){return e.kind==="files"?"Attach images, documents, or other files":e.kind==="folder"?"Share a bounded folder as Work input":e.kind==="slash"?wi(e.item):Ei(e.item)}function Ni(e,t){const n=t.toLowerCase().split(/\s+/).filter(Boolean);if(n.length===0)return!0;const r=`${So(e)} ${vo(e)}`.toLowerCase();return n.every(a=>r.includes(a))}function Ti(e,t){const n=t.trimStart(),r=n.startsWith("/")?"slash":n.startsWith("@")?"mentions":null,a=r?n.slice(1).trimStart():n,l=r?e.filter(p=>p.id===r||p.queryScope===r||p.queryScopes?.includes(r)):e;if(!a)return l;const c=l.map(p=>({...p,items:p.items.filter(d=>Ni(d,a))})).filter(p=>p.items.length>0);return c.length>0?c:[{...(r?l[0]:null)??{id:"results",label:"Results"},emptyLabel:r==="slash"?"No slash commands match":r==="mentions"?"No mentions match":"No commands match",items:[]}]}function Ii(e){if(e.kind==="files")return s.jsx(zr,{size:14});if(e.kind==="folder")return s.jsx(zr,{size:14});if(e.kind==="slash"){const n=e.item;return n.kind==="command"?n.command.id==="agent"?s.jsx(rr,{size:14}):n.command.id==="skill"?s.jsx(Jo,{size:14}):s.jsx(or,{size:14}):n.kind==="app-context"?s.jsx(Dr,{size:14}):n.kind==="skill"?s.jsx(Is,{size:14}):Xr(n.action)?s.jsx(rr,{size:14}):s.jsx(or,{size:14})}const t=e.item;return t.kind==="connected-app"?s.jsx("img",{alt:"",className:"composer-provider-mention-icon",draggable:!1,src:kr(t.app.provider)}):t.kind==="action"?Xr(t.action)?s.jsx(rr,{size:14}):s.jsx(or,{size:14}):t.kind==="skill"?s.jsx(Is,{size:14}):s.jsx(Dr,{size:14})}function _i(e){if(e.kind==="slash"&&e.item.kind==="app-context"||e.kind==="mention"&&e.item.kind==="app")return e.item.app.id}function vr({ariaLabel:e,className:t="",id:n,menuIndex:r,menuRef:a,onSelect:l,onSelectIndex:c,sections:u,style:p,variant:d}){const g=o.useRef(null),C=u.reduce((h,k)=>h+k.items.length,0);o.useEffect(()=>{if(d==="add"&&r===0){const h=g.current?.closest(".composer-command-menu");h&&(h.scrollTop=0);return}g.current?.scrollIntoView({block:"nearest"})},[C,r,d]);let m=0;return s.jsx("div",{ref:a,id:n,className:`composer-project-menu composer-slash-menu ${t} composer-command-menu composer-command-menu-${d}`.trim(),role:d==="add"?"menu":"listbox","aria-label":e,style:p,children:u.map(h=>{const k=m;return m+=h.items.length,s.jsxs("div",{className:`composer-command-section ${h.grid?"composer-command-section-grid":""}`.trim(),role:"group","aria-label":h.label,children:[s.jsx("div",{className:"composer-command-section-title",children:h.label}),h.items.length>0?h.items.map((S,j)=>{const w=k+j,E=w===r;return s.jsxs("button",{type:"button",role:d==="add"?"menuitem":"option",ref:E?g:void 0,"aria-selected":d==="typed"?E:void 0,className:`composer-project-option ${E?"selected":""} composer-command-option`,"data-app-context-id":_i(S),onFocus:()=>c(w),onMouseEnter:()=>c(w),onMouseDown:v=>{v.preventDefault()},onClick:()=>l(S),children:[Ii(S),s.jsxs("span",{children:[s.jsx("strong",{children:So(S)}),s.jsx("small",{children:vo(S)})]}),d==="typed"&&E?s.jsx(kt,{size:14}):s.jsx("span",{"aria-hidden":"true"})]},Ai(S))}):s.jsx("div",{className:"composer-menu-empty",children:h.emptyLabel??"No items available"})]},h.id)})})}function Pi({mentionIndex:e,items:t,onSelect:n,onSelectIndex:r,style:a}){return s.jsx(vr,{ariaLabel:"Mentions",className:"composer-mention-menu",menuIndex:e,sections:[{emptyLabel:"No matching mentions",id:"mentions",items:t.map(l=>({kind:"mention",item:l})),label:"@"}],style:a,variant:"typed",onSelect:l=>{l.kind==="mention"&&n(l.item)},onSelectIndex:r})}function Co(){return!!(navigator.mediaDevices&&typeof AudioContext<"u")}async function Ri(){if(!Co())throw new Error("Voice recording is not available in this browser.");const e=await navigator.mediaDevices.getUserMedia({audio:{autoGainControl:!0,channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),t=new AudioContext,n=t.createMediaStreamSource(e),r=t.createScriptProcessor(4096,1,1),a=t.createGain();a.gain.value=0;const l={audioContext:t,chunks:[],processor:r,silentGain:a,source:n,stream:e,startedAt:performance.now(),stopped:!1};return r.onaudioprocess=c=>{if(l.stopped)return;const u=c.inputBuffer.getChannelData(0);l.chunks.push(new Float32Array(u))},n.connect(r),r.connect(a),a.connect(t.destination),{stop:()=>Qr(l,!0),cancel:()=>Qr(l,!1).then(()=>{})}}async function Qr(e,t){if(e.stopped)return{blob:new Blob([],{type:"audio/wav"}),durationMs:0,sampleRate:e.audioContext.sampleRate};e.stopped=!0,e.processor.disconnect(),e.silentGain.disconnect(),e.source.disconnect();for(const a of e.stream.getTracks())a.stop();await e.audioContext.close().catch(()=>{});const n=Math.max(0,performance.now()-e.startedAt);if(!t)return{blob:new Blob([],{type:"audio/wav"}),durationMs:n,sampleRate:e.audioContext.sampleRate};const r=$i(e.chunks);if(r.length===0)throw new Error("No microphone audio was captured.");return{blob:Li(r,e.audioContext.sampleRate),durationMs:n,sampleRate:e.audioContext.sampleRate}}function $i(e){const t=e.reduce((a,l)=>a+l.length,0),n=new Float32Array(t);let r=0;for(const a of e)n.set(a,r),r+=a.length;return n}function Li(e,t){const a=e.length*2,l=new ArrayBuffer(44+a),c=new DataView(l);Ms(c,0,"RIFF"),c.setUint32(4,36+a,!0),Ms(c,8,"WAVE"),Ms(c,12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,1,!0),c.setUint32(24,t,!0),c.setUint32(28,t*1*2,!0),c.setUint16(32,2,!0),c.setUint16(34,16,!0),Ms(c,36,"data"),c.setUint32(40,a,!0);let u=44;for(const p of e){const d=Math.max(-1,Math.min(1,p));c.setInt16(u,d<0?d*32768:d*32767,!0),u+=2}return new Blob([l],{type:"audio/wav"})}function Ms(e,t,n){for(let r=0;r<n.length;r+=1)e.setUint8(t+r,n.charCodeAt(r))}const Oi=12e4,wo="openpond.voice.setupNoticeAcknowledged",Di="Voice dictation runs locally with whisper.cpp. OpenPond uses a local whisper-cli binary and downloads the voice model on first use.";function Jr({connection:e,buttonClassName:t,wrapperClassName:n="",disabled:r=!1,iconSize:a=16,language:l="en",showToast:c,onTranscript:u}){const p=o.useRef(null),d=o.useRef(null),g=o.useRef(e),C=o.useRef(r),m=o.useRef(Fi());g.current=e,C.current=r;const[h,k]=o.useState("idle"),[S,j]=o.useState(null),w=h==="transcribing",E=h==="starting",v=h==="recording",A=o.useCallback(()=>{d.current!==null&&(window.clearTimeout(d.current),d.current=null)},[]),y=o.useCallback(async()=>{A();const G=p.current;p.current=null,k("idle"),G&&await G.cancel().catch(()=>{})},[A]),P=o.useCallback(async G=>{const J=g.current;if(!J)throw new Error("Voice input is still connecting.");const Z=await $e.voiceTranscriptionStatus(J);if(!Z.binaryPath)throw new Error(Z.installHint??"Install whisper.cpp to use dictation.");!Z.modelReady&&Z.canDownloadModel?j(`Downloading ${Z.modelName} voice model...`):j("Transcribing voice...");const Ue=await $e.transcribeVoice(J,{audioBase64:await zi(G.blob),durationMs:Math.round(G.durationMs),language:l,mimeType:"audio/wav"});u(Ue.text),j(null)},[l,u]),D=o.useCallback(async()=>{A();const G=p.current;if(p.current=null,!!G){k("transcribing"),j("Transcribing voice...");try{const J=await G.stop();await P(J)}catch(J){j(Zr(J))}finally{k("idle")}}},[A,P]),U=o.useCallback(async()=>{if(C.current)return;if(!g.current){j("Voice input is still connecting.");return}if(!Co()){j("Voice recording is not available in this browser.");return}j(null),k("starting");try{if(await window.openpond?.requestMicrophoneAccess?.()===!1)throw new Error("Microphone access is denied.");const Z=await Ri();p.current=Z,k("recording"),j("Recording..."),d.current=window.setTimeout(()=>{D()},Oi)}catch(J){j(Zr(J)),await y()}},[y,D]),H=o.useCallback(()=>{if(m.current){U();return}c(Di,"info",{actionLabel:"Continue",persistent:!0,onAction:()=>{m.current=!0,Bi(),U()}})},[U,c]);return o.useEffect(()=>{if(!S||v||w)return;const G=window.setTimeout(()=>j(null),7e3);return()=>window.clearTimeout(G)},[w,S,v]),o.useEffect(()=>()=>{y()},[y]),s.jsxs("span",{className:`voice-input-control ${n} ${E?"starting":""} ${v?"recording":""}`.trim(),children:[s.jsx("button",{type:"button",className:`${t} ${E?"starting":""} ${v?"recording active":""}`.trim(),"aria-label":v?"Stop dictation":E?"Starting dictation":"Dictate","aria-pressed":v,disabled:r||w||E,onClick:()=>{v?D():H()},children:v?s.jsx(pr,{size:Math.max(12,a-3),fill:"currentColor"}):s.jsx(hl,{size:a})}),S?s.jsx("span",{className:"voice-input-status",role:"status",children:S}):null]})}async function zi(e){const t=new Uint8Array(await e.arrayBuffer());let n="";for(let r=0;r<t.length;r+=32768){const a=t.subarray(r,r+32768);n+=String.fromCharCode(...a)}return window.btoa(n)}function Zr(e){const t=e instanceof Error?e.message:String(e);return/NotAllowedError|Permission denied|denied/i.test(t)?"Microphone access is denied.":/NotFoundError|Requested device not found/i.test(t)?"No microphone was found.":t||"Voice input failed."}function Fi(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(wo)==="true"}catch{return!1}}function Bi(){if(!(typeof window>"u"))try{window.localStorage.setItem(wo,"true")}catch{}}const Ui=new Set(["codex","openai","xai","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible","setup-provider"]);function Hi({surface:e="chat",teamUseModel:t=!1,teamUseModelLocked:n=!1,onTeamUseModelChange:r,addFiles:a,addMenuId:l,addMenuOpen:c,addMenuRef:u,busy:p,codexPermissionMode:d,codexReasoningEffort:g,connection:C,contextStatusStyle:m,contextStatusTooltipId:h,contextWindowStatus:k,disabled:S,dropdownPlacement:j,fileInputRef:w,modelValue:E,modelOptions:v=[],openPondCommandAccessMode:A,showCommandAccess:y=!0,profileTarget:P,onCodexPermissionModeChange:D,onCodexReasoningEffortChange:U,onOpenPondCommandAccessModeChange:H,onProfileTargetChange:G,onModelChange:J,onOpenFilePicker:Z,onProviderChange:Ue,onProviderSetupOpen:ke,onStop:fe,onToggleAddMenu:se,onTranscript:me,provider:ue,providerSettings:Le,providerOptions:we,running:R,sendDisabled:He,sendTooltip:Ae,showToast:Xe,stopIcon:je="stop",stopLabel:F="Stop response"}){const le=na(ue,E,Le),M=o.useMemo(()=>qi({currentModelOptions:v,currentProvider:ue,providerOptions:we,providerSettings:Le}),[v,ue,we,Le]),$=o.useMemo(()=>M.filter(O=>Ui.has(O.provider)),[M]),L=(O,Se)=>{if(O===ue){J(Se);return}J(Se),Ue(O)};return e==="team"?s.jsxs("div",{className:"composer-primary-controls team-chat-composer-controls",children:[s.jsx("button",{type:"button",className:"composer-icon","aria-label":"Add photos and files",disabled:S,onClick:Z,children:s.jsx(wn,{size:18})}),s.jsx("input",{ref:w,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:O=>{a(Array.from(O.currentTarget.files??[])),O.currentTarget.value=""}}),s.jsxs("label",{className:"team-chat-model-toggle",children:[s.jsx("input",{type:"checkbox",checked:t,disabled:p||n,onChange:O=>r?.(O.currentTarget.checked)}),s.jsx("span",{children:"Use model"})]}),s.jsx("div",{className:"composer-spacer"}),t?s.jsx(Ur,{disabled:p,model:E,modelGroups:$,placement:j,provider:ue,reasoningEffort:g,showReasoning:le,onModelSelectionChange:L,onProviderSetupOpen:ke,onReasoningEffortChange:U}):null,s.jsx(Jr,{buttonClassName:"composer-icon",connection:C,disabled:S,iconSize:16,wrapperClassName:"composer-voice-input",showToast:Xe,onTranscript:me}),R?s.jsx("button",{type:"button",className:"send-button stop-button","data-tooltip":F,"aria-label":F,onClick:fe,children:s.jsx(pr,{size:13,fill:"currentColor"})}):s.jsx("button",{className:"send-button",disabled:He,"data-tooltip":Ae,"aria-label":Ae,children:s.jsx(Or,{size:18})})]}):s.jsxs("div",{className:"composer-primary-controls",children:[s.jsxs("div",{className:"composer-add-control open-up",ref:u,children:[s.jsx("button",{type:"button",className:`composer-icon ${c?"active":""}`,"aria-label":"Add to message","aria-haspopup":"menu","aria-expanded":c,"aria-controls":c?l:void 0,disabled:S,onMouseDown:O=>O.preventDefault(),onClick:se,children:s.jsx(wn,{size:18})}),s.jsx("input",{ref:w,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:O=>{a(Array.from(O.currentTarget.files??[])),O.currentTarget.value=""}})]}),y&&ue==="codex"?s.jsx(Lr,{compact:!0,className:"permission-select",icon:s.jsx(Wa,{size:14}),placement:j,label:"Codex permissions",tooltip:_r.find(O=>O.value===d)?.label,value:d,options:_r,disabled:p,onChange:O=>D(O)}):y?s.jsx(Lr,{compact:!0,className:"permission-select",icon:s.jsx(sa,{size:14}),placement:j,label:"Command access",tooltip:Pr.find(O=>O.value===(A==="disabled"?"ask":A))?.label,value:A==="disabled"?"ask":A,options:Pr,disabled:p,onChange:O=>H(O)}):null,P&&G?s.jsx(mo,{busy:p,placement:j,state:P,onChange:G}):null,s.jsx("div",{className:"composer-spacer"}),s.jsxs("span",{className:`context-status-shell ${k.tone}`,style:m,children:[s.jsx("span",{className:`composer-status ${k.tone}`,role:k.maxTokens===null?"img":"meter","aria-label":k.tooltip,"aria-describedby":h,"aria-valuemin":k.maxTokens===null?void 0:0,"aria-valuemax":k.maxTokens??void 0,"aria-valuenow":k.maxTokens===null?void 0:k.usedTokens,tabIndex:0}),s.jsxs("span",{className:"context-status-tooltip",id:h,role:"tooltip",children:[s.jsx("span",{className:"context-status-tooltip-title",children:"Context window"}),s.jsxs("span",{className:"context-status-tooltip-main",children:[s.jsx("span",{children:k.summary}),s.jsx("span",{children:k.tokensLabel})]}),k.maxTokens!==null&&s.jsx("span",{className:"context-status-tooltip-bar","aria-hidden":"true",children:s.jsx("span",{})}),k.detail?s.jsx("span",{className:"context-status-tooltip-detail",children:k.detail}):null]})]}),s.jsx(Ur,{disabled:p,model:E,modelGroups:M,placement:j,provider:ue,reasoningEffort:g,showReasoning:le,onModelSelectionChange:L,onProviderSetupOpen:ke,onReasoningEffortChange:U}),s.jsx(Jr,{buttonClassName:"composer-icon",connection:C,disabled:S,iconSize:16,wrapperClassName:"composer-voice-input",showToast:Xe,onTranscript:me}),R?s.jsx("button",{type:"button",className:"send-button stop-button","data-tooltip":F,"aria-label":F,onClick:fe,children:je==="pause"?s.jsx(Ba,{size:15}):s.jsx(pr,{size:13,fill:"currentColor"})}):s.jsx("button",{className:"send-button",disabled:He,"data-tooltip":Ae,"aria-label":Ae,children:s.jsx(Or,{size:18})})]})}function qi({currentModelOptions:e,currentProvider:t,providerOptions:n,providerSettings:r}){return n.flatMap(a=>{if(a.value==="setup-provider")return[];const l=a.value,c=l===t?e:lo(l,r);return c.length>0?[{provider:l,label:a.label,defaultModel:ra(l,r),options:c}]:[]})}function Vi(e){return e.description||e.path}function Gi({items:e,onSelect:t,onSelectIndex:n,skillIndex:r,style:a}){const l=o.useRef(null);return o.useEffect(()=>{l.current?.scrollIntoView({block:"nearest"})},[e.length,r]),s.jsx("div",{className:"composer-project-menu composer-slash-menu composer-skill-menu",role:"listbox","aria-label":"Available skills",style:a,children:e.length>0?e.map((c,u)=>{const p=u===r;return s.jsxs("button",{type:"button",className:`composer-project-option ${p?"selected":""}`,ref:p?l:void 0,role:"option","aria-selected":p,onMouseEnter:()=>n(u),onMouseDown:d=>{d.preventDefault(),t(c)},children:[s.jsx(Is,{size:14}),s.jsxs("span",{children:[s.jsx("strong",{children:Rs(c)}),s.jsx("small",{children:Vi(c)})]}),p?s.jsx(kt,{size:14}):s.jsx("span",{"aria-hidden":"true"})]},c.name)}):s.jsx("div",{className:"composer-menu-empty",role:"option","aria-selected":"false",children:"No matching skills"})})}function Ki({actionCatalogCount:e,actionIndex:t,items:n,onSelect:r,onSelectIndex:a,style:l}){return s.jsx(vr,{ariaLabel:"OpenPond agents and actions",menuIndex:t,sections:[{emptyLabel:e===0?"No matching commands or apps":"No matching commands, apps, agents, or actions",id:"slash",items:n.map(c=>({kind:"slash",item:c})),label:"/"}],style:l,variant:"typed",onSelect:c=>{c.kind==="slash"&&r(c.item)},onSelectIndex:a})}function Wi({busy:e,initialDescription:t,open:n,onClose:r,onSubmit:a}){const[l,c]=o.useState(""),[u,p]=o.useState(()=>t.trim()),d=l.trim(),g=u.trim(),C=e||!d||!g;if(o.useEffect(()=>{n&&(c(""),p(t.trim()))},[t,n]),o.useEffect(()=>{if(!n||e)return;function h(k){k.key==="Escape"&&r()}return document.addEventListener("keydown",h),()=>document.removeEventListener("keydown",h)},[e,r,n]),!n)return null;async function m(){if(C)return;await a({title:d,description:g})&&(c(""),p(""))}return s.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onMouseDown:e?void 0:r,children:s.jsxs("section",{className:"git-dialog submit-issue-dialog",role:"dialog","aria-modal":"true","aria-label":"Submit GitHub issue",onMouseDown:h=>h.stopPropagation(),onKeyDown:h=>{h.key!=="Enter"||!(h.target instanceof HTMLInputElement)||(h.preventDefault(),m())},children:[s.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",onClick:r,children:s.jsx(Ps,{size:16})}),s.jsx("div",{className:"git-dialog-icon",children:s.jsx(oa,{size:18})}),s.jsx("h2",{children:"Submit issue"}),s.jsxs("div",{className:"git-dialog-row submit-issue-repo-row",children:[s.jsx("span",{children:"Repository"}),s.jsx("strong",{children:aa})]}),s.jsxs("label",{className:"git-dialog-field",children:[s.jsx("span",{children:"Title"}),s.jsx("input",{autoFocus:!0,disabled:e,placeholder:"Short issue title",value:l,onChange:h=>c(h.target.value)})]}),s.jsxs("label",{className:"git-dialog-field",children:[s.jsx("span",{children:"Description"}),s.jsx("textarea",{disabled:e,placeholder:"What happened, what you expected, and any useful context",value:u,onChange:h=>p(h.target.value)})]}),s.jsxs("div",{className:"git-dialog-footer",children:[s.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:r,children:"Cancel"}),s.jsx("button",{className:"git-dialog-primary",disabled:C,type:"button",onClick:()=>{m()},children:"Submit issue"})]})]})})}const Xi=new Set(["c","cc","cpp","css","go","h","html","java","js","json","jsx","mdx","php","py","rb","rs","sh","sql","toml","ts","tsx","xml","yaml","yml"]),Qi=new Set(["csv","ods","tsv","xls","xlsm","xlsx"]),Ji=new Set(["7z","bz2","gz","rar","tar","tgz","xz","zip"]),Zi=new Set(["doc","docx","epub","md","odt","pdf","rtf","txt"]),Yi=new Set(["key","odp","ppt","pptx"]);function jo(e){const t=e.mediaType.toLowerCase(),n=e.name.split(".").pop()?.toLowerCase()??"";return e.kind==="image"||t.startsWith("image/")?"image":t.startsWith("audio/")?"audio":t.startsWith("video/")?"video":Qi.has(n)||t.includes("spreadsheet")||t.includes("excel")?"spreadsheet":Ji.has(n)||t.includes("zip")||t.includes("compressed")?"archive":Yi.has(n)||t.includes("presentation")||t.includes("powerpoint")?"presentation":Xi.has(n)?"code":e.kind==="text"||Zi.has(n)||t.startsWith("text/")||t==="application/pdf"||t.includes("document")||t.includes("msword")?"document":"file"}function ec(e){if(e.mediaType.toLowerCase()==="application/pdf")return"PDF";const t=jo(e);return t==="spreadsheet"?"Spreadsheet":t.charAt(0).toUpperCase()+t.slice(1)}function tc(e){return`${e.toLocaleString()} ${e===1?"line":"lines"}`}const nc={archive:qa,audio:al,code:Ha,document:Is,file:Ua,image:fl,presentation:xl,spreadsheet:il,video:ul};function sc({attachment:e,...t}){const n=nc[jo(e)];return s.jsx(n,{...t})}const rc=new Set(["csv","css","html","js","json","jsx","log","md","mdx","py","sql","svg","ts","tsx","txt","xml","yaml","yml"]),oc=2e3,ac=/^Pasted text(?: (\d+))?\.txt$/;function lc(e,t){if(e.length<oc)return null;const n=new Set;for(const l of t){const c=ac.exec(l.name);c&&n.add(c[1]?Number(c[1]):1)}let r=1;for(;n.has(r);)r+=1;const a=r===1?"Pasted text.txt":`Pasted text ${r}.txt`;return new File([e],a,{type:"text/plain"})}function ic({attachment:e,onRemove:t}){const[n,r]=o.useState(null);o.useEffect(()=>{if(e.kind!=="text")return;let l=!1;return e.file.text().then(c=>{l||r(fo(c))},()=>{}),()=>{l=!0}},[e.file,e.kind]);const a=e.kind!=="image";return s.jsxs("div",{className:`composer-attachment-card ${e.kind}`,children:[s.jsx("div",{className:"composer-attachment-thumb","aria-hidden":"true",children:e.previewUrl?s.jsx("img",{alt:"",decoding:"async",src:e.previewUrl}):s.jsx(sc,{attachment:e,size:22})}),a?s.jsxs("div",{className:"composer-attachment-meta",children:[s.jsx("strong",{children:e.name}),s.jsx("span",{children:e.kind==="text"&&n!==null?tc(n):ec(e)})]}):null,s.jsx("button",{type:"button",className:"composer-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:s.jsx(Ps,{size:14})})]})}function cc(){return globalThis.crypto?.randomUUID?.()??`attachment-${Date.now()}-${Math.random().toString(36).slice(2)}`}function uc(e){if(e.type.startsWith("image/"))return"image";if(e.type.startsWith("text/"))return"text";const t=e.name.split(".").pop()?.toLowerCase()??"";return rc.has(t)?"text":"file"}async function dc(e){const[t,n]=await Promise.all([mc(e.file),e.kind==="text"?hc(e.file):Promise.resolve(void 0)]);return{id:e.id,name:e.name,mediaType:e.mediaType,sizeBytes:e.sizeBytes,kind:e.kind,...n!==void 0?{lineCount:fo(n)}:{},...e.relativePath?{relativePath:e.relativePath}:{},contentsBase64:t,...n?{text:pc(n)}:{}}}function fc(e){const t=["KB","MB","GB"];let n=e/1024;for(const r of t){if(n<1024)return`${n.toFixed(n>=10?0:1)} ${r}`;n/=1024}return`${n.toFixed(0)} TB`}function mc(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{const a=typeof r.result=="string"?r.result:"",[,l=""]=a.split(",",2);t(l)},r.onerror=()=>n(r.error??new Error("Failed to read file")),r.readAsDataURL(e)})}function hc(e){return new Promise((t,n)=>{const r=new FileReader;r.onload=()=>t(typeof r.result=="string"?r.result:""),r.onerror=()=>n(r.error??new Error("Failed to read file")),r.readAsText(e)})}function pc(e){if(e.length<=Pt.maxTextChars)return e;const t=`
4
+ [attachment text truncated]`;return`${e.slice(0,Math.max(0,Pt.maxTextChars-t.length))}${t}`}function gc(){const e=o.useRef([]),t=o.useRef([]),n=o.useRef(!1),[r,a]=o.useState([]),[l,c]=o.useState(null);o.useEffect(()=>{e.current=r},[r]),o.useEffect(()=>()=>{n.current=!0;for(const m of e.current)Zn(m);for(const m of t.current)Zn(m)},[]);const u=o.useCallback(m=>{if(m.length===0)return;const h=Math.max(0,Pt.maxAttachments-r.length),k=[];let S=0,j=0;for(const w of m){if(w.size>Pt.maxAttachmentBytes){S+=1;continue}if(k.length>=h){j+=1;continue}const E="webkitRelativePath"in w&&typeof w.webkitRelativePath=="string"&&w.webkitRelativePath.trim()?w.webkitRelativePath.trim():void 0;k.push({id:cc(),file:w,name:w.name||"Untitled file",mediaType:w.type||"application/octet-stream",sizeBytes:w.size,kind:uc(w),...E?{relativePath:E}:{},...w.type.startsWith("image/")?{previewUrl:URL.createObjectURL(w)}:{}})}if(k.length>0&&(a([...r,...k]),c(null)),S>0||j>0){const w=[];S>0&&w.push(`${S} file${S===1?"":"s"} exceeded ${fc(Pt.maxAttachmentBytes)}`),j>0&&w.push(`maximum ${Pt.maxAttachments} attachments`),c(w.join("; "))}},[r]),p=o.useCallback(m=>{a(h=>{const k=h.find(j=>j.id===m);k&&Zn(k);const S=h.filter(j=>j.id!==m);return S.length===0&&c(null),S})},[]),d=o.useCallback(()=>{for(const m of e.current)Zn(m);e.current=[],a([]),c(null)},[]),g=o.useCallback(()=>{const m=e.current;return m.length===0||(e.current=[],t.current=m,a([]),c(null)),m},[]),C=o.useCallback((m,h)=>{if(m.length===0)return;const k=new Set(m.map(S=>S.id));if(t.current=t.current.filter(S=>!k.has(S.id)),h==="restore"&&!n.current){a(S=>{const j=new Set(S.map(E=>E.id)),w=[...m.filter(E=>!j.has(E.id)),...S];return e.current=w,w});return}for(const S of m)Zn(S)},[]);return{attachmentError:l,attachments:r,addFiles:u,clearAttachments:d,removeAttachment:p,settleStagedAttachments:C,setAttachmentError:c,stageAttachmentsForSubmit:g}}function Zn(e){e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}function xc(e,t){const n=e.slice(0,Math.max(0,Math.min(t,e.length))),r=/(?:^|\s)\/([a-zA-Z0-9_-]*)$/.exec(n);if(!r||typeof r.index!="number")return null;const a=r[0].lastIndexOf("/");if(a<0)return null;const l=r.index+a;return{end:n.length,query:(r[1]??"").toLowerCase(),start:l}}function bc(e,t,n=Sr){const r=e.slice(0,Math.max(0,Math.min(t,e.length))),a=/(?:^|\s)\/([a-z][a-z0-9_-]*)\s$/.exec(r);if(!a)return null;const l=n.find(u=>u.id===a[1]);if(!l)return null;const c=a[0].lastIndexOf("/");return c<0||typeof a.index!="number"?null:{command:l,end:r.length,start:a.index+c}}function kc(e,t=Sr){return ia({commands:t,prompt:`/${e}`})}function Yr(e,t){return e.length===0?[]:e.filter(n=>t?[n.id,n.name??"",n.label??"",n.description??"",typeof n.implementation?.type=="string"?n.implementation.type:""].join(" ").toLowerCase().includes(t):!0)}function eo(e,t){return e.length===0?[]:e.filter(n=>t?[n.id,n.name,n.description??"",n.gitRepo??"",io(n)].join(" ").toLowerCase().includes(t):!0).slice(0,8)}function to({actionCatalog:e,connectedAppMentions:t,mentionApps:n,profileSkills:r,query:a,surface:l,teamMentionMembers:c}){const u=a.toLowerCase();if(l==="team"){const m=c.filter(k=>u?[k.name,k.handle??""].map(Sn).some(S=>S.includes(u)):!0).map(k=>({kind:"team-member",member:k}));return[...Rr(e,u,e.length).map(k=>({kind:"action",action:k})),...m]}const p=n.filter(m=>u?[Sn(m.id),Sn(m.name),m.gitRepo?Sn(m.gitRepo):"",io(m)].some(k=>k.includes(u)):!0).map(m=>({kind:"app",app:m})),d=Rr(e,u,e.length).map(m=>({kind:"action",action:m})),g=Ns(r,u).map(m=>({kind:"skill",skill:m})),C=la(t,u).map(m=>({kind:"connected-app",app:m}));return[...d,...g,...p,...C]}function yc(e,t,n){const r=t?.trim();if(!r)return e;const a=Math.max(0,Math.min(n??0,e.length)),l=e.slice(0,a),c=e.slice(a),u=l&&!/\s$/.test(l)?" ":"",p=c&&!/^\s/.test(c)?" ":"";return`${l}${u}${r}${p}${c}`.replace(/\s+/g," ").trim()}function Sc(e){const t=Sn(yr(e)||e.name||e.id);return t?`@${t}`:null}function vc(e){const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return e;try{const n=JSON.parse(t);if(!n||Array.isArray(n)||typeof n!="object")return e;const r=Object.entries(n).filter(([,a])=>a!=null&&a!=="").map(([a,l])=>`${Mo(a)}: ${br(a,l)}`);return r.length?r.join(" · "):e}catch{return e}}function Mo(e){const t=e.replace(/Id$/,"").replace(/([a-z0-9])([A-Z])/g,"$1 $2").replaceAll("_"," ").trim().toLowerCase();return t?`${t[0].toUpperCase()}${t.slice(1)}`:"Input"}function br(e,t){if(Array.isArray(t))return t.map(r=>br(e,r)).join(", ");if(t&&typeof t=="object")return Object.entries(t).map(([r,a])=>`${Mo(r)}: ${br(r,a)}`).join(" · ");const n=String(t);return/Id$/.test(e)&&/^[a-z0-9_-]+$/i.test(n)?n.split(/[-_]+/).filter(Boolean).map(r=>`${r[0].toUpperCase()}${r.slice(1)}`).join(" "):n}function Cc({action:e,prompt:t,selectedActionMentionText:n,selectedInvocationPosition:r}){if(!e)return null;const a=n?.trim(),l=a?.startsWith("@")?a:Sc(e);return l?yc(vc(t),l,r):null}function wc({attachmentCount:e,prompt:t,selectedAction:n,selectedCommand:r}){return!!(t.trim()||e>0||n||r)}const jc=new Set(["openpond-agent-authoring","openpond-skill-authoring","openpond-taskset-authoring","openpond-refiner-authoring"]);function Mc({activeMentionKey:e,activeSkillKey:t,activeSlashKey:n,addMenuIndex:r,addMenuItems:a,addMenuOpen:l,addMenuPanelRef:c,addMenuRef:u,attachmentCount:p,composerRef:d,createImproveActive:g,goalRuntimeActive:C,inputRef:m,inputShellRef:h,mentionQuery:k,prompt:S,selectedActionId:j,selectAddMenuItem:w,setActionIndex:E,setActionMenuDismissedPrompt:v,setAddMenuIndex:A,setAddMenuOpen:y,setAddMenuQuery:P,setMentionMenuDismissedPrompt:D,setMentionIndex:U,setSkillIndex:H,setSkillMenuDismissedPrompt:G,skillMatchCount:J,skillQuery:Z,slashMatchCount:Ue,slashQuery:ke,showActionMenu:fe,showMentionMenu:se,showSkillMenu:me}){const[ue,Le]=o.useState({}),[we,R]=o.useState({}),[He,Ae]=o.useState({}),[Xe,je]=o.useState({});return o.useEffect(()=>{U(0)},[k]),o.useEffect(()=>{H(0)},[J,Z]),o.useEffect(()=>{E(0)},[Ue,ke]),o.useEffect(()=>{const F=m.current?.element,le=F?.parentElement;if(!F||!le||typeof ResizeObserver>"u")return;const M=new ResizeObserver(()=>m.current?.resize());return M.observe(le),()=>M.disconnect()},[]),o.useEffect(()=>{if(!l)return;function F(M){const $=M.target,L=m.current?.element?.parentElement;!u.current?.contains($)&&!c.current?.contains($)&&!L?.contains($)&&(y(!1),P(""),D(e),v(n),G(t))}function le(M){if(M.key==="Escape"){M.preventDefault(),y(!1),P(""),D(e),v(n),G(t);return}if(a.length!==0){if(M.key==="ArrowDown"){M.preventDefault(),A($=>($+1)%a.length);return}if(M.key==="ArrowUp"){M.preventDefault(),A($=>($-1+a.length)%a.length);return}if(M.key==="Home"){M.preventDefault(),A(0);return}if(M.key==="End"){M.preventDefault(),A(a.length-1);return}if(M.key==="Enter"){M.preventDefault();const $=a[r]??a[0];$&&w($)}}}return document.addEventListener("pointerdown",F),document.addEventListener("keydown",le),()=>{document.removeEventListener("pointerdown",F),document.removeEventListener("keydown",le)}},[e,t,n,r,a,l]),o.useLayoutEffect(()=>{if(!l)return;const F=h.current;if(!F)return;const le=F;function M(){je(ni(le))}return M(),window.addEventListener("resize",M),window.addEventListener("scroll",M,!0),()=>{window.removeEventListener("resize",M),window.removeEventListener("scroll",M,!0)}},[l,p,g,C]),o.useLayoutEffect(()=>{if(!fe)return;const F=m.current?.element,le=d.current;if(!F||!le)return;const M=F,$=le;function L(){Ae(ir(M,$))}return L(),window.addEventListener("resize",L),window.addEventListener("scroll",L,!0),()=>{window.removeEventListener("resize",L),window.removeEventListener("scroll",L,!0)}},[p,g,C,S,j,fe]),o.useLayoutEffect(()=>{if(!me)return;const F=m.current?.element,le=d.current;if(!F||!le)return;const M=F,$=le;function L(){R(ir(M,$))}return L(),window.addEventListener("resize",L),window.addEventListener("scroll",L,!0),()=>{window.removeEventListener("resize",L),window.removeEventListener("scroll",L,!0)}},[p,g,C,S,j,me]),o.useLayoutEffect(()=>{if(!se)return;const F=m.current?.element,le=d.current;if(!F||!le)return;const M=F,$=le;function L(){Le(ir(M,$))}return L(),window.addEventListener("resize",L),window.addEventListener("scroll",L,!0),()=>{window.removeEventListener("resize",L),window.removeEventListener("scroll",L,!0)}},[p,g,C,S,j,se]),{actionMenuStyle:He,addMenuStyle:Xe,mentionMenuStyle:ue,skillMenuStyle:we}}const Ec=o.lazy(()=>ce(()=>import("./ComposerCreateImproveStrip-7hBR2bdV.js"),__vite__mapDeps([0,1,2,3,4,5,6]),import.meta.url).then(e=>({default:e.ComposerCreateImproveStrip}))),Ac=Sr.find(e=>e.id==="submit-issue"),Nc=[];function Tc({experience:e="development",mode:t,surface:n="chat",teamUseModel:r=!1,teamUseModelLocked:a=!1,teamMentionMembers:l=[],onTeamUseModelChange:c,prompt:u,composeNotice:p=null,mentionApps:d=[],connectedAppMentions:g=[],profileSkills:C=[],selectedMentionAppId:m=null,contextWindowStatus:h,goalRuntime:k=null,subagentRuntime:S=null,createImproveRuntime:j=null,busy:w,running:E=w,interruptRunningTurnBeforeSteer:v=!0,submissionScopeKey:A="default",initialSteerDrafts:y=Nc,showProjectFooter:P=!0,autoFocus:D=!1,focusRequestId:U=0,attachmentRequest:H=null,connection:G,providerSettings:J=null,provider:Z,model:Ue,projectTarget:ke,profileTarget:fe=null,actionCatalog:se=[],requestedAction:me=null,workspaceTarget:ue,codexPermissionMode:Le,codexReasoningEffort:we,openPondCommandAccessMode:R,onProviderChange:He,onProviderSetupOpen:Ae,onProjectTargetChange:Xe,onProfileTargetChange:je,onWorkspaceTargetChange:F,onModelChange:le,onCodexPermissionModeChange:M,onCodexReasoningEffortChange:$,onOpenPondCommandAccessModeChange:L,onPromptChange:O,onMentionAppSelect:Se,onSaveTaskDraft:et,showToast:ve,onSubmit:he,onStop:Rt,onPauseGoal:Oe}){const Qt=o.useRef(null),Jt=o.useRef(null),Y=o.useRef(null),ut=o.useRef(null),Zt=o.useRef(null),Yt=o.useRef(null),b=o.useRef(null),N=o.useRef(0),ae=me&&se.some(i=>i.id===me.actionId)?me:null,ge=o.useRef(!1),q=o.useRef(0),Me=o.useRef(ae?.requestId??0),de=o.useRef(new Set),[W,re]=o.useState(u.length),[yt,De]=o.useState(0),[tt,nt]=o.useState(0),[$t,St]=o.useState(0),[rs,Lt]=o.useState(0),[os,vt]=o.useState(""),[Ls,jn]=o.useState(null),[Os,dt]=o.useState(null),[Ds,Te]=o.useState(null),[ze,Ot]=o.useState(!1),[Ct,en]=o.useState(!1),[Ce,st]=o.useState(ae?.actionId??null),[ft,wt]=o.useState(null),[Dt,Pe]=o.useState(null),[Mn,rt]=o.useState(null),[as,En]=o.useState(null),[zs,tn]=o.useState(!1),[nn,An]=o.useState(()=>({[A]:y})),[zt,sn]=o.useState(null),[Nn,Ft]=o.useState(!1),[Tn,In]=o.useState(""),[Bt,rn]=o.useState(!1),{attachmentError:jt,attachments:Ie,addFiles:Qe,removeAttachment:ot,settleStagedAttachments:ee,setAttachmentError:mt,stageAttachmentsForSubmit:Mt}=gc(),_n=o.useRef(0);o.useEffect(()=>{!H||_n.current===H.id||(_n.current=H.id,Qe([H.file]))},[Qe,H]);const Fs=o.useCallback(i=>{const f=lc(i,Ie);return!f||Ie.length>=Pt.maxAttachments||f.size>Pt.maxAttachmentBytes?!1:(Qe([f]),!0)},[Qe,Ie]),Bs=Si({experience:e,mode:t,surface:n}),_e=e==="development"||e==="work"&&ke.value!=="none",Je=ca(Z,Ue,J),at="top",ls=o.useId(),Pn=o.useId(),Us=o.useId(),Rn={"--context-fill":`${Math.round((h.percent??0)/100*360)}deg`,"--context-bar-fill":`${h.percent??0}%`},xe=o.useMemo(()=>se.find(i=>i.id===Ce)??null,[se,Ce]),ht=o.useMemo(()=>ua(Z,e),[e,Z]),Ge=o.useMemo(()=>_e?C:C.filter(i=>!jc.has(i.name)),[e,C]),ye=o.useMemo(()=>ht.find(i=>i.id===ft)??null,[ht,ft]),Ut=Cc({action:xe,prompt:u,selectedActionMentionText:Mn,selectedInvocationPosition:Dt}),$n=wc({attachmentCount:Ie.length,prompt:u,selectedAction:xe,selectedCommand:ye}),is=o.useMemo(()=>{const i=Math.max(0,Math.min(Dt??0,u.length));return ye?{icon:ye.id==="agent"?"plus":ye.id==="skill"?"skill":"workflow",key:`command:${ye.id}`,label:ye.id==="agent"?"Author Agent":ye.id,position:i,onRemove:()=>{wt(null),Pe(null),rt(null)}}:xe?{icon:xe.implementation?.type==="openpond-agent"?"bot":"workflow",key:`action:${xe.id}`,label:yr(xe),position:i,onRemove:()=>{st(null),Pe(null),rt(null)}}:null},[u.length,xe,ye,Dt]),Et=as===A,cs=Et||!$n,Hs=Et?"Preparing files":E?"Steer":"Send",lt=Et,qs=Et;function us(i=A){const f=de.current;return f.has(i)?!1:(f.add(i),!0)}function ds(i){de.current.delete(i)}function Vs(i){return de.current.has(i)}function fs(){return Vs(A)}function Ln(i){En(f=>f===i?null:f)}const Ht=o.useMemo(()=>{const i=da(J,{enabledOnly:!0}).map(V=>({...V,description:void 0})),f=_e?i:i.filter(V=>V.value!=="codex"),T=ue.value==="cloud"&&_e?f.filter(V=>V.value==="openpond"):f,_=T.some(V=>V.value===Z)?T:[{value:Z,label:fa(Z,J),description:"Current"},...T],X={value:"setup-provider",label:"New Model/Provider",icon:"plus",separatorBefore:!0};return[..._,X]},[Z,J,_e,ue.value]),ms=o.useMemo(()=>lo(Z,J),[Z,J]),pe=o.useMemo(()=>ma(u,Math.min(W,u.length)),[W,u]),Ze=pe?`${u}:${pe.start}:${Math.min(W,u.length)}`:null,it=o.useMemo(()=>pe?to({actionCatalog:se,connectedAppMentions:g,mentionApps:d,profileSkills:Ge,query:pe.query,surface:n,teamMentionMembers:l}):[],[se,g,d,pe,Ge,n,l]),qt=o.useMemo(()=>n==="team"?[]:to({actionCatalog:se,connectedAppMentions:g,mentionApps:d,profileSkills:Ge,query:"",surface:n,teamMentionMembers:l}).filter(i=>i.kind!=="skill"),[se,g,d,Ge,n,l]),On=!!(!ze&&!lt&&pe&&Ze&&Ls!==Ze&&it.length>0),Re=o.useMemo(()=>jl(u,Math.min(W,u.length)),[W,u]),on=Re?`${u}:${Re.start}:${Re.end}`:null,Fe=o.useMemo(()=>Re?Ns(Ge,Re.query):[],[Re,Ge]),an=!!(!ze&&!lt&&Re&&on&&Ds!==on),te=o.useMemo(()=>xc(u,Math.min(W,u.length)),[W,u]),At=te?`${u}:${te.start}:${te.end}`:null,ln=o.useMemo(()=>te?Yr(se,te.query):[],[se,te]),hs=o.useMemo(()=>te&&n!=="team"?eo(d,te.query):[],[te,d,n]),Vt=o.useMemo(()=>te&&n!=="team"?kc(te.query,ht):[],[te,ht,n]),cn=o.useMemo(()=>te&&n!=="team"?Ns(Ge,te.query):[],[te,Ge,n]),Ke=o.useMemo(()=>[...ln.map(i=>({kind:"action",action:i})),...cn.map(i=>({kind:"skill",skill:i})),...Vt.map(i=>({kind:"command",command:i})),...hs.map(i=>({kind:"app-context",app:i}))],[ln,hs,Vt,cn]),un=!!(!ze&&!lt&&te&&At&&Os!==At),ps=o.useMemo(()=>ht.map(i=>({kind:"command",command:i})),[ht]),dn=o.useMemo(()=>[...Yr(se,"").map(i=>({kind:"action",action:i})),...eo(d,"").map(i=>({kind:"app-context",app:i}))],[se,d]),Dn=o.useMemo(()=>Ns(Ge,"").map(i=>({kind:"skill",skill:i})),[Ge]),zn=o.useMemo(()=>{const i=[{id:"add",items:e==="work"?[{kind:"files"},{kind:"folder"}]:[{kind:"files"}],label:"Add"}];return dn.length>0&&i.push({id:"slash",items:dn.map(f=>({kind:"slash",item:f})),label:"Agents and actions",queryScope:"slash"}),Dn.length>0&&i.push({id:"skills",items:Dn.map(f=>({kind:"slash",item:f})),label:"Skills",queryScopes:["slash","mentions"]}),i.push({id:"openpond",items:ps.map(f=>({kind:"slash",item:f})),label:"OpenPond",grid:!0,queryScope:"slash"}),i.push({emptyLabel:"No mentions available",id:"mentions",items:qt.map(f=>({kind:"mention",item:f})),label:"@"}),i},[qt,ps,Dn,dn,e]),Fn=o.useMemo(()=>Ti(zn,os),[os,zn]),gs=o.useMemo(()=>Fn.flatMap(i=>i.items),[Fn]);o.useEffect(()=>{ze&&Lt(i=>i<gs.length?i:0)},[gs.length,ze]);const Bn=!!k,Nt=Bn&&k?.tone==="active",xs=Nt?"Pause goal":"Stop response",Un=Nt?"pause":"stop",Hn=e==="work"||ke.value!=="none",pt=xr(nn,A,y),Gt=zt?.scopeKey===A?zt.draftId:null;function oe(i,f){An(T=>Ol(T,i,f,i===A?y:[]))}o.useLayoutEffect(()=>{Y.current?.resize()},[Ie.length,jt,j,k,u,Ce,ft,Dt]),o.useEffect(()=>{if(!D){ge.current=!1;return}ge.current||lt||(ge.current=!0,window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(u.length)}))},[D,lt,u.length]),o.useEffect(()=>{!U||q.current===U||lt||(q.current=U,window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(u.length)}))},[U,lt,u.length]),o.useEffect(()=>{k||tn(!1)},[k]),o.useEffect(()=>{Ce&&!se.some(i=>i.id===Ce)&&(st(null),Pe(null))},[se,Ce]),o.useEffect(()=>{if(!me||me.requestId<=Me.current)return;const i=se.find(f=>f.id===me.actionId);i&&(Me.current=me.requestId,st(i.id),wt(null),Pe(0),rt(null),O(""),re(0),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(0,{afterToken:!0})}))},[se,O,me]),o.useEffect(()=>{!xe&&!ye||Pe(i=>i===null?0:Math.max(0,Math.min(i,u.length)))},[u.length,xe,ye]),o.useEffect(()=>{if(!m||!Se)return;const i=d.find(f=>f.id===m);(!i||!ha(u,i))&&Se(null)},[d,Se,u,m]);const{actionMenuStyle:Gs,addMenuStyle:Ks,mentionMenuStyle:Ws,skillMenuStyle:Xs}=Mc({activeMentionKey:Ze,activeSkillKey:on,activeSlashKey:At,addMenuIndex:rs,addMenuItems:gs,addMenuOpen:ze,addMenuPanelRef:b,addMenuRef:Yt,attachmentCount:Ie.length,composerRef:Qt,createImproveActive:!!j,goalRuntimeActive:!!k,inputRef:Y,inputShellRef:Jt,mentionQuery:pe?.query,prompt:u,selectedActionId:Ce,selectAddMenuItem:bn,setActionIndex:St,setActionMenuDismissedPrompt:dt,setAddMenuIndex:Lt,setAddMenuOpen:Ot,setAddMenuQuery:vt,setMentionMenuDismissedPrompt:jn,setMentionIndex:De,setSkillIndex:nt,setSkillMenuDismissedPrompt:Te,skillMatchCount:Fe.length,skillQuery:Re?.query,slashMatchCount:Ke.length,slashQuery:te?.query,showActionMenu:un,showMentionMenu:On,showSkillMenu:an});function gt(){st(null),wt(null),Pe(null),rt(null)}function Qs(){gt(),O(""),re(0)}function Kt(i){In(i.trim()),Ft(!0)}function Js(){Bt||(Ft(!1),gt())}async function Zs(){return await(Nt&&Oe?Oe():Rt())}function fn(i,f){const T=Math.max(0,Math.min(W,u.length)),_=f?Math.max(0,Math.min(f.start,u.length)):T,X=f?Math.max(_,Math.min(f.end,u.length)):_,V=u.slice(0,_),Ne=u.slice(X),Ye=V&&!/\s$/.test(V)?" ":"",It=Ne&&!/^\s/.test(Ne)?" ":"",_t=`${xa(i)} `,We=`${Ye}${_t}${It}`,xt=`${V}${We}${Ne}`,Ve=V.length+We.length;return O(xt),Se?.(i.id),re(Ve),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(Ve)}),Ve}function Tt(i){if(!pe)return;const f=Math.max(0,Math.min(W,u.length));fn(i,{start:pe.start,end:f})}function mn(i,f,T=null){const _=Math.max(0,Math.min(W,u.length)),X=f?Math.max(0,Math.min(f.start,u.length)):_,V=f?Math.max(X,Math.min(f.end,u.length)):X,Ne=`${u.slice(0,X)}${u.slice(V)}`;return st(i.id),wt(null),Pe(X),rt(T?.startsWith("@")?T:null),dt(null),O(Ne),re(X),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(X,{afterToken:!0})}),X}function Ys(i){if(!pe)return;const f=Math.max(0,Math.min(W,u.length)),T=Math.max(0,Math.min(pe.start,u.length)),_=Math.max(T,Math.min(f,u.length));mn(i,{start:T,end:_},u.slice(T,_).trim())}function hn(i,f){const T=Math.max(0,Math.min(W,u.length)),_=f?Math.max(0,Math.min(f.start,u.length)):T,X=f?Math.max(_,Math.min(f.end,u.length)):_,V=u.slice(0,_),Ne=u.slice(X),Ye=V&&!/\s$/.test(V)?" ":"",It=Ne&&!/^\s/.test(Ne)?" ":"",_t=`${ba(i)} `,We=`${Ye}${_t}${It}`,xt=`${V}${We}${Ne}`,Ve=V.length+We.length;return O(xt),re(Ve),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(Ve)}),Ve}function pn(i){if(!pe)return;const f=Math.max(0,Math.min(W,u.length));hn(i,{start:pe.start,end:f})}function bs(i,f){const T=Math.max(0,Math.min(W,u.length)),_=f?Math.max(0,Math.min(f.start,u.length)):T,X=f?Math.max(_,Math.min(f.end,u.length)):_,V=i.handle||Sn(i.name),Ne=u.slice(0,_),Ye=u.slice(X),It=Ne&&!/\s$/.test(Ne)?" ":"",_t=Ye&&!/^\s/.test(Ye)?" ":"",We=`${It}@${V} ${_t}`,xt=`${Ne}${We}${Ye}`,Ve=Ne.length+We.length;return O(xt),re(Ve),window.requestAnimationFrame(()=>Y.current?.focusAtPromptIndex(Ve)),Ve}function Ee(i){if(i.kind==="team-member"){if(!pe)return;const f=Math.max(0,Math.min(W,u.length));bs(i.member,{start:pe.start,end:f});return}if(i.kind==="app"){Tt(i.app);return}if(i.kind==="connected-app"){pn(i.app);return}if(i.kind==="skill"){if(!pe)return;const f=Math.max(0,Math.min(W,u.length));qe(i.skill,{start:pe.start,end:f});return}Ys(i.action)}function gn(i){te&&(dt(null),fn(i,{start:te.start,end:te.end}))}function er(i){te&&mn(i,te)}function ks(i,f){const T=Math.max(0,Math.min(W,u.length)),_=f?Math.max(0,Math.min(f.start,u.length)):T,X=f?Math.max(_,Math.min(f.end,u.length)):_,V=`${u.slice(0,_)}${u.slice(X)}`;return wt(i.id),st(null),Pe(_),rt(null),dt(null),O(V),re(_),i.id==="submit-issue"&&Kt(V),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(_,{afterToken:!0})}),_}function ys(i){te&&ks(i,te)}function Ss(i){if(i.kind==="command"){ys(i.command);return}if(i.kind==="app-context"){gn(i.app);return}if(i.kind==="skill"){if(!te)return;qe(i.skill,te);return}er(i.action)}function qe(i,f){const T=Ml(u,f,i);return Te(null),jn(null),dt(null),O(T.value),re(T.cursor),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(T.cursor)}),T.cursor}function qn(i){Re&&qe(i,Re)}function Wt(){ut.current?.click()}function xn(){Zt.current?.click()}function be(i){N.current=i,vt(""),Lt(0)}function tr(){const i=Math.max(0,Math.min(W,u.length)),f=Math.max(0,Math.min(N.current,u.length));return i>=f?{start:f,end:i}:{start:i,end:i}}function bn(i){const f=tr();if(Ot(!1),vt(""),i.kind==="files"||i.kind==="folder"){if(f.start!==f.end){const T=`${u.slice(0,f.start)}${u.slice(f.end)}`;O(T),re(f.start)}be(f.start),i.kind==="folder"?xn():Wt();return}if(i.kind==="slash"){if(i.item.kind==="command"){be(ks(i.item.command,f));return}if(i.item.kind==="app-context"){be(fn(i.item.app,f));return}if(i.item.kind==="skill"){be(qe(i.item.skill,f));return}be(mn(i.item.action,f));return}if(i.item.kind==="team-member"){be(bs(i.item.member,f));return}if(i.item.kind==="app"){be(fn(i.item.app,f));return}if(i.item.kind==="connected-app"){be(hn(i.item.app,f));return}if(i.item.kind==="skill"){be(qe(i.item.skill,f));return}be(mn(i.item.action,f))}function Vn(){const i=(Y.current?.getPrompt()??u).trim();return!E||!i?!1:Ie.length>0||xe||ye?(ve("Steering supports a plain-text instruction. Remove files or actions before staging it.","info"),!1):(oe(A,f=>[...f,ho(i)]),Qs(),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(0)}),!0)}async function Gn(i){const f=A;if(zt?.scopeKey===f)return!1;const T=xr(nn,f,y).find(_=>_.id===i);if(!T)return!1;sn({draftId:i,scopeKey:f}),mt(null);try{const _=E;if(_&&v&&await Rt()===!1)return!1;const X=await he([],null,null,{preservePrompt:!0,promptOverride:T.prompt,..._?{turnMetadata:{interactionKind:"steer"}}:{}});return oe(f,V=>Ll(V,i,X)),X}catch(_){return mt(_ instanceof Error?_.message:String(_)),!1}finally{sn(_=>_?.scopeKey===f&&_.draftId===i?null:_)}}function Kn(i){Gt!==i&&oe(A,f=>po(f,i))}function Wn(i){if(Gt!==i.id){if(Ie.length>0||Ce||ft){ve("Finish the current composer before editing a queued message.","info");return}oe(A,f=>$l(f,i.id,u)),O(i.prompt),re(i.prompt.length),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(i.prompt.length)})}}async function vs(){if(E){Vn();return}if(fs())return;const i=xe||ye?null:co(u);if(ye?.id==="submit-issue"||i?.command==="submit-issue"){Kt(i?.command==="submit-issue"?i.args:u);return}if(cs)return;const f=A;if(us(f)){Ot(!1),mt(null);try{const T=Mt();try{En(T.length>0?f:null);let _;try{_=await Promise.all(T.map(dc))}finally{Ln(f)}const X=xe&&Ut&&!u.trim()?Ut:void 0,V=await he(_,xe,ye,Ut||X?{...Ut?{displayPrompt:Ut}:{},...X?{promptOverride:X}:{}}:void 0);ee(T,V?"dispose":"restore"),V&&!ga(xe)&&gt()}catch(_){throw ee(T,"restore"),_}}catch(T){mt(T instanceof Error?T.message:String(T))}finally{ds(f),Ln(f)}}}async function Xn(i){if(fs()||Bt)return!1;const f=A;if(!us(f))return!1;rn(!0),Ot(!1),mt(null);try{const T=await he([],null,Ac,{displayPrompt:`/submit-issue ${i.title.trim()}`,promptOverride:pa(i)});return T&&(Ft(!1),gt()),T}catch(T){return mt(T instanceof Error?T.message:String(T)),!1}finally{ds(f),rn(!1)}}function Qn(i){const T=El(u,i,W);O(T.value),re(T.cursorIndex),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(T.cursorIndex)})}return s.jsxs("form",{ref:Qt,className:`composer ${t} ${j?"has-create-runtime":""} ${Bn?"has-goal-runtime":""} ${Ie.length>0?"has-attachments":""} ${xe||ye?"has-selected-action":""} ${jt?"has-attachment-error":""} ${ze?"has-add-menu":""}`,onSubmit:i=>{i.preventDefault(),vs()},children:[s.jsx("input",{webkitdirectory:"",ref:Zt,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:i=>{Qe(Array.from(i.currentTarget.files??[])),i.currentTarget.value=""}}),On&&s.jsx(Pi,{items:it,mentionIndex:yt,onSelect:Ee,onSelectIndex:De,style:Ws}),an&&s.jsx(Gi,{items:Fe,onSelect:qn,onSelectIndex:nt,skillIndex:tt,style:Xs}),un&&s.jsx(Ki,{actionCatalogCount:se.length,actionIndex:$t,items:Ke,onSelect:Ss,onSelectIndex:St,style:Gs}),s.jsx(Wi,{busy:Bt,initialDescription:Tn,open:Nn,onClose:Js,onSubmit:Xn}),P&&s.jsxs("div",{className:"composer-footer",children:[P?s.jsx(Nl,{busy:w||ke.busy,placement:at,state:ke,onChange:Xe}):null,fe&&je?s.jsx(mo,{busy:w,placement:at,state:fe,onChange:je}):null,Hn?s.jsx(Tl,{busy:w,placement:at,state:ue,onChange:F}):null]}),!P&&e==="work"&&s.jsx(Il,{project:ke,workspace:ue}),j?s.jsx(o.Suspense,{fallback:null,children:s.jsx(Ec,{runtime:j})}):null,s.jsx(Dl,{drafts:pt,sendingDraftId:Gt,onDeleteDraft:Kn,onEditDraft:Wn,onSteerDraft:i=>{Gn(i)}}),Bn&&k&&s.jsx(Pl,{detailsOpen:zs,goalRuntime:k,objectiveId:Us,subagentRuntime:S,onToggleDetails:()=>tn(i=>!i)}),p&&s.jsx("div",{className:`composer-notice ${p.tone}`,role:"status",children:p.message}),s.jsxs("div",{className:"composer-input-shell",ref:Jt,children:[ze&&n!=="team"&&s.jsx(vr,{id:ls,ariaLabel:"Add to message",className:"composer-add-command-menu",menuIndex:rs,menuRef:b,sections:Fn,style:Ks,variant:"add",onSelect:bn,onSelectIndex:Lt}),Ie.length>0&&s.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:Ie.map(i=>s.jsx(ic,{attachment:i,onRemove:()=>ot(i.id)},i.id))}),jt&&s.jsx("div",{className:"composer-attachment-error",role:"status",children:jt}),s.jsx("div",{className:"composer-textarea-frame",onClick:i=>{i.target===i.currentTarget&&Y.current?.focusAtPromptIndex(W)},children:s.jsx(bi,{ref:Y,connectedAppMentions:g,disabled:lt,onCursorChange:re,onKeyDown:i=>{if(ze&&["ArrowDown","ArrowUp","Home","End","Enter","Escape"].includes(i.key)){i.preventDefault();return}if(On){if(i.key==="ArrowDown"){i.preventDefault(),De(f=>(f+1)%it.length);return}if(i.key==="ArrowUp"){i.preventDefault(),De(f=>(f-1+it.length)%it.length);return}if(i.key==="Enter"||i.key==="Tab"){i.preventDefault(),Ee(it[yt]??it[0]);return}if(i.key==="Escape"){i.preventDefault(),jn(Ze);return}}if(an){if(Fe.length>0&&i.key==="ArrowDown"){i.preventDefault(),nt(f=>(f+1)%Fe.length);return}if(Fe.length>0&&i.key==="ArrowUp"){i.preventDefault(),nt(f=>(f-1+Fe.length)%Fe.length);return}if(Fe.length>0&&(i.key==="Enter"||i.key==="Tab")){i.preventDefault(),qn(Fe[tt]??Fe[0]);return}if(i.key==="Escape"){i.preventDefault(),Te(on??u);return}}if(un){if(Ke.length>0&&i.key==="ArrowDown"){i.preventDefault(),St(f=>(f+1)%Ke.length);return}if(Ke.length>0&&i.key==="ArrowUp"){i.preventDefault(),St(f=>(f-1+Ke.length)%Ke.length);return}if(Ke.length>0&&(i.key==="Enter"||i.key==="Tab")){i.preventDefault(),Ss(Ke[$t]??Ke[0]);return}if(i.key==="Escape"){i.preventDefault(),dt(At??u);return}}if((xe||ye)&&i.key==="Backspace"&&W===(Dt??0)){i.preventDefault(),gt();return}if(yi(i.key,i.ctrlKey,i.metaKey,i.shiftKey,e,n,!!et)){i.preventDefault(),ki({attachmentsCount:Ie.length,hasSelectedInvocation:!!(xe||ye),onSave:et,onSaved:gt,prompt:u,saving:Ct,setSaving:en,showInfo:f=>ve(f,"info")});return}i.key==="Enter"&&!i.shiftKey&&(i.preventDefault(),Et||vs())},onPasteFiles:Qe,onPasteTextAsAttachment:Fs,onPromptChange:(i,f)=>{if(ze){const _=Math.max(0,Math.min(N.current,i.length));f<_?(N.current=f,vt("")):vt(i.slice(_,f))}const T=n==="team"?null:bc(i,f,ht);if(T){const _=`${i.slice(0,T.start)}${i.slice(T.end)}`,X=T.start;O(i),re(f),window.requestAnimationFrame(()=>{wt(T.command.id),st(null),Pe(X),dt(null),O(_),re(X),T.command.id==="submit-issue"&&Kt(_),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(X,{afterToken:!0})})});return}O(i)},onTokenPositionChange:i=>{if(!(!xe&&!ye)){if(i===null){gt();return}Pe(i)}},placeholder:Bs,prompt:u,token:is})}),s.jsx(Hi,{surface:n,teamUseModel:r,teamUseModelLocked:a,onTeamUseModelChange:c,addFiles:Qe,addMenuId:ls,addMenuOpen:ze,addMenuRef:Yt,busy:w,codexPermissionMode:Le,codexReasoningEffort:we,connection:G,contextStatusStyle:Rn,contextStatusTooltipId:Pn,contextWindowStatus:h,disabled:qs,dropdownPlacement:at,fileInputRef:ut,modelValue:Je,modelOptions:ms,openPondCommandAccessMode:R,showCommandAccess:_e,profileTarget:P?null:fe,onCodexPermissionModeChange:M,onCodexReasoningEffortChange:$,onOpenPondCommandAccessModeChange:L,onProfileTargetChange:je,onModelChange:le,onOpenFilePicker:Wt,onProviderChange:He,onProviderSetupOpen:Ae,onStop:Zs,onToggleAddMenu:()=>{const i=Math.max(0,Math.min(W,u.length));ze||(N.current=i,vt(""),Lt(0),Ot(!0)),window.requestAnimationFrame(()=>{Y.current?.focusAtPromptIndex(i)})},onTranscript:Qn,provider:Z,providerSettings:J,providerOptions:Ht,running:E&&!$n,sendDisabled:cs,sendTooltip:Hs,showToast:ve,stopIcon:Un,stopLabel:xs})]})]})}const no=o.memo(function({draftStore:t,...n}){const r=ka(t);return s.jsx(ya,{id:"composer",children:s.jsx(Tc,{...n,prompt:r,onPromptChange:t.set})})});function so({approval:e,onResolve:t}){const[n,r]=o.useState(null);if(o.useEffect(()=>{r(null)},[e?.id]),!e||e.kind==="create_plan")return null;const a=Ic(e.detail),l=e.kind!=="subagent_patch_apply";async function c(u){if(!(!e||n)){r(u);try{await t(e.id,u)}catch{r(null)}}}return s.jsx("div",{className:"approval-request-shell",role:"status","aria-live":"polite",children:s.jsxs("section",{className:"approval-request-card","aria-label":`${ro(e.kind)} approval request`,children:[s.jsxs("div",{className:"approval-request-copy",children:[s.jsx("div",{className:"approval-request-header",children:s.jsx("span",{children:ro(e.kind)})}),s.jsx("code",{className:"approval-request-title",title:e.title,children:e.title}),a&&a!==e.title&&s.jsxs("details",{className:"approval-request-details",children:[s.jsx("summary",{children:"Details"}),s.jsx("pre",{children:a})]})]}),s.jsxs("div",{className:"approval-request-actions",children:[s.jsxs("button",{type:"button",className:"approval-action primary",disabled:!!n,onClick:()=>{c("accept")},children:[s.jsx(kt,{size:14}),s.jsx("span",{children:n==="accept"?"Approving":"Approve"})]}),l?s.jsxs("button",{type:"button",className:"approval-action",title:"Approve for the rest of this session",disabled:!!n,onClick:()=>{c("acceptForSession")},children:[s.jsx(el,{size:14}),s.jsx("span",{children:n==="acceptForSession"?"Approving":"Session"})]}):null,s.jsxs("button",{type:"button",className:"approval-action muted",disabled:!!n,onClick:()=>{c("decline")},children:[s.jsx(nl,{size:14}),s.jsx("span",{children:n==="decline"?"Denying":"Deny"})]}),s.jsx("button",{type:"button",className:"approval-action icon-only",title:"Cancel task","aria-label":"Cancel task",disabled:!!n,onClick:()=>{c("cancel")},children:s.jsx(Ps,{size:15})})]})]})})}function ro(e){return e==="create_plan"?"Plan review":e==="subagent_patch_apply"?"Subagent patch":e==="file_change"||e==="legacy_patch"?"File change":e==="permissions"?"Permissions":e==="user_input"?"Input needed":"Command"}function Ic(e){const t=e.trim();if(!t)return"";try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}const _c=/\.(?:m4v|mov|mp4|webm)$/i;function Pc(e){return _c.test(e.trim().split(/[?#]/,1)[0]??"")}function Rc(e,t){let n=e.trim();if(!n||!Pc(n))return null;if(/^file:\/\//i.test(n))try{n=decodeURIComponent(new URL(n).pathname)}catch{n=n.replace(/^file:\/\//i,"")}if(/^\//.test(n)||/^[A-Za-z]:[\\/]/.test(n))return n;const r=t?.trim().replace(/[\\/]+$/,"");return r?`${r}/${n.replace(/^\.\//,"")}`:null}function $c(e,t={}){const n=Lc(e),r=e.map(a=>({id:`message:${a.id}`,type:"message",message:a,showFooter:a.id===n}));return t.showThinkingIndicator&&r.push({id:"thinking",type:"thinking"}),r}function Lc(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.role==="assistant")return n.id}return null}function Oc(e){const t=e[e.length-1];if(!t)return!0;if(t.role==="assistant"||t.role==="error"||t.role==="status_divider"&&t.statusState==="running")return!1;if(t.role==="activity_group"){if(t.traceState==="running")return!1;const n=t.activities?.[t.activities.length-1]??null;return n?.state!=="running"&&n?.state!=="pending"}return!0}function Dc(e){const t=[];if(e.localWorkspaceId&&t.push({value:"local",label:"Local"}),(e.sandboxSourceAvailable??!!e.sandboxWorkspaceId)&&t.push({value:"sandbox",label:"Sandbox"}),t.length===0)return{source:null,options:t};const n=new Set(t.map(a=>a.value));if(e.override&&n.has(e.override))return{source:e.override,options:t};const r=e.workspaceTarget==="local"?"local":"sandbox";return n.has(r)?{source:r,options:t}:{source:t[0].value,options:t}}const zc=new Set(["create","edit","help","list"]);function Fc(e,t,n=null){return Bc(e)}function Bc(e){const t=e.trim();if(!t)return"/skill";const[n=""]=t.split(/\s+/,1);return zc.has(n.toLowerCase())?`/skill ${t}`:`/skill create ${t}`}async function Uc(e){const t=e.session?.currentProfile??null,n=e.session?await e.patchSession(e.session.id,e.ref):null;try{return{selected:await e.selectProfile(e.ref),session:n}}catch(r){if(n)try{await e.patchSession(n.id,t)}catch{}throw r}}function Hc(e,t){if(!e||!t)return null;const n=new Set(e.sources.filter(r=>r.sessionId===t).map(r=>r.id));return n.size?e.creations.find(r=>r.request.sourceIds.some(a=>n.has(a)))??null:null}function qc(e){const[t,n]=o.useState(null),[r,a]=o.useState(null),[l,c]=o.useState(!1),[u,p]=o.useState(null),[d,g]=o.useState(null),C=o.useRef(null),m=o.useRef(0),h=o.useCallback(async(w,E={})=>{if(!e){a(null),p("OpenPond App server is not connected.");return}const v=m.current+1;m.current=v,E.silent||c(!0),p(null);try{const A=await $e.getCreateImproveCandidateDiff(e,w.runId,w.candidateId),y=C.current;if(v!==m.current||y?.runId!==w.runId||y.candidateId!==w.candidateId)return;a(A)}catch(A){if(v!==m.current)return;p(A instanceof Error?A.message:String(A))}finally{v===m.current&&!E.silent&&c(!1)}},[e]),k=o.useCallback(w=>{const E=C.current;if(!(w&&E?.runId===w.runId&&E.candidateId===w.candidateId)){if(C.current=w,n(w),g(null),!w){m.current+=1,a(null),p(null),c(!1);return}a(v=>v?.appId===Vc(w)?v:null),h(w)}},[h]),S=o.useCallback(async(w={})=>{const E=C.current;E&&await h(E,w)},[h]),j=o.useCallback(w=>{g({id:Date.now(),path:w})},[]);return o.useEffect(()=>{e||k(null)},[k,e]),{selection:t,diff:r,loading:l,error:u,openFileRequest:d,activate:k,refresh:S,openFile:j}}function Vc(e){return`candidate:${e.runId}:${e.candidateId}`}function Gc(e){const{activeModel:t,activeProvider:n,bootstrap:r,codexPermissionMode:a,codexReasoningEffort:l,connection:c,onOpenRightChatForSession:u,onPayload:p}=e,d=o.useCallback(async m=>{if(!c||!r)throw new Error("OpenPond is still connecting.");const h=r.profile;if(h.mode!=="local"||!h.repoPath)throw new Error("A local Git-backed Profile is required to change an Agent.");const k=m.authoringModel??Sa(n,t,r.providers);if(!k)throw new Error("Choose a model before changing an Agent.");const S=await $e.createSession(c,{provider:k.providerId,modelRef:k,systemKind:"openpond.lab",hiddenFromDefaultSidebar:!0,title:`${m.operation==="create"?"New":"Improve"} Agent · ${m.objective.slice(0,80)}`,cwd:h.repoPath,metadata:{source:m.operation==="create"?"lab_agent_create":"lab_agent_improve",profileId:h.activeProfile??"default",targetAgentId:m.agentId??null}}),j=m.objective.trim();if(!j)throw new Error(m.operation==="create"?"Describe what the Agent should do.":"Describe what the Agent could do better.");if(k.providerId==="codex")throw new Error("Agent authoring uses OpenPond's bundled authoring skill. Choose a hosted model.");const w=m.operation==="create"?`/agent create ${j}`:`/agent improve ${m.agentId??""} ${j}`,E=await $e.sendTurn(c,S.id,{prompt:w,model:k.modelId,modelRef:k,approvalPolicy:"never",sandbox:"workspace-write",codexPermissionMode:"default",codexReasoningEffort:l});if(E.status==="failed")throw new Error(E.error??"OpenPond could not complete the Agent authoring turn.");p(await $e.bootstrap(c)),u(S.id,S)},[t,n,r,a,l,c,u,p]),g=o.useCallback((m,h,k)=>d({objective:m,operation:"create",authoringRunId:h,authoringModel:k}),[d]),C=o.useCallback((m,h,k,S,j)=>d({agentId:m,agentName:k,objective:h,operation:"improve",authoringRunId:S,authoringModel:j}),[d]);return{createAgentFromLab:g,improveAgentFromLab:C}}const Kc=72,dr=120,Eo=24,Wc=280,Xc=460;function yn(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=Kc}const Es={canGoPrevious:!1,canGoNext:!1};function Ao(e){return Array.from(e.querySelectorAll(".message-row.user")).filter(t=>t.parentElement===e)}function Qc({activeWorkspaceId:e,cloudProjects:t}){const n=t.find(l=>l.id===e),r=t.find(l=>l.organizationSlug||l.teamId),a=n??r??null;return{organizationSlug:a?.organizationSlug??null,teamId:a?.teamId??null}}function $s(e,t){return t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop}function No(e,t){return $s(e,t)+t.getBoundingClientRect().height}function To(e){return e.scrollTop+Eo}function Io(e){return e.scrollTop+8}function Yn(e){const t=To(e),n=Io(e);let r=!1,a=!1;for(const l of Ao(e)){const c=$s(e,l);if(No(e,l)<n&&(r=!0),c>t+8&&(a=!0),r&&a)break}return{canGoPrevious:r,canGoNext:a}}function Jc(e,t){const n=Ao(e),r=To(e);if(t==="previous"){const a=Io(e);for(let l=n.length-1;l>=0;l-=1){const c=n[l];if(No(e,c)<a)return c}return null}for(const a of n)if($s(e,a)>r+8)return a;return null}function Zc(e){return Math.min(Xc,Math.max(Wc,Math.abs(e)/5))}function Yc(e){return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2}function eu(e){const t=va({messages:e});return t?{run:t}:null}function oo(e){return e.command==="agent"?e.args?`/agent ${e.args}`:"/agent":e.command==="skill"?e.args?`/skill ${e.args}`:"/skill":e.args?`/${e.command} ${e.args}`:`/${e.command}`}function fr(e,t){return{surface:"chat",workflowKind:"slash_command",commandName:`/${e.command}`,commandSource:t}}function tu(e){return e.command==="goal"||e.command==="agent"||e.command==="skill"||e.command==="sync-cloud"}function nu(e){const t=e?.trim()??"";return/^[a-z0-9]{24}$/.test(t)?t:null}function su({busy:e,handoff:t,onDismiss:n,onSelectTask:r}){const a=Ca(t),l=t.selectedTaskIndex+1;return s.jsxs("section",{className:"training-chat-handoff","aria-label":"Model chat",children:[s.jsxs("div",{className:"training-chat-handoff-copy",children:[s.jsx("strong",{children:a?"Generated Taskset question":"Model chat"}),s.jsx("span",{children:t.tasksetName}),s.jsx("small",{children:a?`${ru(a.split)} · ${l} of ${t.tasks.length} · New chat per question`:"Ask the imported model directly"})]}),s.jsxs("div",{className:"training-chat-handoff-actions",children:[a?s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button","aria-label":"Previous generated question",title:"Previous question",disabled:e||t.selectedTaskIndex===0,onClick:()=>r(t.selectedTaskIndex-1),children:s.jsx(vn,{size:14})}),s.jsx("button",{type:"button",className:"training-chat-handoff-load",disabled:e,onClick:()=>r(t.selectedTaskIndex),children:"Load question"}),s.jsx("button",{type:"button","aria-label":"Next generated question",title:"Next question",disabled:e||t.selectedTaskIndex>=t.tasks.length-1,onClick:()=>r(t.selectedTaskIndex+1),children:s.jsx(uo,{size:14})})]}):null,s.jsx("button",{type:"button","aria-label":"Close generated question handoff",title:"Close",disabled:e,onClick:n,children:s.jsx(Ps,{size:14})})]})]})}function ru(e){return e==="frozen_eval"?"Frozen evaluation":e==="validation"?"Validation":"Training"}function ou({activeModel:e,activeProvider:t,busy:n,handoff:r,onDismiss:a,onSelectTask:l}){return!r||r.model.providerId!==t||r.model.modelId!==e?null:s.jsx(su,{busy:n,handoff:r,onDismiss:a,onSelectTask:l})}function au({canGoNext:e,canGoPrevious:t,onJumpToLatest:n,onNext:r,onPrevious:a}){return s.jsxs("div",{className:"chat-scroll-controls","aria-label":"Message navigation",children:[s.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to previous message","aria-label":"Go to previous message","aria-disabled":!t,onClick:a,children:s.jsx(vn,{size:17})}),s.jsx("button",{type:"button",className:"chat-scroll-control-button primary","data-tooltip":"Jump to latest","aria-label":"Jump to latest",onClick:n,children:s.jsx(Qa,{size:18})}),s.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to next message","aria-label":"Go to next message","aria-disabled":!e,onClick:r,children:s.jsx(uo,{size:17})})]})}function lu({busy:e,onSync:t}){return s.jsxs("button",{type:"button",className:"sync-local-button",disabled:e,onClick:t,children:[s.jsx(rl,{size:15}),s.jsx("span",{children:e?"Syncing locally":"Sync locally to work on this"})]})}function _o(e){return e.supportedView&&e.open&&!e.hasContentPanel}function iu(e,t){return e==="team"?"team-active":e==="community"?"community-active":e==="apps"||e==="get-started"||e==="labs"||e==="outputs"||e==="projects"||e==="scheduled"?"page-active":t?"chat-active":"chat-start"}function cu(e){const{contentKey:t,threadElement:n=null,enabled:r=!0,onContentChange:a,threadRef:l}=e,c=o.useRef(a),u=o.useRef(null);c.current=a,o.useLayoutEffect(()=>{const p=n??l.current;if(!r||!p||typeof window>"u")return;let d=null,g=0,C=p.scrollHeight;const m=(E=!0)=>{E&&(g=Math.max(g,4)),d===null&&(d=window.requestAnimationFrame(()=>{d=null,l.current===p&&c.current(p);const v=Math.abs(p.scrollHeight-C)>1;C=p.scrollHeight,g-=1,(g>0||v)&&m(!1)}))};u.current=()=>m();const h=typeof MutationObserver>"u"?null:new MutationObserver(()=>{j(),m()}),k=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>m()),S=new Set,j=()=>{if(!k)return;const E=new Set(Array.from(p.children).filter(v=>v instanceof HTMLElement));for(const v of S)E.has(v)||(k.unobserve(v),S.delete(v));for(const v of E)S.has(v)||(k.observe(v),S.add(v))};h?.observe(p,{childList:!0,characterData:!0,subtree:!0}),j();const w=()=>m();return p.addEventListener("load",w,!0),()=>{u.current=null,h?.disconnect(),k?.disconnect(),p.removeEventListener("load",w,!0),d!==null&&window.cancelAnimationFrame(d)}},[r,n,l]),o.useLayoutEffect(()=>{r&&u.current?.()},[t,r])}function uu({browserConversationId:e,chatSubmissionVersion:t,chatHistoryHasMore:n,chatHistoryLoading:r,chatMessages:a,onLoadMoreChatHistory:l,pendingApproval:c,showChatThread:u,showThinkingIndicator:p,view:d}){const g=o.useRef(null),[C,m]=o.useState(null),h=o.useCallback(b=>{g.current=b,m(N=>N===b?N:b)},[]),k=o.useRef(null),S=o.useRef(!0),j=o.useRef(0),w=o.useRef(0),E=o.useRef(0),v=o.useRef(null),A=o.useRef(null),y=o.useRef(!1),P=o.useRef(!1),D=o.useRef(!1),U=o.useRef(null),H=o.useRef(null),G=o.useRef(null),[J,Z]=o.useState(0),[Ue,ke]=o.useState(null),[fe,se]=o.useState(!1),[me,ue]=o.useState(132),[Le,we]=o.useState(Es),R=o.useMemo(()=>$c(a,{showThinkingIndicator:p}),[a,p]),He=o.useMemo(()=>({"--chat-composer-reserve":`${me}px`}),[me]),Ae=a.at(-1),Xe=[R.length,Ae?.id??"",Ae?.content?.length??0,Ae?.timestamp??"",p?"thinking":""].join(":"),je=n,F=e,le=d==="chat"&&u&&!!F&&Ue!==F,M=o.useCallback(b=>{se(N=>N===b?N:b)},[]),$=o.useCallback(b=>{we(N=>N.canGoPrevious===b.canGoPrevious&&N.canGoNext===b.canGoNext?N:b)},[]),L=o.useCallback((b,N={})=>{const ae=N.nearBottom??yn(b);M(!ae),$(Yn(b))},[M,$]),O=o.useCallback(b=>{const N=P.current;P.current=!1,ke(b),M(!1),$(Es),N&&Z(ae=>ae+1)},[M,$]),Se=o.useCallback(()=>{G.current===null||typeof window>"u"||(window.cancelAnimationFrame(G.current),G.current=null)},[]),et=o.useCallback((b,N,ae)=>{Se();const ge=Math.max(0,b.scrollHeight-b.clientHeight),q=()=>{const nt=typeof N=="function"?N():N;return Math.max(0,Math.min(nt,Math.max(0,b.scrollHeight-b.clientHeight)))},Me=Math.max(0,Math.min(q(),ge)),de=b.scrollTop,W=Me-de;if(typeof window>"u"||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0||Math.abs(W)<1){b.scrollTop=Me,ae?.();return}const yt=Zc(W),De=window.performance.now(),tt=nt=>{if(g.current!==b){G.current=null;return}const $t=Math.min(1,(nt-De)/yt),St=q();if(b.scrollTop=de+(St-de)*Yc($t),$t<1){G.current=window.requestAnimationFrame(tt);return}b.scrollTop=q(),G.current=null,ae?.()};G.current=window.requestAnimationFrame(tt)},[Se]),ve=o.useCallback(()=>{D.current=!1,!(U.current===null||typeof window>"u")&&(window.cancelAnimationFrame(U.current),U.current=null)},[]),he=o.useCallback(()=>{H.current===null||typeof window>"u"||(window.cancelAnimationFrame(H.current),H.current=null)},[]),Rt=o.useCallback(b=>{if(typeof window>"u"){b.scrollTop=b.scrollHeight;return}if(H.current!==null)return;let N=window.performance.now();const ae=ge=>{if(g.current!==b||!S.current){H.current=null;return}const q=Math.max(0,b.scrollHeight-b.clientHeight),Me=q-b.scrollTop;if(Math.abs(Me)<=.75){b.scrollTop=q,H.current=null;return}if(Me<0||Me>240)b.scrollTop=q;else{const de=Math.max(.5,Math.min(3,(ge-N)/16.666666666666668)),W=1-Math.pow(1-.22,de);b.scrollTop+=Math.min(36*de,Me*W)}N=ge,H.current=window.requestAnimationFrame(ae)};H.current=window.requestAnimationFrame(ae)},[]),Oe=o.useCallback((b,N={})=>{if(he(),b.scrollTop=b.scrollHeight,typeof window>"u"){N.finishInitial&&O(N.conversationKey??null);return}ve(),D.current=!0;let ge=0,q=0,Me=b.scrollHeight;const de=N.settle?12:2,W=()=>{const re=g.current;if(!re){U.current=null,D.current=!1,N.finishInitial&&O(N.conversationKey??null);return}re.scrollTop=re.scrollHeight;const yt=re.scrollHeight-re.scrollTop-re.clientHeight,De=Math.abs(re.scrollHeight-Me)<=1;if(Me=re.scrollHeight,q=yt<=1&&De?q+1:0,ge+=1,ge<de&&q<2){U.current=window.requestAnimationFrame(W);return}U.current=null,D.current=!1,S.current=!0,M(!1),$(Yn(re)),N.finishInitial&&O(N.conversationKey??null)};U.current=window.requestAnimationFrame(W)},[ve,he,O,M,$]),Qt=o.useCallback(()=>{const b=g.current;b&&(ve(),he(),S.current=!0,M(!1),et(b,()=>b.scrollHeight-b.clientHeight,()=>{g.current===b&&(b.scrollTop=b.scrollHeight,S.current=!0,M(!1),$(Yn(b)))}))},[ve,he,M,$,et]),Jt=o.useCallback(b=>{const N=g.current;if(!N)return;const ae=Jc(N,b);if(!ae)return;ve(),he(),et(N,()=>ae.isConnected?Math.max(0,$s(N,ae)-Eo):N.scrollTop,()=>{if(g.current!==N)return;const q=yn(N);S.current=q,L(N,{nearBottom:q})})},[ve,he,et,L]),Y=o.useCallback(()=>{const b=g.current;b&&(A.current={scrollHeight:b.scrollHeight,scrollTop:b.scrollTop},S.current=!1,he())},[he]),ut=o.useCallback(async()=>{if(je&&!(!l||r||y.current)){Y(),y.current=!0;try{await l()}finally{y.current=!1}}},[je,r,l,Y]),Zt=o.useCallback(b=>{if(D.current){S.current=!0,M(!1),$(Es);return}const N=yn(b),ae=Math.abs(b.scrollHeight-w.current)>1||Math.abs(b.clientHeight-E.current)>1,ge=b.scrollTop<j.current-1;j.current=b.scrollTop,w.current=b.scrollHeight,E.current=b.clientHeight,N?(S.current=!0,L(b,{nearBottom:!0})):ge&&!ae?(S.current=!1,he(),L(b,{nearBottom:!1})):S.current?(M(!1),$(Yn(b))):L(b,{nearBottom:!1}),!P.current&&b.scrollTop<=dr&&je&&!r&&ut()},[je,he,r,ut,M,$,L]),Yt=o.useCallback(b=>{!S.current&&!yn(b)||(S.current=!0,Rt(b))},[Rt]);return cu({contentKey:Xe,enabled:d==="chat"&&u,onContentChange:Yt,threadElement:C,threadRef:g}),o.useLayoutEffect(()=>{if(d!=="chat"||!u||typeof window>"u")return;const b=k.current;if(!b)return;let N=null;const ae=()=>{N=null;const Me=Math.max(96,Math.ceil(b.getBoundingClientRect().height+20));ue(de=>de===Me?de:Me)},ge=()=>{N===null&&(N=window.requestAnimationFrame(ae))};ge();const q=typeof window.ResizeObserver>"u"?null:new window.ResizeObserver(ge);return q?.observe(b),window.addEventListener("resize",ge),()=>{N!==null&&window.cancelAnimationFrame(N),q?.disconnect(),window.removeEventListener("resize",ge)}},[u,d]),o.useLayoutEffect(()=>{const b=g.current;d!=="chat"||!u||!b||P.current||!S.current&&!yn(b)||(S.current=!0,Oe(b,{settle:!0}))},[me,Oe,u,d]),o.useLayoutEffect(()=>{if(t===0||d!=="chat"||!u)return;const b=g.current;b&&(S.current=!0,M(!1),Oe(b,{settle:!0}))},[t,Oe,M,u,d]),o.useLayoutEffect(()=>{A.current=null,y.current=!1,P.current=!0,S.current=!0,j.current=0,w.current=0,E.current=0,he(),Se(),ve(),ke(null),M(!1),$(Es)},[ve,Se,he,F,M,$]),o.useEffect(()=>{const b=g.current;d!=="chat"||!b||P.current||!je||r||b.scrollTop<=dr&&b.scrollHeight<=b.clientHeight+dr&&ut()},[je,r,J,R.length,ut,d]),o.useLayoutEffect(()=>{const b=A.current,N=g.current;!b||!N||P.current||(A.current=null,N.scrollTop=b.scrollTop+Math.max(0,N.scrollHeight-b.scrollHeight),L(N))},[R.length,L]),o.useLayoutEffect(()=>{const b=g.current;if(d!=="chat"||!F||!b){v.current=F,S.current=!0,O(F);return}const N=v.current!==F;if(v.current=F,N||P.current){S.current=!0,Oe(b,{conversationKey:F,finishInitial:!0,settle:!0});return}const ae=yn(b);if(S.current||ae){S.current=!0,M(!1),$(Yn(b)),Oe(b,{settle:!0});return}L(b,{nearBottom:ae})},[F,C,O,c?.id,Oe,M,$,L,d]),o.useEffect(()=>()=>{ve(),Se(),he()},[ve,Se,he]),{chatColumnStyle:He,chatThreadPreparingInitialScroll:le,chatThreadRef:h,composerStackRef:k,goToUserMessage:Jt,handleChatScroll:Zt,jumpToLatestChatMessage:Qt,showScrollToBottomButton:fe,userMessageNavigation:Le,chatTimelineRows:R}}const du=o.lazy(()=>ce(()=>import("./WorkspaceDiffPanel-CBgPVF1P.js").then(e=>e.a),__vite__mapDeps([7,1,2,3,8,4,9,6,10,11,12,13,14,15,16]),import.meta.url).then(e=>({default:e.WorkspaceDiffPanel}))),fu=o.lazy(()=>ce(()=>import("./AppTerminalPanel-B0NCyY4L.js"),__vite__mapDeps([17,1,2]),import.meta.url).then(e=>({default:e.AppTerminalPanel}))),mu=o.lazy(()=>ce(()=>import("./RightSidebarHomePanel-D8dAMHcp.js"),__vite__mapDeps([18,1,2,3,15,11,13]),import.meta.url).then(e=>({default:e.RightSidebarHomePanel}))),hu=o.lazy(()=>ce(()=>import("./WorkSidebarPanel-D4yXQ64j.js"),__vite__mapDeps([19,1,2,3,9,20,11,13,4,8,21,22,23,24]),import.meta.url).then(e=>({default:e.WorkSidebarPanel}))),pu=o.lazy(()=>ce(()=>import("./NewExperienceSwitcher-C7X_K5Xl.js"),__vite__mapDeps([25,1,2,3]),import.meta.url).then(e=>({default:e.NewExperienceSwitcher}))),gu=o.lazy(()=>ce(()=>import("./CollaborationTabs-DJEp6dux.js"),__vite__mapDeps([26,1,2,3,27]),import.meta.url).then(e=>({default:e.CollaborationTabs}))),xu=o.lazy(()=>ce(()=>import("./AppsView-DyDyktK2.js"),__vite__mapDeps([28,1,2,3,29]),import.meta.url).then(e=>({default:e.AppsView}))),bu=o.lazy(()=>ce(()=>import("./GetStartedView-l1Cz1e7g.js"),__vite__mapDeps([30,1,2,5,3,31,32,4,33]),import.meta.url).then(e=>({default:e.GetStartedView}))),ku=o.lazy(()=>ce(()=>import("./LabsRoute-VOgPrf94.js").then(e=>e.i),__vite__mapDeps([34,1,2,3,21,32,10,4,0,5,6,35,36]),import.meta.url).then(e=>({default:e.LabsRoute}))),yu=o.lazy(()=>ce(()=>import("./ScheduledWorkPage-Dkjhof6t.js"),__vite__mapDeps([37,1,2,3,38,4,5,6,14,13]),import.meta.url).then(e=>({default:e.ScheduledWorkPage}))),Su=o.lazy(()=>ce(()=>import("./OutputsPage-Bmof4Tdv.js"),__vite__mapDeps([39,1,2,3,9,4,11,21,22,23]),import.meta.url).then(e=>({default:e.OutputsPage}))),vu=o.lazy(()=>ce(()=>import("./ProjectsPage-D7opg6ff.js"),__vite__mapDeps([40,1,2,3,21,41]),import.meta.url).then(e=>({default:e.ProjectsPage}))),ao=o.lazy(()=>ce(()=>import("./LabSkillSidebar-jlX5I_D5.js"),__vite__mapDeps([42,1,2,3,4,13,21,22,23,43]),import.meta.url).then(e=>({default:e.LabSkillSidebar}))),Cu=o.lazy(()=>ce(()=>import("./BrowserSidebar-C-PQxmQa.js"),__vite__mapDeps([44,1,2,3,4,6,23,45]),import.meta.url).then(e=>({default:e.BrowserSidebar}))),wu=o.lazy(()=>ce(()=>import("./RightChatPanelStack-BzsNeSwx.js"),__vite__mapDeps([46,1,2,11,3,4,47,16,8,9,22,48,5,6,21,23]),import.meta.url).then(e=>({default:e.RightChatPanelStack}))),ju=o.lazy(()=>ce(()=>import("./NativeSkillSidebar-DaD52aW1.js"),__vite__mapDeps([49,1,2,3,13,50]),import.meta.url).then(e=>({default:e.NativeSkillSidebar}))),Mu=o.lazy(()=>ce(()=>import("./TeamChatView-DIxvrgai.js"),__vite__mapDeps([51,1,2,3,8,4,9,6,31,21,22,23,52,53]),import.meta.url).then(e=>({default:e.TeamChatView}))),Eu=o.lazy(()=>ce(()=>import("./TeamChatView-DIxvrgai.js"),__vite__mapDeps([51,1,2,3,8,4,9,6,31,21,22,23,52,53]),import.meta.url).then(e=>({default:e.TeamChatProView}))),Au=o.lazy(()=>ce(()=>import("./CommunityView-DQJaHBa5.js"),__vite__mapDeps([54,1,2,55,3,6,8,4,9,21,22,23,56]),import.meta.url).then(e=>({default:e.CommunityView}))),Nu=o.lazy(()=>ce(()=>import("./TeamChatView-DIxvrgai.js"),__vite__mapDeps([51,1,2,3,8,4,9,6,31,21,22,23,52,53]),import.meta.url).then(e=>({default:e.TeamAiThreadPanel}))),Tu=o.lazy(()=>ce(()=>import("./TeamChatView-DIxvrgai.js"),__vite__mapDeps([51,1,2,3,8,4,9,6,31,21,22,23,52,53]),import.meta.url).then(e=>({default:e.TeamAgentConversationPanel}))),Iu=o.lazy(()=>ce(()=>import("./TrainingDraftPanel-DBWJW8ZD.js"),__vite__mapDeps([57,1,2,3,13,36]),import.meta.url).then(e=>({default:e.TrainingDraftPanel}))),_u=o.lazy(()=>ce(()=>import("./MainChatThread-B1nXTMAf.js"),__vite__mapDeps([58,1,2,47,3,16,8,4,9,22,48,11,5,6,21,23]),import.meta.url).then(e=>({default:e.MainChatThread}))),Pu=o.lazy(()=>ce(()=>import("./TrainingCreationPanel-DACYaOny.js"),__vite__mapDeps([59,1,2,3,36]),import.meta.url).then(e=>({default:e.TrainingCreationPanel})));function Ru({experience:e,onNewExperienceChange:t,view:n,teamChat:r,community:a,bootstrap:l,runtimeEvents:c,chatMessages:u,pendingUserMessage:p,contextWindowStatus:d,goalRuntime:g,subagentRuntime:C,selectedSessionId:m,composerDraftStore:h,mainComposerFocusRequestId:k,labCloseDetailRequestId:S,labCloseDetailKind:j,sideChatTrainingLaunchRequest:w,onSideChatTrainingLaunchHandled:E,mentionApps:v,connectedAppMentions:A,profileSkills:y,selectedMentionAppId:P,busy:D,turnRunning:U,activeProvider:H,activeModel:G,codexPermissionMode:J,codexReasoningEffort:Z,openPondCommandAccessMode:Ue,pendingApproval:ke,activeWorkspaceAppId:fe,activeWorkspaceId:se,activeWorkspaceKind:me,projectTarget:ue,actionCatalog:Le,workspaceTarget:we,connection:R,workspaceName:He,workspaceState:Ae,workspaceDiff:Xe,workspaceBusy:je,diffBusy:F,forceChatThread:le=!1,diffPanelOpen:M,diffPanelExpanded:$,rightPanelMode:L,rightPanelTabRequest:O,rightChatPanels:Se,runtimeEventStore:et,nativeSkillSidebar:ve,extensionSkillSidebar:he,workspaceDiffPanelViewState:Rt,sidebarFileOpenRequest:Oe,sidebarFileBookmarks:Qt,onSetSidebarFileStatus:Jt,browserConversationId:Y,terminalScope:ut,terminalTabs:Zt,terminalCwd:Yt,pendingTerminalCommand:b,terminalOpen:N,onToggleTerminal:ae,onWorkspaceDiffPanelViewStateChange:ge,training:q,trainingSessions:Me,trainingChatHandoff:de,trainingDetailTasksetId:W,onTrainingDetailTasksetIdChange:re,onTrainingChatTaskSelect:yt,onTrainingChatHandoffDismiss:De,onOpenSession:tt,onExperienceHandoff:nt,cloudProjects:$t,projects:St,projectsAccountBaseUrl:rs,projectsTeamName:Lt,projectTaskCounts:os,onNewCloudProject:vt,onNewProjectTask:Ls,onToggleProjectPinned:jn,onUploadLocalProject:Os,chatHistoryHasMore:dt=!1,chatHistoryLoading:Ds=!1,onDiffPanelResizeStart:Te,canSyncWorkspace:ze,startMessage:Ot,onPayload:Ct,onError:en,setView:Ce,onOpenProfileSettings:st,onOpenProviderSettings:ft,onOpenTrainingSettings:wt,onOpenDatasetStorageSettings:Dt,changeDraftProvider:Pe,changeProjectTarget:Mn,changeWorkspaceTarget:rt,setDraftProvider:as,setDraftModel:En,onBeginNewChatWithModel:zs,changeCodexPermissionMode:tn,changeCodexReasoningEffort:nn,changeOpenPondCommandAccessMode:An,resolveApproval:zt,answerCreateImproveQuestion:sn,approveCreateImproveRun:Nn,applyCreateImproveCandidate:Ft,cancelCreateImproveRun:Tn,openCreateImprovePullRequest:In,pauseCreateImproveRun:Bt,reconcileCreateImprovePullRequest:rn,rejectCreateImproveCandidate:jt,resumeCreateImproveRun:Ie,reviseCreateImproveRun:Qe,setMentionedAppId:ot,showToast:ee,onSaveTaskDraft:mt,sendPrompt:Mt,stopTurn:_n,syncWorkspaceLocally:Fs,refreshWorkspaceDiff:Bs,onToggleDiffPanelExpanded:_e,onShowDiffPanel:Je,onShowBrowserPanel:at,onShowTrainingDraftPanel:ls,onShowFilesPanel:Pn,onShowRightChatPanel:Us,onAddRightChat:Rn,onOpenRightChatForSession:xe,onLabDetailOpenChange:ht,scheduledDetailOpen:Ge,onScheduledDetailOpenChange:ye,onTerminalTabsChange:Ut,onCloseRightChatPanel:$n,onCloseNativeSkillSidebar:is,onActivateRightChatPanel:Et,onRightChatModelChange:cs,onRightChatPromptChange:Hs,onRightChatScrollStateChange:lt,onRightChatProviderChange:qs,onSubmitRightChat:us,onStopRightChat:ds,onCloseTerminal:Vs,onLoadMoreChatHistory:fs}){const[Ln]=o.useState(()=>new yl),Ht=m&&!$r(m)?m:null,ms=wl(et,Ht),pe=o.useMemo(()=>Ht?wa(c,ms.events):c,[Ht,ms.events,c]),Ze=o.useMemo(()=>Ht?ja(Ln.project(pe),p):u,[Ln,Ht,p,pe,u]),[it,qt]=o.useState(null),[On,Re]=o.useState(0),[on,Fe]=o.useState(null),[an,te]=o.useState(null),[At,ln]=o.useState(null),[hs,Vt]=o.useState(null),[cn,Ke]=o.useState(null),[un,ps]=o.useState(null),[dn,Dn]=o.useState(null),[zn,Fn]=o.useState([]),Bn=o.useMemo(()=>l?.sessions.find(x=>x.id===m)??null,[l?.sessions,m])?.currentProfile??l?.profileLibrary?.lastUsed??null,Nt=Ma(l?.profileLibrary??{profiles:[]},Bn)??l?.profile??null,xs=o.useMemo(()=>Ea(Nt,l?.extensionCatalog),[l?.extensionCatalog,Nt]),Un=o.useMemo(()=>Aa(Nt),[Nt]),Hn=o.useCallback(async(x,I=m)=>{if(!R||!l)return;const ne=Na(l.profileLibrary??{profiles:[]},x);if(ne)try{const K=I&&!$r(I)?l.sessions.find(z=>z.id===I)??null:null,B=await Uc({ref:ne,session:K,selectProfile:z=>$e.profileSelect(R,z),patchSession:(z,ct)=>$e.patchSession(R,z,{currentProfile:ct})});let ie=l.sessions;B.session&&(ie=ie.map(z=>z.id===B.session.id?B.session:z)),Ct({...l,profile:B.selected.profile,profileLibrary:B.selected.library,sessions:ie})}catch(K){const B=K instanceof Error?K.message:String(K);en(B),ee(B,"error")}},[l,R,en,Ct,m,ee]);o.useEffect(()=>{if(!Oe)return;const{file:x,id:I}=Oe;if(Fe({id:I,path:x.path}),!R)return;let ne=!1;return(x.workspaceKind==="local"?$e.workspaceFile(R,x.workspaceId,x.path).then(B=>B.content??""):$e.sandboxDownloadFile(R,x.workspaceId,x.path).then(B=>{if(B.file.isBinary)throw new Error("Binary files cannot be attached to chat.");return B.contents})).then(B=>{if(ne)return;const ie=x.path.split("/").at(-1)??x.path;qt({id:I,file:new File([B],ie,{type:$u(x)})})}).catch(B=>{ne||ee(B instanceof Error?B.message:String(B),"error")}),()=>{ne=!0}},[R,ee,Oe]);const pt=e==="development"||e==="work"&&ue.value!=="none",Gt=o.useMemo(()=>{if(e==="chat")return Un;if(!pt)return[];const x=new Map(Le.filter(I=>!Ta(I)).map(I=>[I.id,I]));for(const I of Un)x.set(I.id,I);for(const I of zn)x.set(I.id,I);return[...x.values()]},[Le,e,pt,zn,Un]),oe=qc(R),Gs=o.useCallback(x=>{if(!x){oe.activate(null);return}oe.activate({runId:x.run.id,candidateId:x.candidate.id,title:x.run.objective,fileRootPath:x.fileRootPath,initialPath:x.initialPath})},[oe.activate]),Ks=o.useCallback(()=>{oe.selection?.initialPath&&oe.openFile(oe.selection.initialPath),Je()},[oe.openFile,oe.selection?.initialPath,Je]),Ws=o.useCallback(x=>{ln(x),x&&Je()},[Je]),Xs=o.useCallback(()=>{ln(null),$&&_e()},[$,_e]);o.useEffect(()=>{n!=="labs"&&ln(null)},[n]);const gt=o.useCallback((x,I)=>{const ne=Date.now(),K=Le.find(ie=>ie.id===x)??null;h.set(""),ot(null),Ce("chat");const B=ie=>{if(!(ie.find(Q=>Q.id===x)??null))return!1;const ct=ie.map(Q=>Q.id===x?{...Q,label:I}:Q);return Fn(ct),window.requestAnimationFrame(()=>{Dn({actionId:x,requestId:Math.max(Date.now(),ne+1)})}),!0};if(!R){K?B([K]):ee("The Agent action catalog is still loading. Try Use again.","error");return}$e.profileCurrent(R).then(ie=>{const z=ie.actionCatalog.map(ct=>Ia(ct));!B(z)&&K?B([K]):z.some(ct=>ct.id===x)||ee("This Agent is ready, but its default chat action is unavailable.","error")}).catch(ie=>{K||ee(ie instanceof Error?ie.message:String(ie),"error")})},[Le,h,R,ot,Ce,ee]),Qs=o.useCallback((x,I)=>{h.set(x),ot(null),I&&Pe(I),Ce("chat")},[Pe,h,ot,Ce]),Kt=o.useMemo(()=>_a(l?.preferences),[l?.preferences]),Js=Kt.training,{createAgentFromLab:Zs,improveAgentFromLab:fn}=Gc({activeModel:G,activeProvider:H,bootstrap:l,codexPermissionMode:J,codexReasoningEffort:Z,connection:R,onOpenRightChatForSession:xe,onPayload:Ct}),Tt=o.useMemo(()=>{const x=q.payload?.tasksets??[];return x.some(I=>I.id===cn)?cn:x[0]?.id??null},[cn,q.payload?.tasksets]),mn=n==="labs"&&Tt?`profiles/${l?.profile.activeProfile??"default"}/tasksets/${Tt}`:null,Ys=o.useMemo(()=>{if(n!=="labs"||!Tt||!q.payload)return null;const x=q.payload.tasksets.find(Q=>Q.id===Tt);if(!x)return null;const I=q.payload.plans.filter(Q=>Q.tasksetId===x.id),ne=new Set(I.map(Q=>Q.id)),K=q.payload.jobs.filter(Q=>ne.has(Q.planId)).sort((Q,Jn)=>Jn.createdAt.localeCompare(Q.createdAt)),B=K.find(Q=>Q.id===un)??K[0]??null,ie=B?I.find(Q=>Q.id===B.planId)??null:I.sort((Q,Jn)=>Jn.createdAt.localeCompare(Q.createdAt))[0]??null,z=B?q.payload.models.find(Q=>Q.jobId===B.id)??null:null,ct=B?q.payload.artifacts.filter(Q=>Q.jobId===B.id):[];return{taskset:x,plan:ie,job:B,lineage:z,artifacts:ct}},[Tt,un,q.payload,n]),hn=o.useMemo(()=>Hc(q.payload,m),[m,q.payload]),pn=o.useMemo(()=>eu(Ze),[Ze]),bs=!!g||!!pn||!!C,Ee=n==="labs"&&!!oe.selection,gn=n==="labs"&&M&&L==="changes"&&!!At,er=(n==="chat"||n==="labs")&&!!fe,ks=n==="chat"&&M&&L==="chat"&&Se.length===0,ys=Pa(me)?se??nu(He):null,Ss=n==="chat"&&!!ys,qe=ys,qn=!!qe||we.value==="cloud"||we.value==="hybrid",Wt=o.useMemo(()=>Dc({workspaceTarget:we.value,localWorkspaceId:fe,sandboxSourceAvailable:qn,sandboxWorkspaceId:qe,override:an}),[fe,qn,qe,an,we.value]),xn=Wt.source,be=xn==="sandbox",tr=o.useMemo(()=>xn&&Wt.options.length>1?{value:xn,options:Wt.options,onChange:te}:null,[xn,Wt.options]);o.useEffect(()=>{te(null)},[fe,Y,qe,we.value]);const bn=!gn&&(Ee||er||Ss)&&M&&(L==="changes"||L==="goal"&&bs||ks),Vn=n==="chat"&&M&&L==="browser",Gn=(n==="chat"||n==="labs")&&M&&L==="chat"&&Se.length>0,Kn=n==="chat"&&M&&L==="training",Wn=n==="chat"&&M&&!!ve,vs=n==="chat"&&M&&!!he,Xn=n==="team"&&M&&L==="chat"&&!!r.aiThread,Qn=n==="team"&&M&&L==="chat"&&!!r.agentConversation,i=e==="work"&&n==="chat"&&M&&L==="home",f=_o({supportedView:n==="chat"&&pt||n==="labs",open:M,hasContentPanel:bn||gn||Vn||Gn||Kn||Wn||Xn||Qn||i}),T=bn||gn||Vn||Gn||Kn||Wn||Xn||Qn||i||f,_=T&&L!=="chat"&&$,X=l?.account.baseUrl??l?.account.activeProfile?.baseUrl??null,V=Qc({activeWorkspaceId:se,cloudProjects:$t}),Ne=n==="chat"&&U&&!ke&&Oc(Ze),Ye=le||Ze.length>0||Ne,It=m??`draft:${n}:${me??"none"}:${se??fe??"none"}`,_t=s.jsx(ou,{activeModel:G,activeProvider:H,busy:U,handoff:de,onDismiss:De,onSelectTask:yt}),We=o.useMemo(()=>({onAnswerQuestion:sn,onApprove:Nn,onApplyCandidate:Ft,onCancel:Tn,onOpenPullRequest:In,onPause:Bt,onReconcilePullRequest:rn,onRejectCandidate:jt,onResume:Ie,onRevise:Qe}),[sn,Nn,Ft,Tn,In,Bt,rn,jt,Ie,Qe]),xt=o.useMemo(()=>pn?{...pn,...We}:null,[We,pn]),Ve=iu(n,Ye),Cr=o.useCallback(async(x=[],I=null,ne=null,K={})=>{const B=K.promptOverride??h.getSnapshot(),ie=()=>{K.preservePrompt||(h.set(""),ot(null))};if(!I){const z=ne?{command:ne.id,args:B.trim()}:co(B);if(z){if(!Ra({id:z.command},e))return ee(`/${z.command} isn't available in ${e}.`,"info"),!1;if(z.command==="train")return x.length>0?(ee("/train uses the selected chat; add other chats from Models.","error"),!1):m?(ie(),Vt({id:Date.now(),objective:z.args.trim()||null,initialSessionIds:[m]}),Ce("labs"),!0):(ie(),Vt({id:Date.now(),objective:z.args.trim()||null,initialSessionIds:[]}),Ce("labs"),!0);if(!z.args&&z.command!=="skill"&&z.command!=="sync-cloud")return ee(`Add instructions after /${z.command}.`,"info"),!1;if(x.length>0)return ee(`/${z.command} tasks do not accept attachments yet. Add file context in the task thread.`,"error"),!1;if(z.command==="submit-issue")return $a(A)?(Re(Q=>Q+1),Mt([],null,La(z.args),{clearPrompt:K.preservePrompt?()=>{}:void 0,usageAttribution:fr(z,ne?"composer_selection":"prompt_parse")})):(ee("Connect the GitHub app before using /submit-issue.","error"),!1);if(tu(z)){const Q=z.command==="skill"?Fc(z.args,H,l?.profile.sourcePath??null):oo(z);return Re(Jn=>Jn+1),Mt([],null,Q,{clearPrompt:K.preservePrompt?()=>{}:void 0,usageAttribution:fr(z,ne?"composer_selection":"prompt_parse")})}return Re(Q=>Q+1),Mt([],null,oo(z),{clearPrompt:K.preservePrompt?()=>{}:void 0,usageAttribution:fr(z,ne?"composer_selection":"prompt_parse")})}}return Re(z=>z+1),Mt(x,I,K.promptOverride,{clearPrompt:K.preservePrompt?()=>{}:void 0,displayPrompt:K.displayPrompt,turnMetadata:K.turnMetadata})},[G,H,me,l?.profile,A,h,e,Mt,m,ot,Ce,ee,q,n]),wr=o.useCallback(x=>{de&&x!==de.model.modelId&&De(),as(H),En(x)},[H,De,En,as,de]),jr=o.useCallback(x=>{de&&x!==de.model.providerId&&De(),Pe(x)},[Pe,De,de]),{chatColumnStyle:Po,chatThreadPreparingInitialScroll:Mr,chatThreadRef:Ro,chatTimelineRows:$o,composerStackRef:Lo,goToUserMessage:Er,handleChatScroll:Oo,jumpToLatestChatMessage:Do,showScrollToBottomButton:zo,userMessageNavigation:Cs}=uu({browserConversationId:Y,chatSubmissionVersion:On,chatHistoryHasMore:dt,chatHistoryLoading:Ds,chatMessages:Ze,onLoadMoreChatHistory:fs,pendingApproval:ke,showChatThread:Ye,showThinkingIndicator:Ne,view:n}),ws=o.useCallback((x,I)=>{Oa({conversationId:Y,href:x,explicitFile:I?.explicitFile,newTab:I?.newTab}).then(ne=>{ne&&at()})},[Y,at]),js=Va({projectTargetDetail:ue.detail,projectTargetValue:ue.value,workspaceRepoPath:Ae?.repoPath,workspaceTargetValue:we.value}),Ar=o.useCallback(x=>{const I=Rc(x,js);if(I&&R){$e.signLocalVideoUrl(R,{path:I}).then(({url:K})=>ws(K)).catch(K=>{ee(K instanceof Error?K.message:"Could not open this video.","error")});return}const ne=Ga(x,{workspaceRootPath:js});Je(),Fe({id:Date.now(),path:ne?.path??x})},[R,ws,Je,ee,js]),Nr=o.useCallback(async x=>{if(!R||!x.filePreview&&!x.imagePreview){ee("File content is not available for this attachment.","error");return}try{const I=x.name.trim().replace(/[\\/]+/g,"-")||"attachment.txt",K=`Attachments/${x.id.replace(/[^a-zA-Z0-9._-]+/g,"-")||"file"}/${I}`,B={path:K,status:"",additions:0,deletions:0,patch:"",content:null};let ie;if(x.filePreview){const z=await $e.chatAttachmentFile(R,x.filePreview);B.content=z.content}else x.imagePreview&&(ie=(await $e.signChatAttachmentImageUrl(R,x.imagePreview)).url);Je(),Fe({id:Date.now(),path:K,file:B,...ie?{imageUrl:ie}:{}})}catch(I){ee(I instanceof Error?I.message:"Could not open this attachment.","error")}},[R,Je,ee]),Fo=je&&!!fe&&!Ae,Tr=oe.selection?`candidate:${oe.selection.runId}:${oe.selection.candidateId}`:null,Bo=bn?s.jsx(du,{appId:Ee?Tr:be?null:fe,workspaceId:Ee?Tr:be?qe:fe,workspaceKind:Ee?"local_project":be?null:"local_project",connection:R,runtimeEvents:pe,diff:Ee?oe.diff:be?null:Xe,fileRootPath:Ee?oe.selection?.fileRootPath??null:be?null:mn,filesWithPreview:Ee,editorPreferences:l?.preferences.editor??null,loading:Ee?oe.loading:be?je:F||Fo,openFileRequest:Ee?oe.openFileRequest:on,sidebarFileBookmarks:Qt,sidebarFileSourceSessionId:m,onSetSidebarFileStatus:Jt,readOnly:Ee,sideChatTabs:Se.map(x=>({id:x.id,title:x.title,running:x.running})),sourceSwitcher:Ee?null:tr,tabRequest:O,viewState:Rt,workspaceName:Ee?oe.selection?.title??"Change":be?He??"Sandbox":He,workspaceInitialized:Ee?!0:be?!!qe:!!Ae?.initialized,workspaceError:Ee?oe.error:be?null:Ae?.error??Xe?.error??null,expanded:$,onResizeStart:Te,onRefresh:x=>{Ee?oe.refresh(x):Bs(x)},onToggleExpanded:_e,onOpenBrowser:at,onOpenBrowserUrl:ws,onViewStateChange:ge,onCloseSideChat:$n,onOpenSideChat:n==="chat"?Rn:void 0,onSelectSideChat:x=>{Et(x),Us()},goalDetails:{active:L==="goal",createRuntime:xt,goalRuntime:g,subagentRuntime:C},sandboxFileSource:be?{sandboxId:qe,emptyMessage:"No sandbox filesystem yet."}:null,trainingSummary:Ys}):null,Uo=Vn?s.jsx(Cu,{conversationId:Y,expanded:$,onResizeStart:Te}):null,Ho=Xn?o.createElement(Nu,{...r,key:r.aiThread?.conversationId,onResizeStart:Te}):null,qo=Qn?o.createElement(Tu,{...r,key:r.agentConversation?.run.id,onResizeStart:Te}):null,Vo=Gn?s.jsx(wu,{panels:Se,runtimeEventStore:et,actionCatalog:Gt,createImproveActions:We,contextCompaction:Kt.contextCompaction,busy:D,codexPermissionMode:J,codexReasoningEffort:Z,openPondCommandAccessMode:Ue,connection:R,connectedAppMentions:A,mentionApps:v,codexPersonalSkills:l?.codexPersonalSkills??[],profileSkills:y,profileLibrary:l?.profileLibrary??{lastUsed:null,profiles:[]},extensionCatalog:l?.extensionCatalog??null,projectTarget:ue,providerSettings:l?.providers??null,accountBaseUrl:X,billingOrganizationSlug:V.organizationSlug,billingTeamId:V.teamId,showToast:ee,workspaceTarget:we,onAddChat:Rn,onActivatePanel:Et,onClosePanel:$n,onCodexPermissionModeChange:tn,onCodexReasoningEffortChange:nn,onOpenPondCommandAccessModeChange:An,onModelChange:cs,onOpenAttachmentInSidebar:Nr,onOpenFileInSidebar:Ar,onOpenProfileSettings:st,onOpenSession:tt,onProviderChange:qs,onProviderSetupOpen:ft,onPromptChange:Hs,onProfileTargetChange:(x,I)=>{Hn(I,x)},onScrollStateChange:lt,onProjectTargetChange:Mn,onResolveApproval:zt,onResizeStart:Te,onSelectFiles:Pn,onShowBrowserPanel:at,onStop:ds,onSubmit:us,onWorkspaceTargetChange:x=>{rt(x)}}):null,Go=f?s.jsx(mu,{expanded:$,terminalOpen:N,sideChatAvailable:n==="chat"||n==="labs",onOpenBrowser:at,onOpenFiles:Pn,onOpenReview:Je,onOpenSideChat:Rn,onOpenTrainingDraft:ls,trainingDraftAvailable:!!m,onResizeStart:Te,onToggleExpanded:_e,onToggleTerminal:ae}):null,Ko=i?s.jsx(hu,{chatMessages:Ze,connection:R,contextWindowStatus:d,expanded:$,runtimeEvents:pe,sessionId:m,showToast:ee,onResizeStart:Te,onToggleExpanded:_e,onUseOutput:x=>qt({id:Date.now(),file:x}),onHandoffOutput:async(x,I,ne)=>{await nt({target:x,sourceSessionId:m,output:I,prompt:Da(I,x)}),ne&&qt({id:Date.now(),file:ne})},onReviseOutput:(x,I,ne)=>{qt({id:Date.now(),file:I}),h.set(`Create revision ${x.revision+1} of "${x.title}" from the attached revision ${x.revision}. Apply only this requested change:
5
+
6
+ ${ne}`)},onAgentPackageInstalled:async()=>{R&&Ct(await $e.bootstrap(R))}}):null,Wo=Kn?s.jsx(o.Suspense,{fallback:null,children:s.jsx(Iu,{training:q,sessionId:m,expanded:$,onOpenTraining:()=>Ce("labs"),onResizeStart:Te,onToggleExpanded:_e})}):null,kn=qo??Ho??Vo??(Wn&&ve?s.jsx(ju,{expanded:$,skill:ve,onClose:is,onResizeStart:Te,onToggleExpanded:_e}):null)??(vs&&he?s.jsx(ao,{connection:R,expanded:$,selection:he,onClose:is,onResizeStart:Te,onToggleExpanded:_e}):null)??(gn&&At?s.jsx(ao,{connection:R,expanded:$,selection:At,onClose:Xs,onResizeStart:Te,onToggleExpanded:_e}):null)??Bo??Uo??Wo??Ko??Go,nr=s.jsx(o.Suspense,{fallback:null,children:s.jsx(fu,{open:N,connection:R,scope:ut,tabs:Zt,onTabsChange:Ut,cwd:Yt,appId:fe,workspaceName:He,queuedCommand:b,onClose:Vs})});return s.jsxs("main",{className:`main-pane ${Ve} ${N?"terminal-open":""} ${T?"diff-open":""} ${_?"diff-expanded":""}`,children:[n==="team"||n==="community"?s.jsx(o.Suspense,{fallback:null,children:s.jsx(gu,{onSelect:Ce,view:n})}):null,n==="apps"?s.jsx(o.Suspense,{fallback:null,children:s.jsx(xu,{account:l?.account??null,connection:R,defaultTeamId:l?.preferences.defaultTeamId??null,onToast:ee})}):n==="team"?s.jsxs(o.Suspense,{fallback:null,children:[r.teamId?s.jsx(Mu,{...r}):s.jsx(Eu,{}),T?kn:null]}):n==="community"?s.jsx(o.Suspense,{fallback:null,children:s.jsx(Au,{...a})}):n==="get-started"?s.jsx(o.Suspense,{fallback:null,children:s.jsx(bu,{})}):n==="scheduled"?s.jsx(o.Suspense,{fallback:null,children:s.jsx(yu,{connection:R,detailOpen:Ge,detailExpanded:$,onDetailOpenChange:ye,onDetailResizeStart:Te,onToggleDetailExpanded:_e})}):n==="outputs"?s.jsx(o.Suspense,{fallback:null,children:s.jsx(Su,{connection:R,onViewChat:tt})}):n==="projects"?s.jsx(o.Suspense,{fallback:null,children:s.jsx(vu,{accountBaseUrl:rs,connection:R,onNewCloudProject:vt,onNewTask:Ls,onTogglePinned:jn,onUploadLocalProject:Os,projects:St,taskCountByProjectId:os,teamName:Lt})}):n==="labs"?_?s.jsx(o.Suspense,{fallback:null,children:kn}):s.jsxs(s.Fragment,{children:[s.jsx(o.Suspense,{fallback:null,children:s.jsx(ku,{account:l?.account??null,closeDetailRequestId:S,closeDetailKind:j,onNewModel:(x,I)=>{Vt({id:Date.now(),objective:null,initialSessionIds:[],initialTasksetId:x,learnedPreferenceReward:I})},onUseAgent:gt,onCreateAgent:Zs,onImproveAgent:fn,onDetailOpenChange:ht,onSkillSelectionChange:Ws,onOpenRunConversation:xe,onAnswerQuestion:sn,onApplyCandidate:Ft,onApprove:Nn,onCancel:Tn,candidateReview:{diff:oe.diff,error:oe.error,loading:oe.loading},onCandidateReviewChange:Gs,onOpenPullRequest:In,onOpenCandidateFiles:Ks,onPause:Bt,onReconcilePullRequest:rn,onRejectCandidate:jt,onResume:Ie,onRevise:Qe,profileView:{payload:l,connection:R,onPayload:Ct,onError:en,onToast:ee,onSkillCommand:Qs},training:{training:q,sessions:Me,localProjects:l?.localProjects??[],connection:R,defaultModel:{providerId:H,modelId:G},onError:en,onToast:ee,onSettingsPreferences:x=>{l&&Ct({...l,preferences:x.preferences})},onOpenTrainingSettings:wt,onOpenProviderSettings:ft,onOpenDatasetStorageSettings:Dt,onOpenChat:tt,onChatWithModel:zs,onOpenTasksetFiles:Pn,launchRequest:w??hs,onLaunchHandled:x=>{if(w?.id===x){E(x);return}Vt(I=>I?.id===x?null:I)},preferences:Js,settingsPreferences:Kt,providerSettings:l?.providers??null,reasoningEffort:Z,selectedTasksetId:Tt,onSelectedTasksetIdChange:Ke,onSelectedTrainingJobIdChange:ps,detailTasksetId:W,onDetailTasksetIdChange:re}})}),nr,T?s.jsx(o.Suspense,{fallback:null,children:kn}):null]}):_?s.jsx(o.Suspense,{fallback:null,children:kn}):Ye?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:`chat-column ${ke?"has-approval":""}`,style:Po,children:[s.jsx(o.Suspense,{fallback:null,children:s.jsx(_u,{accountBaseUrl:X,activeWorkspaceAppId:fe,billingOrganizationSlug:V.organizationSlug,billingTeamId:V.teamId,connection:R,conversationKey:Y??"draft",creation:hn,onOpenBrowserLink:ws,onOpenAttachmentInSidebar:Nr,onOpenFileInSidebar:Ar,onOpenProfileSettings:st,onResolveUserQuestion:async(x,I)=>{const ne=I.action==="answer"?I.text:"Dismiss this question";if(!await Mt([],null,ne,{displayPrompt:ne,turnMetadata:{userQuestionResolution:I}}))throw new Error("The question response could not be sent.")},onOpenSession:tt,onScroll:x=>Oo(x.currentTarget),preparingInitialScroll:Mr,rows:$o,userAttachmentDisplay:H==="codex"?"compact":"full",threadRef:Ro,workspaceRootPath:js})}),s.jsxs("div",{className:`composer-stack dock ${ke?"has-approval":""}`,ref:Lo,children:[hn?s.jsx(o.Suspense,{fallback:null,children:s.jsx(Pu,{compact:!0,creation:hn,training:q,onOpenTraining:()=>Ce("labs")})}):null,_t,s.jsx(so,{approval:ke,onResolve:zt}),zo&&!Mr?s.jsx(au,{canGoNext:Cs.canGoNext,canGoPrevious:Cs.canGoPrevious,onJumpToLatest:Do,onNext:()=>{Cs.canGoNext&&Er("next")},onPrevious:()=>{Cs.canGoPrevious&&Er("previous")}}):null,s.jsx(no,{experience:e,draftStore:h,attachmentRequest:it,mode:"dock",focusRequestId:k,mentionApps:pt?v:[],connectedAppMentions:A,profileSkills:H==="codex"?l?.codexPersonalSkills??[]:xs,selectedMentionAppId:P,contextWindowStatus:d,goalRuntime:e!=="chat"?g:null,subagentRuntime:e!=="chat"?C:null,createImproveRuntime:pt?xt:null,busy:U,running:U,submissionScopeKey:It,showProjectFooter:!1,connection:R,providerSettings:l?.providers??null,provider:H,model:G,projectTarget:ue,profileTarget:null,actionCatalog:Gt,requestedAction:dn,workspaceTarget:we,codexPermissionMode:J,codexReasoningEffort:Z,openPondCommandAccessMode:Ue,onProviderChange:jr,onProviderSetupOpen:ft,onProjectTargetChange:Mn,onProfileTargetChange:x=>{Hn(x)},onWorkspaceTargetChange:x=>{rt(x)},onModelChange:wr,onCodexPermissionModeChange:tn,onCodexReasoningEffortChange:nn,onOpenPondCommandAccessModeChange:An,onMentionAppSelect:ot,onSaveTaskDraft:mt,showToast:ee,onSubmit:Cr,onStop:_n})]})]}),nr,s.jsx(o.Suspense,{fallback:null,children:kn})]}):s.jsxs(s.Fragment,{children:[s.jsxs("section",{className:"start-panel",children:[s.jsx(o.Suspense,{fallback:null,children:s.jsx(pu,{value:e==="chat"?"chat":"work",onChange:t})}),s.jsxs("div",{className:"start-welcome",children:[s.jsx("h1",{children:Ot}),ze&&s.jsx(lu,{busy:je,onSync:()=>{Fs()}})]}),s.jsxs("div",{className:"composer-stack start",children:[_t,s.jsx(so,{approval:ke,onResolve:zt}),s.jsx(no,{experience:e,draftStore:h,attachmentRequest:it,mode:"start",autoFocus:!0,focusRequestId:k,mentionApps:pt?v:[],connectedAppMentions:A,profileSkills:H==="codex"?l?.codexPersonalSkills??[]:xs,selectedMentionAppId:P,contextWindowStatus:d,goalRuntime:e!=="chat"?g:null,subagentRuntime:e!=="chat"?C:null,createImproveRuntime:pt?xt:null,busy:U,running:U,submissionScopeKey:It,connection:R,providerSettings:l?.providers??null,provider:H,model:G,showProjectFooter:e!=="chat",projectTarget:ue,profileTarget:null,actionCatalog:Gt,requestedAction:dn,workspaceTarget:we,codexPermissionMode:J,codexReasoningEffort:Z,openPondCommandAccessMode:Ue,onProviderChange:jr,onProviderSetupOpen:ft,onProjectTargetChange:Mn,onProfileTargetChange:x=>{Hn(x)},onWorkspaceTargetChange:x=>{rt(x)},onModelChange:wr,onCodexPermissionModeChange:tn,onCodexReasoningEffortChange:nn,onOpenPondCommandAccessModeChange:An,onMentionAppSelect:ot,onSaveTaskDraft:mt,showToast:ee,onSubmit:Cr,onStop:_n})]})]}),nr,s.jsx(o.Suspense,{fallback:null,children:kn})]})]})}function $u(e){const t=e.path.toLowerCase();return t.endsWith(".md")||t.endsWith(".mdx")?"text/markdown":t.endsWith(".json")?"application/json":t.endsWith(".yaml")||t.endsWith(".yml")?"application/yaml":"text/plain"}const Vu=Object.freeze(Object.defineProperty({__proto__:null,MainPane:Ru,shouldShowRightSidebarHomePanel:_o},Symbol.toStringTag,{value:"Module"}));export{so as A,rl as C,al as F,fl as I,Vu as M,zr as P,kl as R,xl as a,il as b,ul as c,yl as d,$c as e,cu as f,Tc as g,tc as h,sc as i,ic as j,bi as k,Or as l,cc as m,dc as r,Oc as s,wl as u};
@@ -0,0 +1,9 @@
1
+ import{r as f,j as a}from"./index-DqWw2ymf.js";import{b_ as P,b$ as R,o as Z,az as ie,X as le,c3 as I,bf as j,br as se,aP as z}from"./App-D7vhbyMO.js";import{n as B,m as ae}from"./chat-file-links-wORSEipQ.js";import{r as oe}from"./desktop-files-BQj1J-ob.js";function X(e,r,n){const t=K(e),[i,l]=f.useState(()=>t.getUrl(r,n));return f.useEffect(()=>{let s=!1;return l(t.getUrl(r,n)),t.loadUrl(r,n).then(c=>{s||l(c)}),()=>{s=!0}},[r,n,t]),i}function K(e){const[,r]=f.useState(0),n=f.useCallback((l,s)=>!e||!l||!s?null:(P.activateConnection(e),P.get(R(e,"workspace-image",l,s))),[e]),t=f.useCallback(async(l,s)=>{if(!e||!l||!s)return null;P.activateConnection(e);const c=R(e,"workspace-image",l,s);return P.load(c,()=>Z.signWorkspaceImageUrl(e,{appId:l,path:s})).finally(()=>r(o=>o+1))},[e]),i=f.useCallback((l,s)=>{t(l,s)},[t]);return f.useMemo(()=>({ensureUrl:i,getUrl:n,loadUrl:t}),[i,n,t])}function ce({open:e,src:r,title:n,onClose:t}){const[i,l]=f.useState(!1);if(f.useEffect(()=>{if(!e)return;const o=u=>{u.key==="Escape"&&t()};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[t,e]),f.useEffect(()=>{l(!1)},[r]),!e||!r)return null;const s=(()=>{const o=n.split("/").pop()?.trim();if(o&&/\.[A-Za-z0-9]+$/.test(o))return o;try{const m=new URL(r,window.location.href).pathname.split("/").pop()?.trim();if(m&&/\.[A-Za-z0-9]+$/.test(m))return m}catch{}return"image.png"})(),c=()=>{const o=document.createElement("a");o.href=r,o.download=s,o.rel="noopener",document.body.appendChild(o),o.click(),o.remove()};return a.jsx("div",{className:"image-lightbox-backdrop",role:"presentation",onMouseDown:o=>{o.target===o.currentTarget&&t()},children:a.jsxs("section",{"aria-label":n?`Image preview: ${n}`:"Image preview","aria-modal":"true",className:"image-lightbox-dialog",role:"dialog",children:[a.jsxs("header",{className:"image-lightbox-header",children:[a.jsx("span",{title:n,children:n}),a.jsxs("div",{className:"image-lightbox-actions",children:[a.jsx("button",{type:"button","aria-label":"Download image",title:"Download",onClick:c,children:a.jsx(ie,{size:16})}),a.jsx("button",{type:"button","aria-label":"Close image preview",title:"Close",onClick:t,children:a.jsx(le,{size:16})})]})]}),a.jsx("div",{className:"image-lightbox-frame",children:i?a.jsx("div",{className:"image-lightbox-error",children:"Image preview unavailable"}):a.jsx("img",{alt:n||"Image preview",decoding:"async",draggable:!1,src:r,onError:()=>l(!0)})})]})})}function V(e,r){const n=Y(e),[t,i]=f.useState(()=>n.getUrl(r));return f.useEffect(()=>{let l=!1;return i(n.getUrl(r)),n.loadUrl(r).then(s=>{l||i(s)}),()=>{l=!0}},[r,n]),t}function Y(e){const[,r]=f.useState(0),n=f.useCallback(i=>!e||!i?null:(P.activateConnection(e),P.get(R(e,"local-image",i))),[e]),t=f.useCallback(async i=>{if(!e||!i)return null;P.activateConnection(e);const l=R(e,"local-image",i);return P.load(l,()=>Z.signLocalImageUrl(e,{path:i})).finally(()=>r(s=>s+1))},[e]);return f.useMemo(()=>({getUrl:n,loadUrl:t}),[n,t])}function E(e){const r=e.replace(/\r\n/g,`
2
+ `).split(`
3
+ `),n=[];let t=[],i=[],l=[],s=!1,c,o=null,u,m=0;function h(){t.length!==0&&(n.push({type:"paragraph",content:t.join(`
4
+ `).trim()}),t=[])}function v(){i.length!==0&&(n.push({type:"blockquote",content:i.join(`
5
+ `)}),i=[])}function p(){l.length!==0&&(n.push({type:"list",ordered:s,start:c,items:l}),l=[],s=!1,c=void 0)}for(let g=0;g<r.length;g+=1){const d=r[g];if(o){if(de(d,m)){n.push({type:"code",content:o.join(`
6
+ `),language:u}),o=null,u=void 0,m=0;continue}o.push(d);continue}const b=d.match(/^\s*>\s?(.*)$/);if(b){h(),p(),i.push(b[1]??"");continue}v();const k=fe(d);if(k){h(),p(),o=k.firstLine===void 0?[]:[k.firstLine],u=k.language,m=k.ticks;continue}const U=me(r,g);if(U){h(),p(),n.push({type:"table",headers:U.headers,rows:U.rows}),g=U.endIndex;continue}const y=d.match(/^\s*(#{1,4})(?:\s+|(?=\d+[.)]\s+))(.+)$/);if(y){h(),p();const L=y[1].length;n.push({type:"heading",level:L,content:y[2].trim()});continue}const x=d.match(G);if(x){h();const L=!!x[2];l.length>0&&L!==s&&p(),s=L;const w=x[2]?Number(x[2]):null;l.length===0&&(c=w??void 0),l.push(pe(x[3].trim(),w));continue}if(!d.trim()){if(h(),l.length>0&&he(r,g+1)===s)continue;p();continue}p(),t.push(d)}return o&&n.push({type:"code",content:o.join(`
7
+ `),language:u}),v(),h(),p(),n}const ue=/^\s*(?:#{1,4}\s*|>\s*|\d+[.)]\s*|[-*]\s*)$/;function Ze(e,r){if(r)return e;const n=e.lastIndexOf(`
8
+ `)+1;return ue.test(e.slice(n))?e.slice(0,n):e}function de(e,r){const n=e.match(/^\s*(`{2,})\s*(?:[A-Za-z0-9_-]+)?\s*$/);return!!(n&&n[1].length>=r)}function fe(e){const r=e.match(/^\s*(`{2,})\s*([A-Za-z0-9_-]+)?\s*$/);if(r)return{language:r[2],ticks:r[1].length};const n=e.match(/^\s*(`{2,})\s*([A-Za-z][A-Za-z0-9_-]*)(?:\s+(\S.*)|(\S.*))$/);return n?{language:n[2],firstLine:n[3]??n[4],ticks:n[1].length}:null}const G=/^\s*(?:([-*])|(\d+)[.)])\s+(.+)$/;function he(e,r){let n=r;for(;n<e.length&&!e[n].trim();)n+=1;const t=(e[n]??"").match(G);return t?!!t[2]:null}function pe(e,r){const n=/^\[([ xX])]\s*(.*)$/.exec(e);return n?{content:n[2]??"",checked:n[1]?.toLowerCase()==="x",ordinal:r}:{content:e,checked:null,ordinal:r}}function me(e,r){const n=e[r]??"",t=e[r+1]??"";if(!n.includes("|")||!ge(t))return null;const i=A(n);if(i.length===0)return null;const l=[];let s=r+2;for(;s<e.length;){const c=e[s]??"";if(!c.trim()||!c.includes("|"))break;l.push(A(c)),s+=1}return{headers:i,rows:l,endIndex:s-1}}function ge(e){const r=A(e);return r.length>0&&r.every(n=>/^:?-{3,}:?$/.test(n.trim()))}function A(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(n=>n.trim())}const ke=new Set([".avif",".gif",".ico",".jpeg",".jpg",".png",".svg",".webp"]);function J({checked:e,inline:r=!1}){return a.jsx("input",{"aria-label":e?"Checked item":"Unchecked item",checked:e,className:`markdown-checkbox ${r?"inline":""}`,disabled:!0,readOnly:!0,type:"checkbox"})}function M(e,r){const n=[];let t=0,i=0;const l=s=>{s>i&&n.push(e.slice(i,s))};for(;t<e.length;){const s=e[t];if(s==="`"){const d=e.indexOf("`",t+1);if(d>t+1){const b=e.slice(t+1,d),k=r.onOpenFileInSidebar&&ve(b,e,t,d+1)?B(b,{workspaceRootPath:r.workspaceRootPath}):null;l(t),n.push(k?W(k.displayPath,k.path,k.displayPath,r,n.length):a.jsx("code",{children:b},n.length)),t=d+1,i=t;continue}}const c=s==="<"||e.startsWith("!<img",t)?Le(e,t):null;if(c){const d=T(c.src,r);if(d){l(t),n.push(D(c.alt,d,r,n.length)),t=c.end,i=t;continue}}const o=s==="<"?Ue(e,t):null;if(o){l(t),n.push(O(o.label,o.href,r,n.length)),t=o.end,i=t;continue}const u=s==="<"?Me(e,t):null;if(u){l(t),n.push(O(u.href,u.href,r,n.length)),t=u.end,i=t;continue}const m=s==="["?Pe(e,t):null;if(m){l(t),n.push(a.jsx(J,{checked:m.checked,inline:!0},n.length)),t=m.end,i=t;continue}const h=e.startsWith("![",t)?ye(e,t):null;if(h){const d=T(h.href,r);l(t),n.push(d?D(h.label,d,r,n.length):O(h.label||h.href,h.href,r,n.length)),t=h.end,i=t;continue}const v=s==="["?xe(e,t):null;if(v){l(t),n.push(O(v.label,v.href,r,n.length)),t=v.end,i=t;continue}const p=we(e,t);if(p){l(t),n.push(O(p.href,p.href,r,n.length)),t=p.end,i=t;continue}const g=r.onOpenFileInSidebar?ae(e,t,{workspaceRootPath:r.workspaceRootPath}):null;if(g){l(t),n.push(W(g.displayPath,g.path,g.displayPath,r,n.length)),t=g.end,i=t;continue}if(e.startsWith("**",t)){const d=e.indexOf("**",t+2);if(d>t+2){l(t),n.push(a.jsx("strong",{children:e.slice(t+2,d)},n.length)),t=d+2,i=t;continue}}if(e.startsWith("__",t)){const d=e.indexOf("__",t+2);if(d>t+2){l(t),n.push(a.jsx("strong",{children:e.slice(t+2,d)},n.length)),t=d+2,i=t;continue}}t+=1}return l(e.length),n}function we(e,r){const n=r>0?e[r-1]:"";if(n&&!/[\s([{<]/.test(n))return null;const t=e.slice(r),i=/^(?:https?:\/\/|www\.)[^\s<>()]+(?:\([^\s<>()]*\)[^\s<>()]*)*/i.exec(t);if(!i)return null;let l=i[0];for(;/[.,;:!?]$/.test(l);)l=l.slice(0,-1);return l?{href:/^www\./i.test(l)?`https://${l}`:l,end:r+l.length}:null}function ve(e,r,n,t){return be(e)?!0:!r.slice(0,n).trim()&&!r.slice(t).trim()}function be(e){return/^(?:workspace|sandbox):file:/i.test(e.trim())}function O(e,r,n,t){const i=ne(r),l=T(i,n),s=/^https?:\/\//i.test(i),c=l?.kind==="url"?l.src:l?.src??i,o=n.onOpenFileInSidebar?B(i,{workspaceRootPath:n.workspaceRootPath}):null;return!l&&o?W(e,o.path,o.displayPath,n,t):a.jsx("a",{href:s||l?c:"#",className:l?"markdown-image-link":void 0,onBlur:()=>{l&&n.onPreviewImage(null)},onClick:u=>{if(l){u.preventDefault(),Se(l,n),n.onPreviewImage(null);return}if(s&&n.onOpenBrowserLink){u.preventDefault(),n.onOpenBrowserLink(c);return}s||u.preventDefault()},onContextMenu:u=>{u.preventDefault(),n.onPreviewImage(null),n.onOpenLinkMenu(He(c,i,u.clientX,u.clientY))},onFocus:u=>{l&&q(l,n,u.currentTarget)},onMouseEnter:u=>{l&&q(l,n,u.currentTarget)},onMouseLeave:()=>{l&&n.onPreviewImage(null)},rel:s?"noreferrer":void 0,target:s?"_blank":void 0,title:i,children:e},t)}function D(e,r,n,t){return a.jsx(Ie,{context:n,image:r,label:e},t)}function Ie({context:e,image:r,label:n}){const t=X(e.connection,r.kind==="workspace"?r.appId:null,r.kind==="workspace"?r.path:null),i=V(e.connection,r.kind==="local"?r.path:null),l=r.kind==="url"?r.src:r.kind==="local"?i:t,s=n.trim()||r.title;return a.jsx("button",{type:"button",className:`markdown-inline-image ${l?"ready":"loading"}`,onClick:()=>{if(r.kind==="url"){e.onOpenImage({src:r.src,title:s});return}if(l){e.onOpenImage({src:l,title:s});return}r.kind!=="local"&&e.onOpenWorkspaceImage({appId:r.appId,path:r.path,title:s})},title:s,children:l?a.jsx("img",{alt:s,decoding:"async",loading:"lazy",src:l}):a.jsx("span",{"aria-hidden":"true"})})}function W(e,r,n,t,i){const l=Ne(r,n,t);return l?a.jsx(je,{context:t,displayPath:n,image:l,label:e,path:r},i):a.jsx(Q,{context:t,displayPath:n,label:e,path:r},i)}function Q({context:e,displayPath:r,label:n,path:t}){return a.jsx("a",{href:"#",className:"markdown-file-link",onClick:i=>{i.preventDefault(),e.onOpenFileInSidebar?.(t)},onContextMenu:i=>{i.preventDefault(),e.onPreviewImage(null),e.onOpenLinkMenu(Ae(t,r,i.clientX,i.clientY))},title:r,children:n})}function je({context:e,displayPath:r,image:n,label:t,path:i}){const l=X(e.connection,n.kind==="workspace"?n.appId:null,n.kind==="workspace"?n.path:null),s=V(e.connection,n.kind==="local"?n.path:null),c=n.kind==="url"?n.src:n.kind==="local"?s:l,o=n.title||r;return a.jsxs("span",{className:"markdown-file-image-reference",children:[a.jsx(Q,{context:e,displayPath:r,label:t,path:i}),a.jsx("button",{type:"button",className:`markdown-file-image-preview ${c?"ready":"loading"}`,onClick:()=>{if(n.kind==="url"){e.onOpenImage({src:n.src,title:o});return}if(c){e.onOpenImage({src:c,title:o});return}n.kind!=="local"&&e.onOpenWorkspaceImage({appId:n.appId,path:n.path,title:o})},title:o,children:c?a.jsx("img",{alt:o,decoding:"async",loading:"lazy",src:c}):a.jsx("span",{"aria-hidden":"true"})})]})}function ye(e,r){if(!e.startsWith("![",r))return null;const n=r+2,t=e.indexOf("]",n);if(t<n||e[t+1]!=="(")return null;const i=ee(e,t+2);return i?{label:e.slice(n,t),href:i.href,end:i.end}:null}function xe(e,r){const n=e.indexOf("]",r+1);if(n<=r+1||e[n+1]!=="(")return null;const t=ee(e,n+2);return t?{label:e.slice(r+1,n),href:t.href,end:t.end}:null}function ee(e,r){if(e[r]==="<"){const t=e.indexOf(">",r+1);return t<0||e[t+1]!==")"?null:{href:e.slice(r+1,t),end:t+2}}let n=0;for(let t=r;t<e.length;t+=1){const i=e[t];if(i==="\\"){t+=1;continue}if(i==="("){n+=1;continue}if(i===")"){if(n===0)return{href:e.slice(r,t),end:t+1};n-=1}}return null}function Le(e,r){const n=e[r]==="!"?r+1:r;if(!/^<img\b/i.test(e.slice(n)))return null;const t=e.indexOf(">",n+4);if(t<0)return null;const i=e.slice(n,t+1),l=S(i,"src");return l?{src:l,alt:S(i,"alt")??S(i,"title")??"",end:t+1}:null}function Pe(e,r){const n=e.slice(r,r+3);return n==="[ ]"?{checked:!1,end:r+3}:n==="[x]"||n==="[X]"?{checked:!0,end:r+3}:null}function Ue(e,r){const n=e.slice(r),t=/^<a\s+[^>]*href\s*=\s*(["'])(.*?)\1[^>]*>(.*?)<\/a>/i.exec(n);return t?{href:t[2]??"",label:Ce(t[3]??""),end:r+t[0].length}:null}function Me(e,r){const n=e.indexOf(">",r+1);if(n<=r+1)return null;const t=e.slice(r+1,n).trim();return Oe(t)?{href:t,end:n+1}:null}function Ce(e){return e.replace(/<[^>]+>/g,"").trim()||e}function S(e,r){const t=new RegExp(`\\s${r}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s>]+))`,"i").exec(e);return t?.[1]??t?.[2]??t?.[3]??null}function Oe(e){return/^(https?:\/\/|file:\/\/|(?:workspace|sandbox):file:|\/|\.{1,2}\/)/i.test(e)}function T(e,r){const n=ne(e);if(!n)return null;if(/^https?:\/\//i.test(n))try{const s=new URL(n),c=Fe(s,r);return c||($e(s,r.connection)?{kind:"url",src:n,title:I(s.searchParams.get("path")??s.pathname)}:null)}catch{return null}const t=Re(n),i=_(t??n,r.workspaceRootPath);if(i)return{kind:"url",src:i,title:I(t??n)};if(!t||!j(t)||!r.connection)return null;if($(t))return{kind:"local",path:t,src:r.localImageUrls.getUrl(t),title:I(t)};if(!r.activeWorkspaceAppId)return null;const l=F(t,r.workspaceRootPath);return!l||!j(l)?null:{kind:"workspace",appId:r.activeWorkspaceAppId,path:l,src:r.workspaceImageUrls.getUrl(r.activeWorkspaceAppId,l),title:I(l)}}function Ne(e,r,n){const t=_(e,n.workspaceRootPath)??_(r,n.workspaceRootPath);if(t)return{kind:"url",src:t,title:I(r)};if(!j(e)||!n.connection)return null;if($(e))return{kind:"local",path:e,src:n.localImageUrls.getUrl(e),title:I(e)};if(!n.activeWorkspaceAppId)return null;const i=F(e,n.workspaceRootPath);return!i||!j(i)?null:{kind:"workspace",appId:n.activeWorkspaceAppId,path:i,src:n.workspaceImageUrls.getUrl(n.activeWorkspaceAppId,i),title:I(i)}}function _(e,r){const n=F(e,r),t="apps/web/public/";if(!n?.startsWith(t))return null;const i=n.slice(t.length);return!i||!Ee(i)?null:se(i.split("/").map(encodeURIComponent).join("/"))}function Ee(e){const r=e.split("?")[0]?.split("#")[0]??e,n=r.lastIndexOf(".");return n<0?!1:ke.has(r.slice(n).toLowerCase())}function ne(e){return e.trim().replace(/^['"`]+|['"`]+$/g,"")}function Re(e){let r=e.trim();if(!r)return null;if(r.startsWith("file://"))try{return decodeURIComponent(new URL(r).pathname)}catch{return r.replace(/^file:\/\//,"")}if($(r))return r;const n=r.indexOf("#");n>=0&&(r=r.slice(0,n));const t=r.indexOf("?");return t>=0&&(r=r.slice(0,t)),r}function $(e){return/^file:\/\//i.test(e)||/^\//.test(e)||/^[A-Za-z]:[\\/]/.test(e)}function F(e,r){let n=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(!n)return null;if(n.startsWith("file://"))try{n=decodeURIComponent(new URL(n).pathname)}catch{n=n.replace(/^file:\/\//,"")}if(n=n.replace(/\\/g,"/"),$(n)){const i=r?.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!i||!n.startsWith(`${i}/`))return null;n=n.slice(i.length+1)}n=n.replace(/^\.\/+/,"");const t=n.split("/").filter(Boolean);return t.length===0||t.some(i=>i==="."||i===".."||i===".git")?null:t.join("/")}function $e(e,r){if(r){const t=new URL(r.serverUrl);if(e.origin===t.origin){if(e.pathname==="/v1/local-image"||/\/v1\/workspaces\/[^/]+\/file-image$/.test(e.pathname))return!1;if(e.pathname==="/v1/assets/workspace-image"||e.pathname==="/v1/assets/chat-attachment-image")return!0}}if(j(e.pathname))return!0;const n=e.searchParams.get("path");return!!(n&&j(n))}function Fe(e,r){if(!r.connection)return null;const n=new URL(r.connection.serverUrl);if(e.origin!==n.origin)return null;const t=e.pathname==="/v1/assets/workspace-image"?e.searchParams.get("path"):null;if(t&&j(t))return{kind:"url",src:e.toString(),title:I(t)};const i=e.pathname==="/v1/assets/chat-attachment-image"?e.searchParams.get("storageName"):null;if(i&&j(i))return{kind:"url",src:e.toString(),title:I(i)};const l=/^\/v1\/workspaces\/([^/]+)\/file-image$/.exec(e.pathname),s=l?e.searchParams.get("path"):null;if(!l||!s||!j(s))return null;const c=decodeURIComponent(l[1]),o=F(s,r.workspaceRootPath);return!o||!j(o)?null:{kind:"workspace",appId:c,path:o,src:r.workspaceImageUrls.getUrl(c,o),title:I(o)}}function Se(e,r){if(e.kind==="url"){r.onOpenImage(e);return}if(e.kind==="local"){e.src&&r.onOpenImage({src:e.src,title:e.title});return}if(e.src){r.onOpenImage({src:e.src,title:e.title});return}r.onOpenWorkspaceImage({appId:e.appId,path:e.path,title:e.title})}function q(e,r,n){if(e.kind==="url"){r.onPreviewImage(N(e,n));return}if(e.kind==="local"){if(e.src){r.onPreviewImage(N({src:e.src,title:e.title},n));return}r.localImageUrls.loadUrl(e.path).then(t=>{t&&n.matches(":hover")&&r.onPreviewImage(N({src:t,title:e.title},n))});return}if(e.src){r.onPreviewImage(N({src:e.src,title:e.title},n));return}r.workspaceImageUrls.loadUrl(e.appId,e.path).then(t=>{t&&n.matches(":hover")&&r.onPreviewImage(N({src:t,title:e.title},n))})}function N(e,r){const n=r.getBoundingClientRect(),t=236,i=172,l=12,s=Math.max(l,Math.min(n.left,window.innerWidth-t-l)),c=n.bottom+8,o=c+i<=window.innerHeight-l?c:Math.max(l,n.top-i-8);return{...e,x:s,y:o}}function He(e,r,n,t){return{kind:"browser",browserHref:e,displayHref:r,x:Math.max(8,Math.min(n,window.innerWidth-220-8)),y:Math.max(8,Math.min(t,window.innerHeight-142-8))}}function Ae(e,r,n,t){return{kind:"file",path:e,displayPath:r,x:Math.max(8,Math.min(n,window.innerWidth-220-8)),y:Math.max(8,Math.min(t,window.innerHeight-72-8))}}function Xe({activeWorkspaceAppId:e=null,connection:r=null,content:n,finalizedContent:t,mutableContent:i,onOpenBrowserLink:l,onOpenFileInSidebar:s,workspaceRootPath:c=null}){const o=t!==void 0||i!==void 0,u=f.useMemo(()=>o?[]:E(n),[n,o]),m=f.useMemo(()=>o&&t?E(t):[],[t,o]),h=f.useMemo(()=>o&&i?E(i):[],[i,o]),[v,p]=f.useState(null),[g,d]=f.useState(null),[b,k]=f.useState(null),U=Y(r),y=K(r),x=f.useCallback(w=>{y.loadUrl(w.appId,w.path).then(C=>{C&&p({src:C,title:w.title})})},[y]),L=f.useMemo(()=>({activeWorkspaceAppId:e,connection:r,onOpenBrowserLink:l,onOpenFileInSidebar:s,onOpenLinkMenu:k,onOpenImage:p,onOpenWorkspaceImage:x,onPreviewImage:d,localImageUrls:U,workspaceImageUrls:y,workspaceRootPath:c}),[e,r,x,U,l,s,y,c]);return f.useEffect(()=>{if(!b)return;const w=()=>k(null),C=te=>{te.key==="Escape"&&w()};return window.addEventListener("click",w),window.addEventListener("keydown",C),window.addEventListener("scroll",w,!0),()=>{window.removeEventListener("click",w),window.removeEventListener("keydown",C),window.removeEventListener("scroll",w,!0)}},[b]),a.jsxs("div",{className:"markdown-message",children:[o?a.jsxs(a.Fragment,{children:[a.jsx(H,{blocks:m,context:L,keyPrefix:"finalized",workspaceRootPath:c}),a.jsx(H,{blocks:h,context:L,keyPrefix:"mutable",workspaceRootPath:c})]}):a.jsx(H,{blocks:u,context:L,keyPrefix:"block",workspaceRootPath:c}),g&&a.jsx(Te,{preview:g}),b&&a.jsx(_e,{menu:b,onClose:()=>k(null),onOpenBrowserLink:l,onOpenFileInSidebar:s}),a.jsx(ce,{open:!!v,src:v?.src??null,title:v?.title??"",onClose:()=>p(null)})]})}const H=f.memo(function({blocks:r,context:n,keyPrefix:t,workspaceRootPath:i}){return re(r,n,i,t)});function re(e,r,n,t="block"){return e.map((i,l)=>{const s=`${t}-${l}`;if(i.type==="blockquote")return a.jsx("blockquote",{className:"markdown-blockquote",children:re(E(i.content),r,n,`${s}-quote`)},s);if(i.type==="code"){const c=We(i.content,n);return c?a.jsx("div",{className:"markdown-file-reference-block",children:c.map((o,u)=>a.jsx("div",{className:"markdown-file-reference-line",children:M(o,r)},u))},s):a.jsx("pre",{className:"markdown-code-block",children:a.jsx("code",{children:i.content})},s)}if(i.type==="list"){const c=i.items.map((o,u)=>a.jsxs("li",{className:o.checked===null?void 0:"markdown-task-list-item",value:i.ordered?o.ordinal??void 0:void 0,children:[o.checked===null?null:a.jsx(J,{checked:o.checked}),a.jsx("span",{children:M(o.content,r)})]},u));return i.ordered?a.jsx("ol",{className:"markdown-list",start:i.start,children:c},s):a.jsx("ul",{className:"markdown-list",children:c},s)}if(i.type==="heading"){const c=i.level===1?"h1":i.level===2?"h2":i.level===3?"h3":"h4";return a.jsx(c,{className:"markdown-heading",children:M(i.content,r)},s)}return i.type==="table"?a.jsx("div",{className:"markdown-table-wrap",children:a.jsxs("table",{className:"markdown-table",children:[a.jsx("thead",{children:a.jsx("tr",{children:i.headers.map((c,o)=>a.jsx("th",{children:M(c,r)},o))})}),a.jsx("tbody",{children:i.rows.map((c,o)=>a.jsx("tr",{children:i.headers.map((u,m)=>a.jsx("td",{children:M(c[m]??"",r)},m))},o))})]})},s):a.jsx("p",{className:"markdown-paragraph",children:M(i.content,r)},s)})}function We(e,r){const n=e.split(`
9
+ `),t=[];for(const i of n){const l=i.trim();if(!l)continue;const c=l.replace(/^(?:[-*]|\d+[.)])\s+/,"").trim().replace(/^`+|`+$/g,"").trim();if(!c||!B(c,{workspaceRootPath:r}))return null;t.push(c)}return t.length>0?t:null}function Te({preview:e}){const[r,n]=f.useState(!1);return f.useEffect(()=>{n(!1)},[e.src]),a.jsxs("div",{className:`markdown-image-hover-preview ${r?"unavailable":""}`,style:{left:e.x,top:e.y},children:[r?a.jsx("span",{children:"Preview unavailable"}):a.jsx("img",{alt:"",src:e.src,onError:()=>n(!0)}),a.jsx("span",{children:e.title})]})}function _e({menu:e,onClose:r,onOpenBrowserLink:n,onOpenFileInSidebar:t}){return e.kind==="file"?a.jsxs("div",{className:"markdown-link-menu",role:"menu",style:{left:e.x,top:e.y},onClick:i=>i.stopPropagation(),children:[a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{t?.(e.path),r()},children:"Open in sidebar"}),a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{oe(e.path),r()},children:"Open externally"}),a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{z(e.displayPath),r()},children:"Copy path"})]}):a.jsxs("div",{className:"markdown-link-menu",role:"menu",style:{left:e.x,top:e.y},onClick:i=>i.stopPropagation(),children:[a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{n?n(e.browserHref):window.open(e.browserHref,"_blank","noopener,noreferrer"),r()},children:"Open in sidebar"}),a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{n?n(e.browserHref,{newTab:!0}):window.open(e.browserHref,"_blank","noopener,noreferrer"),r()},children:"Open in new tab"}),a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{window.open(e.browserHref,"_blank","noopener,noreferrer"),r()},children:"Open externally"}),a.jsx("button",{type:"button",role:"menuitem",onClick:()=>{z(e.displayHref),r()},children:"Copy link"})]})}export{ce as I,Xe as M,V as a,Ze as r,X as u};