openpond 0.0.63 → 0.0.65
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.
- package/dist/chunks/{app-layer-TUAFALOE.js → app-layer-NCSTDSNQ.js} +2 -2
- package/dist/chunks/{app-server-runtime-O26LVUYH.js → app-server-runtime-6PDQHOBE.js} +6 -6
- package/dist/chunks/{apps-KSZRA7Y2.js → apps-HEG7FEEV.js} +2 -2
- package/dist/chunks/{chunk-JTFDOA2P.js → chunk-6FZNXLVN.js} +17 -5
- package/dist/chunks/{chunk-7UVEB2AZ.js → chunk-B63GTC7F.js} +2 -2
- package/dist/chunks/{chunk-IXA5PMXC.js → chunk-BRLUAT6S.js} +1 -1
- package/dist/chunks/{chunk-6FKBOGA4.js → chunk-EWP6VGHP.js} +1 -1
- package/dist/chunks/{chunk-V2CTXKS2.js → chunk-HJJYGJ36.js} +205 -141
- package/dist/chunks/{chunk-KGU437HZ.js → chunk-JMHOO2IG.js} +2 -2
- package/dist/chunks/{chunk-66KQLYSH.js → chunk-LNYGV6AM.js} +1 -1
- package/dist/chunks/{chunk-7IFPXSSJ.js → chunk-TW4YWBQR.js} +1 -1
- package/dist/chunks/{chunk-LEL5AQJU.js → chunk-U345JN44.js} +1 -1
- package/dist/chunks/{chunk-YDH34BGG.js → chunk-WT3THPTX.js} +32 -32
- package/dist/chunks/{cli-LPFU4ULD.js → cli-CQOUYUQ4.js} +5 -5
- package/dist/chunks/{core-commands-OEOBYFIW.js → core-commands-Y4ZMQXO4.js} +3 -3
- package/dist/chunks/{desktop-test-BRLZF3O7.js → desktop-test-YRFKONLO.js} +2 -2
- package/dist/chunks/{extension-5BUCIDKG.js → extension-4MFKIC6Q.js} +2 -2
- package/dist/chunks/{help-MT6VPW4X.js → help-STXVR4NO.js} +1 -1
- package/dist/chunks/{opchat-O4DVKNFW.js → opchat-CCVKI5GH.js} +2 -2
- package/dist/chunks/{organizations-ACNOJ57Q.js → organizations-AS76SGLP.js} +4 -4
- package/dist/chunks/{profile-7LLWXAJE.js → profile-QNWDNZY3.js} +2 -2
- package/dist/chunks/{project-agent-RVYQYTU2.js → project-agent-GPZL7KAL.js} +2 -2
- package/dist/chunks/{sandbox-command-QST23BX5.js → sandbox-command-LC63MMAA.js} +2 -2
- package/dist/chunks/{sandbox-template-N7UG3P6V.js → sandbox-template-FPQLZ4IP.js} +3 -3
- package/dist/chunks/{src-CPM5Q7T5.js → src-6NIBZPH2.js} +3 -3
- package/dist/chunks/{src-M37V6NVU.js → src-ESTRZ2YU.js} +12 -63
- package/dist/chunks/{teams-bot-ITTI47XS.js → teams-bot-YTX7IC2J.js} +2 -2
- package/dist/chunks/{workspaces-CYBR37US.js → workspaces-ODK2CTFF.js} +2 -2
- package/dist/cli.js +13 -13
- package/dist/web/assets/{AppDialog-wIb8mGQ0.js → AppDialog-DacC7BcY.js} +1 -1
- package/dist/web/assets/{AppsView-D097dPIV.js → AppsView-mkeAkrvr.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-DrD-o_yB.js → BrowserSidebar-1aEC6gsF.js} +1 -1
- package/dist/web/assets/{CommandMenu-L5LelA2h.js → CommandMenu-BN6J3ecV.js} +1 -1
- package/dist/web/assets/{CommunityView-DUJ8NryS.js → CommunityView-B2v9Q4cw.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-BP-7DmQG.js → ComposerCreateImproveStrip-BH8Ath1h.js} +1 -1
- package/dist/web/assets/{GetStartedView-B7gB6Hii.js → GetStartedView-B-R-KSva.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-CNDz2a6I.js → LabModelVersionDetailPage-Bhfa7T00.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-BImOQcjk.js → LabSkillSidebar-CbYdG0RN.js} +1 -1
- package/dist/web/assets/{LabsRoute-BauSK1is.js → LabsRoute-DFV5vV6Z.js} +3 -3
- package/dist/web/assets/{MainChatThread-BZvAqQO6.js → MainChatThread-COiXI7ri.js} +2 -2
- package/dist/web/assets/MainPane-CQCLhV5C.js +6 -0
- package/dist/web/assets/MarkdownText-R3MC5S30.js +9 -0
- package/dist/web/assets/{Messages-DijmQL-z.js → Messages-DpZ8mIz8.js} +1 -1
- package/dist/web/assets/{NativeSkillSidebar-aCkrdGa0.js → NativeSkillSidebar-BfcMqLHA.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-D98WIQzr.js → NewProjectDialog-DqTX1Eeo.js} +1 -1
- package/dist/web/assets/{OutputsPage-BA0c6cfy.js → OutputsPage-DfZYswx2.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-DKDEmrEH.js → RightChatPanelStack-DH8QjiDY.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-DeHi99mv.js → ScheduledWorkPage-DkaVUnwj.js} +1 -1
- package/dist/web/assets/SettingsView-BRPrJuP5.css +1 -0
- package/dist/web/assets/SettingsView-StVFsSJ6.js +6 -0
- package/dist/web/assets/{TeamChatView-D2mCoLZ3.js → TeamChatView-CqZOnQh2.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-BHMsVp4L.js → TerminalOverlay-CnFv6FZT.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-CPnMWgkt.js → TrainingCreationPanel-CWzyzmyT.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-0scEtzSW.js → TrainingDraftPanel-BVHx0HZ0.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-COoCLLg6.js → UsageSettingsSection-Bdvm66WK.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-BFTwZ_dB.js → WorkspaceDiffPanel-DUCjD1GA.js} +5 -5
- package/dist/web/assets/{WorkspaceEnvironmentMenu-DFlkdd9T.js → WorkspaceEnvironmentMenu-DHGrt_ie.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-Dt3LO27Z.js → WorkspaceGitDialogs-hI57yjPL.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-3g05teoR.js → WorkspaceMonacoEditor-DPv-1uO6.js} +3 -3
- package/dist/web/assets/{arrow-up-right-DYGSWA2J.js → arrow-up-right-BDcNd1rt.js} +1 -1
- package/dist/web/assets/{chevron-up-4qfvI9iW.js → chevron-up-XTMMnfnf.js} +1 -1
- package/dist/web/assets/{cloud-upload-COReKxOy.js → cloud-upload-D6bS8rS2.js} +1 -1
- package/dist/web/assets/{cssMode-BbH67BYF.js → cssMode-CvN9o8bP.js} +1 -1
- package/dist/web/assets/{folder-open-9OjGqNgP.js → folder-open-8C5l7A93.js} +1 -1
- package/dist/web/assets/{folder-plus-DF5E6zr3.js → folder-plus-B9Wqb9yd.js} +1 -1
- package/dist/web/assets/{git-branch-eCwyZXMl.js → git-branch-C45ve7zh.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-cPm51DqY.js → git-commit-horizontal-CGoLIyKK.js} +1 -1
- package/dist/web/assets/{htmlMode-DD6Oge4x.js → htmlMode-DxLP6j5r.js} +1 -1
- package/dist/web/assets/index-BYgrO3wt.js +1 -0
- package/dist/web/assets/index-CHqMtVfF.css +1 -0
- package/dist/web/assets/{index-BO2W2U23.js → index-LrGasYyx.js} +29 -29
- package/dist/web/assets/{info-p1mFpqBI.js → info-DTObFlHw.js} +1 -1
- package/dist/web/assets/{jsonMode-C2Xd56A_.js → jsonMode-C3_fOSJu.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-BjYEk4gJ.js → lspLanguageFeatures-0c-UKStE.js} +1 -1
- package/dist/web/assets/{monaco.contribution-quEPEMQZ.js → monaco.contribution-CF1DgPPC.js} +2 -2
- package/dist/web/assets/{monaco.contribution-C7WMqwmc.js → monaco.contribution-CFLEc9Ly.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Bo-5m7yy.js → monaco.contribution-Cb7KlQ6G.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DzWlEgU1.js → monaco.contribution-Dsug_FPj.js} +2 -2
- package/dist/web/assets/{play-Ctx-iMqd.js → play-Cbsyrwkw.js} +1 -1
- package/dist/web/assets/{python-Cm64qCpk.js → python-DVcVB2lF.js} +1 -1
- package/dist/web/assets/{refresh-cw-Bn28jIl0.js → refresh-cw-ChUK_QfF.js} +1 -1
- package/dist/web/assets/{save-BM5IQX65.js → save-Doep-KC7.js} +1 -1
- package/dist/web/assets/{square-DAGpFfSr.js → square-B5q2aneb.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-DLW8Fnck.js → toggleHighContrast-CTZp7RE7.js} +1 -1
- package/dist/web/assets/{tsMode-BleUN_8S.js → tsMode-GfNadOOB.js} +1 -1
- package/dist/web/assets/{upload-vaAKFfxi.js → upload-DcewuCTa.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-Ccenbqf6.js → useLocalAgentSchedules-BwltnId8.js} +1 -1
- package/dist/web/assets/{wifi-off-DJA9KReb.js → wifi-off-cXPyKIzd.js} +1 -1
- package/dist/web/assets/{workers-CFG-afha.js → workers-CP6kCS63.js} +1 -1
- package/dist/web/assets/{yaml-Cs8iZKVC.js → yaml-w0GP6yKf.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/MainPane-CuhwxMxg.js +0 -6
- package/dist/web/assets/MarkdownText-gwAue4u5.js +0 -9
- package/dist/web/assets/SettingsView--fL3Ecuy.js +0 -6
- package/dist/web/assets/SettingsView-BS5m5vdt.css +0 -1
- package/dist/web/assets/index-BRLugX1S.js +0 -1
- package/dist/web/assets/index-Y7IoiSlQ.css +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TrainingCreationPanel-
|
|
2
|
-
import{r as i,j as s,_ as E}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TrainingCreationPanel-CWzyzmyT.js","./index-LrGasYyx.js","./index-CHqMtVfF.css","./training-BQVNUTZA.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as i,j as s,_ as E}from"./index-LrGasYyx.js";import{u as k,T as v,M as y}from"./Messages-DpZ8mIz8.js";import"./chevron-up-XTMMnfnf.js";import"./MainPane-CQCLhV5C.js";import"./cloud-upload-D6bS8rS2.js";import"./arrow-up-right-BDcNd1rt.js";import"./MarkdownText-R3MC5S30.js";import"./square-B5q2aneb.js";import"./folder-open-8C5l7A93.js";import"./git-branch-C45ve7zh.js";import"./play-Cbsyrwkw.js";import"./refresh-cw-ChUK_QfF.js";const C=i.lazy(()=>E(()=>import("./TrainingCreationPanel-CWzyzmyT.js"),__vite__mapDeps([0,1,2,3]),import.meta.url).then(t=>({default:t.TrainingStatusReceipt})));function q({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{q as MainChatThread};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ComposerCreateImproveStrip-BH8Ath1h.js","./index-LrGasYyx.js","./index-CHqMtVfF.css","./MarkdownText-R3MC5S30.js","./play-Cbsyrwkw.js","./refresh-cw-ChUK_QfF.js","./TerminalOverlay-CnFv6FZT.js","./TerminalOverlay-DwBiZLwk.css","./WorkspaceDiffPanel-DUCjD1GA.js","./training-model-data-V8276E5q.js","./folder-open-8C5l7A93.js","./info-DTObFlHw.js","./save-Doep-KC7.js","./chevron-up-XTMMnfnf.js","./AppsView-mkeAkrvr.js","./AppsView-DIhprTIC.css","./GetStartedView-B-R-KSva.js","./index-BYgrO3wt.js","./AppDialog-DacC7BcY.js","./GetStartedView-yVmnGZPw.css","./LabsRoute-DFV5vV6Z.js","./cloud-upload-D6bS8rS2.js","./UsageSettingsSection-Bdvm66WK.js","./arrow-up-right-BDcNd1rt.js","./UsageSettingsSection-O8VK0qBL.css","./LabsRoute-DDTgtCul.css","./training-BQVNUTZA.css","./ScheduledWorkPage-DkaVUnwj.js","./useLocalAgentSchedules-BwltnId8.js","./OutputsPage-DfZYswx2.js","./square-B5q2aneb.js","./LabSkillSidebar-CbYdG0RN.js","./LabSkillSidebar-CVxtS9pd.css","./BrowserSidebar-1aEC6gsF.js","./BrowserSidebar-D9i7gQzw.css","./RightChatPanelStack-DH8QjiDY.js","./Messages-DpZ8mIz8.js","./git-branch-C45ve7zh.js","./NativeSkillSidebar-BfcMqLHA.js","./NativeSkillSidebar-T8KXjnUH.css","./TeamChatView-CqZOnQh2.js","./TeamChatView-Br3VdxhD.css","./git-dialogs-BZDqS1eT.css","./CommunityView-B2v9Q4cw.js","./wifi-off-cXPyKIzd.js","./CommunityView-DaIS0cHw.css","./TrainingDraftPanel-BVHx0HZ0.js","./MainChatThread-COiXI7ri.js","./TrainingCreationPanel-CWzyzmyT.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{c as Be,b as $r,r as o,j as n,C as fs,P as _n,a as Os,A as In,d as wt,e as xr,F as br,f as ar,g as ta,O as na,h as Sr,B as sa,i as tn,k as Cr,l as ra,m as oa,n as aa,o as ia,p as Ne,q as la,s as _r,t as Pr,S as mo,u as ho,v as ca,X as Us,G as ua,w as da,x as Lt,y as Mr,z as Rn,D as Lr,E as po,H as fa,I as ma,J as ha,K as pa,L as xa,M as ba,N as ga,Q as ka,R as ya,_ as ve,T as xo,U as va,V as ja,W as wa,Y as Sa,Z as Ca,$ as Ma,a0 as bo,a1 as go,a2 as Ea,a3 as Na,a4 as Aa,a5 as Or,a6 as Ta,a7 as An,a8 as Ra,a9 as Ia,aa as $a,ab as Dr,ac as _a,ad as Pa,ae as La,af as Oa,ag as Da,ah as za,ai as Fa,aj as Ba,ak as Ua,al as Ha,am as qa,an as Va,ao as Ga,ap as Wa,aq as Ka}from"./index-LrGasYyx.js";import{C as Xa}from"./cloud-upload-D6bS8rS2.js";import{A as Qa}from"./arrow-up-right-BDcNd1rt.js";import{T as ko,B as ir,W as lr,D as zr,P as Ja,F as Za,C as Ya,A as ei,M as yo,a as ti,b as ni,r as Fr,s as si,c as vo,d as ri,n as oi}from"./MarkdownText-R3MC5S30.js";import{S as gr,a as ai}from"./square-B5q2aneb.js";import{F as kr}from"./folder-open-8C5l7A93.js";function jo(e){return e?(e.match(/\r\n|\r|\n/g)?.length??0)+(/(?:\r\n|\r|\n)$/.test(e)?0:1):0}const ii=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],li=Be("arrow-down",ii);const ci=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Br=Be("arrow-up",ci);const ui=[["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"}]],Ur=Be("at-sign",ui);const di=[["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"}]],fi=Be("badge-check",di);const mi=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],hi=Be("ban",mi);const pi=[["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"}]],xi=Be("cloud-download",pi);const bi=[["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"}]],gi=Be("file-headphone",bi);const ki=[["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"}]],yi=Be("file-spreadsheet",ki);const vi=[["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"}]],ji=Be("file-play",vi);const wi=[["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"}]],Si=Be("image",wi);const Ci=[["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"}]],Mi=Be("mic",Ci);const Ei=[["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"}]],Fs=Be("paperclip",Ei);const Ni=[["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"}]],Ai=Be("presentation",Ni);const Ti=[["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}],["path",{d:"m9 17-5-5 5-5",key:"nvlc11"}]],Ri=Be("reply",Ti),Hr=Object.freeze({events:[],messages:[]});class Ii{projection=Hr;project(t){if(t===this.projection.events)return this.projection.messages;if(!Pi(this.projection.events,t))return this.replace(t);const s=t.slice(this.projection.events.length);if(s.length===0)return this.projection={events:t,messages:this.projection.messages},this.projection.messages;const r=$i(this.projection.messages,s);if(r)return this.projection={events:t,messages:r},r;const a=_i(t,this.projection.events.length);if(!a)return this.replace(t);const i=t.slice(a.eventIndex),c=new Set(i.flatMap(f=>f.turnId?[f.turnId]:[])),p=[...this.projection.messages.filter(f=>!f.turnId||!c.has(f.turnId)),...$r(i)];return this.projection={events:t,messages:p},p}reset(){this.projection=Hr}snapshot(){return this.projection}replace(t){const s=$r(t);return this.projection={events:t,messages:s},s}}function $i(e,t){if(t.length===0||e.length===0)return null;const s=e[e.length-1];if(s?.role!=="assistant"||s.createImproveRun||t.some(f=>f.name!=="assistant.delta"&&f.name!=="assistant.reasoning.delta"||f.turnId!==s.turnId||!f.output))return null;let r=s.content,a=s.reasoningContent,i=s.timestamp,c=!1,u=!1;for(const f of t)f.name==="assistant.delta"?(r=`${r??""}${f.output}`,c=!0):(a=`${a??""}${f.output}`,u=!0),i=f.timestamp;const p={...s,...c?{content:r}:{},...u?{reasoningContent:a}:{},timestamp:i};return[...e.slice(0,-1),p]}function _i(e,t){const s=e[t];if(!s?.turnId)return null;const r=e.findIndex(a=>a.turnId===s.turnId);return r<0?null:{eventIndex:r}}function Pi(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 Li(e,t){const s=o.useCallback(i=>t?e.subscribeSession(t,i):()=>{},[t,e]),r=o.useCallback(()=>e.getSessionSnapshot(t),[t,e]),a=o.useSyncExternalStore(s,r,r);return o.useEffect(()=>{if(t)return e.retainSession(t,!0),()=>e.retainSession(t,!1)},[t,e]),a}function Oi(e,t){const s=e.slice(0,Math.max(0,Math.min(t,e.length))),r=/(?:^|\s)\$([a-zA-Z][a-zA-Z0-9_-]*)?$/.exec(s);if(!r||typeof r.index!="number")return null;const a=r[0].lastIndexOf("$");return a<0?null:{end:s.length,query:(r[1]??"").toLowerCase(),start:r.index+a}}function Hs(e){return`$${e.name}`}function Di(e,t,s){const r=Math.max(0,Math.min(t.start,e.length)),a=Math.max(r,Math.min(t.end,e.length)),i=e.slice(0,r),c=e.slice(a),u=i&&!/\s$/.test(i)?" ":"",p=c&&/^\s/.test(c)?"":" ",f=`${u}${Hs(s)}${p}`;return{cursor:i.length+f.length-(c?p.length:0),value:`${i}${f}${c}`}}function Ds(e,t,s){const r=t.trim().toLowerCase(),a=e.filter(i=>i.enabled&&i.validationStatus==="valid").filter(i=>r?[i.name,i.description,i.path].join(" ").toLowerCase().includes(r):!0).sort((i,c)=>i.name.localeCompare(c.name));return typeof s=="number"&&Number.isFinite(s)?a.slice(0,Math.max(0,s)):a}function zi(e,t,s){const r=t.trim().replace(/\s+/g," "),a=Fi(s,e.length);if(!r)return{value:e,cursorIndex:a};const i=e.slice(0,a),c=e.slice(a),u=i&&!/\s$/.test(i)?" ":"",p=c&&!/^\s/.test(c)?" ":"",f=`${u}${r}${p}`;return{value:`${i}${f}${c}`,cursorIndex:i.length+u.length+r.length+p.length}}function Fi(e,t){return Number.isFinite(e)?Math.max(0,Math.min(t,Math.round(e))):t}function wo({busy:e,placement:t,state:s,onChange:r}){const[a,i]=o.useState(!1),[c,u]=o.useState(""),p=o.useRef(null),f=o.useMemo(()=>{const x=c.trim().toLowerCase();return x?s.options.filter(S=>`${S.label} ${S.detail}`.toLowerCase().includes(x)):s.options},[c,s.options]);return o.useEffect(()=>{if(!a){u("");return}function x(m){p.current?.contains(m.target)||i(!1)}function S(m){m.key==="Escape"&&i(!1)}return document.addEventListener("pointerdown",x),document.addEventListener("keydown",S),()=>{document.removeEventListener("pointerdown",x),document.removeEventListener("keydown",S)}},[a]),s.options.length<=1?null:n.jsxs("div",{className:`composer-profile-target ${t==="top"?"open-up":""}`,ref:p,children:[n.jsxs("button",{type:"button",className:`composer-profile-trigger ${a?"active":""}`,disabled:e,"aria-label":"Profile","aria-haspopup":"menu","aria-expanded":a,onClick:()=>i(x=>!x),children:[n.jsx("span",{children:s.label}),n.jsx(fs,{size:14})]}),a?n.jsxs("div",{className:"composer-project-menu",role:"menu","aria-label":"Profile",children:[n.jsx("div",{className:"composer-menu-search",children:n.jsx("input",{autoFocus:!0,value:c,placeholder:"Search profiles",onChange:x=>u(x.currentTarget.value)})}),n.jsx("div",{className:"composer-menu-items",children:f.map(x=>{const S=x.value===s.value;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":S,className:`composer-project-option ${S?"selected":""}`,onClick:()=>{r(x.value),i(!1)},children:[n.jsxs("span",{children:[n.jsx("strong",{children:x.label}),n.jsx("small",{children:x.detail})]}),S?n.jsx(wt,{size:14}):null]},x.value)})})]}):null]})}function Bi({busy:e,placement:t,state:s,onChange:r}){const[a,i]=o.useState(!1),[c,u]=o.useState(!1),[p,f]=o.useState(""),x=o.useRef(null),m=s.value==="none"?"Select Project":s.label,d=s.options.find(w=>w.value===s.value)?.kind??"local",v=o.useMemo(()=>{const w=p.trim().toLowerCase();return w?s.options.filter(T=>[T.label,T.detail].filter(Boolean).some(j=>j.toLowerCase().includes(w))):s.options},[p,s.options]),k=v.filter(w=>w.kind==="local"||w.kind==="cloud"),E=v.filter(w=>w.kind==="action"),b=v.filter(w=>w.kind==="none");o.useEffect(()=>{if(!a){f(""),u(!1);return}function w(j){x.current?.contains(j.target)||i(!1)}function T(j){j.key==="Escape"&&(c?u(!1):i(!1))}return document.addEventListener("pointerdown",w),document.addEventListener("keydown",T),()=>{document.removeEventListener("pointerdown",w),document.removeEventListener("keydown",T)}},[c,a]);function N(w){const T=w.value===s.value,j=e||w.disabled,L=w.kind==="action",z=w.disabled&&w.disabledReason?w.disabledReason:`${w.label}: ${w.detail}`;return n.jsxs("button",{type:"button",role:L?"menuitem":"menuitemradio","aria-checked":L?void 0:T,className:`composer-project-option ${T?"selected":""} ${w.kind}`,disabled:j,"data-tooltip":z,onClick:()=>{r(w.value),u(!1),i(!1)},children:[n.jsx(yr,{kind:w.kind,size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:w.label}),n.jsx("small",{children:w.detail})]}),T&&n.jsx(wt,{size:14})]},w.value)}return n.jsxs("div",{className:`composer-project-target ${t==="top"?"open-up":""}`,ref:x,children:[n.jsxs("button",{type:"button",className:`composer-project-trigger ${a?"active":""} ${d}`,disabled:e,"aria-label":"Project","aria-haspopup":"menu","aria-expanded":a,onClick:()=>{i(w=>!w),u(!1)},children:[n.jsx(yr,{kind:d,size:14}),n.jsx("span",{children:m}),n.jsx(fs,{size:14})]}),a&&n.jsxs("div",{className:"composer-project-menu",role:"menu","aria-label":"Project",children:[n.jsx("div",{className:"composer-menu-search",children:n.jsx("input",{autoFocus:!0,value:p,placeholder:"Search projects",onChange:w=>f(w.target.value)})}),n.jsx("div",{className:"composer-menu-items",children:v.length===0?n.jsx("div",{className:"composer-menu-empty",children:"No projects found"}):k.map(N)}),E.length>0||b.length>0?n.jsxs("div",{className:"composer-project-actions",children:[E.length>0?n.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(w=>!w),children:[n.jsx(_n,{size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:"New"}),n.jsx("small",{children:"Create or add a project"})]}),n.jsx(Os,{size:14})]}):null,b.map(N)]}):null]}),a&&c?n.jsxs("div",{className:"composer-project-new-menu",role:"menu","aria-label":"New project",children:[n.jsxs("button",{type:"button",role:"menuitem",className:"composer-project-new-menu-back",onClick:()=>u(!1),children:[n.jsx(In,{size:14}),n.jsx("span",{children:"New project"})]}),E.map(N)]}):null]})}function yr({kind:e,size:t}){return e==="cloud"?n.jsx(xr,{size:t}):e==="action"?n.jsx(_n,{size:t}):n.jsx(br,{size:t})}function Ui({busy:e,placement:t,state:s,onChange:r}){const[a,i]=o.useState(!1),c=o.useRef(null),u=s.value==="cloud"?"cloud":s.value==="hybrid"?"hybrid":"local",p=`${s.label}: ${s.detail}`,f=s.uploadAction??null,x=f?qr(f):null,S=f?f.disabled&&f.disabledReason?f.disabledReason:`${f.label}: ${x??f.detail}`:null,m=!!(f&&(e||s.busy||f.disabled));return o.useEffect(()=>{if(!a)return;function d(k){c.current?.contains(k.target)||i(!1)}function v(k){k.key==="Escape"&&i(!1)}return document.addEventListener("pointerdown",d),document.addEventListener("keydown",v),()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("keydown",v)}},[a]),n.jsxs("div",{className:`workspace-action-control ${t==="top"?"open-up":""}`,ref:c,children:[n.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:()=>i(d=>!d),children:[n.jsx(zs,{value:s.value,size:14}),n.jsx("span",{className:"workspace-target-trigger-label",children:s.label}),n.jsx(fs,{size:14})]}),f?n.jsx("button",{type:"button",className:`workspace-upload-trigger ${f.value}`,disabled:m,"data-tooltip":S??void 0,"aria-label":f.label,onClick:()=>{r(f.value),i(!1)},children:n.jsx(zs,{value:f.value,size:14})}):null,a&&n.jsx("div",{className:"workspace-target-menu",role:"menu","aria-label":"Working in",children:s.options.map(d=>{const v=d.value===s.value,k=e||s.busy||d.disabled,b=qr(d)??d.detail,N=d.disabled&&d.disabledReason?d.disabledReason:`${d.label}: ${b}`;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":v,className:`workspace-target-option ${v?"selected":""} ${d.value}`,disabled:k,"data-tooltip":N,onClick:()=>{r(d.value),i(!1)},children:[n.jsx(zs,{value:d.value,size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:d.label}),n.jsx("small",{children:b})]}),v&&n.jsx(wt,{size:14})]},d.value)})})]})}function Hi({project:e,workspace:t}){const r=e.options.find(i=>i.value===e.value)?.kind??"none",a=e.value==="none"?"No Project":e.label;return n.jsxs("div",{className:"composer-footer composer-pinned-context",role:"group","aria-label":"Task context",children:[n.jsxs("span",{className:"composer-context-chip","aria-label":`Project: ${a}`,children:[n.jsx(yr,{kind:r,size:14}),n.jsx("span",{children:a})]}),n.jsxs("span",{className:"composer-context-chip","aria-label":`Execution: ${t.label}`,children:[n.jsx(zs,{value:t.value,size:14}),n.jsx("span",{children:t.label})]})]})}function qr(e){return e.disabled&&e.disabledReason?e.disabledReason:e.stateNote??null}function zs({value:e,size:t}){return e==="cloud"?n.jsx(xr,{size:t}):e==="hybrid"?n.jsxs("span",{className:"workspace-target-hybrid-icon","aria-hidden":"true",children:[n.jsx(br,{className:"hybrid-folder",size:t}),n.jsx(xr,{className:"hybrid-cloud",size:Math.max(7,Math.round(t*.62))})]}):e==="upload_cloud"?n.jsx(Xa,{size:t}):n.jsx(br,{size:t})}function Vr({disabled:e,model:t,modelGroups:s,placement:r,provider:a,reasoningEffort:i,showReasoning:c,onModelSelectionChange:u,onProviderSetupOpen:p,onReasoningEffortChange:f}){const[x,S]=o.useState(!1),[m,d]=o.useState("root"),v=o.useRef(null),k=s.find(j=>j.provider===a),E=k?.options.find(j=>j.value===t),b=ar.find(j=>j.value===i)??ar[1],N=qi(E?.label??t),w=c?`${N} ${b.shortLabel??b.label}`:N,T=c?"Model and reasoning":"Model";return o.useEffect(()=>{if(!x){d("root");return}function j(z){v.current?.contains(z.target)||S(!1)}function L(z){z.key==="Escape"&&S(!1)}return document.addEventListener("pointerdown",j),document.addEventListener("keydown",L),()=>{document.removeEventListener("pointerdown",j),document.removeEventListener("keydown",L)}},[x]),o.useEffect(()=>{!c&&m==="effort"&&d("root")},[m,c]),n.jsxs("div",{className:`codex-model-reasoning ${r==="top"?"open-up":""}`,"data-tooltip":T,ref:v,children:[n.jsxs("button",{type:"button",className:`codex-model-trigger ${x?"active":""}`,disabled:e,"aria-label":T,"aria-haspopup":"menu","aria-expanded":x,onClick:()=>S(j=>!j),children:[n.jsx("span",{children:w}),n.jsx(fs,{size:14})]}),x&&n.jsx("div",{className:"codex-model-menu",role:"menu","aria-label":T,children:m==="root"?n.jsxs("div",{className:"codex-model-menu-root",children:[n.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>d("provider"),children:[n.jsx("span",{children:"Provider"}),n.jsx("span",{className:"codex-model-menu-value",children:k?.label??a}),n.jsx(Os,{size:14})]}),n.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>d("model"),children:[n.jsx("span",{children:"Model"}),n.jsx("span",{className:"codex-model-menu-value",children:E?.label??t}),n.jsx(Os,{size:14})]}),c?n.jsxs("button",{type:"button",className:"codex-model-menu-row",role:"menuitem",onClick:()=>d("effort"),children:[n.jsx("span",{children:"Effort"}),n.jsx("span",{className:"codex-model-menu-value",children:b.shortLabel??b.label}),n.jsx(Os,{size:14})]}):null]}):m==="provider"?n.jsxs(n.Fragment,{children:[n.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Provider",onClick:()=>d("root"),children:[n.jsx(In,{size:14}),n.jsx("span",{children:"Provider"})]}),n.jsx("div",{className:"codex-model-menu-divider"}),n.jsx("div",{className:"codex-model-menu-options",children:s.map(j=>{const L=j.provider===a;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":L,className:L?"selected":"",onClick:()=>{const z=j.options.find(H=>H.value===j.defaultModel)??j.options[0];z&&(u(j.provider,z.value),d("root"))},children:[n.jsx("span",{children:j.label}),L?n.jsx(wt,{size:14}):null]},j.provider)})}),n.jsx("button",{type:"button",className:"codex-model-setup-action",role:"menuitem",onClick:()=>{S(!1),p?.()},children:n.jsxs("span",{className:"codex-model-menu-option-label",children:[n.jsx(_n,{size:13}),n.jsx("span",{children:"New Model/Provider"})]})})]}):m==="model"?n.jsxs(n.Fragment,{children:[n.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Model",onClick:()=>d("root"),children:[n.jsx(In,{size:14}),n.jsx("span",{children:"Model"})]}),n.jsx("div",{className:"codex-model-menu-divider"}),n.jsxs("div",{className:"codex-model-menu-options",children:[(k?.options??[]).map(j=>{const L=j.value===t;return n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":L,className:L?"selected":"",onClick:()=>{u(a,j.value),d("root")},children:[n.jsx("span",{children:j.label}),L?n.jsx(wt,{size:14}):null]},j.value)}),k?.options.length?null:n.jsx("div",{className:"codex-model-menu-empty",children:"No models from this provider"})]}),n.jsx("button",{type:"button",className:"codex-model-setup-action",role:"menuitem",onClick:()=>{S(!1),p?.()},children:n.jsxs("span",{className:"codex-model-menu-option-label",children:[n.jsx(_n,{size:13}),n.jsx("span",{children:"New Model/Provider"})]})})]}):n.jsxs("div",{className:"codex-model-menu-effort",children:[n.jsxs("button",{type:"button",className:"codex-model-submenu-heading","aria-label":"Back to model settings — Effort",onClick:()=>d("root"),children:[n.jsx(In,{size:14}),n.jsx("span",{children:"Effort"})]}),n.jsx("div",{className:"codex-model-menu-divider"}),ar.map(j=>n.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":j.value===i,className:j.value===i?"selected":"",onClick:()=>{f(j.value),d("root")},children:[n.jsx("span",{children:j.label}),j.value===i?n.jsx(wt,{size:14}):null]},j.value))]})})]})}function qi(e){return e.replace(/^GPT-/,"").replace(/\s+Codex Spark$/," Spark").replace(/\s+Codex$/," Codex")}function Vi({detailsOpen:e,goalRuntime:t,objectiveId:s,subagentRuntime:r,onToggleDetails:a}){const i=r?.activeCount?`${t.tooltip}. ${r.tooltip}`:t.tooltip;return n.jsxs("div",{className:`composer-goal-strip ${t.tone}${r?.activeCount?" has-subagents":""}`,"data-tooltip":i,children:[n.jsx("div",{className:"composer-goal-heading",children:n.jsxs("button",{type:"button",className:"composer-goal-toggle","aria-expanded":e,"aria-controls":s,onClick:a,children:[n.jsx("span",{children:t.actionLabel}),n.jsxs("span",{className:"composer-goal-toggle-meta",children:[r?n.jsx("span",{className:"composer-goal-subagent-count",children:r.label}):null,n.jsx("span",{children:t.timeLabel}),n.jsx(fs,{size:15,"aria-hidden":"true"})]})]})}),e&&n.jsxs("div",{className:"composer-goal-objective",id:s,children:[t.objective,r?n.jsx("span",{className:"composer-goal-subagent-summary",children:r.tooltip}):null]})]})}function Gi(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`steer-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,9)}`}function cr(e,t=120){const s=e.trim().replace(/\s+/g," ");return s.length<=t?s:`${s.slice(0,Math.max(0,t-1)).trimEnd()}...`}function So(e,t={}){const s=t.now??new Date().toISOString();return{createdAt:s,id:t.id??Gi(),prompt:e,updatedAt:s}}function Co(e,t){return e.filter(s=>s.id!==t)}function Wi(e,t,s){const r=s?.trim();return e.flatMap(a=>a.id!==t?[a]:r?[So(r)]:[])}function Ki(e,t,s){return s?Co(e,t):e}function vr(e,t,s=[]){return e[t]??s}function Xi(e,t,s,r=[]){const a=vr(e,t,r),i=s(a);return Object.is(a,i)?e:{...e,[t]:i}}function Qi({drafts:e,sendingDraftId:t,onDeleteDraft:s,onEditDraft:r,onSteerDraft:a}){return e.length===0?null:n.jsx("div",{className:"composer-steer-stack","aria-label":"Steer drafts",children:e.map(i=>{const c=t===i.id,u=cr(i.prompt);return n.jsxs("div",{className:`composer-steer-row ${c?"sending":""}`,children:[n.jsx("span",{className:"composer-steer-row-icon","aria-hidden":"true",children:n.jsx(Ri,{size:13})}),n.jsx("span",{className:"composer-steer-row-text",title:i.prompt,children:u}),n.jsxs("button",{type:"button",className:"composer-steer-row-action primary",disabled:c,"aria-label":`Steer: ${cr(i.prompt,60)}`,onClick:()=>a(i.id),children:[n.jsx(Qa,{size:12}),n.jsx("span",{children:c?"Sending":"Steer"})]}),n.jsx("button",{type:"button",className:"composer-steer-row-icon-button",disabled:c,"data-tooltip":"Delete steer draft","aria-label":"Delete steer draft",onClick:()=>s(i.id),children:n.jsx(ko,{size:13})}),n.jsx("button",{type:"button",className:"composer-steer-row-action",disabled:c,"aria-label":`Edit: ${cr(i.prompt,60)}`,onClick:()=>r(i),children:n.jsx("span",{children:"Edit"})})]},i.id)})})}const Ji=/\b(?:https?:\/\/)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai)\/[^\s<>"'`]+/gi,Zi=/\b(?:git@)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai):[^\s<>"'`]+/gi,Yi=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"]),el=new Set(["account","api","dashboard","docs","install.sh","login","logout","opchat","sandboxes","settings"]);function tl(e){const t=e.toLowerCase().replace(/^www\./,"");return t==="github.com"?"github":t==="openpond.ai"||t.endsWith(".openpond.ai")?"openpond":null}function nl(e){return e==="github"?Yi:el}function Mo(e){let t=e;for(;/[.,;!?]$/.test(t);)t=t.slice(0,-1);for(;sl(t);)t=t.slice(0,-1);return t}function sl(e){const t=e.at(-1);if(!t||!")]}".includes(t))return!1;const s=t===")"?"(":t==="]"?"[":"{";let r=0;for(const a of e)a===s&&(r+=1),a===t&&(r-=1);return r<0}function rl(e){return e.replace(/\.git$/i,"")}function Eo(e){try{return decodeURIComponent(e)}catch{return e}}function ol(e){return rl(Eo(e.trim()))}function No(e){const t=e.host.toLowerCase().replace(/^www\./,""),s=tl(t);if(!s)return null;const r=Eo(e.owner?.trim()??""),a=ol(e.repo??"");return!r||!a||nl(s).has(r.toLowerCase())?null:{end:e.end,host:t,label:`${r}/${a}`,provider:s,repo:a,start:e.start,url:e.url,owner:r}}function al(e,t){const s=Mo(e);if(!s)return null;try{const r=new URL(/^https?:\/\//i.test(s)?s:`https://${s}`),a=r.pathname.split("/").filter(Boolean);return No({end:t+s.length,host:r.hostname,owner:a[0],repo:a[1],start:t,url:s})}catch{return null}}function il(e,t){const s=Mo(e),r=/^(?:git@)?([^:]+):(.+)$/i.exec(s);if(!r)return null;const a=r[1]?.trim()??"",i=(r[2]??"").split("/").filter(Boolean);return No({end:t+s.length,host:a,owner:i[0],repo:i[1],start:t,url:s})}function Gr(e,t,s){const r=[];t.lastIndex=0;let a;for(;a=t.exec(e);){const i=a[0]??"",c=s(i,a.index);c&&r.push(c)}return r}function ll(e){if(!e)return[];const t=[...Gr(e,Ji,al),...Gr(e,Zi,il)].sort((r,a)=>r.start-a.start||a.end-r.end),s=[];for(const r of t)s.some(a=>r.start<a.end&&r.end>a.start)||s.push(r);return s.sort((r,a)=>r.start-a.start)}const cl=10,ul=340,dl=320,fl=160,ml=56;function jt(e,t=0){const s=Number.parseFloat(e);return Number.isFinite(s)?s:t}function ur(e){if(!e)return;e.style.height="auto";const t=window.getComputedStyle(e),s=jt(t.fontSize,16),r=jt(t.lineHeight,s*1.45),a=jt(t.paddingTop)+jt(t.paddingBottom),i=jt(t.borderTopWidth)+jt(t.borderBottomWidth),c=jt(t.minHeight,66),u=Math.max(c,Math.ceil(r*cl+a+i)),p=Math.max(c,Math.min(e.scrollHeight,u));e.style.height=`${p}px`,e.style.overflowY=e.scrollHeight>u?"auto":"hidden"}function dr(e,t){const s=e.getBoundingClientRect(),r=t.getBoundingClientRect(),a=window.getComputedStyle(e),i=jt(a.paddingLeft,14),c=jt(a.paddingTop,15),u=Math.max(0,r.width-16),p=Math.min(ul,u),f=s.left-r.left+i-8,x=Math.max(8,Math.min(f,r.width-p-8)),S=Math.max(8,s.top-r.top+c+2);return{left:x,top:S,width:p}}function hl(e){const t=e.getBoundingClientRect(),s=Math.floor(t.top-ml);return{maxHeight:Math.max(fl,Math.min(dl,s))}}const pl="[data-inline-token='true']",xl="[data-inline-repo-link='true']",bl="[data-inline-connected-app-mention='true']";function cs(e){return e instanceof HTMLElement&&e.matches(pl)}function us(e){return e instanceof HTMLElement&&e.matches(xl)}function ds(e){return e instanceof HTMLElement&&e.matches(bl)}function Bs(e,t){return Math.max(0,Math.min(e,t))}function $n(e,t){return e?Bs(e.position,t.length):null}function gl(e,t,s,r=!1){const a=$n(t,s),i=Bs(e,s.length);return a===null?i:i>a||r&&i===a?i+1:i}function Wr(e,t,s){const r=$n(t,s);return Bs(r===null?e:e>r?e-1:e,s.length)}function fr(e){let t="",s=null;function r(a){if(us(a)){t+=a.dataset.repoUrl??"";return}if(ds(a)){t+=a.dataset.connectedMentionText??"";return}if(cs(a)){s=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:s}}function nn(e){if(us(e))return e.dataset.repoUrl?.length??0;if(ds(e))return e.dataset.connectedMentionText?.length??0;if(cs(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(s=>{t+=nn(s)}),t}function Kr(e,t,s){if(!t||t!==e&&!e.contains(t))return null;let r=0,a=!1;function i(c){if(!a){if((cs(c)||us(c)||ds(c))&&(c===t||c.contains(t))){(c!==t||s>0)&&(r+=nn(c)),a=!0;return}if(cs(c)||us(c)||ds(c)){r+=nn(c);return}if(c===t){if(c.nodeType===Node.TEXT_NODE)r+=s;else{const u=Array.from(c.childNodes).slice(0,s);for(const p of u)r+=nn(p)}a=!0;return}if(c.nodeType===Node.TEXT_NODE){r+=c.textContent?.length??0;return}c instanceof HTMLBRElement||c.childNodes.forEach(i)}}return i(e),a?r:null}function mr(e){const t=window.getSelection();if(!t||t.rangeCount===0)return null;const s=Kr(e,t.anchorNode,t.anchorOffset),r=Kr(e,t.focusNode,t.focusOffset);return s===null||r===null?null:{anchor:s,focus:r}}function Xr(e,t){let s=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 i(c){if(cs(c)||us(c)||ds(c)){const u=nn(c);return s<=0?r(c):s<=u?a(c):(s-=u,null)}if(c.nodeType===Node.TEXT_NODE){const u=c.textContent?.length??0;return s<=u?{node:c,offset:s}:(s-=u,null)}if(c instanceof HTMLBRElement)return null;for(const u of c.childNodes){const p=i(u);if(p)return p}return null}return i(e)??{node:e,offset:e.childNodes.length}}function Ao(e,t){const s=window.getSelection();if(!s)return;const r=Xr(e,t.anchor),a=Xr(e,t.focus);if(s.removeAllRanges(),typeof s.setBaseAndExtent=="function"){s.setBaseAndExtent(r.node,r.offset,a.node,a.offset);return}const i=document.createRange(),c=t.anchor<=t.focus,u=c?r:a,p=c?a:r;i.setStart(u.node,u.offset),i.setEnd(p.node,p.offset),s.addRange(i)}function kl(e,t){Ao(e,{anchor:t,focus:t})}function Qr(e){document.execCommand("insertText",!1,e)}function yl(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 vl(){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 Jr(e){const t=document.createElement("span");t.className="composer-invocation-pill",t.contentEditable="false",t.dataset.inlineToken="true";const s=document.createElement("button");s.type="button",s.className="composer-invocation-remove",s.setAttribute("aria-label",`Remove ${e.label}`),s.addEventListener("mousedown",i=>i.preventDefault()),s.addEventListener("click",i=>{i.preventDefault(),e.onRemove()});const r=document.createElement("span");r.className="composer-invocation-icon",r.setAttribute("aria-hidden","true"),r.innerHTML=yl(e.icon),s.append(r),s.insertAdjacentHTML("beforeend",vl());const a=document.createElement("span");return a.className="composer-invocation-label",a.textContent=e.label,t.append(s,a),t}function jl(e){return e.provider==="github"?Sr("github"):na}function wl(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 s=document.createElement("img");s.className="composer-repo-link-icon",s.src=jl(e),s.alt="",s.draggable=!1;const r=document.createElement("span");return r.className="composer-repo-link-label",r.textContent=e.label,t.append(s,r),t}function Sl(e){return Sr(e)}function Cl(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 s=document.createElement("img");s.className="composer-connected-app-mention-icon",s.src=Sl(e.provider),s.alt="",s.draggable=!1;const r=document.createElement("span");return r.className="composer-connected-app-mention-label",r.textContent=e.displayText,t.append(s,r),t}function Ml(e,t){const s=ll(e);return t===null?s:s.filter(r=>t<=r.start||t>=r.end)}function El(e,t,s){const r=ta(e,t);return s===null?r:r.filter(a=>s<=a.start||s>=a.end)}function To(e,t,s){const r=[...Ml(e,t).map(c=>({end:c.end,kind:"repo",link:c,start:c.start})),...El(e,s,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 i=0;for(const c of r)c.start<i||(a.push(c),i=c.end);return a}function Nl(e,t,s){return To(e,t,s).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 Al(e,t,s,r){const a=$n(s,t),i=To(t,a,r);let c=!1;function u(x){x&&e.append(document.createTextNode(x))}function p(x,S){if(!s||a===null||c||a<x||a>S){u(t.slice(x,S));return}u(t.slice(x,a)),e.append(Jr(s)),c=!0,u(t.slice(a,S))}e.replaceChildren();let f=0;for(const x of i)p(f,x.start),x.kind==="repo"?e.append(wl(x.link)):e.append(Cl(x.mention)),f=x.end;p(f,t.length),s&&!c&&e.append(Jr(s))}const Tl=o.forwardRef(function({connectedAppMentions:t=[],disabled:s,onCursorChange:r,onKeyDown:a,onPasteFiles:i,onPasteTextAsAttachment:c,onPromptChange:u,onTokenPositionChange:p,placeholder:f,prompt:x,token:S},m){const d=o.useRef(null),k=`${S?`${S.key}:${$n(S,x)??0}`:"none"}|${Nl(x,$n(S,x),t)}`,E=o.useRef(null),b=x.length===0&&!S;o.useImperativeHandle(m,()=>({get element(){return d.current},getPrompt(){const j=d.current;return j?fr(j).text:x},focusAtPromptIndex(j,L){const z=d.current;if(!z)return;const H=gl(j,S,x,L?.afterToken);z.focus(),kl(z,H),ur(z)},resize(){ur(d.current)}}),[x,S]),o.useLayoutEffect(()=>{const j=d.current;if(!j)return;const L=E.current!==k;E.current=k;const z=fr(j);if(L||x===""||z.text!==x||z.tokenPosition!==$n(S,x)){const q=document.activeElement===j?mr(j):null;Al(j,x,S,t),j.dataset.empty=x.length===0&&!S?"true":"false",q&&Ao(j,q)}ur(j)},[t,x,S,k]);function N(){const j=d.current;if(!j)return;const L=mr(j)?.focus??nn(j),z=fr(j),H=Wr(L,S,z.text);j.dataset.empty=z.text.length===0&&!S?"true":"false",p(z.tokenPosition),r(H),u(z.text,H)}function w(){N(),window.requestAnimationFrame(N)}function T(){const j=d.current;if(!j)return;const L=mr(j)?.focus??nn(j);r(Wr(L,S,x))}return n.jsx("div",{ref:d,className:"composer-inline-input",role:"textbox","aria-multiline":"true",contentEditable:!s,suppressContentEditableWarning:!0,"data-empty":b?"true":"false","data-placeholder":f,onBeforeInput:j=>{j.nativeEvent.inputType==="insertParagraph"&&(j.preventDefault(),Qr(`
|
|
3
|
+
`),w())},onInput:N,onKeyDown:j=>{a(j)},onKeyUp:T,onMouseUp:T,onPaste:j=>{j.preventDefault();const L=Array.from(j.clipboardData.files);if(L.length>0&&i){i(L);return}const z=j.clipboardData.getData("text/plain");z&&(c?.(z)||(Qr(z),w()))}})});function Rl(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 Il(e,t,s,r,a,i,c){return e==="Enter"&&(t||s)&&!r&&a==="work"&&i==="chat"&&c}function $l(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 Zr(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 _l(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 Pl(e){return e.kind==="command"?`${e.command.command} ${e.command.label}`:e.kind==="app-context"?e.app.name:e.kind==="skill"?Hs(e.skill):Cr(e.action)}function Ll(e){return e.kind==="command"?oa(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||aa(e.action)}function Ol(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 Dl(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"?Hs(e.skill):ra(e.action)}function zl(e){if(e.kind==="action")return ia(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(s=>s.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 Fl(e){return e.kind==="files"?"files":e.kind==="folder"?"folder":e.kind==="slash"?`slash:${_l(e.item)}`:`mention:${Ol(e.item)}`}function Ro(e){return e.kind==="files"?"Files and folders":e.kind==="folder"?"Local folder":e.kind==="slash"?Pl(e.item):Dl(e.item)}function Io(e){return e.kind==="files"?"Attach images, documents, or other files":e.kind==="folder"?"Share a bounded folder as Work input":e.kind==="slash"?Ll(e.item):zl(e.item)}function Bl(e,t){const s=t.toLowerCase().split(/\s+/).filter(Boolean);if(s.length===0)return!0;const r=`${Ro(e)} ${Io(e)}`.toLowerCase();return s.every(a=>r.includes(a))}function Ul(e,t){const s=t.trimStart(),r=s.startsWith("/")?"slash":s.startsWith("@")?"mentions":null,a=r?s.slice(1).trimStart():s,i=r?e.filter(p=>p.id===r||p.queryScope===r||p.queryScopes?.includes(r)):e;if(!a)return i;const c=i.map(p=>({...p,items:p.items.filter(f=>Bl(f,a))})).filter(p=>p.items.length>0);return c.length>0?c:[{...(r?i[0]:null)??{id:"results",label:"Results"},emptyLabel:r==="slash"?"No slash commands match":r==="mentions"?"No mentions match":"No commands match",items:[]}]}function Hl(e){if(e.kind==="files")return n.jsx(Fs,{size:14});if(e.kind==="folder")return n.jsx(Fs,{size:14});if(e.kind==="slash"){const s=e.item;return s.kind==="command"?s.command.id==="agent"?n.jsx(ir,{size:14}):s.command.id==="skill"?n.jsx(sa,{size:14}):n.jsx(lr,{size:14}):s.kind==="app-context"?n.jsx(Ur,{size:14}):s.kind==="skill"?n.jsx(tn,{size:14}):Zr(s.action)?n.jsx(ir,{size:14}):n.jsx(lr,{size:14})}const t=e.item;return t.kind==="connected-app"?n.jsx("img",{alt:"",className:"composer-provider-mention-icon",draggable:!1,src:Sr(t.app.provider)}):t.kind==="action"?Zr(t.action)?n.jsx(ir,{size:14}):n.jsx(lr,{size:14}):t.kind==="skill"?n.jsx(tn,{size:14}):n.jsx(Ur,{size:14})}function ql(e){if(e.kind==="slash"&&e.item.kind==="app-context"||e.kind==="mention"&&e.item.kind==="app")return e.item.app.id}function Er({ariaLabel:e,className:t="",id:s,menuIndex:r,menuRef:a,onSelect:i,onSelectIndex:c,sections:u,style:p,variant:f}){const x=o.useRef(null),S=u.reduce((d,v)=>d+v.items.length,0);o.useEffect(()=>{if(f==="add"&&r===0){const d=x.current?.closest(".composer-command-menu");d&&(d.scrollTop=0);return}x.current?.scrollIntoView({block:"nearest"})},[S,r,f]);let m=0;return n.jsx("div",{ref:a,id:s,className:`composer-project-menu composer-slash-menu ${t} composer-command-menu composer-command-menu-${f}`.trim(),role:f==="add"?"menu":"listbox","aria-label":e,style:p,children:u.map(d=>{const v=m;return m+=d.items.length,n.jsxs("div",{className:`composer-command-section ${d.grid?"composer-command-section-grid":""}`.trim(),role:"group","aria-label":d.label,children:[n.jsx("div",{className:"composer-command-section-title",children:d.label}),d.items.length>0?d.items.map((k,E)=>{const b=v+E,N=b===r;return n.jsxs("button",{type:"button",role:f==="add"?"menuitem":"option",ref:N?x:void 0,"aria-selected":f==="typed"?N:void 0,className:`composer-project-option ${N?"selected":""} composer-command-option`,"data-app-context-id":ql(k),onFocus:()=>c(b),onMouseEnter:()=>c(b),onMouseDown:w=>{w.preventDefault()},onClick:()=>i(k),children:[Hl(k),n.jsxs("span",{children:[n.jsx("strong",{children:Ro(k)}),n.jsx("small",{children:Io(k)})]}),f==="typed"&&N?n.jsx(wt,{size:14}):n.jsx("span",{"aria-hidden":"true"})]},Fl(k))}):n.jsx("div",{className:"composer-menu-empty",children:d.emptyLabel??"No items available"})]},d.id)})})}function Vl({mentionIndex:e,items:t,onSelect:s,onSelectIndex:r,style:a}){return n.jsx(Er,{ariaLabel:"Mentions",className:"composer-mention-menu",menuIndex:e,sections:[{emptyLabel:"No matching mentions",id:"mentions",items:t.map(i=>({kind:"mention",item:i})),label:"@"}],style:a,variant:"typed",onSelect:i=>{i.kind==="mention"&&s(i.item)},onSelectIndex:r})}function $o(){return!!(navigator.mediaDevices&&typeof AudioContext<"u")}async function Gl(){if(!$o())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,s=t.createMediaStreamSource(e),r=t.createScriptProcessor(4096,1,1),a=t.createGain();a.gain.value=0;const i={audioContext:t,chunks:[],processor:r,silentGain:a,source:s,stream:e,startedAt:performance.now(),stopped:!1};return r.onaudioprocess=c=>{if(i.stopped)return;const u=c.inputBuffer.getChannelData(0);i.chunks.push(new Float32Array(u))},s.connect(r),r.connect(a),a.connect(t.destination),{stop:()=>Yr(i,!0),cancel:()=>Yr(i,!1).then(()=>{})}}async function Yr(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 s=Math.max(0,performance.now()-e.startedAt);if(!t)return{blob:new Blob([],{type:"audio/wav"}),durationMs:s,sampleRate:e.audioContext.sampleRate};const r=Wl(e.chunks);if(r.length===0)throw new Error("No microphone audio was captured.");return{blob:Kl(r,e.audioContext.sampleRate),durationMs:s,sampleRate:e.audioContext.sampleRate}}function Wl(e){const t=e.reduce((a,i)=>a+i.length,0),s=new Float32Array(t);let r=0;for(const a of e)s.set(a,r),r+=a.length;return s}function Kl(e,t){const a=e.length*2,i=new ArrayBuffer(44+a),c=new DataView(i);Ps(c,0,"RIFF"),c.setUint32(4,36+a,!0),Ps(c,8,"WAVE"),Ps(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),Ps(c,36,"data"),c.setUint32(40,a,!0);let u=44;for(const p of e){const f=Math.max(-1,Math.min(1,p));c.setInt16(u,f<0?f*32768:f*32767,!0),u+=2}return new Blob([i],{type:"audio/wav"})}function Ps(e,t,s){for(let r=0;r<s.length;r+=1)e.setUint8(t+r,s.charCodeAt(r))}const Xl=12e4,_o="openpond.voice.setupNoticeAcknowledged",Ql="Voice dictation runs locally with whisper.cpp. OpenPond uses a local whisper-cli binary and downloads the voice model on first use.";function eo({connection:e,buttonClassName:t,wrapperClassName:s="",disabled:r=!1,iconSize:a=16,language:i="en",showToast:c,onTranscript:u}){const p=o.useRef(null),f=o.useRef(null),x=o.useRef(e),S=o.useRef(r),m=o.useRef(Zl());x.current=e,S.current=r;const[d,v]=o.useState("idle"),[k,E]=o.useState(null),b=d==="transcribing",N=d==="starting",w=d==="recording",T=o.useCallback(()=>{f.current!==null&&(window.clearTimeout(f.current),f.current=null)},[]),j=o.useCallback(async()=>{T();const V=p.current;p.current=null,v("idle"),V&&await V.cancel().catch(()=>{})},[T]),L=o.useCallback(async V=>{const J=x.current;if(!J)throw new Error("Voice input is still connecting.");const X=await Ne.voiceTranscriptionStatus(J);if(!X.binaryPath)throw new Error(X.installHint??"Install whisper.cpp to use dictation.");!X.modelReady&&X.canDownloadModel?E(`Downloading ${X.modelName} voice model...`):E("Transcribing voice...");const Ie=await Ne.transcribeVoice(J,{audioBase64:await Jl(V.blob),durationMs:Math.round(V.durationMs),language:i,mimeType:"audio/wav"});u(Ie.text),E(null)},[i,u]),z=o.useCallback(async()=>{T();const V=p.current;if(p.current=null,!!V){v("transcribing"),E("Transcribing voice...");try{const J=await V.stop();await L(J)}catch(J){E(to(J))}finally{v("idle")}}},[T,L]),H=o.useCallback(async()=>{if(S.current)return;if(!x.current){E("Voice input is still connecting.");return}if(!$o()){E("Voice recording is not available in this browser.");return}E(null),v("starting");try{if(await window.openpond?.requestMicrophoneAccess?.()===!1)throw new Error("Microphone access is denied.");const X=await Gl();p.current=X,v("recording"),E("Recording..."),f.current=window.setTimeout(()=>{z()},Xl)}catch(J){E(to(J)),await j()}},[j,z]),q=o.useCallback(()=>{if(m.current){H();return}c(Ql,"info",{actionLabel:"Continue",persistent:!0,onAction:()=>{m.current=!0,Yl(),H()}})},[H,c]);return o.useEffect(()=>{if(!k||w||b)return;const V=window.setTimeout(()=>E(null),7e3);return()=>window.clearTimeout(V)},[b,k,w]),o.useEffect(()=>()=>{j()},[j]),n.jsxs("span",{className:`voice-input-control ${s} ${N?"starting":""} ${w?"recording":""}`.trim(),children:[n.jsx("button",{type:"button",className:`${t} ${N?"starting":""} ${w?"recording active":""}`.trim(),"aria-label":w?"Stop dictation":N?"Starting dictation":"Dictate","aria-pressed":w,disabled:r||b||N,onClick:()=>{w?z():q()},children:w?n.jsx(gr,{size:Math.max(12,a-3),fill:"currentColor"}):n.jsx(Mi,{size:a})}),k?n.jsx("span",{className:"voice-input-status",role:"status",children:k}):null]})}async function Jl(e){const t=new Uint8Array(await e.arrayBuffer());let s="";for(let r=0;r<t.length;r+=32768){const a=t.subarray(r,r+32768);s+=String.fromCharCode(...a)}return window.btoa(s)}function to(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 Zl(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(_o)==="true"}catch{return!1}}function Yl(){if(!(typeof window>"u"))try{window.localStorage.setItem(_o,"true")}catch{}}const ec=new Set(["codex","openai","xai","openrouter","deepseek","zai","moonshot","together","groq","custom-openai-compatible","setup-provider"]);function tc({surface:e="chat",teamUseModel:t=!1,teamUseModelLocked:s=!1,onTeamUseModelChange:r,addFiles:a,addMenuId:i,addMenuOpen:c,addMenuRef:u,busy:p,codexPermissionMode:f,codexReasoningEffort:x,connection:S,contextStatusStyle:m,contextStatusTooltipId:d,contextWindowStatus:v,disabled:k,dropdownPlacement:E,fileInputRef:b,modelValue:N,modelOptions:w=[],openPondCommandAccessMode:T,showCommandAccess:j=!0,profileTarget:L,onCodexPermissionModeChange:z,onCodexReasoningEffortChange:H,onOpenPondCommandAccessModeChange:q,onProfileTargetChange:V,onModelChange:J,onOpenFilePicker:X,onProviderChange:Ie,onProviderSetupOpen:pe,onStop:ue,onToggleAddMenu:ne,onTranscript:me,provider:C,providerSettings:M,providerOptions:O,running:$,sendDisabled:_e,sendTooltip:Ae,showToast:Qe,stopIcon:Se="stop",stopLabel:G="Stop response"}){const de=la(C,N,M),A=o.useMemo(()=>nc({currentModelOptions:w,currentProvider:C,providerOptions:O,providerSettings:M}),[w,C,O,M]),D=o.useMemo(()=>A.filter(B=>ec.has(B.provider)),[A]),F=(B,je)=>{if(B===C){J(je);return}J(je),Ie(B)};return e==="team"?n.jsxs("div",{className:"composer-primary-controls team-chat-composer-controls",children:[n.jsx("button",{type:"button",className:"composer-icon","aria-label":"Add photos and files",disabled:k,onClick:X,children:n.jsx(_n,{size:18})}),n.jsx("input",{ref:b,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:B=>{a(Array.from(B.currentTarget.files??[])),B.currentTarget.value=""}}),n.jsxs("label",{className:"team-chat-model-toggle",children:[n.jsx("input",{type:"checkbox",checked:t,disabled:p||s,onChange:B=>r?.(B.currentTarget.checked)}),n.jsx("span",{children:"Use model"})]}),n.jsx("div",{className:"composer-spacer"}),t?n.jsx(Vr,{disabled:p,model:N,modelGroups:D,placement:E,provider:C,reasoningEffort:x,showReasoning:de,onModelSelectionChange:F,onProviderSetupOpen:pe,onReasoningEffortChange:H}):null,n.jsx(eo,{buttonClassName:"composer-icon",connection:S,disabled:k,iconSize:16,wrapperClassName:"composer-voice-input",showToast:Qe,onTranscript:me}),$?n.jsx("button",{type:"button",className:"send-button stop-button","data-tooltip":G,"aria-label":G,onClick:ue,children:n.jsx(gr,{size:13,fill:"currentColor"})}):n.jsx("button",{className:"send-button",disabled:_e,"data-tooltip":Ae,"aria-label":Ae,children:n.jsx(Br,{size:18})})]}):n.jsxs("div",{className:"composer-primary-controls",children:[n.jsxs("div",{className:"composer-add-control open-up",ref:u,children:[n.jsx("button",{type:"button",className:`composer-icon ${c?"active":""}`,"aria-label":"Add to message","aria-haspopup":"menu","aria-expanded":c,"aria-controls":c?i:void 0,disabled:k,onMouseDown:B=>B.preventDefault(),onClick:ne,children:n.jsx(_n,{size:18})}),n.jsx("input",{ref:b,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:B=>{a(Array.from(B.currentTarget.files??[])),B.currentTarget.value=""}})]}),j&&C==="codex"?n.jsx(zr,{compact:!0,className:"permission-select",icon:n.jsx(ai,{size:14}),placement:E,label:"Codex permissions",tooltip:_r.find(B=>B.value===f)?.label,value:f,options:_r,disabled:p,onChange:B=>z(B)}):j?n.jsx(zr,{compact:!0,className:"permission-select",icon:n.jsx(mo,{size:14}),placement:E,label:"Command access",tooltip:Pr.find(B=>B.value===(T==="disabled"?"ask":T))?.label,value:T==="disabled"?"ask":T,options:Pr,disabled:p,onChange:B=>q(B)}):null,L&&V?n.jsx(wo,{busy:p,placement:E,state:L,onChange:V}):null,n.jsx("div",{className:"composer-spacer"}),n.jsxs("span",{className:`context-status-shell ${v.tone}`,style:m,children:[n.jsx("span",{className:`composer-status ${v.tone}`,role:v.maxTokens===null?"img":"meter","aria-label":v.tooltip,"aria-describedby":d,"aria-valuemin":v.maxTokens===null?void 0:0,"aria-valuemax":v.maxTokens??void 0,"aria-valuenow":v.maxTokens===null?void 0:v.usedTokens,tabIndex:0}),n.jsxs("span",{className:"context-status-tooltip",id:d,role:"tooltip",children:[n.jsx("span",{className:"context-status-tooltip-title",children:"Context window"}),n.jsxs("span",{className:"context-status-tooltip-main",children:[n.jsx("span",{children:v.summary}),n.jsx("span",{children:v.tokensLabel})]}),v.maxTokens!==null&&n.jsx("span",{className:"context-status-tooltip-bar","aria-hidden":"true",children:n.jsx("span",{})}),v.detail?n.jsx("span",{className:"context-status-tooltip-detail",children:v.detail}):null]})]}),n.jsx(Vr,{disabled:p,model:N,modelGroups:A,placement:E,provider:C,reasoningEffort:x,showReasoning:de,onModelSelectionChange:F,onProviderSetupOpen:pe,onReasoningEffortChange:H}),n.jsx(eo,{buttonClassName:"composer-icon",connection:S,disabled:k,iconSize:16,wrapperClassName:"composer-voice-input",showToast:Qe,onTranscript:me}),$?n.jsx("button",{type:"button",className:"send-button stop-button","data-tooltip":G,"aria-label":G,onClick:ue,children:Se==="pause"?n.jsx(Ja,{size:15}):n.jsx(gr,{size:13,fill:"currentColor"})}):n.jsx("button",{className:"send-button",disabled:_e,"data-tooltip":Ae,"aria-label":Ae,children:n.jsx(Br,{size:18})})]})}function nc({currentModelOptions:e,currentProvider:t,providerOptions:s,providerSettings:r}){return s.flatMap(a=>{if(a.value==="setup-provider")return[];const i=a.value,c=i===t?e:ho(i,r);return c.length>0?[{provider:i,label:a.label,defaultModel:ca(i,r),options:c}]:[]})}function sc(e){return e.description||e.path}function rc({items:e,onSelect:t,onSelectIndex:s,skillIndex:r,style:a}){const i=o.useRef(null);return o.useEffect(()=>{i.current?.scrollIntoView({block:"nearest"})},[e.length,r]),n.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 n.jsxs("button",{type:"button",className:`composer-project-option ${p?"selected":""}`,ref:p?i:void 0,role:"option","aria-selected":p,onMouseEnter:()=>s(u),onMouseDown:f=>{f.preventDefault(),t(c)},children:[n.jsx(tn,{size:14}),n.jsxs("span",{children:[n.jsx("strong",{children:Hs(c)}),n.jsx("small",{children:sc(c)})]}),p?n.jsx(wt,{size:14}):n.jsx("span",{"aria-hidden":"true"})]},c.name)}):n.jsx("div",{className:"composer-menu-empty",role:"option","aria-selected":"false",children:"No matching skills"})})}function oc({actionCatalogCount:e,actionIndex:t,items:s,onSelect:r,onSelectIndex:a,style:i}){return n.jsx(Er,{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:s.map(c=>({kind:"slash",item:c})),label:"/"}],style:i,variant:"typed",onSelect:c=>{c.kind==="slash"&&r(c.item)},onSelectIndex:a})}function ac({busy:e,initialDescription:t,open:s,onClose:r,onSubmit:a}){const[i,c]=o.useState(""),[u,p]=o.useState(()=>t.trim()),f=i.trim(),x=u.trim(),S=e||!f||!x;if(o.useEffect(()=>{s&&(c(""),p(t.trim()))},[t,s]),o.useEffect(()=>{if(!s||e)return;function d(v){v.key==="Escape"&&r()}return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,r,s]),!s)return null;async function m(){if(S)return;await a({title:f,description:x})&&(c(""),p(""))}return n.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onMouseDown:e?void 0:r,children:n.jsxs("section",{className:"git-dialog submit-issue-dialog",role:"dialog","aria-modal":"true","aria-label":"Submit GitHub issue",onMouseDown:d=>d.stopPropagation(),onKeyDown:d=>{d.key!=="Enter"||!(d.target instanceof HTMLInputElement)||(d.preventDefault(),m())},children:[n.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",onClick:r,children:n.jsx(Us,{size:16})}),n.jsx("div",{className:"git-dialog-icon",children:n.jsx(ua,{size:18})}),n.jsx("h2",{children:"Submit issue"}),n.jsxs("div",{className:"git-dialog-row submit-issue-repo-row",children:[n.jsx("span",{children:"Repository"}),n.jsx("strong",{children:da})]}),n.jsxs("label",{className:"git-dialog-field",children:[n.jsx("span",{children:"Title"}),n.jsx("input",{autoFocus:!0,disabled:e,placeholder:"Short issue title",value:i,onChange:d=>c(d.target.value)})]}),n.jsxs("label",{className:"git-dialog-field",children:[n.jsx("span",{children:"Description"}),n.jsx("textarea",{disabled:e,placeholder:"What happened, what you expected, and any useful context",value:u,onChange:d=>p(d.target.value)})]}),n.jsxs("div",{className:"git-dialog-footer",children:[n.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:r,children:"Cancel"}),n.jsx("button",{className:"git-dialog-primary",disabled:S,type:"button",onClick:()=>{m()},children:"Submit issue"})]})]})})}const ic=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"]),lc=new Set(["csv","ods","tsv","xls","xlsm","xlsx"]),cc=new Set(["7z","bz2","gz","rar","tar","tgz","xz","zip"]),uc=new Set(["doc","docx","epub","md","odt","pdf","rtf","txt"]),dc=new Set(["key","odp","ppt","pptx"]);function Po(e){const t=e.mediaType.toLowerCase(),s=e.name.split(".").pop()?.toLowerCase()??"";return e.kind==="image"||t.startsWith("image/")?"image":t.startsWith("audio/")?"audio":t.startsWith("video/")?"video":lc.has(s)||t.includes("spreadsheet")||t.includes("excel")?"spreadsheet":cc.has(s)||t.includes("zip")||t.includes("compressed")?"archive":dc.has(s)||t.includes("presentation")||t.includes("powerpoint")?"presentation":ic.has(s)?"code":e.kind==="text"||uc.has(s)||t.startsWith("text/")||t==="application/pdf"||t.includes("document")||t.includes("msword")?"document":"file"}function fc(e){if(e.mediaType.toLowerCase()==="application/pdf")return"PDF";const t=Po(e);return t==="spreadsheet"?"Spreadsheet":t.charAt(0).toUpperCase()+t.slice(1)}function mc(e){return`${e.toLocaleString()} ${e===1?"line":"lines"}`}const hc={archive:ei,audio:gi,code:Ya,document:tn,file:Za,image:Si,presentation:Ai,spreadsheet:yi,video:ji};function pc({attachment:e,...t}){const s=hc[Po(e)];return n.jsx(s,{...t})}const xc=new Set(["csv","css","html","js","json","jsx","log","md","mdx","py","sql","svg","ts","tsx","txt","xml","yaml","yml"]),bc=2e3,gc=/^Pasted text(?: (\d+))?\.txt$/;function kc(e,t){if(e.length<bc)return null;const s=new Set;for(const i of t){const c=gc.exec(i.name);c&&s.add(c[1]?Number(c[1]):1)}let r=1;for(;s.has(r);)r+=1;const a=r===1?"Pasted text.txt":`Pasted text ${r}.txt`;return new File([e],a,{type:"text/plain"})}function yc({attachment:e,onRemove:t}){const[s,r]=o.useState(null);o.useEffect(()=>{if(e.kind!=="text")return;let i=!1;return e.file.text().then(c=>{i||r(jo(c))},()=>{}),()=>{i=!0}},[e.file,e.kind]);const a=e.kind!=="image";return n.jsxs("div",{className:`composer-attachment-card ${e.kind}`,children:[n.jsx("div",{className:"composer-attachment-thumb","aria-hidden":"true",children:e.previewUrl?n.jsx("img",{alt:"",decoding:"async",src:e.previewUrl}):n.jsx(pc,{attachment:e,size:22})}),a?n.jsxs("div",{className:"composer-attachment-meta",children:[n.jsx("strong",{children:e.name}),n.jsx("span",{children:e.kind==="text"&&s!==null?mc(s):fc(e)})]}):null,n.jsx("button",{type:"button",className:"composer-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:n.jsx(Us,{size:14})})]})}function vc(){return globalThis.crypto?.randomUUID?.()??`attachment-${Date.now()}-${Math.random().toString(36).slice(2)}`}function jc(e){if(e.type.startsWith("image/"))return"image";if(e.type.startsWith("text/"))return"text";const t=e.name.split(".").pop()?.toLowerCase()??"";return xc.has(t)?"text":"file"}async function wc(e){const[t,s]=await Promise.all([Cc(e.file),e.kind==="text"?Mc(e.file):Promise.resolve(void 0)]);return{id:e.id,name:e.name,mediaType:e.mediaType,sizeBytes:e.sizeBytes,kind:e.kind,...s!==void 0?{lineCount:jo(s)}:{},...e.relativePath?{relativePath:e.relativePath}:{},contentsBase64:t,...s?{text:Ec(s)}:{}}}function Sc(e){const t=["KB","MB","GB"];let s=e/1024;for(const r of t){if(s<1024)return`${s.toFixed(s>=10?0:1)} ${r}`;s/=1024}return`${s.toFixed(0)} TB`}function Cc(e){return new Promise((t,s)=>{const r=new FileReader;r.onload=()=>{const a=typeof r.result=="string"?r.result:"",[,i=""]=a.split(",",2);t(i)},r.onerror=()=>s(r.error??new Error("Failed to read file")),r.readAsDataURL(e)})}function Mc(e){return new Promise((t,s)=>{const r=new FileReader;r.onload=()=>t(typeof r.result=="string"?r.result:""),r.onerror=()=>s(r.error??new Error("Failed to read file")),r.readAsText(e)})}function Ec(e){if(e.length<=Lt.maxTextChars)return e;const t=`
|
|
4
|
+
[attachment text truncated]`;return`${e.slice(0,Math.max(0,Lt.maxTextChars-t.length))}${t}`}function Nc(){const e=o.useRef([]),t=o.useRef([]),s=o.useRef(!1),[r,a]=o.useState([]),[i,c]=o.useState(null);o.useEffect(()=>{e.current=r},[r]),o.useEffect(()=>()=>{s.current=!0;for(const m of e.current)is(m);for(const m of t.current)is(m)},[]);const u=o.useCallback(m=>{if(m.length===0)return;const d=Math.max(0,Lt.maxAttachments-r.length),v=[];let k=0,E=0;for(const b of m){if(b.size>Lt.maxAttachmentBytes){k+=1;continue}if(v.length>=d){E+=1;continue}const N="webkitRelativePath"in b&&typeof b.webkitRelativePath=="string"&&b.webkitRelativePath.trim()?b.webkitRelativePath.trim():void 0;v.push({id:vc(),file:b,name:b.name||"Untitled file",mediaType:b.type||"application/octet-stream",sizeBytes:b.size,kind:jc(b),...N?{relativePath:N}:{},...b.type.startsWith("image/")?{previewUrl:URL.createObjectURL(b)}:{}})}if(v.length>0&&(a([...r,...v]),c(null)),k>0||E>0){const b=[];k>0&&b.push(`${k} file${k===1?"":"s"} exceeded ${Sc(Lt.maxAttachmentBytes)}`),E>0&&b.push(`maximum ${Lt.maxAttachments} attachments`),c(b.join("; "))}},[r]),p=o.useCallback(m=>{a(d=>{const v=d.find(E=>E.id===m);v&&is(v);const k=d.filter(E=>E.id!==m);return k.length===0&&c(null),k})},[]),f=o.useCallback(()=>{for(const m of e.current)is(m);e.current=[],a([]),c(null)},[]),x=o.useCallback(()=>{const m=e.current;return m.length===0||(e.current=[],t.current=m,a([]),c(null)),m},[]),S=o.useCallback((m,d)=>{if(m.length===0)return;const v=new Set(m.map(k=>k.id));if(t.current=t.current.filter(k=>!v.has(k.id)),d==="restore"&&!s.current){a(k=>{const E=new Set(k.map(N=>N.id)),b=[...m.filter(N=>!E.has(N.id)),...k];return e.current=b,b});return}for(const k of m)is(k)},[]);return{attachmentError:i,attachments:r,addFiles:u,clearAttachments:f,removeAttachment:p,settleStagedAttachments:S,setAttachmentError:c,stageAttachmentsForSubmit:x}}function is(e){e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}function Ac(e,t){const s=e.slice(0,Math.max(0,Math.min(t,e.length))),r=/(?:^|\s)\/([a-zA-Z0-9_-]*)$/.exec(s);if(!r||typeof r.index!="number")return null;const a=r[0].lastIndexOf("/");if(a<0)return null;const i=r.index+a;return{end:s.length,query:(r[1]??"").toLowerCase(),start:i}}function Tc(e,t,s=Mr){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 i=s.find(u=>u.id===a[1]);if(!i)return null;const c=a[0].lastIndexOf("/");return c<0||typeof a.index!="number"?null:{command:i,end:r.length,start:a.index+c}}function Rc(e,t=Mr){return ma({commands:t,prompt:`/${e}`})}function no(e,t){return e.length===0?[]:e.filter(s=>t?[s.id,s.name??"",s.label??"",s.description??"",typeof s.implementation?.type=="string"?s.implementation.type:""].join(" ").toLowerCase().includes(t):!0)}function so(e,t){return e.length===0?[]:e.filter(s=>t?[s.id,s.name,s.description??"",s.gitRepo??"",po(s)].join(" ").toLowerCase().includes(t):!0).slice(0,8)}function ro({actionCatalog:e,connectedAppMentions:t,mentionApps:s,profileSkills:r,query:a,surface:i,teamMentionMembers:c}){const u=a.toLowerCase();if(i==="team"){const m=c.filter(v=>u?[v.name,v.handle??""].map(Rn).some(k=>k.includes(u)):!0).map(v=>({kind:"team-member",member:v}));return[...Lr(e,u,e.length).map(v=>({kind:"action",action:v})),...m]}const p=s.filter(m=>u?[Rn(m.id),Rn(m.name),m.gitRepo?Rn(m.gitRepo):"",po(m)].some(v=>v.includes(u)):!0).map(m=>({kind:"app",app:m})),f=Lr(e,u,e.length).map(m=>({kind:"action",action:m})),x=Ds(r,u).map(m=>({kind:"skill",skill:m})),S=fa(t,u).map(m=>({kind:"connected-app",app:m}));return[...f,...x,...p,...S]}function Ic(e,t,s){const r=t?.trim();if(!r)return e;const a=Math.max(0,Math.min(s??0,e.length)),i=e.slice(0,a),c=e.slice(a),u=i&&!/\s$/.test(i)?" ":"",p=c&&!/^\s/.test(c)?" ":"";return`${i}${u}${r}${p}${c}`.replace(/\s+/g," ").trim()}function $c(e){const t=Rn(Cr(e)||e.name||e.id);return t?`@${t}`:null}function _c(e){const t=e.trim();if(!t.startsWith("{")||!t.endsWith("}"))return e;try{const s=JSON.parse(t);if(!s||Array.isArray(s)||typeof s!="object")return e;const r=Object.entries(s).filter(([,a])=>a!=null&&a!=="").map(([a,i])=>`${Lo(a)}: ${jr(a,i)}`);return r.length?r.join(" · "):e}catch{return e}}function Lo(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 jr(e,t){if(Array.isArray(t))return t.map(r=>jr(e,r)).join(", ");if(t&&typeof t=="object")return Object.entries(t).map(([r,a])=>`${Lo(r)}: ${jr(r,a)}`).join(" · ");const s=String(t);return/Id$/.test(e)&&/^[a-z0-9_-]+$/i.test(s)?s.split(/[-_]+/).filter(Boolean).map(r=>`${r[0].toUpperCase()}${r.slice(1)}`).join(" "):s}function Pc({action:e,prompt:t,selectedActionMentionText:s,selectedInvocationPosition:r}){if(!e)return null;const a=s?.trim(),i=a?.startsWith("@")?a:$c(e);return i?Ic(_c(t),i,r):null}function Lc({attachmentCount:e,prompt:t,selectedAction:s,selectedCommand:r}){return!!(t.trim()||e>0||s||r)}const Oc=new Set(["openpond-agent-authoring","openpond-skill-authoring","openpond-taskset-authoring"]);function Dc({activeMentionKey:e,activeSkillKey:t,activeSlashKey:s,addMenuIndex:r,addMenuItems:a,addMenuOpen:i,addMenuPanelRef:c,addMenuRef:u,attachmentCount:p,composerRef:f,createImproveActive:x,goalRuntimeActive:S,inputRef:m,inputShellRef:d,mentionQuery:v,prompt:k,selectedActionId:E,selectAddMenuItem:b,setActionIndex:N,setActionMenuDismissedPrompt:w,setAddMenuIndex:T,setAddMenuOpen:j,setAddMenuQuery:L,setMentionMenuDismissedPrompt:z,setMentionIndex:H,setSkillIndex:q,setSkillMenuDismissedPrompt:V,skillMatchCount:J,skillQuery:X,slashMatchCount:Ie,slashQuery:pe,showActionMenu:ue,showMentionMenu:ne,showSkillMenu:me}){const[C,M]=o.useState({}),[O,$]=o.useState({}),[_e,Ae]=o.useState({}),[Qe,Se]=o.useState({});return o.useEffect(()=>{H(0)},[v]),o.useEffect(()=>{q(0)},[J,X]),o.useEffect(()=>{N(0)},[Ie,pe]),o.useEffect(()=>{const G=m.current?.element,de=G?.parentElement;if(!G||!de||typeof ResizeObserver>"u")return;const A=new ResizeObserver(()=>m.current?.resize());return A.observe(de),()=>A.disconnect()},[]),o.useEffect(()=>{if(!i)return;function G(A){const D=A.target,F=m.current?.element?.parentElement;!u.current?.contains(D)&&!c.current?.contains(D)&&!F?.contains(D)&&(j(!1),L(""),z(e),w(s),V(t))}function de(A){if(A.key==="Escape"){A.preventDefault(),j(!1),L(""),z(e),w(s),V(t);return}if(a.length!==0){if(A.key==="ArrowDown"){A.preventDefault(),T(D=>(D+1)%a.length);return}if(A.key==="ArrowUp"){A.preventDefault(),T(D=>(D-1+a.length)%a.length);return}if(A.key==="Home"){A.preventDefault(),T(0);return}if(A.key==="End"){A.preventDefault(),T(a.length-1);return}if(A.key==="Enter"){A.preventDefault();const D=a[r]??a[0];D&&b(D)}}}return document.addEventListener("pointerdown",G),document.addEventListener("keydown",de),()=>{document.removeEventListener("pointerdown",G),document.removeEventListener("keydown",de)}},[e,t,s,r,a,i]),o.useLayoutEffect(()=>{if(!i)return;const G=d.current;if(!G)return;const de=G;function A(){Se(hl(de))}return A(),window.addEventListener("resize",A),window.addEventListener("scroll",A,!0),()=>{window.removeEventListener("resize",A),window.removeEventListener("scroll",A,!0)}},[i,p,x,S]),o.useLayoutEffect(()=>{if(!ue)return;const G=m.current?.element,de=f.current;if(!G||!de)return;const A=G,D=de;function F(){Ae(dr(A,D))}return F(),window.addEventListener("resize",F),window.addEventListener("scroll",F,!0),()=>{window.removeEventListener("resize",F),window.removeEventListener("scroll",F,!0)}},[p,x,S,k,E,ue]),o.useLayoutEffect(()=>{if(!me)return;const G=m.current?.element,de=f.current;if(!G||!de)return;const A=G,D=de;function F(){$(dr(A,D))}return F(),window.addEventListener("resize",F),window.addEventListener("scroll",F,!0),()=>{window.removeEventListener("resize",F),window.removeEventListener("scroll",F,!0)}},[p,x,S,k,E,me]),o.useLayoutEffect(()=>{if(!ne)return;const G=m.current?.element,de=f.current;if(!G||!de)return;const A=G,D=de;function F(){M(dr(A,D))}return F(),window.addEventListener("resize",F),window.addEventListener("scroll",F,!0),()=>{window.removeEventListener("resize",F),window.removeEventListener("scroll",F,!0)}},[p,x,S,k,E,ne]),{actionMenuStyle:_e,addMenuStyle:Qe,mentionMenuStyle:C,skillMenuStyle:O}}const zc=o.lazy(()=>ve(()=>import("./ComposerCreateImproveStrip-BH8Ath1h.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url).then(e=>({default:e.ComposerCreateImproveStrip}))),Fc=Mr.find(e=>e.id==="submit-issue"),Bc=[];function Uc({experience:e="development",mode:t,surface:s="chat",teamUseModel:r=!1,teamUseModelLocked:a=!1,teamMentionMembers:i=[],onTeamUseModelChange:c,prompt:u,composeNotice:p=null,mentionApps:f=[],connectedAppMentions:x=[],profileSkills:S=[],selectedMentionAppId:m=null,contextWindowStatus:d,goalRuntime:v=null,subagentRuntime:k=null,createImproveRuntime:E=null,busy:b,running:N=b,interruptRunningTurnBeforeSteer:w=!0,submissionScopeKey:T="default",initialSteerDrafts:j=Bc,showProjectFooter:L=!0,autoFocus:z=!1,focusRequestId:H=0,attachmentRequest:q=null,connection:V,providerSettings:J=null,provider:X,model:Ie,projectTarget:pe,profileTarget:ue=null,actionCatalog:ne=[],requestedAction:me=null,workspaceTarget:C,codexPermissionMode:M,codexReasoningEffort:O,openPondCommandAccessMode:$,onProviderChange:_e,onProviderSetupOpen:Ae,onProjectTargetChange:Qe,onProfileTargetChange:Se,onWorkspaceTargetChange:G,onModelChange:de,onCodexPermissionModeChange:A,onCodexReasoningEffortChange:D,onOpenPondCommandAccessModeChange:F,onPromptChange:B,onMentionAppSelect:je,onSaveTaskDraft:tt,showToast:we,onSubmit:xe,onStop:Ot,onPauseGoal:Pe}){const sn=o.useRef(null),rn=o.useRef(null),se=o.useRef(null),ht=o.useRef(null),on=o.useRef(null),an=o.useRef(null),y=o.useRef(null),R=o.useRef(0),le=me&&ne.some(l=>l.id===me.actionId)?me:null,be=o.useRef(!1),K=o.useRef(0),Ce=o.useRef(le?.requestId??0),he=o.useRef(new Set),[Y,ie]=o.useState(u.length),[St,Le]=o.useState(0),[nt,st]=o.useState(0),[Dt,Ct]=o.useState(0),[ms,Me]=o.useState(0),[hs,Mt]=o.useState(""),[Et,Nt]=o.useState(null),[He,rt]=o.useState(null),[ln,Pn]=o.useState(null),[Oe,ot]=o.useState(!1),[Ln,On]=o.useState(!1),[Je,at]=o.useState(le?.actionId??null),[cn,it]=o.useState(null),[pt,De]=o.useState(null),[Dn,lt]=o.useState(null),[zn,un]=o.useState(null),[Fn,dn]=o.useState(!1),[fn,Bn]=o.useState(()=>({[T]:j})),[zt,mn]=o.useState(null),[Un,qe]=o.useState(!1),[oe,ps]=o.useState(""),[ct,Hn]=o.useState(!1),{attachmentError:hn,attachments:ze,addFiles:Ee,removeAttachment:Ze,settleStagedAttachments:At,setAttachmentError:Tt,stageAttachmentsForSubmit:qn}=Nc(),xs=o.useRef(0);o.useEffect(()=>{!q||xs.current===q.id||(xs.current=q.id,Ee([q.file]))},[Ee,q]);const Vn=o.useCallback(l=>{const h=kc(l,ze);return!h||ze.length>=Lt.maxAttachments||h.size>Lt.maxAttachmentBytes?!1:(Ee([h]),!0)},[Ee,ze]),bs=$l({experience:e,mode:t,surface:s}),Ft=e==="development"||e==="work"&&pe.value!=="none",Vs=ha(X,Ie,J),pn="top",gs=o.useId(),ks=o.useId(),ys=o.useId(),vs={"--context-fill":`${Math.round((d.percent??0)/100*360)}deg`,"--context-bar-fill":`${d.percent??0}%`},ge=o.useMemo(()=>ne.find(l=>l.id===Je)??null,[ne,Je]),xt=o.useMemo(()=>pa(X,e),[e,X]),Ve=o.useMemo(()=>Ft?S:S.filter(l=>!Oc.has(l.name)),[e,S]),ke=o.useMemo(()=>xt.find(l=>l.id===cn)??null,[xt,cn]),Bt=Pc({action:ge,prompt:u,selectedActionMentionText:Dn,selectedInvocationPosition:pt}),js=Lc({attachmentCount:ze.length,prompt:u,selectedAction:ge,selectedCommand:ke}),Gs=o.useMemo(()=>{const l=Math.max(0,Math.min(pt??0,u.length));return ke?{icon:ke.id==="agent"?"plus":ke.id==="skill"?"skill":"workflow",key:`command:${ke.id}`,label:ke.id==="agent"?"Author Agent":ke.id,position:l,onRemove:()=>{it(null),De(null),lt(null)}}:ge?{icon:ge.implementation?.type==="openpond-agent"?"bot":"workflow",key:`action:${ge.id}`,label:Cr(ge),position:l,onRemove:()=>{at(null),De(null),lt(null)}}:null},[u.length,ge,ke,pt]),Ut=zn===T,Gn=Ut||!js,Ht=Ut?"Preparing files":N?"Steer":"Send",Ye=Ut,xn=Ut;function bt(l=T){const h=he.current;return h.has(l)?!1:(h.add(l),!0)}function Wn(l){he.current.delete(l)}function bn(l){return he.current.has(l)}function ws(){return bn(T)}function qt(l){un(h=>h===l?null:h)}const Ws=o.useMemo(()=>{const l=xa(J,{enabledOnly:!0}).map(Z=>({...Z,description:void 0})),h=Ft?l:l.filter(Z=>Z.value!=="codex"),I=C.value==="cloud"&&Ft?h.filter(Z=>Z.value==="openpond"):h,P=I.some(Z=>Z.value===X)?I:[{value:X,label:ba(X,J),description:"Current"},...I],te={value:"setup-provider",label:"New Model/Provider",icon:"plus",separatorBefore:!0};return[...P,te]},[X,J,Ft,C.value]),Kn=o.useMemo(()=>ho(X,J),[X,J]),ye=o.useMemo(()=>ga(u,Math.min(Y,u.length)),[Y,u]),Vt=ye?`${u}:${ye.start}:${Math.min(Y,u.length)}`:null,et=o.useMemo(()=>ye?ro({actionCatalog:ne,connectedAppMentions:x,mentionApps:f,profileSkills:Ve,query:ye.query,surface:s,teamMentionMembers:i}):[],[ne,x,f,ye,Ve,s,i]),gn=o.useMemo(()=>s==="team"?[]:ro({actionCatalog:ne,connectedAppMentions:x,mentionApps:f,profileSkills:Ve,query:"",surface:s,teamMentionMembers:i}).filter(l=>l.kind!=="skill"),[ne,x,f,Ve,s,i]),Xn=!!(!Oe&&!Ye&&ye&&Vt&&Et!==Vt&&et.length>0),$e=o.useMemo(()=>Oi(u,Math.min(Y,u.length)),[Y,u]),Rt=$e?`${u}:${$e.start}:${$e.end}`:null,Ge=o.useMemo(()=>$e?Ds(Ve,$e.query):[],[$e,Ve]),kn=!!(!Oe&&!Ye&&$e&&Rt&&ln!==Rt),ae=o.useMemo(()=>Ac(u,Math.min(Y,u.length)),[Y,u]),Gt=ae?`${u}:${ae.start}:${ae.end}`:null,Ss=o.useMemo(()=>ae?no(ne,ae.query):[],[ne,ae]),Qn=o.useMemo(()=>ae&&s!=="team"?so(f,ae.query):[],[ae,f,s]),Cs=o.useMemo(()=>ae&&s!=="team"?Rc(ae.query,xt):[],[ae,xt,s]),Ks=o.useMemo(()=>ae&&s!=="team"?Ds(Ve,ae.query):[],[ae,Ve,s]),We=o.useMemo(()=>[...Ss.map(l=>({kind:"action",action:l})),...Ks.map(l=>({kind:"skill",skill:l})),...Cs.map(l=>({kind:"command",command:l})),...Qn.map(l=>({kind:"app-context",app:l}))],[Ss,Qn,Cs,Ks]),It=!!(!Oe&&!Ye&&ae&&Gt&&He!==Gt),Jn=o.useMemo(()=>xt.map(l=>({kind:"command",command:l})),[xt]),Wt=o.useMemo(()=>[...no(ne,"").map(l=>({kind:"action",action:l})),...so(f,"").map(l=>({kind:"app-context",app:l}))],[ne,f]),Kt=o.useMemo(()=>Ds(Ve,"").map(l=>({kind:"skill",skill:l})),[Ve]),ut=o.useMemo(()=>{const l=[{id:"add",items:e==="work"?[{kind:"files"},{kind:"folder"}]:[{kind:"files"}],label:"Add"}];return Wt.length>0&&l.push({id:"slash",items:Wt.map(h=>({kind:"slash",item:h})),label:"Agents and actions",queryScope:"slash"}),Kt.length>0&&l.push({id:"skills",items:Kt.map(h=>({kind:"slash",item:h})),label:"Skills",queryScopes:["slash","mentions"]}),l.push({id:"openpond",items:Jn.map(h=>({kind:"slash",item:h})),label:"OpenPond",grid:!0,queryScope:"slash"}),l.push({emptyLabel:"No mentions available",id:"mentions",items:gn.map(h=>({kind:"mention",item:h})),label:"@"}),l},[gn,Jn,Kt,Wt,e]),Xt=o.useMemo(()=>Ul(ut,hs),[hs,ut]),ce=o.useMemo(()=>Xt.flatMap(l=>l.items),[Xt]);o.useEffect(()=>{Oe&&Me(l=>l<ce.length?l:0)},[ce.length,Oe]);const Zn=!!v,Yn=Zn&&v?.tone==="active",Xs=Yn?"Pause goal":"Stop response",Qs=Yn?"pause":"stop",Js=e==="work"||pe.value!=="none",Zs=vr(fn,T,j),Qt=zt?.scopeKey===T?zt.draftId:null;function yn(l,h){Bn(I=>Xi(I,l,h,l===T?j:[]))}o.useLayoutEffect(()=>{se.current?.resize()},[ze.length,hn,E,v,u,Je,cn,pt]),o.useEffect(()=>{if(!z){be.current=!1;return}be.current||Ye||(be.current=!0,window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(u.length)}))},[z,Ye,u.length]),o.useEffect(()=>{!H||K.current===H||Ye||(K.current=H,window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(u.length)}))},[H,Ye,u.length]),o.useEffect(()=>{v||dn(!1)},[v]),o.useEffect(()=>{Je&&!ne.some(l=>l.id===Je)&&(at(null),De(null))},[ne,Je]),o.useEffect(()=>{if(!me||me.requestId<=Ce.current)return;const l=ne.find(h=>h.id===me.actionId);l&&(Ce.current=me.requestId,at(l.id),it(null),De(0),lt(null),B(""),ie(0),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(0,{afterToken:!0})}))},[ne,B,me]),o.useEffect(()=>{!ge&&!ke||De(l=>l===null?0:Math.max(0,Math.min(l,u.length)))},[u.length,ge,ke]),o.useEffect(()=>{if(!m||!je)return;const l=f.find(h=>h.id===m);(!l||!ka(u,l))&&je(null)},[f,je,u,m]);const{actionMenuStyle:Ys,addMenuStyle:er,mentionMenuStyle:$t,skillMenuStyle:tr}=Dc({activeMentionKey:Vt,activeSkillKey:Rt,activeSlashKey:Gt,addMenuIndex:ms,addMenuItems:ce,addMenuOpen:Oe,addMenuPanelRef:y,addMenuRef:an,attachmentCount:ze.length,composerRef:sn,createImproveActive:!!E,goalRuntimeActive:!!v,inputRef:se,inputShellRef:rn,mentionQuery:ye?.query,prompt:u,selectedActionId:Je,selectAddMenuItem:Mn,setActionIndex:Ct,setActionMenuDismissedPrompt:rt,setAddMenuIndex:Me,setAddMenuOpen:ot,setAddMenuQuery:Mt,setMentionMenuDismissedPrompt:Nt,setMentionIndex:Le,setSkillIndex:st,setSkillMenuDismissedPrompt:Pn,skillMatchCount:Ge.length,skillQuery:$e?.query,slashMatchCount:We.length,slashQuery:ae?.query,showActionMenu:It,showMentionMenu:Xn,showSkillMenu:kn});function gt(){at(null),it(null),De(null),lt(null)}function es(){gt(),B(""),ie(0)}function _t(l){ps(l.trim()),qe(!0)}function nr(){ct||(qe(!1),gt())}async function Te(){return await(Yn&&Pe?Pe():Ot())}function kt(l,h){const I=Math.max(0,Math.min(Y,u.length)),P=h?Math.max(0,Math.min(h.start,u.length)):I,te=h?Math.max(P,Math.min(h.end,u.length)):P,Z=u.slice(0,P),Re=u.slice(te),dt=Z&&!/\s$/.test(Z)?" ":"",Yt=Re&&!/^\s/.test(Re)?" ":"",Pt=`${ja(l)} `,ft=`${dt}${Pt}${Yt}`,en=`${Z}${ft}${Re}`,Ue=Z.length+ft.length;return B(en),je?.(l.id),ie(Ue),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(Ue)}),Ue}function sr(l){if(!ye)return;const h=Math.max(0,Math.min(Y,u.length));kt(l,{start:ye.start,end:h})}function vn(l,h,I=null){const P=Math.max(0,Math.min(Y,u.length)),te=h?Math.max(0,Math.min(h.start,u.length)):P,Z=h?Math.max(te,Math.min(h.end,u.length)):te,Re=`${u.slice(0,te)}${u.slice(Z)}`;return at(l.id),it(null),De(te),lt(I?.startsWith("@")?I:null),rt(null),B(Re),ie(te),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(te,{afterToken:!0})}),te}function Ms(l){if(!ye)return;const h=Math.max(0,Math.min(Y,u.length)),I=Math.max(0,Math.min(ye.start,u.length)),P=Math.max(I,Math.min(h,u.length));vn(l,{start:I,end:P},u.slice(I,P).trim())}function Es(l,h){const I=Math.max(0,Math.min(Y,u.length)),P=h?Math.max(0,Math.min(h.start,u.length)):I,te=h?Math.max(P,Math.min(h.end,u.length)):P,Z=u.slice(0,P),Re=u.slice(te),dt=Z&&!/\s$/.test(Z)?" ":"",Yt=Re&&!/^\s/.test(Re)?" ":"",Pt=`${wa(l)} `,ft=`${dt}${Pt}${Yt}`,en=`${Z}${ft}${Re}`,Ue=Z.length+ft.length;return B(en),ie(Ue),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(Ue)}),Ue}function yt(l){if(!ye)return;const h=Math.max(0,Math.min(Y,u.length));Es(l,{start:ye.start,end:h})}function ts(l,h){const I=Math.max(0,Math.min(Y,u.length)),P=h?Math.max(0,Math.min(h.start,u.length)):I,te=h?Math.max(P,Math.min(h.end,u.length)):P,Z=l.handle||Rn(l.name),Re=u.slice(0,P),dt=u.slice(te),Yt=Re&&!/\s$/.test(Re)?" ":"",Pt=dt&&!/^\s/.test(dt)?" ":"",ft=`${Yt}@${Z} ${Pt}`,en=`${Re}${ft}${dt}`,Ue=Re.length+ft.length;return B(en),ie(Ue),window.requestAnimationFrame(()=>se.current?.focusAtPromptIndex(Ue)),Ue}function Jt(l){if(l.kind==="team-member"){if(!ye)return;const h=Math.max(0,Math.min(Y,u.length));ts(l.member,{start:ye.start,end:h});return}if(l.kind==="app"){sr(l.app);return}if(l.kind==="connected-app"){yt(l.app);return}if(l.kind==="skill"){if(!ye)return;const h=Math.max(0,Math.min(Y,u.length));vt(l.skill,{start:ye.start,end:h});return}Ms(l.action)}function jn(l){ae&&(rt(null),kt(l,{start:ae.start,end:ae.end}))}function Ke(l){ae&&vn(l,ae)}function Ns(l,h){const I=Math.max(0,Math.min(Y,u.length)),P=h?Math.max(0,Math.min(h.start,u.length)):I,te=h?Math.max(P,Math.min(h.end,u.length)):P,Z=`${u.slice(0,P)}${u.slice(te)}`;return it(l.id),at(null),De(P),lt(null),rt(null),B(Z),ie(P),l.id==="submit-issue"&&_t(Z),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(P,{afterToken:!0})}),P}function ns(l){ae&&Ns(l,ae)}function wn(l){if(l.kind==="command"){ns(l.command);return}if(l.kind==="app-context"){jn(l.app);return}if(l.kind==="skill"){if(!ae)return;vt(l.skill,ae);return}Ke(l.action)}function vt(l,h){const I=Di(u,h,l);return Pn(null),Nt(null),rt(null),B(I.value),ie(I.cursor),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(I.cursor)}),I.cursor}function Sn(l){$e&&vt(l,$e)}function Cn(){ht.current?.click()}function rr(){on.current?.click()}function Fe(l){R.current=l,Mt(""),Me(0)}function ss(){const l=Math.max(0,Math.min(Y,u.length)),h=Math.max(0,Math.min(R.current,u.length));return l>=h?{start:h,end:l}:{start:l,end:l}}function Mn(l){const h=ss();if(ot(!1),Mt(""),l.kind==="files"||l.kind==="folder"){if(h.start!==h.end){const I=`${u.slice(0,h.start)}${u.slice(h.end)}`;B(I),ie(h.start)}Fe(h.start),l.kind==="folder"?rr():Cn();return}if(l.kind==="slash"){if(l.item.kind==="command"){Fe(Ns(l.item.command,h));return}if(l.item.kind==="app-context"){Fe(kt(l.item.app,h));return}if(l.item.kind==="skill"){Fe(vt(l.item.skill,h));return}Fe(vn(l.item.action,h));return}if(l.item.kind==="team-member"){Fe(ts(l.item.member,h));return}if(l.item.kind==="app"){Fe(kt(l.item.app,h));return}if(l.item.kind==="connected-app"){Fe(Es(l.item.app,h));return}if(l.item.kind==="skill"){Fe(vt(l.item.skill,h));return}Fe(vn(l.item.action,h))}function As(){const l=(se.current?.getPrompt()??u).trim();return!N||!l?!1:ze.length>0||ge||ke?(we("Steering supports a plain-text instruction. Remove files or actions before staging it.","info"),!1):(yn(T,h=>[...h,So(l)]),es(),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(0)}),!0)}async function En(l){const h=T;if(zt?.scopeKey===h)return!1;const I=vr(fn,h,j).find(P=>P.id===l);if(!I)return!1;mn({draftId:l,scopeKey:h}),Tt(null);try{const P=N;if(P&&w&&await Ot()===!1)return!1;const te=await xe([],null,null,{preservePrompt:!0,promptOverride:I.prompt,...P?{turnMetadata:{interactionKind:"steer"}}:{}});return yn(h,Z=>Ki(Z,l,te)),te}catch(P){return Tt(P instanceof Error?P.message:String(P)),!1}finally{mn(P=>P?.scopeKey===h&&P.draftId===l?null:P)}}function rs(l){Qt!==l&&yn(T,h=>Co(h,l))}function Ts(l){if(Qt!==l.id){if(ze.length>0||Je||cn){we("Finish the current composer before editing a queued message.","info");return}yn(T,h=>Wi(h,l.id,u)),B(l.prompt),ie(l.prompt.length),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(l.prompt.length)})}}async function Zt(){if(N){As();return}if(ws())return;const l=ge||ke?null:xo(u);if(ke?.id==="submit-issue"||l?.command==="submit-issue"){_t(l?.command==="submit-issue"?l.args:u);return}if(Gn)return;const h=T;if(bt(h)){ot(!1),Tt(null);try{const I=qn();try{un(I.length>0?h:null);let P;try{P=await Promise.all(I.map(wc))}finally{qt(h)}const te=ge&&Bt&&!u.trim()?Bt:void 0,Z=await xe(P,ge,ke,Bt||te?{...Bt?{displayPrompt:Bt}:{},...te?{promptOverride:te}:{}}:void 0);At(I,Z?"dispose":"restore"),Z&&!va(ge)&>()}catch(P){throw At(I,"restore"),P}}catch(I){Tt(I instanceof Error?I.message:String(I))}finally{Wn(h),qt(h)}}}async function Rs(l){if(ws()||ct)return!1;const h=T;if(!bt(h))return!1;Hn(!0),ot(!1),Tt(null);try{const I=await xe([],null,Fc,{displayPrompt:`/submit-issue ${l.title.trim()}`,promptOverride:ya(l)});return I&&(qe(!1),gt()),I}catch(I){return Tt(I instanceof Error?I.message:String(I)),!1}finally{Wn(h),Hn(!1)}}function os(l){const I=zi(u,l,Y);B(I.value),ie(I.cursorIndex),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(I.cursorIndex)})}return n.jsxs("form",{ref:sn,className:`composer ${t} ${E?"has-create-runtime":""} ${Zn?"has-goal-runtime":""} ${ze.length>0?"has-attachments":""} ${ge||ke?"has-selected-action":""} ${hn?"has-attachment-error":""} ${Oe?"has-add-menu":""}`,onSubmit:l=>{l.preventDefault(),Zt()},children:[n.jsx("input",{webkitdirectory:"",ref:on,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:l=>{Ee(Array.from(l.currentTarget.files??[])),l.currentTarget.value=""}}),Xn&&n.jsx(Vl,{items:et,mentionIndex:St,onSelect:Jt,onSelectIndex:Le,style:$t}),kn&&n.jsx(rc,{items:Ge,onSelect:Sn,onSelectIndex:st,skillIndex:nt,style:tr}),It&&n.jsx(oc,{actionCatalogCount:ne.length,actionIndex:Dt,items:We,onSelect:wn,onSelectIndex:Ct,style:Ys}),n.jsx(ac,{busy:ct,initialDescription:oe,open:Un,onClose:nr,onSubmit:Rs}),L&&n.jsxs("div",{className:"composer-footer",children:[L?n.jsx(Bi,{busy:b||pe.busy,placement:pn,state:pe,onChange:Qe}):null,ue&&Se?n.jsx(wo,{busy:b,placement:pn,state:ue,onChange:Se}):null,Js?n.jsx(Ui,{busy:b,placement:pn,state:C,onChange:G}):null]}),!L&&e==="work"&&n.jsx(Hi,{project:pe,workspace:C}),E?n.jsx(o.Suspense,{fallback:null,children:n.jsx(zc,{runtime:E})}):null,n.jsx(Qi,{drafts:Zs,sendingDraftId:Qt,onDeleteDraft:rs,onEditDraft:Ts,onSteerDraft:l=>{En(l)}}),Zn&&v&&n.jsx(Vi,{detailsOpen:Fn,goalRuntime:v,objectiveId:ys,subagentRuntime:k,onToggleDetails:()=>dn(l=>!l)}),p&&n.jsx("div",{className:`composer-notice ${p.tone}`,role:"status",children:p.message}),n.jsxs("div",{className:"composer-input-shell",ref:rn,children:[Oe&&s!=="team"&&n.jsx(Er,{id:gs,ariaLabel:"Add to message",className:"composer-add-command-menu",menuIndex:ms,menuRef:y,sections:Xt,style:er,variant:"add",onSelect:Mn,onSelectIndex:Me}),ze.length>0&&n.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:ze.map(l=>n.jsx(yc,{attachment:l,onRemove:()=>Ze(l.id)},l.id))}),hn&&n.jsx("div",{className:"composer-attachment-error",role:"status",children:hn}),n.jsx("div",{className:"composer-textarea-frame",onClick:l=>{l.target===l.currentTarget&&se.current?.focusAtPromptIndex(Y)},children:n.jsx(Tl,{ref:se,connectedAppMentions:x,disabled:Ye,onCursorChange:ie,onKeyDown:l=>{if(Oe&&["ArrowDown","ArrowUp","Home","End","Enter","Escape"].includes(l.key)){l.preventDefault();return}if(Xn){if(l.key==="ArrowDown"){l.preventDefault(),Le(h=>(h+1)%et.length);return}if(l.key==="ArrowUp"){l.preventDefault(),Le(h=>(h-1+et.length)%et.length);return}if(l.key==="Enter"||l.key==="Tab"){l.preventDefault(),Jt(et[St]??et[0]);return}if(l.key==="Escape"){l.preventDefault(),Nt(Vt);return}}if(kn){if(Ge.length>0&&l.key==="ArrowDown"){l.preventDefault(),st(h=>(h+1)%Ge.length);return}if(Ge.length>0&&l.key==="ArrowUp"){l.preventDefault(),st(h=>(h-1+Ge.length)%Ge.length);return}if(Ge.length>0&&(l.key==="Enter"||l.key==="Tab")){l.preventDefault(),Sn(Ge[nt]??Ge[0]);return}if(l.key==="Escape"){l.preventDefault(),Pn(Rt??u);return}}if(It){if(We.length>0&&l.key==="ArrowDown"){l.preventDefault(),Ct(h=>(h+1)%We.length);return}if(We.length>0&&l.key==="ArrowUp"){l.preventDefault(),Ct(h=>(h-1+We.length)%We.length);return}if(We.length>0&&(l.key==="Enter"||l.key==="Tab")){l.preventDefault(),wn(We[Dt]??We[0]);return}if(l.key==="Escape"){l.preventDefault(),rt(Gt??u);return}}if((ge||ke)&&l.key==="Backspace"&&Y===(pt??0)){l.preventDefault(),gt();return}if(Il(l.key,l.ctrlKey,l.metaKey,l.shiftKey,e,s,!!tt)){l.preventDefault(),Rl({attachmentsCount:ze.length,hasSelectedInvocation:!!(ge||ke),onSave:tt,onSaved:gt,prompt:u,saving:Ln,setSaving:On,showInfo:h=>we(h,"info")});return}l.key==="Enter"&&!l.shiftKey&&(l.preventDefault(),Ut||Zt())},onPasteFiles:Ee,onPasteTextAsAttachment:Vn,onPromptChange:(l,h)=>{if(Oe){const P=Math.max(0,Math.min(R.current,l.length));h<P?(R.current=h,Mt("")):Mt(l.slice(P,h))}const I=s==="team"?null:Tc(l,h,xt);if(I){const P=`${l.slice(0,I.start)}${l.slice(I.end)}`,te=I.start;B(l),ie(h),window.requestAnimationFrame(()=>{it(I.command.id),at(null),De(te),rt(null),B(P),ie(te),I.command.id==="submit-issue"&&_t(P),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(te,{afterToken:!0})})});return}B(l)},onTokenPositionChange:l=>{if(!(!ge&&!ke)){if(l===null){gt();return}De(l)}},placeholder:bs,prompt:u,token:Gs})}),n.jsx(tc,{surface:s,teamUseModel:r,teamUseModelLocked:a,onTeamUseModelChange:c,addFiles:Ee,addMenuId:gs,addMenuOpen:Oe,addMenuRef:an,busy:b,codexPermissionMode:M,codexReasoningEffort:O,connection:V,contextStatusStyle:vs,contextStatusTooltipId:ks,contextWindowStatus:d,disabled:xn,dropdownPlacement:pn,fileInputRef:ht,modelValue:Vs,modelOptions:Kn,openPondCommandAccessMode:$,showCommandAccess:Ft,profileTarget:L?null:ue,onCodexPermissionModeChange:A,onCodexReasoningEffortChange:D,onOpenPondCommandAccessModeChange:F,onProfileTargetChange:Se,onModelChange:de,onOpenFilePicker:Cn,onProviderChange:_e,onProviderSetupOpen:Ae,onStop:Te,onToggleAddMenu:()=>{const l=Math.max(0,Math.min(Y,u.length));Oe||(R.current=l,Mt(""),Me(0),ot(!0)),window.requestAnimationFrame(()=>{se.current?.focusAtPromptIndex(l)})},onTranscript:os,provider:X,providerSettings:J,providerOptions:Ws,running:N&&!js,sendDisabled:Gn,sendTooltip:Ht,showToast:we,stopIcon:Qs,stopLabel:Xs})]})]})}const oo=o.memo(function({draftStore:t,...s}){const r=Sa(t);return n.jsx(Ca,{id:"composer",children:n.jsx(Uc,{...s,prompt:r,onPromptChange:t.set})})});function ao({approval:e,onResolve:t}){const[s,r]=o.useState(null);if(o.useEffect(()=>{r(null)},[e?.id]),!e||e.kind==="create_plan")return null;const a=Hc(e.detail),i=e.kind!=="subagent_patch_apply";async function c(u){if(!(!e||s)){r(u);try{await t(e.id,u)}catch{r(null)}}}return n.jsx("div",{className:"approval-request-shell",role:"status","aria-live":"polite",children:n.jsxs("section",{className:"approval-request-card","aria-label":`${io(e.kind)} approval request`,children:[n.jsxs("div",{className:"approval-request-copy",children:[n.jsx("div",{className:"approval-request-header",children:n.jsx("span",{children:io(e.kind)})}),n.jsx("code",{className:"approval-request-title",title:e.title,children:e.title}),a&&a!==e.title&&n.jsxs("details",{className:"approval-request-details",children:[n.jsx("summary",{children:"Details"}),n.jsx("pre",{children:a})]})]}),n.jsxs("div",{className:"approval-request-actions",children:[n.jsxs("button",{type:"button",className:"approval-action primary",disabled:!!s,onClick:()=>{c("accept")},children:[n.jsx(wt,{size:14}),n.jsx("span",{children:s==="accept"?"Approving":"Approve"})]}),i?n.jsxs("button",{type:"button",className:"approval-action",title:"Approve for the rest of this session",disabled:!!s,onClick:()=>{c("acceptForSession")},children:[n.jsx(fi,{size:14}),n.jsx("span",{children:s==="acceptForSession"?"Approving":"Session"})]}):null,n.jsxs("button",{type:"button",className:"approval-action muted",disabled:!!s,onClick:()=>{c("decline")},children:[n.jsx(hi,{size:14}),n.jsx("span",{children:s==="decline"?"Denying":"Deny"})]}),n.jsx("button",{type:"button",className:"approval-action icon-only",title:"Cancel task","aria-label":"Cancel task",disabled:!!s,onClick:()=>{c("cancel")},children:n.jsx(Us,{size:15})})]})]})})}function io(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 Hc(e){const t=e.trim();if(!t)return"";try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}const qc=/\.(?:m4v|mov|mp4|webm)$/i;function Vc(e){return qc.test(e.trim().split(/[?#]/,1)[0]??"")}function Gc(e,t){let s=e.trim();if(!s||!Vc(s))return null;if(/^file:\/\//i.test(s))try{s=decodeURIComponent(new URL(s).pathname)}catch{s=s.replace(/^file:\/\//i,"")}if(/^\//.test(s)||/^[A-Za-z]:[\\/]/.test(s))return s;const r=t?.trim().replace(/[\\/]+$/,"");return r?`${r}/${s.replace(/^\.\//,"")}`:null}function Wc(e,t={}){const s=Kc(e),r=e.map(a=>({id:`message:${a.id}`,type:"message",message:a,showFooter:a.id===s}));return t.showThinkingIndicator&&r.push({id:"thinking",type:"thinking"}),r}function Kc(e){for(let t=e.length-1;t>=0;t-=1){const s=e[t];if(s.role==="assistant")return s.id}return null}function Xc(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 s=t.activities?.[t.activities.length-1]??null;return s?.state!=="running"&&s?.state!=="pending"}return!0}function Qc(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 s=new Set(t.map(a=>a.value));if(e.override&&s.has(e.override))return{source:e.override,options:t};const r=e.workspaceTarget==="local"?"local":"sandbox";return s.has(r)?{source:r,options:t}:{source:t[0].value,options:t}}const Jc=new Set(["create","edit","help","list"]);function Zc(e,t,s=null){return Yc(e)}function Yc(e){const t=e.trim();if(!t)return"/skill";const[s=""]=t.split(/\s+/,1);return Jc.has(s.toLowerCase())?`/skill ${t}`:`/skill create ${t}`}async function eu(e){const t=e.session?.currentProfile??null,s=e.session?await e.patchSession(e.session.id,e.ref):null;try{return{selected:await e.selectProfile(e.ref),session:s}}catch(r){if(s)try{await e.patchSession(s.id,t)}catch{}throw r}}const tu=o.lazy(()=>ve(()=>import("./TerminalOverlay-CnFv6FZT.js"),__vite__mapDeps([6,1,2,7]),import.meta.url).then(e=>({default:e.TerminalOverlay})));function nu({open:e,connection:t,scope:s,tabs:r,onTabsChange:a,cwd:i,appId:c,workspaceName:u,queuedCommand:p,onClose:f}){const[x,S]=o.useState(!1);return o.useEffect(()=>{e&&S(!0)},[e]),x?n.jsx(o.Suspense,{fallback:null,children:n.jsx(tu,{open:e,connection:t,scope:s,tabs:r,onTabsChange:a,cwd:i,appId:c,workspaceName:u,queuedCommand:p,onClose:f})}):null}function su({expanded:e,terminalOpen:t,sideChatAvailable:s,onOpenBrowser:r,onOpenFiles:a,onOpenReview:i,onOpenSideChat:c,onOpenTrainingDraft:u,trainingDraftAvailable:p,onResizeStart:f,onToggleExpanded:x,onToggleTerminal:S}){const m=[{id:"review",label:"Review",meta:"Diffs",icon:ti,onSelect:i},{id:"files",label:"Files",meta:"Workspace",icon:kr,onSelect:a},{id:"browser",label:"Browser",meta:"Preview",icon:go,onSelect:r},{id:"side-chat",label:"Side chat",meta:"Context",icon:Ea,onSelect:c,disabled:!s},{id:"training-draft",label:"Task draft",meta:"Training",icon:Na,onSelect:u,disabled:!p},{id:"terminal",label:t?"Hide terminal":"Terminal",meta:"Shell",icon:mo,onSelect:S}];return n.jsxs("aside",{className:`workspace-diff-panel right-sidebar-home-panel ${e?"expanded":""}`,"aria-label":"Right sidebar",children:[e?null:n.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize right sidebar",onPointerDown:f}),n.jsxs("div",{className:"workspace-diff-topbar right-sidebar-home-topbar",children:[n.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:n.jsxs("button",{type:"button",className:"workspace-diff-tab active",role:"tab","aria-selected":!0,children:[n.jsx(Ma,{size:14}),n.jsx("span",{children:"Workspace"})]})}),n.jsx("div",{className:"workspace-diff-toolbar-actions",children:n.jsx("button",{type:"button",className:"diff-icon-button",title:e?"Dock sidebar":"Expand sidebar","aria-label":e?"Dock sidebar":"Expand sidebar",onClick:x,children:e?n.jsx(yo,{size:14}):n.jsx(bo,{size:14})})})]}),n.jsx("div",{className:"right-sidebar-home-body",children:n.jsx("div",{className:"right-sidebar-home-actions",role:"menu","aria-label":"Workspace actions",children:m.map(d=>n.jsxs("button",{type:"button",className:"right-sidebar-home-row",role:"menuitem",disabled:d.disabled,onClick:d.onSelect,children:[n.jsx(d.icon,{size:15}),n.jsx("span",{children:d.label}),d.meta?n.jsx("span",{className:"right-sidebar-home-chip",children:d.meta}):null]},d.id))})})]})}function ru({chatMessages:e,connection:t,contextWindowStatus:s,expanded:r,runtimeEvents:a,sessionId:i,showToast:c,onResizeStart:u,onToggleExpanded:p,onUseOutput:f,onHandoffOutput:x,onReviseOutput:S,onAgentPackageInstalled:m}){const[d,v]=o.useState("outputs"),[k,E]=o.useState(null),[b,N]=o.useState(null),[w,T]=o.useState(""),[j,L]=o.useState({}),z=o.useMemo(()=>iu(a),[a]),H=o.useMemo(()=>lu(z),[z]),q=o.useMemo(()=>ou(e),[e]),V=o.useMemo(()=>au(e),[e]),J=o.useMemo(()=>cu(e),[e]);o.useEffect(()=>()=>{b?.objectUrl&&URL.revokeObjectURL(b.objectUrl)},[b?.objectUrl]);async function X(C){if(!t||!i||C.kind!=="file")return null;E(Xe(C));try{const M=await Ne.workspaceTool(t,i,{action:"work_output_read",source:"ui_button",args:{outputId:C.id,revision:C.revision}});if(!M.ok)throw new Error(M.output);const O=mu(M.data),$=typeof O.contentsBase64=="string"?O.contentsBase64:"";if(!$)throw new Error("The output did not include file data.");return new File([du($)],C.title,{type:C.contentType})}catch(M){return c(M instanceof Error?M.message:"Could not load the output.","error"),null}finally{E(null)}}async function Ie(C){const M=await X(C);if(!M)return;b?.objectUrl&&URL.revokeObjectURL(b.objectUrl);const O=C.kind==="file"&&(C.contentType.startsWith("text/")||C.contentType==="application/json");T(""),N({output:C,file:M,text:O?await M.text():null,objectUrl:O?null:URL.createObjectURL(M)})}async function pe(C){const M=await X(C);M&&(f(M),c("Added the output to the task as input.","success"))}async function ue(C,M){const O=M.kind==="file"?await X(M):null;M.kind==="file"&&!O||await x(C,M,O)}async function ne(C){if(!(!t||!i)&&window.confirm(`Delete ${C.title} revision ${C.revision} from this device?`)){E(Xe(C));try{const M=await Ne.workspaceTool(t,i,{action:"work_output_delete",source:"ui_button",args:{outputId:C.id,revision:C.revision}});if(!M.ok)throw new Error(M.output);b?.output.id===C.id&&N(null),c("Work output deleted.","success")}catch(M){c(M instanceof Error?M.message:"Could not delete the output.","error")}finally{E(null)}}}async function me(C){if(!t||!i||!window.confirm(`Add ${C.title} version ${C.versionId} to your active Agents profile?`))return;const M=async O=>Ne.workspaceTool(t,i,{action:"work_agent_package_install",source:"ui_button",args:{outputId:C.id,revision:C.revision,overwrite:O}});E(Xe(C));try{let O;try{O=await M(!1)}catch($){if(!($ instanceof Error?$.message:"Agent installation failed.").includes("already exists")||!window.confirm(`${C.agentId} already exists. Replace its active checkout with this immutable version?`))throw $;O=await M(!0)}if(!O.ok)throw new Error(O.output);await m?.(),c(`${C.title} was added to Agents. Its package remains available in this Work task.`,"success")}catch(O){c(O instanceof Error?O.message:"Could not add the Agent package.","error")}finally{E(null)}}return n.jsxs("aside",{className:`workspace-diff-panel work-sidebar-panel ${r?"expanded":""}`,"aria-label":"Work details",children:[r?null:n.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize Work details",onPointerDown:u}),n.jsxs("div",{className:"workspace-diff-topbar",children:[n.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Work details",children:[["outputs","Outputs"],["activity","Activity"],["context","Context"]].map(([C,M])=>n.jsx("button",{type:"button",className:`workspace-diff-tab ${d===C?"active":""}`,role:"tab","aria-selected":d===C,onClick:()=>v(C),children:M},C))}),n.jsx("div",{className:"workspace-diff-toolbar-actions",children:n.jsx("button",{type:"button",className:"diff-icon-button",title:r?"Dock sidebar":"Expand sidebar","aria-label":r?"Dock sidebar":"Expand sidebar",onClick:p,children:r?n.jsx(yo,{size:14}):n.jsx(bo,{size:14})})})]}),n.jsxs("div",{className:"work-sidebar-body",children:[d==="outputs"?b?n.jsxs("div",{className:"work-output-preview",children:[n.jsxs("header",{children:[n.jsx("button",{type:"button",onClick:()=>{b.objectUrl&&URL.revokeObjectURL(b.objectUrl),N(null)},children:"Outputs"}),n.jsxs("strong",{children:[b.output.title," · revision ",b.output.revision]})]}),b.text!==null?n.jsx(ni,{content:b.text}):b.output.kind==="file"&&b.output.contentType.startsWith("image/")&&b.objectUrl?n.jsx("img",{src:b.objectUrl,alt:b.output.title}):b.output.kind==="file"&&b.output.contentType==="application/pdf"&&b.objectUrl?n.jsx("iframe",{src:b.objectUrl,title:b.output.title}):b.output.kind==="file"&&b.output.contentType.startsWith("audio/")&&b.objectUrl?n.jsx("audio",{controls:!0,src:b.objectUrl}):b.output.kind==="file"&&b.output.contentType.startsWith("video/")&&b.objectUrl?n.jsx("video",{controls:!0,src:b.objectUrl}):n.jsx("p",{children:"This file type uses its native application for detailed review."}),n.jsxs("section",{className:"work-output-annotation",children:[n.jsx("label",{htmlFor:"work-output-revision-note",children:"Revision note"}),n.jsx("textarea",{id:"work-output-revision-note",value:w,onChange:C=>T(C.target.value),placeholder:"Describe the exact change to make in the next revision."}),n.jsx("button",{type:"button",disabled:!w.trim(),onClick:()=>{S(b.output,b.file,w.trim()),c(`Prepared revision ${b.output.revision+1}.`,"success")},children:"Revise this version"})]})]}):H.length>0?n.jsx("div",{className:"work-output-list",children:H.map(C=>{const M=C.revisions.find(O=>O.revision===j[C.id])??C.revisions[0];return n.jsxs("article",{className:"work-output-card",children:[n.jsxs("header",{children:[n.jsx(tn,{size:16}),n.jsxs("span",{children:[n.jsx("strong",{children:M.title}),C.revisions.length>1?n.jsxs("label",{className:"work-output-version",children:[n.jsx("span",{children:"Version"}),n.jsx("select",{value:M.revision,onChange:O=>L($=>({...$,[C.id]:Number(O.target.value)})),children:C.revisions.map(O=>n.jsxs("option",{value:O.revision,children:["Revision ",O.revision]},Xe(O)))})]}):n.jsxs("small",{children:["Revision ",M.revision]}),n.jsx("small",{children:uu(M)})]})]}),M.validation.length>0?n.jsxs("div",{className:"work-output-validation",children:[n.jsx(Aa,{size:13}),n.jsxs("span",{children:[M.validation.filter(O=>O.status==="passed").length," ","checks passed"]})]}):null,n.jsxs("div",{className:"work-output-actions",children:[M.kind==="file"&&M.location.kind==="local"?n.jsxs(n.Fragment,{children:[n.jsxs("button",{type:"button",onClick:()=>{Fr(co(M))},children:[n.jsx(kr,{size:13}),"Reveal"]}),n.jsx("button",{type:"button",onClick:async()=>{const O=await si(co(M),M.title);O.ok?c("Saved a copy of the Work output.","success"):O.canceled||c("Could not save a copy of the Work output.","error")},children:"Save as"})]}):null,M.kind==="file"?n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button",disabled:k===Xe(M),onClick:()=>{Ie(M)},children:"Preview"}),n.jsxs("button",{type:"button",disabled:k===Xe(M),onClick:()=>{pe(M)},children:[n.jsx(Fs,{size:13}),"Use as input"]})]}):M.kind==="agent_package"?n.jsx("button",{type:"button",disabled:k===Xe(M),onClick:()=>{me(M)},children:"Add to Agents"}):"url"in M&&M.url?n.jsx("button",{type:"button",onClick:()=>window.open(M.url,"_blank","noopener,noreferrer"),children:"Open"}):null,M.kind==="file"&&M.location.kind==="local"?n.jsxs("button",{type:"button",className:"danger",disabled:k===Xe(M),onClick:()=>{ne(M)},children:[n.jsx(ko,{size:13}),"Delete"]}):null,n.jsx("button",{type:"button",disabled:k===Xe(M),onClick:()=>{ue("chat",M)},children:"Continue in Chat"}),n.jsx("button",{type:"button",disabled:k===Xe(M),onClick:()=>{ue("work",M)},children:"Continue in repository Work"})]})]},C.id)})}):V.length>0?n.jsx("div",{className:"work-output-list",children:V.map(C=>n.jsxs("article",{className:"work-output-card",children:[n.jsxs("header",{children:[n.jsx(tn,{size:16}),n.jsxs("span",{children:[n.jsx("strong",{children:C.title}),n.jsx("small",{children:Nr(C.sizeBytes)})]})]}),n.jsx("div",{className:"work-output-actions",children:n.jsxs("button",{type:"button",onClick:()=>{Fr(C.path)},children:[n.jsx(kr,{size:13}),"Reveal"]})})]},C.path))}):n.jsx(lo,{icon:tn,title:"No saved outputs yet",detail:"Finished files and connected results will appear here."}):null,d==="activity"?q.length>0?n.jsx("div",{className:"work-activity-list",children:q.map(C=>n.jsxs("details",{className:`work-activity-row ${C.state??""}`,children:[n.jsxs("summary",{children:[n.jsx(Or,{size:14}),n.jsx("span",{children:C.label}),n.jsx("small",{children:C.state??"completed"})]}),n.jsx("p",{children:C.content}),C.detail?n.jsx("pre",{children:C.detail}):null]},C.id))}):n.jsx(lo,{icon:Or,title:"No activity yet",detail:"Commands, tool receipts, and checks appear while Work runs."}):null,d==="context"?n.jsxs("div",{className:"work-context",children:[n.jsxs("section",{children:[n.jsx("h3",{children:"Model context"}),n.jsx("p",{children:s.summary}),n.jsx("small",{children:s.tokensLabel})]}),n.jsxs("section",{children:[n.jsx("h3",{children:"Task inputs and sources"}),J.length>0?n.jsx("ul",{children:J.map(C=>n.jsxs("li",{children:[n.jsx(Fs,{size:13}),n.jsxs("span",{children:[n.jsx("strong",{children:C.title}),n.jsx("small",{children:C.detail})]})]},C.key))}):n.jsx("p",{children:"No attached files or cited sources yet."})]})]}):null]})]})}function ou(e){return e.flatMap(t=>t.activities??[]).filter(t=>t.kind!=="reasoning").reverse()}function au(e){const t=new Map;for(const s of e)for(const r of s.activities??[])for(const a of r.artifacts??[])!a.path||a.sizeBytes===null||t.set(a.path,{path:a.path,title:a.title,sizeBytes:a.sizeBytes});return[...t.values()].sort((s,r)=>r.path.localeCompare(s.path))}function iu(e){const t=new Map,s=new Set;for(const r of e){const a=wr(r.data);if(r.action==="work_output_delete"&&r.status==="completed"){for(const i of a){const c=Xe(i);s.add(c),t.delete(c)}continue}if(r.action!=="work_output_read")for(const i of a){const c=Xe(i);s.has(c)||t.set(c,i)}}return[...t.values()].sort((r,a)=>a.createdAt.localeCompare(r.createdAt)||a.revision-r.revision)}function Xe(e){return`${e.id}:${e.revision}`}function lu(e){const t=new Map;for(const s of e){const r=t.get(s.id)??[];r.push(s),t.set(s.id,r)}return[...t.entries()].map(([s,r])=>({id:s,revisions:r.sort((a,i)=>i.revision-a.revision||i.createdAt.localeCompare(a.createdAt))})).sort((s,r)=>r.revisions[0].createdAt.localeCompare(s.revisions[0].createdAt))}function wr(e,t=[],s=new Set,r=0){if(r>8||e==null)return t;const a=Ta.safeParse(e);if(a.success){const i=`${a.data.id}:${a.data.revision}`;return s.has(i)||(s.add(i),t.push(a.data)),t}if(Array.isArray(e)){for(const i of e)wr(i,t,s,r+1);return t}if(typeof e=="object")for(const i of Object.values(e))wr(i,t,s,r+1);return t}function cu(e){const t=new Map;for(const s of e){for(const r of s.attachments??[])t.set(`attachment:${r.id}`,{key:`attachment:${r.id}`,title:r.name,detail:`${r.mediaType} · ${Nr(r.sizeBytes)}`});for(const r of s.sources??[])t.set(`source:${r.id}`,{key:`source:${r.id}`,title:r.title,detail:r.sourceName??fu(r.url)})}return[...t.values()]}function lo({icon:e,title:t,detail:s}){return n.jsxs("div",{className:"work-sidebar-empty",children:[n.jsx(e,{size:22}),n.jsx("strong",{children:t}),n.jsx("p",{children:s})]})}function uu(e){return e.kind==="deployment"?"Deployment":e.kind==="source_change"?"Source change":e.kind==="external_resource"?e.provider:e.kind==="agent_package"?`${e.actions.length} action${e.actions.length===1?"":"s"}`:e.location.kind==="local"?Nr(e.sizeBytes):e.location.kind==="managed"?"Managed file":e.location.provider}function Nr(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function du(e){const t=window.atob(e),s=new ArrayBuffer(t.length),r=new Uint8Array(s);for(let a=0;a<t.length;a+=1)r[a]=t.charCodeAt(a);return s}function co(e){return e.kind==="file"&&e.location.kind==="local"?e.location.path:""}function fu(e){try{return new URL(e).hostname||e}catch{return e}}function mu(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function hu({value:e,onChange:t}){const s=(r,a)=>{let i;if(r.key==="Home")i=0;else if(r.key==="End")i=An.length-1;else if(r.key==="ArrowRight"||r.key==="ArrowDown")i=(a+1)%An.length;else if(r.key==="ArrowLeft"||r.key==="ArrowUp")i=(a-1+An.length)%An.length;else return;r.preventDefault();const c=An[i];if(!c)return;t(c.value),r.currentTarget.parentElement?.querySelectorAll(".new-experience-option")?.[i]?.focus()};return n.jsx("div",{className:"new-experience-switcher",role:"radiogroup","aria-label":"Choose task mode",children:An.map((r,a)=>{const i=r.value===e;return n.jsx("button",{type:"button",role:"radio","aria-checked":i,className:`new-experience-option ${i?"active":""}`,"data-experience":r.value,tabIndex:i?0:-1,onClick:()=>{i||t(r.value)},onKeyDown:c=>s(c,a),children:r.label},r.value)})})}function pu(e,t){if(!e||!t)return null;const s=new Set(e.sources.filter(r=>r.sessionId===t).map(r=>r.id));return s.size?e.creations.find(r=>r.request.sourceIds.some(a=>s.has(a)))??null:null}function xu(e){const[t,s]=o.useState(null),[r,a]=o.useState(null),[i,c]=o.useState(!1),[u,p]=o.useState(null),[f,x]=o.useState(null),S=o.useRef(null),m=o.useRef(0),d=o.useCallback(async(b,N={})=>{if(!e){a(null),p("OpenPond App server is not connected.");return}const w=m.current+1;m.current=w,N.silent||c(!0),p(null);try{const T=await Ne.getCreateImproveCandidateDiff(e,b.runId,b.candidateId),j=S.current;if(w!==m.current||j?.runId!==b.runId||j.candidateId!==b.candidateId)return;a(T)}catch(T){if(w!==m.current)return;p(T instanceof Error?T.message:String(T))}finally{w===m.current&&!N.silent&&c(!1)}},[e]),v=o.useCallback(b=>{const N=S.current;if(!(b&&N?.runId===b.runId&&N.candidateId===b.candidateId)){if(S.current=b,s(b),x(null),!b){m.current+=1,a(null),p(null),c(!1);return}a(w=>w?.appId===bu(b)?w:null),d(b)}},[d]),k=o.useCallback(async(b={})=>{const N=S.current;N&&await d(N,b)},[d]),E=o.useCallback(b=>{x({id:Date.now(),path:b})},[]);return o.useEffect(()=>{e||v(null)},[v,e]),{selection:t,diff:r,loading:i,error:u,openFileRequest:f,activate:v,refresh:k,openFile:E}}function bu(e){return`candidate:${e.runId}:${e.candidateId}`}function gu(e){const{activeModel:t,activeProvider:s,bootstrap:r,codexPermissionMode:a,codexReasoningEffort:i,connection:c,onOpenRightChatForSession:u,onPayload:p}=e,f=o.useCallback(async m=>{if(!c||!r)throw new Error("OpenPond is still connecting.");const d=r.profile;if(d.mode!=="local"||!d.repoPath)throw new Error("A local Git-backed Profile is required to change an Agent.");const v=m.authoringModel??Ra(s,t,r.providers);if(!v)throw new Error("Choose a model before changing an Agent.");const k=await Ne.createSession(c,{provider:v.providerId,modelRef:v,systemKind:"openpond.lab",hiddenFromDefaultSidebar:!0,title:`${m.operation==="create"?"New":"Improve"} Agent · ${m.objective.slice(0,80)}`,cwd:d.repoPath,metadata:{source:m.operation==="create"?"lab_agent_create":"lab_agent_improve",profileId:d.activeProfile??"default",targetAgentId:m.agentId??null}}),E=m.objective.trim();if(!E)throw new Error(m.operation==="create"?"Describe what the Agent should do.":"Describe what the Agent could do better.");if(v.providerId==="codex")throw new Error("Agent authoring uses OpenPond's bundled authoring skill. Choose a hosted model.");const b=m.operation==="create"?`/agent create ${E}`:`/agent improve ${m.agentId??""} ${E}`,N=await Ne.sendTurn(c,k.id,{prompt:b,model:v.modelId,modelRef:v,approvalPolicy:"never",sandbox:"workspace-write",codexPermissionMode:"default",codexReasoningEffort:i});if(N.status==="failed")throw new Error(N.error??"OpenPond could not complete the Agent authoring turn.");p(await Ne.bootstrap(c)),u(k.id,k)},[t,s,r,a,i,c,u,p]),x=o.useCallback((m,d,v)=>f({objective:m,operation:"create",authoringRunId:d,authoringModel:v}),[f]),S=o.useCallback((m,d,v,k,E)=>f({agentId:m,agentName:v,objective:d,operation:"improve",authoringRunId:k,authoringModel:E}),[f]);return{createAgentFromLab:x,improveAgentFromLab:S}}const ku=72,hr=120,Oo=24,yu=280,vu=460;function Tn(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=ku}const Ls={canGoPrevious:!1,canGoNext:!1};function Do(e){return Array.from(e.querySelectorAll(".message-row.user")).filter(t=>t.parentElement===e)}function ju({activeWorkspaceId:e,cloudProjects:t}){const s=t.find(i=>i.id===e),r=t.find(i=>i.organizationSlug||i.teamId),a=s??r??null;return{organizationSlug:a?.organizationSlug??null,teamId:a?.teamId??null}}function qs(e,t){return t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop}function zo(e,t){return qs(e,t)+t.getBoundingClientRect().height}function Fo(e){return e.scrollTop+Oo}function Bo(e){return e.scrollTop+8}function ls(e){const t=Fo(e),s=Bo(e);let r=!1,a=!1;for(const i of Do(e)){const c=qs(e,i);if(zo(e,i)<s&&(r=!0),c>t+8&&(a=!0),r&&a)break}return{canGoPrevious:r,canGoNext:a}}function wu(e,t){const s=Do(e),r=Fo(e);if(t==="previous"){const a=Bo(e);for(let i=s.length-1;i>=0;i-=1){const c=s[i];if(zo(e,c)<a)return c}return null}for(const a of s)if(qs(e,a)>r+8)return a;return null}function Su(e){return Math.min(vu,Math.max(yu,Math.abs(e)/5))}function Cu(e){return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2}function Mu(e){const t=Ia({messages:e});return t?{run:t}:null}function uo(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 pr(e,t){return{surface:"chat",workflowKind:"slash_command",commandName:`/${e.command}`,commandSource:t}}function Eu(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 Au({busy:e,handoff:t,onDismiss:s,onSelectTask:r}){const a=$a(t),i=t.selectedTaskIndex+1;return n.jsxs("section",{className:"training-chat-handoff","aria-label":"Model chat",children:[n.jsxs("div",{className:"training-chat-handoff-copy",children:[n.jsx("strong",{children:a?"Generated Taskset question":"Model chat"}),n.jsx("span",{children:t.tasksetName}),n.jsx("small",{children:a?`${Tu(a.split)} · ${i} of ${t.tasks.length} · New chat per question`:"Ask the imported model directly"})]}),n.jsxs("div",{className:"training-chat-handoff-actions",children:[a?n.jsxs(n.Fragment,{children:[n.jsx("button",{type:"button","aria-label":"Previous generated question",title:"Previous question",disabled:e||t.selectedTaskIndex===0,onClick:()=>r(t.selectedTaskIndex-1),children:n.jsx(In,{size:14})}),n.jsx("button",{type:"button",className:"training-chat-handoff-load",disabled:e,onClick:()=>r(t.selectedTaskIndex),children:"Load question"}),n.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:n.jsx(vo,{size:14})})]}):null,n.jsx("button",{type:"button","aria-label":"Close generated question handoff",title:"Close",disabled:e,onClick:s,children:n.jsx(Us,{size:14})})]})]})}function Tu(e){return e==="frozen_eval"?"Frozen evaluation":e==="validation"?"Validation":"Training"}function Ru({activeModel:e,activeProvider:t,busy:s,handoff:r,onDismiss:a,onSelectTask:i}){return!r||r.model.providerId!==t||r.model.modelId!==e?null:n.jsx(Au,{busy:s,handoff:r,onDismiss:a,onSelectTask:i})}function Iu({canGoNext:e,canGoPrevious:t,onJumpToLatest:s,onNext:r,onPrevious:a}){return n.jsxs("div",{className:"chat-scroll-controls","aria-label":"Message navigation",children:[n.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:n.jsx(In,{size:17})}),n.jsx("button",{type:"button",className:"chat-scroll-control-button primary","data-tooltip":"Jump to latest","aria-label":"Jump to latest",onClick:s,children:n.jsx(li,{size:18})}),n.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:n.jsx(vo,{size:17})})]})}function $u({busy:e,onSync:t}){return n.jsxs("button",{type:"button",className:"sync-local-button",disabled:e,onClick:t,children:[n.jsx(xi,{size:15}),n.jsx("span",{children:e?"Syncing locally":"Sync locally to work on this"})]})}function Uo(e){return e.supportedView&&e.open&&!e.hasContentPanel}function _u(e,t){return e==="team"?"team-active":e==="community"?"community-active":e==="apps"||e==="get-started"||e==="labs"||e==="outputs"||e==="scheduled"?"page-active":t?"chat-active":"chat-start"}function Pu(e){const{contentKey:t,threadElement:s=null,enabled:r=!0,onContentChange:a,threadRef:i}=e,c=o.useRef(a),u=o.useRef(null);c.current=a,o.useLayoutEffect(()=>{const p=s??i.current;if(!r||!p||typeof window>"u")return;let f=null,x=0,S=p.scrollHeight;const m=(N=!0)=>{N&&(x=Math.max(x,4)),f===null&&(f=window.requestAnimationFrame(()=>{f=null,i.current===p&&c.current(p);const w=Math.abs(p.scrollHeight-S)>1;S=p.scrollHeight,x-=1,(x>0||w)&&m(!1)}))};u.current=()=>m();const d=typeof MutationObserver>"u"?null:new MutationObserver(()=>{E(),m()}),v=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>m()),k=new Set,E=()=>{if(!v)return;const N=new Set(Array.from(p.children).filter(w=>w instanceof HTMLElement));for(const w of k)N.has(w)||(v.unobserve(w),k.delete(w));for(const w of N)k.has(w)||(v.observe(w),k.add(w))};d?.observe(p,{childList:!0,characterData:!0,subtree:!0}),E();const b=()=>m();return p.addEventListener("load",b,!0),()=>{u.current=null,d?.disconnect(),v?.disconnect(),p.removeEventListener("load",b,!0),f!==null&&window.cancelAnimationFrame(f)}},[r,s,i]),o.useLayoutEffect(()=>{r&&u.current?.()},[t,r])}function Lu({browserConversationId:e,chatSubmissionVersion:t,chatHistoryHasMore:s,chatHistoryLoading:r,chatMessages:a,onLoadMoreChatHistory:i,pendingApproval:c,showChatThread:u,showThinkingIndicator:p,view:f}){const x=o.useRef(null),[S,m]=o.useState(null),d=o.useCallback(y=>{x.current=y,m(R=>R===y?R:y)},[]),v=o.useRef(null),k=o.useRef(!0),E=o.useRef(0),b=o.useRef(0),N=o.useRef(0),w=o.useRef(null),T=o.useRef(null),j=o.useRef(!1),L=o.useRef(!1),z=o.useRef(!1),H=o.useRef(null),q=o.useRef(null),V=o.useRef(null),[J,X]=o.useState(0),[Ie,pe]=o.useState(null),[ue,ne]=o.useState(!1),[me,C]=o.useState(132),[M,O]=o.useState(Ls),$=o.useMemo(()=>Wc(a,{showThinkingIndicator:p}),[a,p]),_e=o.useMemo(()=>({"--chat-composer-reserve":`${me}px`}),[me]),Ae=a.at(-1),Qe=[$.length,Ae?.id??"",Ae?.content?.length??0,Ae?.timestamp??"",p?"thinking":""].join(":"),Se=s,G=e,de=f==="chat"&&u&&!!G&&Ie!==G,A=o.useCallback(y=>{ne(R=>R===y?R:y)},[]),D=o.useCallback(y=>{O(R=>R.canGoPrevious===y.canGoPrevious&&R.canGoNext===y.canGoNext?R:y)},[]),F=o.useCallback((y,R={})=>{const le=R.nearBottom??Tn(y);A(!le),D(ls(y))},[A,D]),B=o.useCallback(y=>{const R=L.current;L.current=!1,pe(y),A(!1),D(Ls),R&&X(le=>le+1)},[A,D]),je=o.useCallback(()=>{V.current===null||typeof window>"u"||(window.cancelAnimationFrame(V.current),V.current=null)},[]),tt=o.useCallback((y,R,le)=>{je();const be=Math.max(0,y.scrollHeight-y.clientHeight),K=()=>{const st=typeof R=="function"?R():R;return Math.max(0,Math.min(st,Math.max(0,y.scrollHeight-y.clientHeight)))},Ce=Math.max(0,Math.min(K(),be)),he=y.scrollTop,Y=Ce-he;if(typeof window>"u"||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0||Math.abs(Y)<1){y.scrollTop=Ce,le?.();return}const St=Su(Y),Le=window.performance.now(),nt=st=>{if(x.current!==y){V.current=null;return}const Dt=Math.min(1,(st-Le)/St),Ct=K();if(y.scrollTop=he+(Ct-he)*Cu(Dt),Dt<1){V.current=window.requestAnimationFrame(nt);return}y.scrollTop=K(),V.current=null,le?.()};V.current=window.requestAnimationFrame(nt)},[je]),we=o.useCallback(()=>{z.current=!1,!(H.current===null||typeof window>"u")&&(window.cancelAnimationFrame(H.current),H.current=null)},[]),xe=o.useCallback(()=>{q.current===null||typeof window>"u"||(window.cancelAnimationFrame(q.current),q.current=null)},[]),Ot=o.useCallback(y=>{if(typeof window>"u"){y.scrollTop=y.scrollHeight;return}if(q.current!==null)return;let R=window.performance.now();const le=be=>{if(x.current!==y||!k.current){q.current=null;return}const K=Math.max(0,y.scrollHeight-y.clientHeight),Ce=K-y.scrollTop;if(Math.abs(Ce)<=.75){y.scrollTop=K,q.current=null;return}if(Ce<0||Ce>240)y.scrollTop=K;else{const he=Math.max(.5,Math.min(3,(be-R)/16.666666666666668)),Y=1-Math.pow(1-.22,he);y.scrollTop+=Math.min(36*he,Ce*Y)}R=be,q.current=window.requestAnimationFrame(le)};q.current=window.requestAnimationFrame(le)},[]),Pe=o.useCallback((y,R={})=>{if(xe(),y.scrollTop=y.scrollHeight,typeof window>"u"){R.finishInitial&&B(R.conversationKey??null);return}we(),z.current=!0;let be=0,K=0,Ce=y.scrollHeight;const he=R.settle?12:2,Y=()=>{const ie=x.current;if(!ie){H.current=null,z.current=!1,R.finishInitial&&B(R.conversationKey??null);return}ie.scrollTop=ie.scrollHeight;const St=ie.scrollHeight-ie.scrollTop-ie.clientHeight,Le=Math.abs(ie.scrollHeight-Ce)<=1;if(Ce=ie.scrollHeight,K=St<=1&&Le?K+1:0,be+=1,be<he&&K<2){H.current=window.requestAnimationFrame(Y);return}H.current=null,z.current=!1,k.current=!0,A(!1),D(ls(ie)),R.finishInitial&&B(R.conversationKey??null)};H.current=window.requestAnimationFrame(Y)},[we,xe,B,A,D]),sn=o.useCallback(()=>{const y=x.current;y&&(we(),xe(),k.current=!0,A(!1),tt(y,()=>y.scrollHeight-y.clientHeight,()=>{x.current===y&&(y.scrollTop=y.scrollHeight,k.current=!0,A(!1),D(ls(y)))}))},[we,xe,A,D,tt]),rn=o.useCallback(y=>{const R=x.current;if(!R)return;const le=wu(R,y);if(!le)return;we(),xe(),tt(R,()=>le.isConnected?Math.max(0,qs(R,le)-Oo):R.scrollTop,()=>{if(x.current!==R)return;const K=Tn(R);k.current=K,F(R,{nearBottom:K})})},[we,xe,tt,F]),se=o.useCallback(()=>{const y=x.current;y&&(T.current={scrollHeight:y.scrollHeight,scrollTop:y.scrollTop},k.current=!1,xe())},[xe]),ht=o.useCallback(async()=>{if(Se&&!(!i||r||j.current)){se(),j.current=!0;try{await i()}finally{j.current=!1}}},[Se,r,i,se]),on=o.useCallback(y=>{if(z.current){k.current=!0,A(!1),D(Ls);return}const R=Tn(y),le=Math.abs(y.scrollHeight-b.current)>1||Math.abs(y.clientHeight-N.current)>1,be=y.scrollTop<E.current-1;E.current=y.scrollTop,b.current=y.scrollHeight,N.current=y.clientHeight,R?(k.current=!0,F(y,{nearBottom:!0})):be&&!le?(k.current=!1,xe(),F(y,{nearBottom:!1})):k.current?(A(!1),D(ls(y))):F(y,{nearBottom:!1}),!L.current&&y.scrollTop<=hr&&Se&&!r&&ht()},[Se,xe,r,ht,A,D,F]),an=o.useCallback(y=>{!k.current&&!Tn(y)||(k.current=!0,Ot(y))},[Ot]);return Pu({contentKey:Qe,enabled:f==="chat"&&u,onContentChange:an,threadElement:S,threadRef:x}),o.useLayoutEffect(()=>{if(f!=="chat"||!u||typeof window>"u")return;const y=v.current;if(!y)return;let R=null;const le=()=>{R=null;const Ce=Math.max(96,Math.ceil(y.getBoundingClientRect().height+20));C(he=>he===Ce?he:Ce)},be=()=>{R===null&&(R=window.requestAnimationFrame(le))};be();const K=typeof window.ResizeObserver>"u"?null:new window.ResizeObserver(be);return K?.observe(y),window.addEventListener("resize",be),()=>{R!==null&&window.cancelAnimationFrame(R),K?.disconnect(),window.removeEventListener("resize",be)}},[u,f]),o.useLayoutEffect(()=>{const y=x.current;f!=="chat"||!u||!y||L.current||!k.current&&!Tn(y)||(k.current=!0,Pe(y,{settle:!0}))},[me,Pe,u,f]),o.useLayoutEffect(()=>{if(t===0||f!=="chat"||!u)return;const y=x.current;y&&(k.current=!0,A(!1),Pe(y,{settle:!0}))},[t,Pe,A,u,f]),o.useLayoutEffect(()=>{T.current=null,j.current=!1,L.current=!0,k.current=!0,E.current=0,b.current=0,N.current=0,xe(),je(),we(),pe(null),A(!1),D(Ls)},[we,je,xe,G,A,D]),o.useEffect(()=>{const y=x.current;f!=="chat"||!y||L.current||!Se||r||y.scrollTop<=hr&&y.scrollHeight<=y.clientHeight+hr&&ht()},[Se,r,J,$.length,ht,f]),o.useLayoutEffect(()=>{const y=T.current,R=x.current;!y||!R||L.current||(T.current=null,R.scrollTop=y.scrollTop+Math.max(0,R.scrollHeight-y.scrollHeight),F(R))},[$.length,F]),o.useLayoutEffect(()=>{const y=x.current;if(f!=="chat"||!G||!y){w.current=G,k.current=!0,B(G);return}const R=w.current!==G;if(w.current=G,R||L.current){k.current=!0,Pe(y,{conversationKey:G,finishInitial:!0,settle:!0});return}const le=Tn(y);if(k.current||le){k.current=!0,A(!1),D(ls(y)),Pe(y,{settle:!0});return}F(y,{nearBottom:le})},[G,S,B,c?.id,Pe,A,D,F,f]),o.useEffect(()=>()=>{we(),je(),xe()},[we,je,xe]),{chatColumnStyle:_e,chatThreadPreparingInitialScroll:de,chatThreadRef:d,composerStackRef:v,goToUserMessage:rn,handleChatScroll:on,jumpToLatestChatMessage:sn,showScrollToBottomButton:ue,userMessageNavigation:M,chatTimelineRows:$}}function Ou({onSelect:e,view:t}){return n.jsxs("nav",{className:"collaboration-tabs","aria-label":"Collaboration",children:[n.jsx("button",{"aria-current":t==="team"?"page":void 0,className:t==="team"?"active":"",onClick:()=>e("team"),type:"button",children:n.jsx("span",{children:"Team chat"})}),n.jsxs("button",{"aria-current":t==="community"?"page":void 0,className:t==="community"?"active":"",onClick:()=>e("community"),type:"button",children:[n.jsx(go,{size:15}),n.jsx("span",{children:"Communities"})]})]})}const Du=o.lazy(()=>ve(()=>import("./WorkspaceDiffPanel-DUCjD1GA.js").then(e=>e.a),__vite__mapDeps([8,1,2,3,5,9,10,11,12,13]),import.meta.url).then(e=>({default:e.WorkspaceDiffPanel}))),zu=o.lazy(()=>ve(()=>import("./AppsView-mkeAkrvr.js"),__vite__mapDeps([14,1,2,15]),import.meta.url).then(e=>({default:e.AppsView}))),Fu=o.lazy(()=>ve(()=>import("./GetStartedView-B-R-KSva.js"),__vite__mapDeps([16,1,2,4,17,18,3,19]),import.meta.url).then(e=>({default:e.GetStartedView}))),Bu=o.lazy(()=>ve(()=>import("./LabsRoute-DFV5vV6Z.js").then(e=>e.i),__vite__mapDeps([20,1,2,21,18,9,3,0,4,5,22,23,17,24,25,26]),import.meta.url).then(e=>({default:e.LabsRoute}))),Uu=o.lazy(()=>ve(()=>import("./ScheduledWorkPage-DkaVUnwj.js"),__vite__mapDeps([27,1,2,28,3,4,5,12]),import.meta.url).then(e=>({default:e.ScheduledWorkPage}))),Hu=o.lazy(()=>ve(()=>import("./OutputsPage-DfZYswx2.js"),__vite__mapDeps([29,1,2,3,10,21,23,30]),import.meta.url).then(e=>({default:e.OutputsPage}))),fo=o.lazy(()=>ve(()=>import("./LabSkillSidebar-CbYdG0RN.js"),__vite__mapDeps([31,1,2,3,21,23,30,10,32]),import.meta.url).then(e=>({default:e.LabSkillSidebar}))),qu=o.lazy(()=>ve(()=>import("./BrowserSidebar-1aEC6gsF.js"),__vite__mapDeps([33,1,2,3,5,30,34]),import.meta.url).then(e=>({default:e.BrowserSidebar}))),Vu=o.lazy(()=>ve(()=>import("./RightChatPanelStack-DH8QjiDY.js"),__vite__mapDeps([35,1,2,10,36,13,3,23,37,4,5,21,30]),import.meta.url).then(e=>({default:e.RightChatPanelStack}))),Gu=o.lazy(()=>ve(()=>import("./NativeSkillSidebar-BfcMqLHA.js"),__vite__mapDeps([38,1,2,3,39]),import.meta.url).then(e=>({default:e.NativeSkillSidebar}))),Wu=o.lazy(()=>ve(()=>import("./TeamChatView-CqZOnQh2.js"),__vite__mapDeps([40,1,2,3,5,17,21,23,30,10,41,42]),import.meta.url).then(e=>({default:e.TeamChatView}))),Ku=o.lazy(()=>ve(()=>import("./TeamChatView-CqZOnQh2.js"),__vite__mapDeps([40,1,2,3,5,17,21,23,30,10,41,42]),import.meta.url).then(e=>({default:e.TeamChatProView}))),Xu=o.lazy(()=>ve(()=>import("./CommunityView-B2v9Q4cw.js"),__vite__mapDeps([43,1,2,44,5,3,21,23,30,10,45]),import.meta.url).then(e=>({default:e.CommunityView}))),Qu=o.lazy(()=>ve(()=>import("./TeamChatView-CqZOnQh2.js"),__vite__mapDeps([40,1,2,3,5,17,21,23,30,10,41,42]),import.meta.url).then(e=>({default:e.TeamAiThreadPanel}))),Ju=o.lazy(()=>ve(()=>import("./TeamChatView-CqZOnQh2.js"),__vite__mapDeps([40,1,2,3,5,17,21,23,30,10,41,42]),import.meta.url).then(e=>({default:e.TeamAgentConversationPanel}))),Zu=o.lazy(()=>ve(()=>import("./TrainingDraftPanel-BVHx0HZ0.js"),__vite__mapDeps([46,1,2,3,26]),import.meta.url).then(e=>({default:e.TrainingDraftPanel}))),Yu=o.lazy(()=>ve(()=>import("./MainChatThread-COiXI7ri.js"),__vite__mapDeps([47,1,2,36,13,3,23,37,10,4,5,21,30]),import.meta.url).then(e=>({default:e.MainChatThread}))),ed=o.lazy(()=>ve(()=>import("./TrainingCreationPanel-CWzyzmyT.js"),__vite__mapDeps([48,1,2,26]),import.meta.url).then(e=>({default:e.TrainingCreationPanel})));function td({experience:e,onNewExperienceChange:t,view:s,teamChat:r,community:a,bootstrap:i,runtimeEvents:c,chatMessages:u,pendingUserMessage:p,contextWindowStatus:f,goalRuntime:x,subagentRuntime:S,selectedSessionId:m,composerDraftStore:d,mainComposerFocusRequestId:v,labCloseDetailRequestId:k,labCloseDetailKind:E,sideChatTrainingLaunchRequest:b,onSideChatTrainingLaunchHandled:N,mentionApps:w,connectedAppMentions:T,profileSkills:j,selectedMentionAppId:L,busy:z,turnRunning:H,activeProvider:q,activeModel:V,codexPermissionMode:J,codexReasoningEffort:X,openPondCommandAccessMode:Ie,pendingApproval:pe,activeWorkspaceAppId:ue,activeWorkspaceId:ne,activeWorkspaceKind:me,projectTarget:C,actionCatalog:M,workspaceTarget:O,connection:$,workspaceName:_e,workspaceState:Ae,workspaceDiff:Qe,workspaceBusy:Se,diffBusy:G,forceChatThread:de=!1,diffPanelOpen:A,diffPanelExpanded:D,rightPanelMode:F,rightPanelTabRequest:B,rightChatPanels:je,runtimeEventStore:tt,nativeSkillSidebar:we,extensionSkillSidebar:xe,workspaceDiffPanelViewState:Ot,sidebarFileOpenRequest:Pe,sidebarFileBookmarks:sn,onSetSidebarFileStatus:rn,browserConversationId:se,terminalScope:ht,terminalTabs:on,terminalCwd:an,pendingTerminalCommand:y,terminalOpen:R,onToggleTerminal:le,onWorkspaceDiffPanelViewStateChange:be,training:K,trainingSessions:Ce,trainingChatHandoff:he,trainingDetailTasksetId:Y,onTrainingDetailTasksetIdChange:ie,onTrainingChatTaskSelect:St,onTrainingChatHandoffDismiss:Le,onOpenSession:nt,onExperienceHandoff:st,cloudProjects:Dt,chatHistoryHasMore:Ct=!1,chatHistoryLoading:ms=!1,onDiffPanelResizeStart:Me,canSyncWorkspace:hs,startMessage:Mt,onPayload:Et,onError:Nt,setView:He,onOpenProfileSettings:rt,onOpenProviderSettings:ln,onOpenTrainingSettings:Pn,onOpenDatasetStorageSettings:Oe,changeDraftProvider:ot,changeProjectTarget:Ln,changeWorkspaceTarget:On,setDraftProvider:Je,setDraftModel:at,onBeginNewChatWithModel:cn,changeCodexPermissionMode:it,changeCodexReasoningEffort:pt,changeOpenPondCommandAccessMode:De,resolveApproval:Dn,answerCreateImproveQuestion:lt,approveCreateImproveRun:zn,applyCreateImproveCandidate:un,cancelCreateImproveRun:Fn,openCreateImprovePullRequest:dn,pauseCreateImproveRun:fn,reconcileCreateImprovePullRequest:Bn,rejectCreateImproveCandidate:zt,resumeCreateImproveRun:mn,reviseCreateImproveRun:Un,setMentionedAppId:qe,showToast:oe,onSaveTaskDraft:ps,sendPrompt:ct,stopTurn:Hn,syncWorkspaceLocally:hn,refreshWorkspaceDiff:ze,onToggleDiffPanelExpanded:Ee,onShowDiffPanel:Ze,onShowBrowserPanel:At,onShowTrainingDraftPanel:Tt,onShowFilesPanel:qn,onShowRightChatPanel:xs,onAddRightChat:Vn,onOpenRightChatForSession:bs,onLabDetailOpenChange:Ft,scheduledDetailOpen:Vs,onScheduledDetailOpenChange:pn,onTerminalTabsChange:gs,onCloseRightChatPanel:ks,onCloseNativeSkillSidebar:ys,onActivateRightChatPanel:vs,onRightChatModelChange:ge,onRightChatPromptChange:xt,onRightChatScrollStateChange:Ve,onRightChatProviderChange:ke,onSubmitRightChat:Bt,onStopRightChat:js,onCloseTerminal:Gs,onLoadMoreChatHistory:Ut}){const[Gn]=o.useState(()=>new Ii),Ht=m&&!Dr(m)?m:null,Ye=Li(tt,Ht),xn=o.useMemo(()=>Ht?_a(c,Ye.events):c,[Ht,Ye.events,c]),bt=o.useMemo(()=>Ht?Pa(Gn.project(xn),p):u,[Gn,Ht,p,xn,u]),[Wn,bn]=o.useState(null),[ws,qt]=o.useState(0),[Ws,Kn]=o.useState(null),[ye,Vt]=o.useState(null),[et,gn]=o.useState(null),[Xn,$e]=o.useState(null),[Rt,Ge]=o.useState(null),[kn,ae]=o.useState(null),[Gt,Ss]=o.useState(null),[Qn,Cs]=o.useState([]),We=o.useMemo(()=>i?.sessions.find(g=>g.id===m)??null,[i?.sessions,m])?.currentProfile??i?.profileLibrary?.lastUsed??null,It=La(i?.profileLibrary??{profiles:[]},We)??i?.profile??null,Jn=o.useMemo(()=>Oa(It,i?.extensionCatalog),[i?.extensionCatalog,It]),Wt=o.useMemo(()=>Da(It),[It]),Kt=o.useCallback(async(g,_=m)=>{if(!$||!i)return;const re=za(i.profileLibrary??{profiles:[]},g);if(re)try{const Q=_&&!Dr(_)?i.sessions.find(U=>U.id===_)??null:null,W=await eu({ref:re,session:Q,selectProfile:U=>Ne.profileSelect($,U),patchSession:(U,mt)=>Ne.patchSession($,U,{currentProfile:mt})});let fe=i.sessions;W.session&&(fe=fe.map(U=>U.id===W.session.id?W.session:U)),Et({...i,profile:W.selected.profile,profileLibrary:W.selected.library,sessions:fe})}catch(Q){const W=Q instanceof Error?Q.message:String(Q);Nt(W),oe(W,"error")}},[i,$,Nt,Et,m,oe]);o.useEffect(()=>{if(!Pe)return;const{file:g,id:_}=Pe;if(Kn({id:_,path:g.path}),!$)return;let re=!1;return(g.workspaceKind==="local"?Ne.workspaceFile($,g.workspaceId,g.path).then(W=>W.content??""):Ne.sandboxDownloadFile($,g.workspaceId,g.path).then(W=>{if(W.file.isBinary)throw new Error("Binary files cannot be attached to chat.");return W.contents})).then(W=>{if(re)return;const fe=g.path.split("/").at(-1)??g.path;bn({id:_,file:new File([W],fe,{type:nd(g)})})}).catch(W=>{re||oe(W instanceof Error?W.message:String(W),"error")}),()=>{re=!0}},[$,oe,Pe]);const ut=e==="development"||e==="work"&&C.value!=="none",Xt=o.useMemo(()=>{if(e==="chat")return Wt;if(!ut)return[];const g=new Map(M.filter(_=>!Fa(_)).map(_=>[_.id,_]));for(const _ of Wt)g.set(_.id,_);for(const _ of Qn)g.set(_.id,_);return[...g.values()]},[M,e,ut,Qn,Wt]),ce=xu($),Zn=o.useCallback(g=>{if(!g){ce.activate(null);return}ce.activate({runId:g.run.id,candidateId:g.candidate.id,title:g.run.objective,fileRootPath:g.fileRootPath,initialPath:g.initialPath})},[ce.activate]),Yn=o.useCallback(()=>{ce.selection?.initialPath&&ce.openFile(ce.selection.initialPath),Ze()},[ce.openFile,ce.selection?.initialPath,Ze]),Xs=o.useCallback(g=>{gn(g),g&&Ze()},[Ze]),Qs=o.useCallback(()=>{gn(null),D&&Ee()},[D,Ee]);o.useEffect(()=>{s!=="labs"&&gn(null)},[s]);const Js=o.useCallback((g,_)=>{const re=Date.now(),Q=M.find(fe=>fe.id===g)??null;d.set(""),qe(null),He("chat");const W=fe=>{if(!(fe.find(ee=>ee.id===g)??null))return!1;const mt=fe.map(ee=>ee.id===g?{...ee,label:_}:ee);return Cs(mt),window.requestAnimationFrame(()=>{Ss({actionId:g,requestId:Math.max(Date.now(),re+1)})}),!0};if(!$){Q?W([Q]):oe("The Agent action catalog is still loading. Try Use again.","error");return}Ne.profileCurrent($).then(fe=>{const U=fe.actionCatalog.map(mt=>Ba(mt));!W(U)&&Q?W([Q]):U.some(mt=>mt.id===g)||oe("This Agent is ready, but its default chat action is unavailable.","error")}).catch(fe=>{Q||oe(fe instanceof Error?fe.message:String(fe),"error")})},[M,d,$,qe,He,oe]),Zs=o.useCallback((g,_)=>{d.set(g),qe(null),_&&ot(_),He("chat")},[ot,d,qe,He]),Qt=o.useMemo(()=>Ua(i?.preferences),[i?.preferences]),yn=Qt.training,{createAgentFromLab:Ys,improveAgentFromLab:er}=gu({activeModel:V,activeProvider:q,bootstrap:i,codexPermissionMode:J,codexReasoningEffort:X,connection:$,onOpenRightChatForSession:bs,onPayload:Et}),$t=o.useMemo(()=>{const g=K.payload?.tasksets??[];return g.some(_=>_.id===Rt)?Rt:g[0]?.id??null},[Rt,K.payload?.tasksets]),tr=s==="labs"&&$t?`profiles/${i?.profile.activeProfile??"default"}/tasksets/${$t}`:null,gt=o.useMemo(()=>{if(s!=="labs"||!$t||!K.payload)return null;const g=K.payload.tasksets.find(ee=>ee.id===$t);if(!g)return null;const _=K.payload.plans.filter(ee=>ee.tasksetId===g.id),re=new Set(_.map(ee=>ee.id)),Q=K.payload.jobs.filter(ee=>re.has(ee.planId)).sort((ee,as)=>as.createdAt.localeCompare(ee.createdAt)),W=Q.find(ee=>ee.id===kn)??Q[0]??null,fe=W?_.find(ee=>ee.id===W.planId)??null:_.sort((ee,as)=>as.createdAt.localeCompare(ee.createdAt))[0]??null,U=W?K.payload.models.find(ee=>ee.jobId===W.id)??null:null,mt=W?K.payload.artifacts.filter(ee=>ee.jobId===W.id):[];return{taskset:g,plan:fe,job:W,lineage:U,artifacts:mt}},[$t,kn,K.payload,s]),es=o.useMemo(()=>pu(K.payload,m),[m,K.payload]),_t=o.useMemo(()=>Mu(bt),[bt]),nr=!!x||!!_t||!!S,Te=s==="labs"&&!!ce.selection,kt=s==="labs"&&A&&F==="changes"&&!!et,sr=(s==="chat"||s==="labs")&&!!ue,vn=s==="chat"&&A&&F==="chat"&&je.length===0,Ms=Ha(me)?ne??Nu(_e):null,Es=s==="chat"&&!!Ms,yt=Ms,ts=!!yt||O.value==="cloud"||O.value==="hybrid",Jt=o.useMemo(()=>Qc({workspaceTarget:O.value,localWorkspaceId:ue,sandboxSourceAvailable:ts,sandboxWorkspaceId:yt,override:ye}),[ue,ts,yt,ye,O.value]),jn=Jt.source,Ke=jn==="sandbox",Ns=o.useMemo(()=>jn&&Jt.options.length>1?{value:jn,options:Jt.options,onChange:Vt}:null,[jn,Jt.options]);o.useEffect(()=>{Vt(null)},[ue,se,yt,O.value]);const ns=!kt&&(Te||sr||Es)&&A&&(F==="changes"||F==="goal"&&nr||vn),wn=s==="chat"&&A&&F==="browser",vt=(s==="chat"||s==="labs")&&A&&F==="chat"&&je.length>0,Sn=s==="chat"&&A&&F==="training",Cn=s==="chat"&&A&&!!we,rr=s==="chat"&&A&&!!xe,Fe=s==="team"&&A&&F==="chat"&&!!r.aiThread,ss=s==="team"&&A&&F==="chat"&&!!r.agentConversation,Mn=e==="work"&&s==="chat"&&A&&F==="home",As=Uo({supportedView:s==="chat"&&ut||s==="labs",open:A,hasContentPanel:ns||kt||wn||vt||Sn||Cn||Fe||ss||Mn}),En=ns||kt||wn||vt||Sn||Cn||Fe||ss||Mn||As,rs=En&&F!=="chat"&&D,Ts=i?.account.baseUrl??i?.account.activeProfile?.baseUrl??null,Zt=ju({activeWorkspaceId:ne,cloudProjects:Dt}),Rs=s==="chat"&&H&&!pe&&Xc(bt),os=de||bt.length>0||Rs,l=m??`draft:${s}:${me??"none"}:${ne??ue??"none"}`,h=n.jsx(Ru,{activeModel:V,activeProvider:q,busy:H,handoff:he,onDismiss:Le,onSelectTask:St}),I=o.useMemo(()=>({onAnswerQuestion:lt,onApprove:zn,onApplyCandidate:un,onCancel:Fn,onOpenPullRequest:dn,onPause:fn,onReconcilePullRequest:Bn,onRejectCandidate:zt,onResume:mn,onRevise:Un}),[lt,zn,un,Fn,dn,fn,Bn,zt,mn,Un]),P=o.useMemo(()=>_t?{..._t,...I}:null,[I,_t]),te=_u(s,os),Z=o.useCallback(async(g=[],_=null,re=null,Q={})=>{const W=Q.promptOverride??d.getSnapshot(),fe=()=>{Q.preservePrompt||(d.set(""),qe(null))};if(!_){const U=re?{command:re.id,args:W.trim()}:xo(W);if(U){if(!qa({id:U.command},e))return oe(`/${U.command} isn't available in ${e}.`,"info"),!1;if(U.command==="train")return g.length>0?(oe("/train uses the selected chat; add other chats from Models.","error"),!1):m?(fe(),$e({id:Date.now(),objective:U.args.trim()||null,initialSessionIds:[m]}),He("labs"),!0):(fe(),$e({id:Date.now(),objective:U.args.trim()||null,initialSessionIds:[]}),He("labs"),!0);if(!U.args&&U.command!=="skill"&&U.command!=="sync-cloud")return oe(`Add instructions after /${U.command}.`,"info"),!1;if(g.length>0)return oe(`/${U.command} tasks do not accept attachments yet. Add file context in the task thread.`,"error"),!1;if(U.command==="submit-issue")return Va(T)?(qt(ee=>ee+1),ct([],null,Ga(U.args),{clearPrompt:Q.preservePrompt?()=>{}:void 0,usageAttribution:pr(U,re?"composer_selection":"prompt_parse")})):(oe("Connect the GitHub app before using /submit-issue.","error"),!1);if(Eu(U)){const ee=U.command==="skill"?Zc(U.args,q,i?.profile.sourcePath??null):uo(U);return qt(as=>as+1),ct([],null,ee,{clearPrompt:Q.preservePrompt?()=>{}:void 0,usageAttribution:pr(U,re?"composer_selection":"prompt_parse")})}return qt(ee=>ee+1),ct([],null,uo(U),{clearPrompt:Q.preservePrompt?()=>{}:void 0,usageAttribution:pr(U,re?"composer_selection":"prompt_parse")})}}return qt(U=>U+1),ct(g,_,Q.promptOverride,{clearPrompt:Q.preservePrompt?()=>{}:void 0,displayPrompt:Q.displayPrompt,turnMetadata:Q.turnMetadata})},[V,q,me,i?.profile,T,d,e,ct,m,qe,He,oe,K,s]),Re=o.useCallback(g=>{he&&g!==he.model.modelId&&Le(),Je(q),at(g)},[q,Le,at,Je,he]),dt=o.useCallback(g=>{he&&g!==he.model.providerId&&Le(),ot(g)},[ot,Le,he]),{chatColumnStyle:Yt,chatThreadPreparingInitialScroll:Pt,chatThreadRef:ft,chatTimelineRows:en,composerStackRef:Ue,goToUserMessage:Ar,handleChatScroll:Ho,jumpToLatestChatMessage:qo,showScrollToBottomButton:Vo,userMessageNavigation:Is}=Lu({browserConversationId:se,chatSubmissionVersion:ws,chatHistoryHasMore:Ct,chatHistoryLoading:ms,chatMessages:bt,onLoadMoreChatHistory:Ut,pendingApproval:pe,showChatThread:os,showThinkingIndicator:Rs,view:s}),$s=o.useCallback((g,_)=>{Wa({conversationId:se,href:g,explicitFile:_?.explicitFile,newTab:_?.newTab}).then(re=>{re&&At()})},[se,At]),_s=ri({projectTargetDetail:C.detail,projectTargetValue:C.value,workspaceRepoPath:Ae?.repoPath,workspaceTargetValue:O.value}),Tr=o.useCallback(g=>{const _=Gc(g,_s);if(_&&$){Ne.signLocalVideoUrl($,{path:_}).then(({url:Q})=>$s(Q)).catch(Q=>{oe(Q instanceof Error?Q.message:"Could not open this video.","error")});return}const re=oi(g,{workspaceRootPath:_s});Ze(),Kn({id:Date.now(),path:re?.path??g})},[$,$s,Ze,oe,_s]),Rr=o.useCallback(async g=>{if(!$||!g.filePreview&&!g.imagePreview){oe("File content is not available for this attachment.","error");return}try{const _=g.name.trim().replace(/[\\/]+/g,"-")||"attachment.txt",Q=`Attachments/${g.id.replace(/[^a-zA-Z0-9._-]+/g,"-")||"file"}/${_}`,W={path:Q,status:"",additions:0,deletions:0,patch:"",content:null};let fe;if(g.filePreview){const U=await Ne.chatAttachmentFile($,g.filePreview);W.content=U.content}else g.imagePreview&&(fe=(await Ne.signChatAttachmentImageUrl($,g.imagePreview)).url);Ze(),Kn({id:Date.now(),path:Q,file:W,...fe?{imageUrl:fe}:{}})}catch(_){oe(_ instanceof Error?_.message:"Could not open this attachment.","error")}},[$,Ze,oe]),Go=Se&&!!ue&&!Ae,Ir=ce.selection?`candidate:${ce.selection.runId}:${ce.selection.candidateId}`:null,Wo=ns?n.jsx(Du,{appId:Te?Ir:Ke?null:ue,workspaceId:Te?Ir:Ke?yt:ue,workspaceKind:Te?"local_project":Ke?null:"local_project",connection:$,runtimeEvents:xn,diff:Te?ce.diff:Ke?null:Qe,fileRootPath:Te?ce.selection?.fileRootPath??null:Ke?null:tr,filesWithPreview:Te,editorPreferences:i?.preferences.editor??null,loading:Te?ce.loading:Ke?Se:G||Go,openFileRequest:Te?ce.openFileRequest:Ws,sidebarFileBookmarks:sn,sidebarFileSourceSessionId:m,onSetSidebarFileStatus:rn,readOnly:Te,sideChatTabs:je.map(g=>({id:g.id,title:g.title,running:g.running})),sourceSwitcher:Te?null:Ns,tabRequest:B,viewState:Ot,workspaceName:Te?ce.selection?.title??"Change":Ke?_e??"Sandbox":_e,workspaceInitialized:Te?!0:Ke?!!yt:!!Ae?.initialized,workspaceError:Te?ce.error:Ke?null:Ae?.error??Qe?.error??null,expanded:D,onResizeStart:Me,onRefresh:g=>{Te?ce.refresh(g):ze(g)},onToggleExpanded:Ee,onOpenBrowser:At,onOpenBrowserUrl:$s,onViewStateChange:be,onCloseSideChat:ks,onOpenSideChat:s==="chat"?Vn:void 0,onSelectSideChat:g=>{vs(g),xs()},goalDetails:{active:F==="goal",createRuntime:P,goalRuntime:x,subagentRuntime:S},sandboxFileSource:Ke?{sandboxId:yt,emptyMessage:"No sandbox filesystem yet."}:null,trainingSummary:gt}):null,Ko=wn?n.jsx(qu,{conversationId:se,expanded:D,onResizeStart:Me}):null,Xo=Fe?o.createElement(Qu,{...r,key:r.aiThread?.conversationId,onResizeStart:Me}):null,Qo=ss?o.createElement(Ju,{...r,key:r.agentConversation?.run.id,onResizeStart:Me}):null,Jo=vt?n.jsx(Vu,{panels:je,runtimeEventStore:tt,actionCatalog:Xt,createImproveActions:I,contextCompaction:Qt.contextCompaction,busy:z,codexPermissionMode:J,codexReasoningEffort:X,openPondCommandAccessMode:Ie,connection:$,connectedAppMentions:T,mentionApps:w,codexPersonalSkills:i?.codexPersonalSkills??[],profileSkills:j,profileLibrary:i?.profileLibrary??{lastUsed:null,profiles:[]},extensionCatalog:i?.extensionCatalog??null,projectTarget:C,providerSettings:i?.providers??null,accountBaseUrl:Ts,billingOrganizationSlug:Zt.organizationSlug,billingTeamId:Zt.teamId,showToast:oe,workspaceTarget:O,onAddChat:Vn,onActivatePanel:vs,onClosePanel:ks,onCodexPermissionModeChange:it,onCodexReasoningEffortChange:pt,onOpenPondCommandAccessModeChange:De,onModelChange:ge,onOpenAttachmentInSidebar:Rr,onOpenFileInSidebar:Tr,onOpenProfileSettings:rt,onOpenSession:nt,onProviderChange:ke,onProviderSetupOpen:ln,onPromptChange:xt,onProfileTargetChange:(g,_)=>{Kt(_,g)},onScrollStateChange:Ve,onProjectTargetChange:Ln,onResolveApproval:Dn,onResizeStart:Me,onSelectFiles:qn,onShowBrowserPanel:At,onStop:js,onSubmit:Bt,onWorkspaceTargetChange:g=>{On(g)}}):null,Zo=As?n.jsx(su,{expanded:D,terminalOpen:R,sideChatAvailable:s==="chat"||s==="labs",onOpenBrowser:At,onOpenFiles:qn,onOpenReview:Ze,onOpenSideChat:Vn,onOpenTrainingDraft:Tt,trainingDraftAvailable:!!m,onResizeStart:Me,onToggleExpanded:Ee,onToggleTerminal:le}):null,Yo=Mn?n.jsx(ru,{chatMessages:bt,connection:$,contextWindowStatus:f,expanded:D,runtimeEvents:xn,sessionId:m,showToast:oe,onResizeStart:Me,onToggleExpanded:Ee,onUseOutput:g=>bn({id:Date.now(),file:g}),onHandoffOutput:async(g,_,re)=>{await st({target:g,sourceSessionId:m,output:_,prompt:Ka(_,g)}),re&&bn({id:Date.now(),file:re})},onReviseOutput:(g,_,re)=>{bn({id:Date.now(),file:_}),d.set(`Create revision ${g.revision+1} of "${g.title}" from the attached revision ${g.revision}. Apply only this requested change:
|
|
5
|
+
|
|
6
|
+
${re}`)},onAgentPackageInstalled:async()=>{$&&Et(await Ne.bootstrap($))}}):null,ea=Sn?n.jsx(o.Suspense,{fallback:null,children:n.jsx(Zu,{training:K,sessionId:m,expanded:D,onOpenTraining:()=>He("labs"),onResizeStart:Me,onToggleExpanded:Ee})}):null,Nn=Qo??Xo??Jo??(Cn&&we?n.jsx(Gu,{expanded:D,skill:we,onClose:ys,onResizeStart:Me,onToggleExpanded:Ee}):null)??(rr&&xe?n.jsx(fo,{connection:$,expanded:D,selection:xe,onClose:ys,onResizeStart:Me,onToggleExpanded:Ee}):null)??(kt&&et?n.jsx(fo,{connection:$,expanded:D,selection:et,onClose:Qs,onResizeStart:Me,onToggleExpanded:Ee}):null)??Wo??Ko??ea??Yo??Zo,or=n.jsx(nu,{open:R,connection:$,scope:ht,tabs:on,onTabsChange:gs,cwd:an,appId:ue,workspaceName:_e,queuedCommand:y,onClose:Gs});return n.jsxs("main",{className:`main-pane ${te} ${R?"terminal-open":""} ${En?"diff-open":""} ${rs?"diff-expanded":""}`,children:[s==="team"||s==="community"?n.jsx(Ou,{onSelect:He,view:s}):null,s==="apps"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(zu,{account:i?.account??null,connection:$,defaultTeamId:i?.preferences.defaultTeamId??null,onToast:oe})}):s==="team"?n.jsxs(o.Suspense,{fallback:null,children:[r.teamId?n.jsx(Wu,{...r}):n.jsx(Ku,{}),En?Nn:null]}):s==="community"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(Xu,{...a})}):s==="get-started"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(Fu,{})}):s==="scheduled"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(Uu,{connection:$,detailOpen:Vs,detailExpanded:D,onDetailOpenChange:pn,onDetailResizeStart:Me,onToggleDetailExpanded:Ee})}):s==="outputs"?n.jsx(o.Suspense,{fallback:null,children:n.jsx(Hu,{connection:$,onViewChat:nt})}):s==="labs"?rs?n.jsx(o.Suspense,{fallback:null,children:Nn}):n.jsxs(n.Fragment,{children:[n.jsx(o.Suspense,{fallback:null,children:n.jsx(Bu,{account:i?.account??null,closeDetailRequestId:k,closeDetailKind:E,onNewModel:g=>{$e({id:Date.now(),objective:null,initialSessionIds:[],initialTasksetId:g})},onUseAgent:Js,onCreateAgent:Ys,onImproveAgent:er,onDetailOpenChange:Ft,onSkillSelectionChange:Xs,onOpenRunConversation:bs,onAnswerQuestion:lt,onApplyCandidate:un,onApprove:zn,onCancel:Fn,candidateReview:{diff:ce.diff,error:ce.error,loading:ce.loading},onCandidateReviewChange:Zn,onOpenPullRequest:dn,onOpenCandidateFiles:Yn,onPause:fn,onReconcilePullRequest:Bn,onRejectCandidate:zt,onResume:mn,onRevise:Un,profileView:{payload:i,connection:$,onPayload:Et,onError:Nt,onToast:oe,onSkillCommand:Zs},training:{training:K,sessions:Ce,localProjects:i?.localProjects??[],connection:$,defaultModel:{providerId:q,modelId:V},onError:Nt,onToast:oe,onSettingsPreferences:g=>{i&&Et({...i,preferences:g.preferences})},onOpenTrainingSettings:Pn,onOpenProviderSettings:ln,onOpenDatasetStorageSettings:Oe,onOpenChat:nt,onChatWithModel:cn,onOpenTasksetFiles:qn,launchRequest:b??Xn,onLaunchHandled:g=>{if(b?.id===g){N(g);return}$e(_=>_?.id===g?null:_)},preferences:yn,settingsPreferences:Qt,providerSettings:i?.providers??null,reasoningEffort:X,selectedTasksetId:$t,onSelectedTasksetIdChange:Ge,onSelectedTrainingJobIdChange:ae,detailTasksetId:Y,onDetailTasksetIdChange:ie}})}),or,En?n.jsx(o.Suspense,{fallback:null,children:Nn}):null]}):rs?n.jsx(o.Suspense,{fallback:null,children:Nn}):os?n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:`chat-column ${pe?"has-approval":""}`,style:Yt,children:[n.jsx(o.Suspense,{fallback:null,children:n.jsx(Yu,{accountBaseUrl:Ts,activeWorkspaceAppId:ue,billingOrganizationSlug:Zt.organizationSlug,billingTeamId:Zt.teamId,connection:$,conversationKey:se??"draft",creation:es,onOpenBrowserLink:$s,onOpenAttachmentInSidebar:Rr,onOpenFileInSidebar:Tr,onOpenProfileSettings:rt,onResolveUserQuestion:async(g,_)=>{const re=_.action==="answer"?_.text:"Dismiss this question";if(!await ct([],null,re,{displayPrompt:re,turnMetadata:{userQuestionResolution:_}}))throw new Error("The question response could not be sent.")},onOpenSession:nt,onScroll:g=>Ho(g.currentTarget),preparingInitialScroll:Pt,rows:en,userAttachmentDisplay:q==="codex"?"compact":"full",threadRef:ft,workspaceRootPath:_s})}),n.jsxs("div",{className:`composer-stack dock ${pe?"has-approval":""}`,ref:Ue,children:[es?n.jsx(o.Suspense,{fallback:null,children:n.jsx(ed,{compact:!0,creation:es,training:K,onOpenTraining:()=>He("labs")})}):null,h,n.jsx(ao,{approval:pe,onResolve:Dn}),Vo&&!Pt?n.jsx(Iu,{canGoNext:Is.canGoNext,canGoPrevious:Is.canGoPrevious,onJumpToLatest:qo,onNext:()=>{Is.canGoNext&&Ar("next")},onPrevious:()=>{Is.canGoPrevious&&Ar("previous")}}):null,n.jsx(oo,{experience:e,draftStore:d,attachmentRequest:Wn,mode:"dock",focusRequestId:v,mentionApps:ut?w:[],connectedAppMentions:T,profileSkills:q==="codex"?i?.codexPersonalSkills??[]:Jn,selectedMentionAppId:L,contextWindowStatus:f,goalRuntime:e!=="chat"?x:null,subagentRuntime:e!=="chat"?S:null,createImproveRuntime:ut?P:null,busy:H,running:H,submissionScopeKey:l,showProjectFooter:!1,connection:$,providerSettings:i?.providers??null,provider:q,model:V,projectTarget:C,profileTarget:null,actionCatalog:Xt,requestedAction:Gt,workspaceTarget:O,codexPermissionMode:J,codexReasoningEffort:X,openPondCommandAccessMode:Ie,onProviderChange:dt,onProviderSetupOpen:ln,onProjectTargetChange:Ln,onProfileTargetChange:g=>{Kt(g)},onWorkspaceTargetChange:g=>{On(g)},onModelChange:Re,onCodexPermissionModeChange:it,onCodexReasoningEffortChange:pt,onOpenPondCommandAccessModeChange:De,onMentionAppSelect:qe,onSaveTaskDraft:ps,showToast:oe,onSubmit:Z,onStop:Hn})]})]}),or,n.jsx(o.Suspense,{fallback:null,children:Nn})]}):n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"start-panel",children:[n.jsx(hu,{value:e==="chat"?"chat":"work",onChange:t}),n.jsxs("div",{className:"start-welcome",children:[n.jsx("h1",{children:Mt}),hs&&n.jsx($u,{busy:Se,onSync:()=>{hn()}})]}),n.jsxs("div",{className:"composer-stack start",children:[h,n.jsx(ao,{approval:pe,onResolve:Dn}),n.jsx(oo,{experience:e,draftStore:d,attachmentRequest:Wn,mode:"start",autoFocus:!0,focusRequestId:v,mentionApps:ut?w:[],connectedAppMentions:T,profileSkills:q==="codex"?i?.codexPersonalSkills??[]:Jn,selectedMentionAppId:L,contextWindowStatus:f,goalRuntime:e!=="chat"?x:null,subagentRuntime:e!=="chat"?S:null,createImproveRuntime:ut?P:null,busy:H,running:H,submissionScopeKey:l,connection:$,providerSettings:i?.providers??null,provider:q,model:V,showProjectFooter:e!=="chat",projectTarget:C,profileTarget:null,actionCatalog:Xt,requestedAction:Gt,workspaceTarget:O,codexPermissionMode:J,codexReasoningEffort:X,openPondCommandAccessMode:Ie,onProviderChange:dt,onProviderSetupOpen:ln,onProjectTargetChange:Ln,onProfileTargetChange:g=>{Kt(g)},onWorkspaceTargetChange:g=>{On(g)},onModelChange:Re,onCodexPermissionModeChange:it,onCodexReasoningEffortChange:pt,onOpenPondCommandAccessModeChange:De,onMentionAppSelect:qe,onSaveTaskDraft:ps,showToast:oe,onSubmit:Z,onStop:Hn})]})]}),or,n.jsx(o.Suspense,{fallback:null,children:Nn})]})]})}function nd(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 fd=Object.freeze(Object.defineProperty({__proto__:null,MainPane:td,shouldShowRightSidebarHomePanel:Uo},Symbol.toStringTag,{value:"Module"}));export{ao as A,xi as C,gi as F,Si as I,fd as M,Ai as P,Ri as R,yi as a,ji as b,Ii as c,Wc as d,Pu as e,Uc as f,mc as g,pc as h,yc as i,Tl as j,Fs as k,Br as l,vc as m,wc as r,Xc as s,Li as u};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{c as P,r as f,j as l,C as ae,P as oe,b1 as N,b2 as S,p as Z,aL as ce,X as ue,b3 as L,b4 as M,b5 as de,aY as q}from"./index-LrGasYyx.js";const he=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],mn=P("archive",he);const fe=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],kn=P("arrow-right",fe);const pe=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],gn=P("bot",pe);const me=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]],wn=P("clipboard",me);const ke=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],vn=P("code-xml",ke);const ge=[["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"}]],yn=P("file",ge);const we=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],bn=P("minimize-2",we);const ve=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],xn=P("pause",ve);const ye=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],In=P("trash-2",ye);const be=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],jn=P("workflow",be);function Ln({value:e,options:r,disabled:n,compact:t,className:s,icon:i,placement:a="bottom",label:c,tooltip:o,searchable:d=!1,onChange:g}){const[p,v]=f.useState(!1),[m,k]=f.useState(""),h=f.useRef(null),y=r.find(u=>u.value===e)??r[0],w=m.trim().toLowerCase(),j=w?r.filter(u=>[u.label,u.shortLabel,u.description].some(b=>b?.toLowerCase().includes(w))):r;return f.useEffect(()=>{if(!p){k("");return}function u(x){h.current?.contains(x.target)||v(!1)}function b(x){x.key==="Escape"&&v(!1)}return document.addEventListener("pointerdown",u),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",u),document.removeEventListener("keydown",b)}},[p]),l.jsxs("div",{className:`dropdown-select ${s??""} ${t?"compact":""} ${a==="top"?"open-up":""}`,"data-tooltip":o,ref:h,children:[l.jsxs("button",{type:"button",className:`dropdown-trigger ${p?"active":""}`,disabled:n,"aria-label":c,"aria-haspopup":"menu","aria-expanded":p,onClick:()=>v(u=>!u),children:[i,l.jsx("span",{children:y?.shortLabel??y?.label??e}),l.jsx(ae,{size:14})]}),p&&l.jsxs("div",{className:"dropdown-menu",role:"menu",children:[d?l.jsxs("label",{className:"dropdown-search",onClick:u=>u.stopPropagation(),children:[l.jsxs("span",{className:"sr-only",children:["Search ",c]}),l.jsx("input",{autoFocus:!0,placeholder:`Search ${c.toLowerCase()}`,value:m,onChange:u=>k(u.target.value)})]}):null,j.map(u=>l.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":u.value===e,disabled:u.disabled,className:[u.value===e?"selected":"",u.separatorBefore?"separator-before":"",u.icon?"with-icon":""].filter(Boolean).join(" "),onClick:()=>{u.disabled||(g(u.value),k(""),v(!1))},children:[l.jsxs("span",{children:[u.icon==="plus"?l.jsx(oe,{size:13}):null,l.jsx("span",{children:u.label})]}),u.description&&l.jsx("small",{children:u.description})]},u.value)),j.length?null:l.jsx("div",{className:"dropdown-empty",children:"No matches"})]})]})}function K(e,r,n){const t=G(e),[s,i]=f.useState(()=>t.getUrl(r,n));return f.useEffect(()=>{let a=!1;return i(t.getUrl(r,n)),t.loadUrl(r,n).then(c=>{a||i(c)}),()=>{a=!0}},[r,n,t]),s}function G(e){const[,r]=f.useState(0),n=f.useCallback((i,a)=>!e||!i||!a?null:(N.activateConnection(e),N.get(S(e,"workspace-image",i,a))),[e]),t=f.useCallback(async(i,a)=>{if(!e||!i||!a)return null;N.activateConnection(e);const c=S(e,"workspace-image",i,a);return N.load(c,()=>Z.signWorkspaceImageUrl(e,{appId:i,path:a})).finally(()=>r(o=>o+1))},[e]),s=f.useCallback((i,a)=>{t(i,a)},[t]);return f.useMemo(()=>({ensureUrl:s,getUrl:n,loadUrl:t}),[s,n,t])}function xe({open:e,src:r,title:n,onClose:t}){const[s,i]=f.useState(!1);if(f.useEffect(()=>{if(!e)return;const o=d=>{d.key==="Escape"&&t()};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[t,e]),f.useEffect(()=>{i(!1)},[r]),!e||!r)return null;const a=(()=>{const o=n.split("/").pop()?.trim();if(o&&/\.[A-Za-z0-9]+$/.test(o))return o;try{const g=new URL(r,window.location.href).pathname.split("/").pop()?.trim();if(g&&/\.[A-Za-z0-9]+$/.test(g))return g}catch{}return"image.png"})(),c=()=>{const o=document.createElement("a");o.href=r,o.download=a,o.rel="noopener",document.body.appendChild(o),o.click(),o.remove()};return l.jsx("div",{className:"image-lightbox-backdrop",role:"presentation",onMouseDown:o=>{o.target===o.currentTarget&&t()},children:l.jsxs("section",{"aria-label":n?`Image preview: ${n}`:"Image preview","aria-modal":"true",className:"image-lightbox-dialog",role:"dialog",children:[l.jsxs("header",{className:"image-lightbox-header",children:[l.jsx("span",{title:n,children:n}),l.jsxs("div",{className:"image-lightbox-actions",children:[l.jsx("button",{type:"button","aria-label":"Download image",title:"Download",onClick:c,children:l.jsx(ce,{size:16})}),l.jsx("button",{type:"button","aria-label":"Close image preview",title:"Close",onClick:t,children:l.jsx(ue,{size:16})})]})]}),l.jsx("div",{className:"image-lightbox-frame",children:s?l.jsx("div",{className:"image-lightbox-error",children:"Image preview unavailable"}):l.jsx("img",{alt:n||"Image preview",decoding:"async",draggable:!1,src:r,onError:()=>i(!0)})})]})})}const Ie=new Set(["bash","c","cc","cjs","cpp","css","csv","env","gif","go","graphql","h","hpp","html","ico","java","jpeg","jpg","js","json","jsx","lock","lockb","md","mdx","m4v","mjs","mov","mp4","png","py","rs","scss","sh","sql","svg","toml","ts","tsx","txt","webp","webm","yaml","yml","zsh"]),je=new Set(["AGENTS.md","Dockerfile","LICENSE","Makefile","README"]),z=String.raw`[A-Za-z0-9_.@+-]+`,Le=new RegExp(String.raw`^(?:(?:\.{1,2}|~)?[\\/]|[A-Za-z]:[\\/])?(?:${z}[\\/])+${z}(?::\d+(?::\d+)?)?`),Me=new RegExp(String.raw`^${z}(?::\d+(?::\d+)?)?`),Pe=/^(?:workspace|sandbox):file:[^\s<>()]+/;function Mn({projectTargetDetail:e,projectTargetValue:r,workspaceRepoPath:n,workspaceTargetValue:t}){const s=n?.trim();return s||(t!=="local"||!r.startsWith("local:")?null:e.trim()||null)}function Ne(e,r,n={}){if(!Re(e[r-1]))return null;const t=e.slice(r),s=Pe.exec(t),i=s?null:Le.exec(t),a=s||i?null:Me.exec(t),c=Y((s??i??a)?.[0]??"");if(!c)return null;const o=_(c,n);return o?{...o,end:r+c.length}:null}function _(e,r={}){const n=Y(e.trim().replace(/^['"`]+|['"`]+$/g,""));if(!n||/^https?:\/\//i.test(n))return null;const s=Ee(Ue(n)).replace(/:\d+(?::\d+)?$/,"");return $e(s)?{displayPath:n,path:Ce(s,r.workspaceRootPath)}:null}function Ue(e){const r=/^(workspace|sandbox):file:(.*)$/i.exec(e);if(!r)return e;const n=r[1]?.toLowerCase();let t=r[2]??"";return n==="sandbox"&&(t=t.replace(/^\/workspace\/app\//,"").replace(/^\/workspace\//,"")),t}function Ee(e){if(!/^file:\/\//i.test(e))return e;try{return decodeURIComponent(new URL(e).pathname)}catch{return e.replace(/^file:\/\//i,"")}}function Ce(e,r){let n=e.replace(/\\/g,"/").replace(/^\.\/+/,"");const t=r?.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!t)return n;n.startsWith(`${t}/`)&&(n=n.slice(t.length+1));const s=t.split("/").filter(Boolean).at(-1);return s&&n.startsWith(`${s}/`)&&(n=n.slice(s.length+1)),n}function $e(e){const r=e.replace(/\\/g,"/").split("/").filter(Boolean).at(-1)??e;if(je.has(r)||r.startsWith(".")&&r.length>1)return!0;const n=r.includes(".")?r.split(".").at(-1)?.toLowerCase():null;return!!(n&&Ie.has(n))}function Re(e){return!e||/[\s([{<"'`]/.test(e)}function Y(e){return e.replace(/[.,;!?]+$/,"").replace(/[\])}]+$/,"")}function Q(e,r){const n=J(e),[t,s]=f.useState(()=>n.getUrl(r));return f.useEffect(()=>{let i=!1;return s(n.getUrl(r)),n.loadUrl(r).then(a=>{i||s(a)}),()=>{i=!0}},[r,n]),t}function J(e){const[,r]=f.useState(0),n=f.useCallback(s=>!e||!s?null:(N.activateConnection(e),N.get(S(e,"local-image",s))),[e]),t=f.useCallback(async s=>{if(!e||!s)return null;N.activateConnection(e);const i=S(e,"local-image",s);return N.load(i,()=>Z.signLocalImageUrl(e,{path:s})).finally(()=>r(a=>a+1))},[e]);return f.useMemo(()=>({getUrl:n,loadUrl:t}),[n,t])}function R(e){const r=e.replace(/\r\n/g,`
|
|
2
|
+
`).split(`
|
|
3
|
+
`),n=[];let t=[],s=[],i=[],a=!1,c,o=null,d,g=0;function p(){t.length!==0&&(n.push({type:"paragraph",content:t.join(`
|
|
4
|
+
`).trim()}),t=[])}function v(){s.length!==0&&(n.push({type:"blockquote",content:s.join(`
|
|
5
|
+
`)}),s=[])}function m(){i.length!==0&&(n.push({type:"list",ordered:a,start:c,items:i}),i=[],a=!1,c=void 0)}for(let k=0;k<r.length;k+=1){const h=r[k];if(o){if(_e(h,g)){n.push({type:"code",content:o.join(`
|
|
6
|
+
`),language:d}),o=null,d=void 0,g=0;continue}o.push(h);continue}const y=h.match(/^\s*>\s?(.*)$/);if(y){p(),m(),s.push(y[1]??"");continue}v();const w=Oe(h);if(w){p(),m(),o=w.firstLine===void 0?[]:[w.firstLine],d=w.language,g=w.ticks;continue}const j=We(r,k);if(j){p(),m(),n.push({type:"table",headers:j.headers,rows:j.rows}),k=j.endIndex;continue}const u=h.match(/^\s*(#{1,4})(?:\s+|(?=\d+[.)]\s+))(.+)$/);if(u){p(),m();const x=u[1].length;n.push({type:"heading",level:x,content:u[2].trim()});continue}const b=h.match(ee);if(b){p();const x=!!b[2];i.length>0&&x!==a&&m(),a=x;const I=b[2]?Number(b[2]):null;i.length===0&&(c=I??void 0),i.push(Ae(b[3].trim(),I));continue}if(!h.trim()){if(p(),i.length>0&&Fe(r,k+1)===a)continue;m();continue}m(),t.push(h)}return o&&n.push({type:"code",content:o.join(`
|
|
7
|
+
`),language:d}),v(),p(),m(),n}const Se=/^\s*(?:#{1,4}\s*|>\s*|\d+[.)]\s*|[-*]\s*)$/;function Pn(e,r){if(r)return e;const n=e.lastIndexOf(`
|
|
8
|
+
`)+1;return Se.test(e.slice(n))?e.slice(0,n):e}function _e(e,r){const n=e.match(/^\s*(`{2,})\s*(?:[A-Za-z0-9_-]+)?\s*$/);return!!(n&&n[1].length>=r)}function Oe(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 ee=/^\s*(?:([-*])|(\d+)[.)])\s+(.+)$/;function Fe(e,r){let n=r;for(;n<e.length&&!e[n].trim();)n+=1;const t=(e[n]??"").match(ee);return t?!!t[2]:null}function Ae(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 We(e,r){const n=e[r]??"",t=e[r+1]??"";if(!n.includes("|")||!ze(t))return null;const s=H(n);if(s.length===0)return null;const i=[];let a=r+2;for(;a<e.length;){const c=e[a]??"";if(!c.trim()||!c.includes("|"))break;i.push(H(c)),a+=1}return{headers:s,rows:i,endIndex:a-1}}function ze(e){const r=H(e);return r.length>0&&r.every(n=>/^:?-{3,}:?$/.test(n.trim()))}function H(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(n=>n.trim())}const He=new Set([".avif",".gif",".ico",".jpeg",".jpg",".png",".svg",".webp"]);function ne({checked:e,inline:r=!1}){return l.jsx("input",{"aria-label":e?"Checked item":"Unchecked item",checked:e,className:`markdown-checkbox ${r?"inline":""}`,disabled:!0,readOnly:!0,type:"checkbox"})}function U(e,r){const n=[];let t=0,s=0;const i=a=>{a>s&&n.push(e.slice(s,a))};for(;t<e.length;){const a=e[t];if(a==="`"){const h=e.indexOf("`",t+1);if(h>t+1){const y=e.slice(t+1,h),w=r.onOpenFileInSidebar&&Be(y,e,t,h+1)?_(y,{workspaceRootPath:r.workspaceRootPath}):null;i(t),n.push(w?T(w.displayPath,w.path,w.displayPath,r,n.length):l.jsx("code",{children:y},n.length)),t=h+1,s=t;continue}}const c=a==="<"||e.startsWith("!<img",t)?Ke(e,t):null;if(c){const h=B(c.src,r);if(h){i(t),n.push(V(c.alt,h,r,n.length)),t=c.end,s=t;continue}}const o=a==="<"?Ye(e,t):null;if(o){i(t),n.push(C(o.label,o.href,r,n.length)),t=o.end,s=t;continue}const d=a==="<"?Qe(e,t):null;if(d){i(t),n.push(C(d.href,d.href,r,n.length)),t=d.end,s=t;continue}const g=a==="["?Ge(e,t):null;if(g){i(t),n.push(l.jsx(ne,{checked:g.checked,inline:!0},n.length)),t=g.end,s=t;continue}const p=e.startsWith("![",t)?Xe(e,t):null;if(p){const h=B(p.href,r);i(t),n.push(h?V(p.label,h,r,n.length):C(p.label||p.href,p.href,r,n.length)),t=p.end,s=t;continue}const v=a==="["?Ze(e,t):null;if(v){i(t),n.push(C(v.label,v.href,r,n.length)),t=v.end,s=t;continue}const m=Te(e,t);if(m){i(t),n.push(C(m.href,m.href,r,n.length)),t=m.end,s=t;continue}const k=r.onOpenFileInSidebar?Ne(e,t,{workspaceRootPath:r.workspaceRootPath}):null;if(k){i(t),n.push(T(k.displayPath,k.path,k.displayPath,r,n.length)),t=k.end,s=t;continue}if(e.startsWith("**",t)){const h=e.indexOf("**",t+2);if(h>t+2){i(t),n.push(l.jsx("strong",{children:e.slice(t+2,h)},n.length)),t=h+2,s=t;continue}}if(e.startsWith("__",t)){const h=e.indexOf("__",t+2);if(h>t+2){i(t),n.push(l.jsx("strong",{children:e.slice(t+2,h)},n.length)),t=h+2,s=t;continue}}t+=1}return i(e.length),n}function Te(e,r){const n=r>0?e[r-1]:"";if(n&&!/[\s([{<]/.test(n))return null;const t=e.slice(r),s=/^(?:https?:\/\/|www\.)[^\s<>()]+(?:\([^\s<>()]*\)[^\s<>()]*)*/i.exec(t);if(!s)return null;let i=s[0];for(;/[.,;:!?]$/.test(i);)i=i.slice(0,-1);return i?{href:/^www\./i.test(i)?`https://${i}`:i,end:r+i.length}:null}function Be(e,r,n,t){return De(e)?!0:!r.slice(0,n).trim()&&!r.slice(t).trim()}function De(e){return/^(?:workspace|sandbox):file:/i.test(e.trim())}function C(e,r,n,t){const s=se(r),i=B(s,n),a=/^https?:\/\//i.test(s),c=i?.kind==="url"?i.src:i?.src??s,o=n.onOpenFileInSidebar?_(s,{workspaceRootPath:n.workspaceRootPath}):null;return!i&&o?T(e,o.path,o.displayPath,n,t):l.jsx("a",{href:a||i?c:"#",className:i?"markdown-image-link":void 0,onBlur:()=>{i&&n.onPreviewImage(null)},onClick:d=>{if(i){d.preventDefault(),an(i,n),n.onPreviewImage(null);return}if(a&&n.onOpenBrowserLink){d.preventDefault(),n.onOpenBrowserLink(c);return}a||d.preventDefault()},onContextMenu:d=>{d.preventDefault(),n.onPreviewImage(null),n.onOpenLinkMenu(on(c,s,d.clientX,d.clientY))},onFocus:d=>{i&&X(i,n,d.currentTarget)},onMouseEnter:d=>{i&&X(i,n,d.currentTarget)},onMouseLeave:()=>{i&&n.onPreviewImage(null)},rel:a?"noreferrer":void 0,target:a?"_blank":void 0,title:s,children:e},t)}function V(e,r,n,t){return l.jsx(qe,{context:n,image:r,label:e},t)}function qe({context:e,image:r,label:n}){const t=K(e.connection,r.kind==="workspace"?r.appId:null,r.kind==="workspace"?r.path:null),s=Q(e.connection,r.kind==="local"?r.path:null),i=r.kind==="url"?r.src:r.kind==="local"?s:t,a=n.trim()||r.title;return l.jsx("button",{type:"button",className:`markdown-inline-image ${i?"ready":"loading"}`,onClick:()=>{if(r.kind==="url"){e.onOpenImage({src:r.src,title:a});return}if(i){e.onOpenImage({src:i,title:a});return}r.kind!=="local"&&e.onOpenWorkspaceImage({appId:r.appId,path:r.path,title:a})},title:a,children:i?l.jsx("img",{alt:a,decoding:"async",loading:"lazy",src:i}):l.jsx("span",{"aria-hidden":"true"})})}function T(e,r,n,t,s){const i=nn(r,n,t);return i?l.jsx(Ve,{context:t,displayPath:n,image:i,label:e,path:r},s):l.jsx(re,{context:t,displayPath:n,label:e,path:r},s)}function re({context:e,displayPath:r,label:n,path:t}){return l.jsx("a",{href:"#",className:"markdown-file-link",onClick:s=>{s.preventDefault(),e.onOpenFileInSidebar?.(t)},onContextMenu:s=>{s.preventDefault(),e.onPreviewImage(null),e.onOpenLinkMenu(cn(t,r,s.clientX,s.clientY))},title:r,children:n})}function Ve({context:e,displayPath:r,image:n,label:t,path:s}){const i=K(e.connection,n.kind==="workspace"?n.appId:null,n.kind==="workspace"?n.path:null),a=Q(e.connection,n.kind==="local"?n.path:null),c=n.kind==="url"?n.src:n.kind==="local"?a:i,o=n.title||r;return l.jsxs("span",{className:"markdown-file-image-reference",children:[l.jsx(re,{context:e,displayPath:r,label:t,path:s}),l.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?l.jsx("img",{alt:o,decoding:"async",loading:"lazy",src:c}):l.jsx("span",{"aria-hidden":"true"})})]})}function Xe(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 s=te(e,t+2);return s?{label:e.slice(n,t),href:s.href,end:s.end}:null}function Ze(e,r){const n=e.indexOf("]",r+1);if(n<=r+1||e[n+1]!=="(")return null;const t=te(e,n+2);return t?{label:e.slice(r+1,n),href:t.href,end:t.end}:null}function te(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 s=e[t];if(s==="\\"){t+=1;continue}if(s==="("){n+=1;continue}if(s===")"){if(n===0)return{href:e.slice(r,t),end:t+1};n-=1}}return null}function Ke(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 s=e.slice(n,t+1),i=A(s,"src");return i?{src:i,alt:A(s,"alt")??A(s,"title")??"",end:t+1}:null}function Ge(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 Ye(e,r){const n=e.slice(r),t=/^<a\s+[^>]*href\s*=\s*(["'])(.*?)\1[^>]*>(.*?)<\/a>/i.exec(n);return t?{href:t[2]??"",label:Je(t[3]??""),end:r+t[0].length}:null}function Qe(e,r){const n=e.indexOf(">",r+1);if(n<=r+1)return null;const t=e.slice(r+1,n).trim();return en(t)?{href:t,end:n+1}:null}function Je(e){return e.replace(/<[^>]+>/g,"").trim()||e}function A(e,r){const t=new RegExp(`\\s${r}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s>]+))`,"i").exec(e);return t?.[1]??t?.[2]??t?.[3]??null}function en(e){return/^(https?:\/\/|file:\/\/|(?:workspace|sandbox):file:|\/|\.{1,2}\/)/i.test(e)}function B(e,r){const n=se(e);if(!n)return null;if(/^https?:\/\//i.test(n))try{const a=new URL(n),c=ln(a,r);return c||(sn(a,r.connection)?{kind:"url",src:n,title:L(a.searchParams.get("path")??a.pathname)}:null)}catch{return null}const t=tn(n),s=D(t??n,r.workspaceRootPath);if(s)return{kind:"url",src:s,title:L(t??n)};if(!t||!M(t)||!r.connection)return null;if(O(t))return{kind:"local",path:t,src:r.localImageUrls.getUrl(t),title:L(t)};if(!r.activeWorkspaceAppId)return null;const i=F(t,r.workspaceRootPath);return!i||!M(i)?null:{kind:"workspace",appId:r.activeWorkspaceAppId,path:i,src:r.workspaceImageUrls.getUrl(r.activeWorkspaceAppId,i),title:L(i)}}function nn(e,r,n){const t=D(e,n.workspaceRootPath)??D(r,n.workspaceRootPath);if(t)return{kind:"url",src:t,title:L(r)};if(!M(e)||!n.connection)return null;if(O(e))return{kind:"local",path:e,src:n.localImageUrls.getUrl(e),title:L(e)};if(!n.activeWorkspaceAppId)return null;const s=F(e,n.workspaceRootPath);return!s||!M(s)?null:{kind:"workspace",appId:n.activeWorkspaceAppId,path:s,src:n.workspaceImageUrls.getUrl(n.activeWorkspaceAppId,s),title:L(s)}}function D(e,r){const n=F(e,r),t="apps/web/public/";if(!n?.startsWith(t))return null;const s=n.slice(t.length);return!s||!rn(s)?null:de(s.split("/").map(encodeURIComponent).join("/"))}function rn(e){const r=e.split("?")[0]?.split("#")[0]??e,n=r.lastIndexOf(".");return n<0?!1:He.has(r.slice(n).toLowerCase())}function se(e){return e.trim().replace(/^['"`]+|['"`]+$/g,"")}function tn(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(O(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 O(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,"/"),O(n)){const s=r?.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!s||!n.startsWith(`${s}/`))return null;n=n.slice(s.length+1)}n=n.replace(/^\.\/+/,"");const t=n.split("/").filter(Boolean);return t.length===0||t.some(s=>s==="."||s===".."||s===".git")?null:t.join("/")}function sn(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(M(e.pathname))return!0;const n=e.searchParams.get("path");return!!(n&&M(n))}function ln(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&&M(t))return{kind:"url",src:e.toString(),title:L(t)};const s=e.pathname==="/v1/assets/chat-attachment-image"?e.searchParams.get("storageName"):null;if(s&&M(s))return{kind:"url",src:e.toString(),title:L(s)};const i=/^\/v1\/workspaces\/([^/]+)\/file-image$/.exec(e.pathname),a=i?e.searchParams.get("path"):null;if(!i||!a||!M(a))return null;const c=decodeURIComponent(i[1]),o=F(a,r.workspaceRootPath);return!o||!M(o)?null:{kind:"workspace",appId:c,path:o,src:r.workspaceImageUrls.getUrl(c,o),title:L(o)}}function an(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 X(e,r,n){if(e.kind==="url"){r.onPreviewImage($(e,n));return}if(e.kind==="local"){if(e.src){r.onPreviewImage($({src:e.src,title:e.title},n));return}r.localImageUrls.loadUrl(e.path).then(t=>{t&&n.matches(":hover")&&r.onPreviewImage($({src:t,title:e.title},n))});return}if(e.src){r.onPreviewImage($({src:e.src,title:e.title},n));return}r.workspaceImageUrls.loadUrl(e.appId,e.path).then(t=>{t&&n.matches(":hover")&&r.onPreviewImage($({src:t,title:e.title},n))})}function $(e,r){const n=r.getBoundingClientRect(),t=236,s=172,i=12,a=Math.max(i,Math.min(n.left,window.innerWidth-t-i)),c=n.bottom+8,o=c+s<=window.innerHeight-i?c:Math.max(i,n.top-s-8);return{...e,x:a,y:o}}function on(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 cn(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))}}async function un(e){const r=e.trim();if(!r)return!1;const n=window.openpond?.files;if(!n)return!1;try{return(await n.reveal({path:r})).ok}catch{return!1}}async function Nn(e,r){const n=e.trim(),t=window.openpond?.files;if(!n||!t?.saveAs)return{ok:!1,canceled:!1,path:null};try{const s=await t.saveAs({path:n,suggestedName:r});return{ok:s.ok,canceled:s.canceled,path:s.path??null}}catch{return{ok:!1,canceled:!1,path:null}}}function Un({activeWorkspaceAppId:e=null,connection:r=null,content:n,finalizedContent:t,mutableContent:s,onOpenBrowserLink:i,onOpenFileInSidebar:a,workspaceRootPath:c=null}){const o=t!==void 0||s!==void 0,d=f.useMemo(()=>o?[]:R(n),[n,o]),g=f.useMemo(()=>o&&t?R(t):[],[t,o]),p=f.useMemo(()=>o&&s?R(s):[],[s,o]),[v,m]=f.useState(null),[k,h]=f.useState(null),[y,w]=f.useState(null),j=J(r),u=G(r),b=f.useCallback(I=>{u.loadUrl(I.appId,I.path).then(E=>{E&&m({src:E,title:I.title})})},[u]),x=f.useMemo(()=>({activeWorkspaceAppId:e,connection:r,onOpenBrowserLink:i,onOpenFileInSidebar:a,onOpenLinkMenu:w,onOpenImage:m,onOpenWorkspaceImage:b,onPreviewImage:h,localImageUrls:j,workspaceImageUrls:u,workspaceRootPath:c}),[e,r,b,j,i,a,u,c]);return f.useEffect(()=>{if(!y)return;const I=()=>w(null),E=le=>{le.key==="Escape"&&I()};return window.addEventListener("click",I),window.addEventListener("keydown",E),window.addEventListener("scroll",I,!0),()=>{window.removeEventListener("click",I),window.removeEventListener("keydown",E),window.removeEventListener("scroll",I,!0)}},[y]),l.jsxs("div",{className:"markdown-message",children:[o?l.jsxs(l.Fragment,{children:[l.jsx(W,{blocks:g,context:x,keyPrefix:"finalized",workspaceRootPath:c}),l.jsx(W,{blocks:p,context:x,keyPrefix:"mutable",workspaceRootPath:c})]}):l.jsx(W,{blocks:d,context:x,keyPrefix:"block",workspaceRootPath:c}),k&&l.jsx(hn,{preview:k}),y&&l.jsx(fn,{menu:y,onClose:()=>w(null),onOpenBrowserLink:i,onOpenFileInSidebar:a}),l.jsx(xe,{open:!!v,src:v?.src??null,title:v?.title??"",onClose:()=>m(null)})]})}const W=f.memo(function({blocks:r,context:n,keyPrefix:t,workspaceRootPath:s}){return ie(r,n,s,t)});function ie(e,r,n,t="block"){return e.map((s,i)=>{const a=`${t}-${i}`;if(s.type==="blockquote")return l.jsx("blockquote",{className:"markdown-blockquote",children:ie(R(s.content),r,n,`${a}-quote`)},a);if(s.type==="code"){const c=dn(s.content,n);return c?l.jsx("div",{className:"markdown-file-reference-block",children:c.map((o,d)=>l.jsx("div",{className:"markdown-file-reference-line",children:U(o,r)},d))},a):l.jsx("pre",{className:"markdown-code-block",children:l.jsx("code",{children:s.content})},a)}if(s.type==="list"){const c=s.items.map((o,d)=>l.jsxs("li",{className:o.checked===null?void 0:"markdown-task-list-item",value:s.ordered?o.ordinal??void 0:void 0,children:[o.checked===null?null:l.jsx(ne,{checked:o.checked}),l.jsx("span",{children:U(o.content,r)})]},d));return s.ordered?l.jsx("ol",{className:"markdown-list",start:s.start,children:c},a):l.jsx("ul",{className:"markdown-list",children:c},a)}if(s.type==="heading"){const c=s.level===1?"h1":s.level===2?"h2":s.level===3?"h3":"h4";return l.jsx(c,{className:"markdown-heading",children:U(s.content,r)},a)}return s.type==="table"?l.jsx("div",{className:"markdown-table-wrap",children:l.jsxs("table",{className:"markdown-table",children:[l.jsx("thead",{children:l.jsx("tr",{children:s.headers.map((c,o)=>l.jsx("th",{children:U(c,r)},o))})}),l.jsx("tbody",{children:s.rows.map((c,o)=>l.jsx("tr",{children:s.headers.map((d,g)=>l.jsx("td",{children:U(c[g]??"",r)},g))},o))})]})},a):l.jsx("p",{className:"markdown-paragraph",children:U(s.content,r)},a)})}function dn(e,r){const n=e.split(`
|
|
9
|
+
`),t=[];for(const s of n){const i=s.trim();if(!i)continue;const c=i.replace(/^(?:[-*]|\d+[.)])\s+/,"").trim().replace(/^`+|`+$/g,"").trim();if(!c||!_(c,{workspaceRootPath:r}))return null;t.push(c)}return t.length>0?t:null}function hn({preview:e}){const[r,n]=f.useState(!1);return f.useEffect(()=>{n(!1)},[e.src]),l.jsxs("div",{className:`markdown-image-hover-preview ${r?"unavailable":""}`,style:{left:e.x,top:e.y},children:[r?l.jsx("span",{children:"Preview unavailable"}):l.jsx("img",{alt:"",src:e.src,onError:()=>n(!0)}),l.jsx("span",{children:e.title})]})}function fn({menu:e,onClose:r,onOpenBrowserLink:n,onOpenFileInSidebar:t}){return e.kind==="file"?l.jsxs("div",{className:"markdown-link-menu",role:"menu",style:{left:e.x,top:e.y},onClick:s=>s.stopPropagation(),children:[l.jsx("button",{type:"button",role:"menuitem",onClick:()=>{t?.(e.path),r()},children:"Open in sidebar"}),l.jsx("button",{type:"button",role:"menuitem",onClick:()=>{un(e.path),r()},children:"Open externally"}),l.jsx("button",{type:"button",role:"menuitem",onClick:()=>{q(e.displayPath),r()},children:"Copy path"})]}):l.jsxs("div",{className:"markdown-link-menu",role:"menu",style:{left:e.x,top:e.y},onClick:s=>s.stopPropagation(),children:[l.jsx("button",{type:"button",role:"menuitem",onClick:()=>{n?n(e.browserHref):window.open(e.browserHref,"_blank","noopener,noreferrer"),r()},children:"Open in sidebar"}),l.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"}),l.jsx("button",{type:"button",role:"menuitem",onClick:()=>{window.open(e.browserHref,"_blank","noopener,noreferrer"),r()},children:"Open externally"}),l.jsx("button",{type:"button",role:"menuitem",onClick:()=>{q(e.displayHref),r()},children:"Copy link"})]})}export{mn as A,gn as B,vn as C,Ln as D,yn as F,xe as I,bn as M,xn as P,In as T,jn as W,wn as a,Un as b,kn as c,Mn as d,Pn as e,Q as f,_ as n,un as r,Nn as s,K as u};
|